@agents-inc/cli 0.76.0 → 0.78.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 (182) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/{chunk-Q4PJSAMP.js → chunk-32HX6UYI.js} +2 -1
  3. package/dist/chunk-32HX6UYI.js.map +1 -0
  4. package/dist/{chunk-CKU7FJNV.js → chunk-7HGMFJ4Y.js} +3 -3
  5. package/dist/{chunk-UBNHVBSV.js → chunk-7JQIMEUX.js} +3 -3
  6. package/dist/{chunk-XYZ7B5BY.js → chunk-7LBYURQR.js} +2 -2
  7. package/dist/{chunk-NWW3OJH5.js → chunk-A5JSBU65.js} +2 -2
  8. package/dist/{chunk-ODVQXXEO.js → chunk-B4C2S5LP.js} +17 -43
  9. package/dist/{chunk-ODVQXXEO.js.map → chunk-B4C2S5LP.js.map} +1 -1
  10. package/dist/{chunk-IDN2OZJY.js → chunk-C22ACAL2.js} +2 -2
  11. package/dist/{chunk-I2SUTL7S.js → chunk-D4T3HHE7.js} +5 -5
  12. package/dist/chunk-D4T3HHE7.js.map +1 -0
  13. package/dist/{chunk-7XUKTYVD.js → chunk-EO6KJI5D.js} +1038 -270
  14. package/dist/chunk-EO6KJI5D.js.map +1 -0
  15. package/dist/{chunk-WZ5S4LGX.js → chunk-F4IZ3UAS.js} +16 -22
  16. package/dist/chunk-F4IZ3UAS.js.map +1 -0
  17. package/dist/{chunk-JWMYAJHD.js → chunk-FSK4TQX7.js} +1236 -354
  18. package/dist/chunk-FSK4TQX7.js.map +1 -0
  19. package/dist/{chunk-WMMU5FOO.js → chunk-FUWUCKES.js} +2 -2
  20. package/dist/{chunk-WMMU5FOO.js.map → chunk-FUWUCKES.js.map} +1 -1
  21. package/dist/{chunk-S6DKM6MJ.js → chunk-HANGA633.js} +4 -8
  22. package/dist/{chunk-S6DKM6MJ.js.map → chunk-HANGA633.js.map} +1 -1
  23. package/dist/{chunk-CBYRFAUN.js → chunk-HK53FRMU.js} +3 -1
  24. package/dist/chunk-HK53FRMU.js.map +1 -0
  25. package/dist/{chunk-I534EWJQ.js → chunk-IFCASC6R.js} +2 -2
  26. package/dist/{chunk-2I5SXGXR.js → chunk-KQDGLEBF.js} +80 -5
  27. package/dist/chunk-KQDGLEBF.js.map +1 -0
  28. package/dist/{chunk-AE2QHAFO.js → chunk-KVRR4PEJ.js} +81 -73
  29. package/dist/chunk-KVRR4PEJ.js.map +1 -0
  30. package/dist/{chunk-R7F5YQMI.js → chunk-LVBRC2CP.js} +2 -6
  31. package/dist/chunk-LVBRC2CP.js.map +1 -0
  32. package/dist/{chunk-CCSU4R65.js → chunk-MG55NDVG.js} +2 -2
  33. package/dist/{chunk-M4ZDKHJV.js → chunk-MUCQ27HV.js} +2 -2
  34. package/dist/chunk-N2XGUAJU.js +34 -0
  35. package/dist/{chunk-7PZFDI46.js.map → chunk-N2XGUAJU.js.map} +1 -1
  36. package/dist/{chunk-PRG7PKZM.js → chunk-N34D3ROY.js} +14 -13
  37. package/dist/chunk-N34D3ROY.js.map +1 -0
  38. package/dist/{chunk-7PMFIL5L.js → chunk-NKLNT7N7.js} +4 -21
  39. package/dist/chunk-NKLNT7N7.js.map +1 -0
  40. package/dist/{chunk-WS3TL2AO.js → chunk-OIHZ2YH3.js} +172 -102
  41. package/dist/chunk-OIHZ2YH3.js.map +1 -0
  42. package/dist/chunk-OOWNDQCG.js +192 -0
  43. package/dist/chunk-OOWNDQCG.js.map +1 -0
  44. package/dist/{chunk-EEZSCHS2.js → chunk-OTMIGYBB.js} +52 -10
  45. package/dist/chunk-OTMIGYBB.js.map +1 -0
  46. package/dist/chunk-PZERKWE2.js +114 -0
  47. package/dist/chunk-PZERKWE2.js.map +1 -0
  48. package/dist/{chunk-O5CPXIC4.js → chunk-Q755X6QF.js} +4 -4
  49. package/dist/{chunk-36YW5E7G.js → chunk-QD3GQ2CH.js} +5 -5
  50. package/dist/{chunk-ERHTXNIF.js → chunk-RU5XLS5Q.js} +1 -5
  51. package/dist/{chunk-ERHTXNIF.js.map → chunk-RU5XLS5Q.js.map} +1 -1
  52. package/dist/{chunk-VQV3DSHD.js → chunk-SJNUTUSJ.js} +5 -5
  53. package/dist/{chunk-KPRCP3MZ.js → chunk-U2KFFRRX.js} +2 -2
  54. package/dist/{chunk-CBJTSEI2.js → chunk-VDVLM3KB.js} +54 -6
  55. package/dist/chunk-VDVLM3KB.js.map +1 -0
  56. package/dist/{chunk-7NACNRFG.js → chunk-W46L2PXK.js} +32 -23
  57. package/dist/chunk-W46L2PXK.js.map +1 -0
  58. package/dist/{chunk-6F3CZLD6.js → chunk-XA7WF3BI.js} +3 -3
  59. package/dist/{chunk-WN2TUP4M.js → chunk-XYPAOBBV.js} +2 -2
  60. package/dist/{chunk-LO5QGAP2.js → chunk-YFHVP3VA.js} +5 -12
  61. package/dist/chunk-YFHVP3VA.js.map +1 -0
  62. package/dist/commands/build/marketplace.js +4 -4
  63. package/dist/commands/build/plugins.js +8 -8
  64. package/dist/commands/build/stack.js +8 -8
  65. package/dist/commands/compile.js +38 -22
  66. package/dist/commands/compile.js.map +1 -1
  67. package/dist/commands/config/index.js +8 -8
  68. package/dist/commands/config/path.js +7 -7
  69. package/dist/commands/config/show.js +8 -8
  70. package/dist/commands/diff.js +35 -15
  71. package/dist/commands/diff.js.map +1 -1
  72. package/dist/commands/doctor.js +24 -12
  73. package/dist/commands/doctor.js.map +1 -1
  74. package/dist/commands/edit.js +47 -37
  75. package/dist/commands/edit.js.map +1 -1
  76. package/dist/commands/eject.js +7 -7
  77. package/dist/commands/import/skill.js +7 -7
  78. package/dist/commands/info.js +7 -7
  79. package/dist/commands/init.js +28 -28
  80. package/dist/commands/list.js +7 -7
  81. package/dist/commands/new/agent.js +8 -8
  82. package/dist/commands/new/marketplace.js +9 -9
  83. package/dist/commands/new/skill.js +8 -8
  84. package/dist/commands/outdated.js +18 -10
  85. package/dist/commands/outdated.js.map +1 -1
  86. package/dist/commands/search.js +9 -9
  87. package/dist/commands/uninstall.js +15 -27
  88. package/dist/commands/uninstall.js.map +1 -1
  89. package/dist/commands/update.js +26 -16
  90. package/dist/commands/update.js.map +1 -1
  91. package/dist/commands/validate.js +7 -7
  92. package/dist/components/skill-search/skill-search.js +2 -2
  93. package/dist/components/wizard/category-grid.js +3 -3
  94. package/dist/components/wizard/category-grid.test.js +18 -19
  95. package/dist/components/wizard/category-grid.test.js.map +1 -1
  96. package/dist/components/wizard/checkbox-grid.js +1 -2
  97. package/dist/components/wizard/checkbox-grid.test.js +2 -4
  98. package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
  99. package/dist/components/wizard/domain-selection.js +10 -11
  100. package/dist/components/wizard/help-modal.js +2 -2
  101. package/dist/components/wizard/search-modal.js +2 -2
  102. package/dist/components/wizard/search-modal.test.js +2 -2
  103. package/dist/components/wizard/source-grid.js +4 -4
  104. package/dist/components/wizard/source-grid.test.js +13 -13
  105. package/dist/components/wizard/stack-selection.js +10 -9
  106. package/dist/components/wizard/stats-panel.js +12 -0
  107. package/dist/components/wizard/step-agents.js +9 -10
  108. package/dist/components/wizard/step-agents.test.js +16 -15
  109. package/dist/components/wizard/step-agents.test.js.map +1 -1
  110. package/dist/components/wizard/step-build.js +11 -12
  111. package/dist/components/wizard/step-build.test.js +34 -32
  112. package/dist/components/wizard/step-build.test.js.map +1 -1
  113. package/dist/components/wizard/step-confirm.js +4 -6
  114. package/dist/components/wizard/step-confirm.test.js +24 -23
  115. package/dist/components/wizard/step-confirm.test.js.map +1 -1
  116. package/dist/components/wizard/step-refine.js +2 -3
  117. package/dist/components/wizard/step-refine.test.js +2 -3
  118. package/dist/components/wizard/step-refine.test.js.map +1 -1
  119. package/dist/components/wizard/step-settings.js +8 -9
  120. package/dist/components/wizard/step-settings.test.js +14 -15
  121. package/dist/components/wizard/step-settings.test.js.map +1 -1
  122. package/dist/components/wizard/step-sources.js +11 -12
  123. package/dist/components/wizard/step-sources.test.js +17 -19
  124. package/dist/components/wizard/step-sources.test.js.map +1 -1
  125. package/dist/components/wizard/step-stack.js +12 -14
  126. package/dist/components/wizard/step-stack.test.js +26 -25
  127. package/dist/components/wizard/step-stack.test.js.map +1 -1
  128. package/dist/components/wizard/view-title.js +21 -3
  129. package/dist/components/wizard/view-title.js.map +1 -1
  130. package/dist/components/wizard/wizard-layout.js +12 -11
  131. package/dist/components/wizard/wizard-tabs.js +1 -1
  132. package/dist/components/wizard/wizard-tabs.test.js +1 -1
  133. package/dist/components/wizard/wizard.js +26 -26
  134. package/dist/config-exports.js +1 -1
  135. package/dist/hooks/init.js +28 -28
  136. package/dist/{loader-7RQ4G4TH.js → loader-JMOO2A7C.js} +4 -4
  137. package/dist/{source-loader-CXCIDGWV.js → source-loader-D3VIG3GM.js} +7 -7
  138. package/dist/source-manager-FPYFJRR7.js +19 -0
  139. package/dist/source-manager-FPYFJRR7.js.map +1 -0
  140. package/dist/stores/wizard-store.js +7 -7
  141. package/dist/stores/wizard-store.test.js +12 -12
  142. package/dist/stores/wizard-store.test.js.map +1 -1
  143. package/package.json +1 -1
  144. package/dist/chunk-2I5SXGXR.js.map +0 -1
  145. package/dist/chunk-7NACNRFG.js.map +0 -1
  146. package/dist/chunk-7PMFIL5L.js.map +0 -1
  147. package/dist/chunk-7PZFDI46.js +0 -40
  148. package/dist/chunk-7XUKTYVD.js.map +0 -1
  149. package/dist/chunk-AE2QHAFO.js.map +0 -1
  150. package/dist/chunk-CBJTSEI2.js.map +0 -1
  151. package/dist/chunk-CBYRFAUN.js.map +0 -1
  152. package/dist/chunk-EEZSCHS2.js.map +0 -1
  153. package/dist/chunk-EWBNSS5Y.js +0 -113
  154. package/dist/chunk-EWBNSS5Y.js.map +0 -1
  155. package/dist/chunk-I2SUTL7S.js.map +0 -1
  156. package/dist/chunk-JNQKCZA3.js +0 -28
  157. package/dist/chunk-JNQKCZA3.js.map +0 -1
  158. package/dist/chunk-JWMYAJHD.js.map +0 -1
  159. package/dist/chunk-LO5QGAP2.js.map +0 -1
  160. package/dist/chunk-PRG7PKZM.js.map +0 -1
  161. package/dist/chunk-Q4PJSAMP.js.map +0 -1
  162. package/dist/chunk-R7F5YQMI.js.map +0 -1
  163. package/dist/chunk-WS3TL2AO.js.map +0 -1
  164. package/dist/chunk-WZ5S4LGX.js.map +0 -1
  165. package/dist/source-manager-TPLO2DVS.js +0 -19
  166. /package/dist/{chunk-CKU7FJNV.js.map → chunk-7HGMFJ4Y.js.map} +0 -0
  167. /package/dist/{chunk-UBNHVBSV.js.map → chunk-7JQIMEUX.js.map} +0 -0
  168. /package/dist/{chunk-XYZ7B5BY.js.map → chunk-7LBYURQR.js.map} +0 -0
  169. /package/dist/{chunk-NWW3OJH5.js.map → chunk-A5JSBU65.js.map} +0 -0
  170. /package/dist/{chunk-IDN2OZJY.js.map → chunk-C22ACAL2.js.map} +0 -0
  171. /package/dist/{chunk-I534EWJQ.js.map → chunk-IFCASC6R.js.map} +0 -0
  172. /package/dist/{chunk-CCSU4R65.js.map → chunk-MG55NDVG.js.map} +0 -0
  173. /package/dist/{chunk-M4ZDKHJV.js.map → chunk-MUCQ27HV.js.map} +0 -0
  174. /package/dist/{chunk-O5CPXIC4.js.map → chunk-Q755X6QF.js.map} +0 -0
  175. /package/dist/{chunk-36YW5E7G.js.map → chunk-QD3GQ2CH.js.map} +0 -0
  176. /package/dist/{chunk-VQV3DSHD.js.map → chunk-SJNUTUSJ.js.map} +0 -0
  177. /package/dist/{chunk-KPRCP3MZ.js.map → chunk-U2KFFRRX.js.map} +0 -0
  178. /package/dist/{chunk-6F3CZLD6.js.map → chunk-XA7WF3BI.js.map} +0 -0
  179. /package/dist/{chunk-WN2TUP4M.js.map → chunk-XYPAOBBV.js.map} +0 -0
  180. /package/dist/{loader-7RQ4G4TH.js.map → components/wizard/stats-panel.js.map} +0 -0
  181. /package/dist/{source-loader-CXCIDGWV.js.map → loader-JMOO2A7C.js.map} +0 -0
  182. /package/dist/{source-manager-TPLO2DVS.js.map → source-loader-D3VIG3GM.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/lib/configuration/define-config.ts","../src/cli/lib/configuration/default-categories.ts","../src/cli/lib/configuration/default-rules.ts","../src/cli/lib/configuration/default-stacks.ts"],"sourcesContent":["import type { ProjectConfig } from \"../../types\";\n\n/**\n * Type-safe config helper for project configuration.\n * Uses const generics so literal types are preserved through the call.\n *\n * Config MUST be defined inline for full type inference --\n * extracting the object to a variable widens literal types.\n */\nexport function defineConfig<const T extends ProjectConfig>(config: T): T {\n return config;\n}\n","import type { CategoryMap } from \"../../types\";\n\n/**\n * Built-in category definitions, equivalent to config/skill-categories.ts.\n * Source repos may override or extend these via their own config files.\n */\nexport const defaultCategories: CategoryMap = {\n \"web-framework\": {\n id: \"web-framework\",\n displayName: \"Framework\",\n description: \"UI framework (React, Vue, Angular, SolidJS)\",\n domain: \"web\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"web-meta-framework\": {\n id: \"web-meta-framework\",\n displayName: \"Meta-Framework\",\n description: \"Full-stack meta-framework (Next.js, Remix, Nuxt, SvelteKit)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 2,\n },\n \"web-styling\": {\n id: \"web-styling\",\n displayName: \"Styling\",\n description: \"CSS approach (SCSS Modules, Tailwind, CVA)\",\n domain: \"web\",\n exclusive: false,\n required: true,\n order: 3,\n },\n \"web-client-state\": {\n id: \"web-client-state\",\n displayName: \"Client State Management\",\n description: \"UI state, forms, local data (Zustand, Redux, MobX)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 4,\n },\n \"web-server-state\": {\n id: \"web-server-state\",\n displayName: \"Server State / Data Fetching\",\n description: \"API data caching (React Query, SWR)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 5,\n },\n \"web-forms\": {\n id: \"web-forms\",\n displayName: \"Forms & Validation\",\n description: \"Form handling and schema validation\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"web-testing\": {\n id: \"web-testing\",\n displayName: \"Testing\",\n description: \"Unit, integration, and E2E testing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"web-ui-components\": {\n id: \"web-ui-components\",\n displayName: \"UI Component Library\",\n description: \"Pre-built component systems (Radix, shadcn)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 8,\n },\n \"web-tooling\": {\n id: \"web-tooling\",\n displayName: \"Build Tools\",\n description: \"Frontend build tools and bundlers (Vite, Webpack)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 9,\n },\n \"web-mocking\": {\n id: \"web-mocking\",\n displayName: \"API Mocking\",\n description: \"Mock Service Worker for development and testing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 10,\n },\n \"web-error-handling\": {\n id: \"web-error-handling\",\n displayName: \"Error Handling\",\n description: \"Error boundaries, result types, and error patterns\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 11,\n },\n \"web-i18n\": {\n id: \"web-i18n\",\n displayName: \"Internationalization\",\n description: \"i18n libraries (next-intl, react-intl, vue-i18n)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 12,\n },\n \"web-file-upload\": {\n id: \"web-file-upload\",\n displayName: \"File Upload\",\n description: \"File upload patterns and handling\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 13,\n },\n \"web-files\": {\n id: \"web-files\",\n displayName: \"Files & Images\",\n description: \"Image handling and file processing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 14,\n },\n \"web-utilities\": {\n id: \"web-utilities\",\n displayName: \"Utilities\",\n description: \"Utility libraries (date-fns, native JS patterns)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 15,\n },\n \"web-realtime\": {\n id: \"web-realtime\",\n displayName: \"Realtime\",\n description: \"WebSockets, SSE, and real-time communication\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 16,\n },\n \"web-animation\": {\n id: \"web-animation\",\n displayName: \"Animation\",\n description: \"Animation libraries and CSS animations\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 17,\n },\n \"web-pwa\": {\n id: \"web-pwa\",\n displayName: \"Progressive Web App\",\n description: \"Service workers, offline-first patterns, and PWA features\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 18,\n },\n \"web-accessibility\": {\n id: \"web-accessibility\",\n displayName: \"Accessibility\",\n description: \"WCAG compliance, ARIA, and keyboard navigation\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 19,\n },\n \"web-performance\": {\n id: \"web-performance\",\n displayName: \"Web Performance\",\n description: \"Bundle optimization, render performance, and code splitting\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 20,\n },\n \"api-api\": {\n id: \"api-api\",\n displayName: \"API Framework\",\n description: \"Backend framework (Hono, Express, Fastify)\",\n domain: \"api\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"api-database\": {\n id: \"api-database\",\n displayName: \"Database ORM\",\n description: \"Database access layer (Drizzle, Prisma)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 2,\n },\n \"api-auth\": {\n id: \"api-auth\",\n displayName: \"Authentication\",\n description: \"Auth solution (Better Auth, Auth.js)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 3,\n },\n \"api-observability\": {\n id: \"api-observability\",\n displayName: \"Observability\",\n description: \"Logging, monitoring, error tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"api-analytics\": {\n id: \"api-analytics\",\n displayName: \"Analytics\",\n description: \"Product analytics and tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"api-email\": {\n id: \"api-email\",\n displayName: \"Email\",\n description: \"Transactional email (Resend, Sendgrid)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 6,\n },\n \"api-ai\": {\n id: \"api-ai\",\n displayName: \"AI & LLM\",\n description: \"AI SDKs, LLM integration, and RAG patterns\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"api-baas\": {\n id: \"api-baas\",\n displayName: \"Backend as a Service\",\n description: \"Managed backend platforms (Supabase, Firebase)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 8,\n },\n \"api-performance\": {\n id: \"api-performance\",\n displayName: \"Performance\",\n description: \"API performance patterns and optimization\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 9,\n },\n \"mobile-framework\": {\n id: \"mobile-framework\",\n displayName: \"Mobile Framework\",\n description: \"Native mobile framework (React Native, Expo)\",\n domain: \"mobile\",\n exclusive: false,\n required: true,\n order: 1,\n },\n \"shared-monorepo\": {\n id: \"shared-monorepo\",\n displayName: \"Monorepo\",\n description: \"Monorepo tooling (Turborepo, Nx)\",\n domain: \"shared\",\n exclusive: true,\n required: false,\n order: 1,\n },\n \"shared-tooling\": {\n id: \"shared-tooling\",\n displayName: \"Build Tooling\",\n description: \"ESLint, Prettier, TypeScript, Vite\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"shared-security\": {\n id: \"shared-security\",\n displayName: \"Security\",\n description: \"Authentication security patterns and best practices\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"shared-meta\": {\n id: \"shared-meta\",\n displayName: \"Meta\",\n description: \"Research methodology and code review guidance\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"shared-ci-cd\": {\n id: \"shared-ci-cd\",\n displayName: \"CI/CD\",\n description: \"Continuous integration and deployment pipelines\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"cli-framework\": {\n id: \"cli-framework\",\n displayName: \"CLI Framework\",\n description: \"CLI application framework (Commander, oclif)\",\n domain: \"cli\",\n exclusive: true,\n required: true,\n order: 1,\n },\n};\n","import type { SkillRulesConfig } from \"../../types\";\n\n/**\n * Built-in skill rules, equivalent to config/skill-rules.ts.\n * Source repos may override or extend these via their own config files.\n */\nexport const defaultRules: SkillRulesConfig = {\n version: \"1.0.0\",\n relationships: {\n conflicts: [\n {\n skills: [\"react\", \"vue-composition-api\", \"angular-standalone\", \"solidjs\", \"svelte\"],\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skills: [\"nextjs\", \"remix\", \"sveltekit\", \"astro\"],\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skills: [\"pinia\", \"zustand\", \"redux-toolkit\", \"mobx\"],\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skills: [\"ngrx-signalstore\", \"zustand\", \"pinia\", \"redux-toolkit\", \"mobx\"],\n reason: \"NgRx SignalStore is Angular-only\",\n },\n {\n skills: [\"react-query\", \"swr\"],\n reason: \"Both solve server state caching\",\n },\n {\n skills: [\"graphql-apollo\", \"graphql-urql\"],\n reason: \"Both are GraphQL clients\",\n },\n {\n skills: [\"playwright-e2e\", \"cypress-e2e\"],\n reason: \"Both are E2E frameworks\",\n },\n {\n skills: [\"react-hook-form\", \"vee-validate\"],\n reason: \"react-hook-form is React-only, vee-validate is Vue-only\",\n },\n {\n skills: [\"react-testing-library\", \"vue-test-utils\"],\n reason: \"Framework-specific testing libraries\",\n },\n {\n skills: [\"hono\", \"express\", \"fastify\"],\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skills: [\"drizzle\", \"prisma\", \"mongodb\"],\n reason: \"Database ORMs/ODMs are mutually exclusive\",\n },\n {\n skills: [\"cli-commander\", \"oclif-ink\"],\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [\n {\n skills: [\"zustand\", \"redux-toolkit\", \"mobx\"],\n reason: \"Using multiple React state libraries adds complexity\",\n },\n {\n skills: [\"redux-toolkit\", \"zustand\"],\n reason: \"Redux Toolkit adds more boilerplate than Zustand\",\n },\n {\n skills: [\"swr\", \"react-query\"],\n reason: \"SWR is simpler but React Query has more features\",\n },\n {\n skills: [\"express\", \"hono\"],\n reason: \"Express is mature but Hono offers better performance and edge support\",\n },\n {\n skills: [\"express\", \"fastify\"],\n reason: \"Express is mature but Fastify offers better performance\",\n },\n {\n skills: [\"cypress-e2e\", \"playwright-e2e\"],\n reason:\n \"Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance\",\n },\n ],\n compatibleWith: [\n // React ecosystem (includes Next.js, Remix as meta-frameworks)\n {\n skills: [\"framer-motion\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Motion (Framer Motion) is a React animation library\",\n },\n {\n skills: [\"error-boundaries\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Error boundaries are a React concept\",\n },\n {\n skills: [\"file-upload-patterns\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Skill teaches React-based file upload patterns\",\n },\n {\n skills: [\"image-handling\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Skill teaches React-based image handling hooks\",\n },\n {\n skills: [\"react-hook-form\", \"react\", \"nextjs\", \"remix\"],\n reason: \"React Hook Form is React only\",\n },\n {\n skills: [\"react-intl\", \"react\", \"nextjs\", \"remix\"],\n reason: \"React Intl (FormatJS) is React only\",\n },\n {\n skills: [\"react-query\", \"react\", \"nextjs\", \"remix\"],\n reason: \"TanStack Query React adapter\",\n },\n {\n skills: [\"swr\", \"react\", \"nextjs\", \"remix\"],\n reason: \"SWR is a React Hooks library\",\n },\n {\n skills: [\"trpc\", \"react\", \"nextjs\", \"remix\"],\n reason: \"tRPC skill teaches React Query integration\",\n },\n {\n skills: [\"jotai\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Jotai is a React atomic state library\",\n },\n {\n skills: [\"mobx\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Skill teaches MobX with mobx-react-lite\",\n },\n {\n skills: [\"redux-toolkit\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Redux Toolkit skill teaches React Redux patterns\",\n },\n {\n skills: [\"zustand\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Zustand is a React state library\",\n },\n {\n skills: [\"react-testing-library\", \"react\", \"nextjs\", \"remix\"],\n reason: \"React Testing Library is React only\",\n },\n {\n skills: [\"radix-ui\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Radix UI primitives are React-specific\",\n },\n {\n skills: [\"shadcn-ui\", \"react\", \"nextjs\", \"remix\"],\n reason: \"shadcn/ui is built on React + Radix UI\",\n },\n {\n skills: [\"tanstack-table\", \"react\", \"nextjs\", \"remix\"],\n reason: \"Skill teaches @tanstack/react-table patterns only\",\n },\n // Next.js specific\n {\n skills: [\"next-intl\", \"nextjs\"],\n reason: \"next-intl is Next.js only\",\n },\n // Vue ecosystem (includes Nuxt as meta-framework)\n {\n skills: [\"vee-validate\", \"vue-composition-api\", \"nuxt\"],\n reason: \"VeeValidate is Vue only\",\n },\n {\n skills: [\"vue-i18n\", \"vue-composition-api\", \"nuxt\"],\n reason: \"vue-i18n is Vue 3 only\",\n },\n {\n skills: [\"pinia\", \"vue-composition-api\", \"nuxt\"],\n reason: \"Pinia is Vue only\",\n },\n {\n skills: [\"vue-test-utils\", \"vue-composition-api\", \"nuxt\"],\n reason: \"Vue Test Utils is Vue only\",\n },\n // Angular ecosystem\n {\n skills: [\"ngrx-signalstore\", \"angular-standalone\"],\n reason: \"NgRx SignalStore is Angular only\",\n },\n // Multi-framework\n {\n skills: [\n \"graphql-apollo\",\n \"react\",\n \"vue-composition-api\",\n \"angular-standalone\",\n \"nextjs\",\n \"remix\",\n \"nuxt\",\n ],\n reason: \"Apollo Client has bindings for React, Vue, and Angular\",\n },\n {\n skills: [\n \"graphql-urql\",\n \"react\",\n \"vue-composition-api\",\n \"solidjs\",\n \"nextjs\",\n \"remix\",\n \"nuxt\",\n ],\n reason: \"URQL has bindings for React, Vue, and Solid\",\n },\n ],\n recommends: [\n { skill: \"zustand\", reason: \"Best-in-class React state management\" },\n { skill: \"react-query\", reason: \"Modern server state caching for React\" },\n { skill: \"vitest\", reason: \"Fast, modern test runner for all frameworks\" },\n { skill: \"react-hook-form\", reason: \"Best React form library\" },\n { skill: \"react-testing-library\", reason: \"Standard React component testing\" },\n { skill: \"shadcn-ui\", reason: \"Best-in-class React + Tailwind component library\" },\n { skill: \"zod-validation\", reason: \"Type-safe validation for forms and APIs\" },\n { skill: \"pinia\", reason: \"Vue community standard state management\" },\n { skill: \"vee-validate\", reason: \"Vue community standard form validation\" },\n { skill: \"vue-test-utils\", reason: \"Vue component testing library\" },\n { skill: \"ngrx-signalstore\", reason: \"Angular Signals-based state management\" },\n { skill: \"tailwind\", reason: \"Utility-first CSS framework\" },\n { skill: \"drizzle\", reason: \"Modern TypeScript-first ORM\" },\n { skill: \"better-auth-drizzle-hono\", reason: \"Full-featured auth solution\" },\n { skill: \"radix-ui\", reason: \"Accessible unstyled component primitives\" },\n { skill: \"cva\", reason: \"Type-safe variant management for Tailwind\" },\n { skill: \"msw\", reason: \"Network-level API mocking for tests\" },\n { skill: \"playwright-e2e\", reason: \"Cross-browser E2E testing\" },\n { skill: \"posthog-analytics\", reason: \"Product analytics and feature flags\" },\n { skill: \"prisma\", reason: \"Mature database ORM with great DX\" },\n ],\n requires: [\n {\n skill: \"nextjs\",\n needs: [\"react\"],\n reason: \"Next.js is built on React\",\n },\n {\n skill: \"remix\",\n needs: [\"react\"],\n reason: \"Remix is built on React\",\n },\n {\n skill: \"nuxt\",\n needs: [\"vue-composition-api\"],\n reason: \"Nuxt is built on Vue\",\n },\n {\n skill: \"sveltekit\",\n needs: [\"svelte\"],\n reason: \"SvelteKit is built on Svelte\",\n },\n {\n skill: \"zustand\",\n needs: [\"react\", \"nextjs\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"Our Zustand skill covers React/React Native patterns\",\n },\n {\n skill: \"redux-toolkit\",\n needs: [\"react\", \"nextjs\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"Our Redux Toolkit skill covers React/React Native patterns\",\n },\n {\n skill: \"mobx\",\n needs: [\"react\", \"nextjs\", \"remix\"],\n needsAny: true,\n reason: \"Our MobX skill teaches React patterns\",\n },\n {\n skill: \"react-query\",\n needs: [\"react\", \"nextjs\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"TanStack Query's React adapter\",\n },\n {\n skill: \"swr\",\n needs: [\"react\", \"nextjs\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"SWR is a React Hooks library\",\n },\n {\n skill: \"react-hook-form\",\n needs: [\"react\", \"nextjs\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"React Hook Form is React only\",\n },\n {\n skill: \"react-testing-library\",\n needs: [\"react\", \"nextjs\", \"remix\"],\n needsAny: true,\n reason: \"React Testing Library is React only\",\n },\n {\n skill: \"pinia\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"Pinia is Vue only\",\n },\n {\n skill: \"vee-validate\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"VeeValidate is Vue only\",\n },\n {\n skill: \"vue-test-utils\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"Vue Test Utils is Vue only\",\n },\n {\n skill: \"ngrx-signalstore\",\n needs: [\"angular-standalone\"],\n reason: \"NgRx SignalStore is Angular only\",\n },\n {\n skill: \"better-auth-drizzle-hono\",\n needs: [\"drizzle\", \"prisma\"],\n needsAny: true,\n reason: \"Better Auth requires a database adapter\",\n },\n {\n skill: \"shadcn-ui\",\n needs: [\"react\", \"nextjs\", \"remix\"],\n needsAny: true,\n reason: \"shadcn/ui requires a React-based framework\",\n },\n {\n skill: \"shadcn-ui\",\n needs: [\"tailwind\"],\n reason: \"shadcn/ui requires Tailwind CSS\",\n },\n {\n skill: \"graphql-apollo\",\n needs: [\"react\", \"vue-composition-api\", \"angular-standalone\", \"nextjs\", \"remix\", \"nuxt\"],\n needsAny: true,\n reason: \"Apollo Client requires a UI framework\",\n },\n {\n skill: \"graphql-urql\",\n needs: [\"react\", \"vue-composition-api\", \"solidjs\", \"nextjs\", \"remix\", \"nuxt\"],\n needsAny: true,\n reason: \"URQL supports React, Vue, and Solid\",\n },\n ],\n alternatives: [\n {\n purpose: \"Base Framework\",\n skills: [\"react\", \"vue-composition-api\", \"angular-standalone\", \"solidjs\", \"svelte\"],\n },\n {\n purpose: \"Meta-Framework\",\n skills: [\"nextjs\", \"remix\", \"nuxt\", \"sveltekit\", \"astro\"],\n },\n {\n purpose: \"Styling\",\n skills: [\"scss-modules\", \"tailwind\", \"cva\"],\n },\n {\n purpose: \"Client State (React)\",\n skills: [\"zustand\", \"redux-toolkit\", \"mobx\", \"jotai\"],\n },\n { purpose: \"Client State (Vue)\", skills: [\"pinia\"] },\n { purpose: \"Client State (Angular)\", skills: [\"ngrx-signalstore\"] },\n {\n purpose: \"Server State / Data Fetching\",\n skills: [\"react-query\", \"swr\"],\n },\n {\n purpose: \"GraphQL Client\",\n skills: [\"graphql-apollo\", \"graphql-urql\"],\n },\n {\n purpose: \"API Framework\",\n skills: [\"hono\", \"express\", \"fastify\"],\n },\n { purpose: \"Database ORM / ODM\", skills: [\"drizzle\", \"prisma\", \"mongodb\"] },\n { purpose: \"Forms (React)\", skills: [\"react-hook-form\"] },\n { purpose: \"Forms (Vue)\", skills: [\"vee-validate\"] },\n { purpose: \"Validation\", skills: [\"zod-validation\"] },\n { purpose: \"Unit Testing\", skills: [\"vitest\"] },\n { purpose: \"Component Testing (React)\", skills: [\"react-testing-library\"] },\n { purpose: \"Component Testing (Vue)\", skills: [\"vue-test-utils\"] },\n {\n purpose: \"E2E Testing\",\n skills: [\"playwright-e2e\", \"cypress-e2e\"],\n },\n { purpose: \"API Mocking\", skills: [\"msw\"] },\n { purpose: \"UI Components (React + Tailwind)\", skills: [\"shadcn-ui\"] },\n { purpose: \"Mobile\", skills: [\"react-native\"] },\n {\n purpose: \"CLI Framework\",\n skills: [\"cli-commander\", \"oclif-ink\"],\n },\n { purpose: \"AI SDK\", skills: [\"vercel-ai-sdk\"] },\n { purpose: \"Backend as a Service\", skills: [\"supabase\"] },\n { purpose: \"Auth\", skills: [\"better-auth-drizzle-hono\", \"nextauth\", \"clerk\"] },\n ],\n },\n};\n","import type { SkillAssignment, Stack } from \"../../types\";\n\n/**\n * Built-in stack definitions, equivalent to config/stacks.ts.\n * Source repos may override or extend these via their own stacks files.\n *\n * All values are already in normalized form (SkillAssignment[] with { id, preloaded }).\n */\n\nconst SHARED_TOOLING: SkillAssignment[] = [\n { id: \"shared-tooling-eslint-prettier\", preloaded: false },\n { id: \"shared-tooling-typescript-config\", preloaded: false },\n { id: \"shared-tooling-git-hooks\", preloaded: false },\n];\n\nexport const defaultStacks: Stack[] = [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Fullstack\",\n description: \"Next.js + Hono full-stack\",\n philosophy: \"Ship fast, iterate faster\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: true }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"cli-developer\": {\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: true }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"cli-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-cli-reviewing\", preloaded: true }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"shared-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"cli-tester\": {},\n },\n },\n {\n id: \"angular-stack\",\n name: \"Modern Angular Stack\",\n description: \"Angular + Signals stack\",\n philosophy: \"Enterprise-grade and type-safe\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: true }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"nuxt-stack\",\n name: \"Nuxt Full-Stack\",\n description: \"Vue + Nuxt full-stack\",\n philosophy: \"Progressive Vue with Nuxt power\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: true }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nuxt\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"remix-stack\",\n name: \"Remix Full-Stack\",\n description: \"Remix + form-centric DX\",\n philosophy: \"Web standards and excellent forms handling\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-remix\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"vue-stack\",\n name: \"Modern Vue Stack\",\n description: \"Vue + Pinia + Tailwind\",\n philosophy: \"Progressive and approachable\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: true }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"solidjs-stack\",\n name: \"SolidJS Stack\",\n description: \"SolidJS + Hono full-stack\",\n philosophy: \"Maximum performance with minimal overhead\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"t3-stack\",\n name: \"T3 Stack\",\n description: \"Next.js + tRPC + Prisma + Tailwind\",\n philosophy: \"End-to-end type safety with great DX\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: true }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-nextjs\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-tailwind\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-data-fetching-trpc\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-prisma\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-nextauth\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"sveltekit-stack\",\n name: \"SvelteKit Full-Stack\",\n description: \"Svelte 5 + SvelteKit\",\n philosophy: \"Write less, do more with compiler magic\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-svelte\", preloaded: false }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-sveltekit\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n {\n id: \"astro-stack\",\n name: \"Astro Content Stack\",\n description: \"Astro content-first with islands\",\n philosophy: \"Ship less JavaScript, faster by default\",\n agents: {\n \"web-developer\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n \"web-tooling\": [{ id: \"web-tooling-vite\", preloaded: false }],\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-tooling\": SHARED_TOOLING,\n },\n \"web-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-reviewer\": {\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pm\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-researcher\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"pattern-scout\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n },\n \"web-pattern-critique\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: true }],\n },\n \"agent-summoner\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"skill-summoner\": {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n documentor: {\n \"web-meta-framework\": [{ id: \"web-meta-framework-astro\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-meta\": [{ id: \"shared-meta-reviewing\", preloaded: false }],\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/components/wizard/step-build.tsx","../src/cli/components/hooks/use-framework-filtering.ts","../src/cli/lib/wizard/index.ts","../src/cli/lib/wizard/build-step-logic.ts"],"sourcesContent":["import { Box, Text, useInput } from \"ink\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { Domain, SkillId, Category, CategorySelections } from \"../../types/index.js\";\nimport { useFrameworkFiltering } from \"../hooks/use-framework-filtering.js\";\nimport { useMeasuredHeight } from \"../hooks/use-measured-height.js\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport { CategoryGrid } from \"./category-grid.js\";\nimport { getDomainDisplayName, orderDomains } from \"./utils.js\";\nimport { ViewTitle } from \"./view-title.js\";\n\nexport type StepBuildProps = {\n domain: Domain;\n selectedDomains: Domain[];\n selections: CategorySelections;\n allSelections: SkillId[];\n showLabels: boolean;\n /** Skill IDs already installed on disk, shown with a dimmed checkmark */\n installedSkillIds?: SkillId[];\n onToggle: (categoryId: Category, technologyId: SkillId) => void;\n onToggleLabels: () => void;\n onContinue: () => void;\n onBack: () => void;\n};\n\nexport const StepBuild: React.FC<StepBuildProps> = ({\n domain: activeDomain,\n selectedDomains,\n selections,\n allSelections,\n showLabels,\n installedSkillIds,\n onToggle,\n onToggleLabels,\n onContinue,\n onBack,\n}) => {\n const { ref: gridRef, measuredHeight: gridHeight } = useMeasuredHeight();\n const skillConfigs = useWizardStore((s) => s.skillConfigs);\n\n const handleFocusedSkillChange = useCallback(\n (id: SkillId | null) => useWizardStore.getState().setFocusedSkillId(id),\n [],\n );\n\n const orderedDomains = useMemo(() => orderDomains(selectedDomains), [selectedDomains]);\n\n const categories = useFrameworkFiltering({\n domain: activeDomain,\n allSelections,\n selections,\n installedSkillIds,\n skillConfigs,\n });\n\n useInput((_input, key) => {\n if (key.return) {\n onContinue();\n } else if (key.escape) {\n onBack();\n }\n });\n\n return (\n <Box flexDirection=\"column\" width=\"100%\" flexGrow={1} flexBasis={0}>\n <Box\n columnGap={2}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n marginBottom={1}\n paddingRight={1}\n marginTop={-1}\n borderTop={false}\n borderRight={false}\n borderLeft={false}\n borderColor={CLI_COLORS.NEUTRAL}\n borderStyle=\"single\"\n >\n <Box columnGap={2} flexDirection=\"row\">\n {orderedDomains.map((domain) => {\n const isActive = domain === activeDomain;\n return (\n <Text key={domain} color={isActive ? CLI_COLORS.WARNING : undefined} bold={isActive}>\n {getDomainDisplayName(domain)}\n </Text>\n );\n })}\n </Box>\n </Box>\n <ViewTitle>{`Customize your ${getDomainDisplayName(activeDomain)} stack`}</ViewTitle>\n\n <Box ref={gridRef} flexGrow={1} flexBasis={0}>\n <CategoryGrid\n key={activeDomain}\n categories={categories}\n availableHeight={gridHeight}\n showLabels={showLabels}\n onToggle={onToggle}\n onToggleLabels={onToggleLabels}\n onFocusedSkillChange={handleFocusedSkillChange}\n />\n </Box>\n </Box>\n );\n};\n","import { useMemo } from \"react\";\nimport type { Domain, SkillId, CategorySelections } from \"../../types/index.js\";\nimport type { SkillConfig } from \"../../types/config.js\";\nimport { buildCategoriesForDomain } from \"../../lib/wizard/index.js\";\nimport type { CategoryRow } from \"../wizard/category-grid.js\";\n\ntype UseFrameworkFilteringOptions = {\n domain: Domain;\n allSelections: SkillId[];\n selections: CategorySelections;\n installedSkillIds?: SkillId[];\n skillConfigs?: SkillConfig[];\n};\n\nexport function useFrameworkFiltering({\n domain,\n allSelections,\n selections,\n installedSkillIds,\n skillConfigs,\n}: UseFrameworkFilteringOptions): CategoryRow[] {\n return useMemo(\n () =>\n buildCategoriesForDomain(domain, allSelections, selections, installedSkillIds, skillConfigs),\n [domain, allSelections, selections, installedSkillIds, skillConfigs],\n );\n}\n","export {\n type BuildStepValidation,\n validateBuildStep,\n buildCategoriesForDomain,\n} from \"./build-step-logic\";\n","import { sortBy } from \"remeda\";\nimport type { CategoryDefinition, Domain, SkillId, CategorySelections } from \"../../types/index.js\";\nimport type { SkillConfig } from \"../../types/config.js\";\nimport { getAvailableSkills, resolveAlias, getDependentSkills } from \"../matrix/index.js\";\nimport { matrix, getSkillById } from \"../matrix/matrix-provider.js\";\nimport type { CategoryRow, CategoryOption } from \"../../components/wizard/category-grid.js\";\n\nconst FRAMEWORK_CATEGORY_ID = \"web-framework\";\nconst WEB_DOMAIN_ID = \"web\";\n\nexport type BuildStepValidation = {\n valid: boolean;\n message?: string;\n};\n\nexport function validateBuildStep(\n categories: CategoryRow[],\n selections: CategorySelections,\n): BuildStepValidation {\n for (const category of categories) {\n if (category.required) {\n const categorySelections = selections[category.id] || [];\n if (categorySelections.length === 0) {\n return {\n valid: true,\n message: `No skills selected in ${category.displayName} (required category)`,\n };\n }\n }\n }\n return { valid: true };\n}\n\nfunction isFrameworkSelected(selections: CategorySelections): boolean {\n const frameworkSelections = selections[FRAMEWORK_CATEGORY_ID] ?? [];\n return frameworkSelections.length > 0;\n}\n\nfunction getSelectedFrameworks(selections: CategorySelections): SkillId[] {\n const frameworkSelections = selections[FRAMEWORK_CATEGORY_ID] ?? [];\n return frameworkSelections.map((alias) => resolveAlias(alias));\n}\n\nfunction isCompatibleWithSelectedFrameworks(\n skillId: SkillId,\n selectedFrameworkIds: SkillId[],\n): boolean {\n const skill = getSkillById(skillId);\n\n // No compatibleWith = compatible with all (allows legacy skills to appear)\n if (skill.compatibleWith.length === 0) {\n return true;\n }\n\n return selectedFrameworkIds.some((frameworkId) => skill.compatibleWith.includes(frameworkId));\n}\n\n// Build CategoryRow[] from matrix for a domain, with framework-first filtering for web\nexport function buildCategoriesForDomain(\n domain: Domain,\n allSelections: SkillId[],\n selections: CategorySelections,\n installedSkillIds?: SkillId[],\n skillConfigs?: SkillConfig[],\n): CategoryRow[] {\n const frameworkSource = selections;\n const frameworkSelected = isFrameworkSelected(frameworkSource);\n const selectedFrameworkIds = frameworkSelected ? getSelectedFrameworks(frameworkSource) : [];\n\n // Object.values() on a Partial record only yields values that exist — all are CategoryDefinition\n const categories = sortBy(\n (Object.values(matrix.categories) as CategoryDefinition[]).filter(\n (cat) => cat.domain === domain,\n ),\n (cat) => cat.order ?? 0,\n );\n\n const categoryRows: CategoryRow[] = categories.map((cat) => {\n const skillOptions = getAvailableSkills(cat.id, allSelections);\n\n const useFrameworkFilter =\n domain === WEB_DOMAIN_ID && cat.id !== FRAMEWORK_CATEGORY_ID && frameworkSelected;\n const filteredSkillOptions = useFrameworkFilter\n ? skillOptions.filter((skill) =>\n isCompatibleWithSelectedFrameworks(skill.id, selectedFrameworkIds),\n )\n : skillOptions;\n\n const options: CategoryOption[] = filteredSkillOptions.map((skill) => {\n // Check if any currently selected skill depends on this one\n const dependents = skill.selected ? getDependentSkills(skill.id, allSelections) : [];\n const firstDependent =\n dependents.length > 0 ? getSkillById(dependents[0]).displayName : undefined;\n\n return {\n id: skill.id,\n state: skill.advisoryState,\n selected: skill.selected,\n local: getSkillById(skill.id).local,\n installed: installedSkillIds?.includes(skill.id) || false,\n scope: skillConfigs?.find((sc) => sc.id === skill.id)?.scope,\n hasUnmetRequirements: skill.hasUnmetRequirements,\n unmetRequirementsReason: skill.unmetRequirementsReason,\n requiredBy: skill.selected ? firstDependent : undefined,\n };\n });\n\n return {\n id: cat.id,\n displayName: cat.displayName,\n required: cat.required ?? false,\n exclusive: cat.exclusive ?? true,\n options,\n };\n });\n\n return categoryRows.filter((row) => row.options.length > 0);\n}\n"],"mappings":"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","names":["useMemo","useMemo"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/components/wizard/wizard-layout.tsx","../src/cli/components/hooks/use-terminal-dimensions.ts"],"sourcesContent":["import { Box, Static, Text } from \"ink\";\nimport React, { Fragment } from \"react\";\nimport { CLI_COLORS } from \"../../consts.js\";\nimport type { StartupMessage } from \"../../utils/logger.js\";\nimport { FEATURE_FLAGS } from \"../../lib/feature-flags.js\";\nimport { useWizardStore } from \"../../stores/wizard-store.js\";\nimport { useTerminalDimensions } from \"../hooks/use-terminal-dimensions.js\";\nimport { HelpModal } from \"./help-modal.js\";\nimport {\n HOTKEY_HELP,\n HOTKEY_SCOPE,\n HOTKEY_SET_ALL_LOCAL,\n HOTKEY_SET_ALL_PLUGIN,\n HOTKEY_SETTINGS,\n HOTKEY_TOGGLE_LABELS,\n KEY_LABEL_ENTER,\n KEY_LABEL_ESC,\n KEY_LABEL_SPACE,\n} from \"./hotkeys.js\";\nimport { WIZARD_STEPS, WizardTabs } from \"./wizard-tabs.js\";\n\ntype KeyHintProps = {\n isVisible?: boolean;\n isActive?: boolean;\n label: string;\n values: string[];\n};\n\nconst DefinitionItem: React.FC<KeyHintProps> = ({\n isVisible = true,\n isActive = false,\n label,\n values,\n}) => {\n if (!isVisible) {\n return null;\n }\n\n return (\n <Text>\n {values.map((value) => (\n <Fragment key={value}>\n <Text\n backgroundColor=\"black\"\n color={isActive ? CLI_COLORS.PRIMARY : CLI_COLORS.UNFOCUSED}\n >\n {\" \"}\n {value}{\" \"}\n </Text>{\" \"}\n </Fragment>\n ))}\n <Text color={isActive ? CLI_COLORS.PRIMARY : undefined}>{label}</Text>\n </Text>\n );\n};\n\nconst HOT_KEYS: { label: string; values: string[] }[] = [\n { label: \"select\", values: [KEY_LABEL_SPACE] },\n { label: \"continue\", values: [KEY_LABEL_ENTER] },\n { label: \"back\", values: [KEY_LABEL_ESC] },\n];\n\nconst WizardFooter = () => {\n return (\n <Box\n columnGap={2}\n borderTop\n borderRight={false}\n borderBottom\n borderLeft={false}\n borderColor=\"blackBright\"\n borderStyle=\"single\"\n paddingLeft={1}\n paddingRight={1}\n >\n {HOT_KEYS.map((hotkey) => (\n <DefinitionItem {...hotkey} key={hotkey.label} />\n ))}\n </Box>\n );\n};\n\ntype WizardLayoutProps = {\n version?: string;\n logo?: string;\n startupMessages?: StartupMessage[];\n children: React.ReactNode;\n};\n\nexport const WizardLayout: React.FC<WizardLayoutProps> = ({\n version,\n logo,\n startupMessages,\n children,\n}) => {\n const store = useWizardStore();\n const { completedSteps, skippedSteps } = store.getStepProgress();\n const { rows: terminalHeight } = useTerminalDimensions();\n\n return (\n <>\n {startupMessages && startupMessages.length > 0 && (\n <Static items={startupMessages}>\n {(msg, index) => (\n <Box key={index}>\n <Text\n color={msg.level === \"warn\" ? \"yellow\" : msg.level === \"error\" ? \"red\" : undefined}\n >\n {msg.level === \"warn\" ? ` Warning: ${msg.text}` : msg.text}\n </Text>\n </Box>\n )}\n </Static>\n )}\n <Box flexDirection=\"column\" paddingX={1} height={terminalHeight}>\n {logo && store.step === \"stack\" && (\n <Box flexDirection=\"row\" marginTop={1} columnGap={1}>\n <Text>{logo}</Text>\n </Box>\n )}\n <WizardTabs\n steps={WIZARD_STEPS}\n currentStep={store.step}\n completedSteps={completedSteps}\n skippedSteps={skippedSteps}\n version={version}\n />\n {store.showHelp ? (\n <HelpModal currentStep={store.step} />\n ) : (\n <>\n <Box flexDirection=\"column\" flexGrow={1} flexBasis={0} marginTop={1}>\n {children}\n </Box>\n <Box paddingX={1} columnGap={2} marginTop={2}>\n <DefinitionItem\n label=\"Labels\"\n values={[HOTKEY_TOGGLE_LABELS.label]}\n isVisible={store.step === \"build\"}\n />\n <DefinitionItem\n label=\"Scope\"\n values={[HOTKEY_SCOPE.label]}\n isVisible={store.step === \"build\" || store.step === \"agents\"}\n />\n <DefinitionItem\n label=\"Set all local\"\n values={[HOTKEY_SET_ALL_LOCAL.label]}\n isVisible={store.step === \"sources\"}\n />\n <DefinitionItem\n label=\"Set all plugin\"\n values={[HOTKEY_SET_ALL_PLUGIN.label]}\n isVisible={store.step === \"sources\"}\n />\n <DefinitionItem\n label=\"Settings\"\n values={[HOTKEY_SETTINGS.label]}\n isVisible={store.step === \"sources\" && FEATURE_FLAGS.SOURCE_SEARCH}\n isActive={store.showSettings}\n />\n <DefinitionItem label=\"Help\" values={[HOTKEY_HELP.label]} />\n </Box>\n <WizardFooter />\n </>\n )}\n </Box>\n </>\n );\n};\n","import { useState, useEffect } from \"react\";\nimport { useStdout } from \"ink\";\n\nconst DEFAULT_COLUMNS = 80;\nconst DEFAULT_ROWS = 24;\n\nexport type TerminalDimensions = {\n /** Terminal width in columns */\n columns: number;\n /** Terminal height in rows */\n rows: number;\n};\n\n/**\n * Tracks terminal dimensions reactively. Re-renders on resize.\n *\n * Falls back to DEFAULT_COLUMNS x DEFAULT_ROWS when stdout is not a TTY\n * (e.g., piped output, CI environments, tests).\n */\nexport function useTerminalDimensions(): TerminalDimensions {\n const { stdout } = useStdout();\n\n const [dimensions, setDimensions] = useState<TerminalDimensions>(() => ({\n columns: stdout.columns || DEFAULT_COLUMNS,\n rows: stdout.rows || DEFAULT_ROWS,\n }));\n\n useEffect(() => {\n const handleResize = () => {\n setDimensions({\n columns: stdout.columns || DEFAULT_COLUMNS,\n rows: stdout.rows || DEFAULT_ROWS,\n });\n };\n\n stdout.on(\"resize\", handleResize);\n return () => {\n stdout.off(\"resize\", handleResize);\n };\n }, [stdout]);\n\n return dimensions;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,KAAK,QAAQ,YAAY;AAClC,SAAgB,gBAAgB;;;ACDhC;AAAA,SAAS,UAAU,iBAAiB;AACpC,SAAS,iBAAiB;AAE1B,IAAM,kBAAkB;AACxB,IAAM,eAAe;AAed,SAAS,wBAA4C;AAC1D,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,YAAY,aAAa,IAAI,SAA6B,OAAO;AAAA,IACtE,SAAS,OAAO,WAAW;AAAA,IAC3B,MAAM,OAAO,QAAQ;AAAA,EACvB,EAAE;AAEF,YAAU,MAAM;AACd,UAAM,eAAe,MAAM;AACzB,oBAAc;AAAA,QACZ,SAAS,OAAO,WAAW;AAAA,QAC3B,MAAM,OAAO,QAAQ;AAAA,MACvB,CAAC;AAAA,IACH;AAEA,WAAO,GAAG,UAAU,YAAY;AAChC,WAAO,MAAM;AACX,aAAO,IAAI,UAAU,YAAY;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO;AACT;;;ADAU,SAwFA,YAAAA,WA/EJ,KATI;AAkCF;AAhDR,IAAM,iBAAyC,CAAC;AAAA,EAC9C,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SACE,qBAAC,QACE;AAAA,WAAO,IAAI,CAAC,UACX,qBAAC,YACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,iBAAgB;AAAA,UAChB,OAAO,WAAW,WAAW,UAAU,WAAW;AAAA,UAEjD;AAAA;AAAA,YACA;AAAA,YAAO;AAAA;AAAA;AAAA,MACV;AAAA,MAAQ;AAAA,SAPK,KAQf,CACD;AAAA,IACD,oBAAC,QAAK,OAAO,WAAW,WAAW,UAAU,QAAY,iBAAM;AAAA,KACjE;AAEJ;AAEA,IAAM,WAAkD;AAAA,EACtD,EAAE,OAAO,UAAU,QAAQ,CAAC,eAAe,EAAE;AAAA,EAC7C,EAAE,OAAO,YAAY,QAAQ,CAAC,eAAe,EAAE;AAAA,EAC/C,EAAE,OAAO,QAAQ,QAAQ,CAAC,aAAa,EAAE;AAC3C;AAEA,IAAM,eAAe,MAAM;AACzB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAY;AAAA,MACZ,YAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MAEb,mBAAS,IAAI,CAAC,WACb,8BAAC,kBAAgB,GAAG,QAAQ,KAAK,OAAO,OAAO,CAChD;AAAA;AAAA,EACH;AAEJ;AASO,IAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,eAAe;AAC7B,QAAM,EAAE,gBAAgB,aAAa,IAAI,MAAM,gBAAgB;AAC/D,QAAM,EAAE,MAAM,eAAe,IAAI,sBAAsB;AAEvD,SACE,qBAAAA,WAAA,EACG;AAAA,uBAAmB,gBAAgB,SAAS,KAC3C,oBAAC,UAAO,OAAO,iBACZ,WAAC,KAAK,UACL,oBAAC,OACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,IAAI,UAAU,SAAS,WAAW,IAAI,UAAU,UAAU,QAAQ;AAAA,QAExE,cAAI,UAAU,SAAS,cAAc,IAAI,IAAI,KAAK,IAAI;AAAA;AAAA,IACzD,KALQ,KAMV,GAEJ;AAAA,IAEF,qBAAC,OAAI,eAAc,UAAS,UAAU,GAAG,QAAQ,gBAC9C;AAAA,cAAQ,MAAM,SAAS,WACtB,oBAAC,OAAI,eAAc,OAAM,WAAW,GAAG,WAAW,GAChD,8BAAC,QAAM,gBAAK,GACd;AAAA,MAEF;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP,aAAa,MAAM;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MACC,MAAM,WACL,oBAAC,aAAU,aAAa,MAAM,MAAM,IAEpC,qBAAAA,WAAA,EACE;AAAA,4BAAC,OAAI,eAAc,UAAS,UAAU,GAAG,WAAW,GAAG,WAAW,GAC/D,UACH;AAAA,QACA,qBAAC,OAAI,UAAU,GAAG,WAAW,GAAG,WAAW,GACzC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,qBAAqB,KAAK;AAAA,cACnC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,aAAa,KAAK;AAAA,cAC3B,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS;AAAA;AAAA,UACtD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,qBAAqB,KAAK;AAAA,cACnC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,sBAAsB,KAAK;AAAA,cACpC,WAAW,MAAM,SAAS;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,QAAQ,CAAC,gBAAgB,KAAK;AAAA,cAC9B,WAAW,MAAM,SAAS,aAAa,cAAc;AAAA,cACrD,UAAU,MAAM;AAAA;AAAA,UAClB;AAAA,UACA,oBAAC,kBAAe,OAAM,QAAO,QAAQ,CAAC,YAAY,KAAK,GAAG;AAAA,WAC5D;AAAA,QACA,oBAAC,gBAAa;AAAA,SAChB;AAAA,OAEJ;AAAA,KACF;AAEJ;","names":["Fragment"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/components/wizard/hotkeys.ts"],"sourcesContent":["/**\n * Centralized hotkey registry for wizard components.\n *\n * Every character-based hotkey and its display label lives here so that\n * changing a binding updates the key check, the footer hint, and the\n * help modal in one place.\n */\n\n// ---------------------------------------------------------------------------\n// Global hotkeys (active across multiple wizard steps)\n// ---------------------------------------------------------------------------\n\nexport const HOTKEY_HELP = { key: \"?\", label: \"?\" } as const;\nexport const HOTKEY_ACCEPT_DEFAULTS = { key: \"a\", label: \"A\" } as const;\nexport const HOTKEY_SCOPE = { key: \"s\", label: \"S\" } as const;\nexport const HOTKEY_SETTINGS = { key: \"s\", label: \"S\" } as const;\n\n// ---------------------------------------------------------------------------\n// Build step hotkeys\n// ---------------------------------------------------------------------------\n\nexport const HOTKEY_TOGGLE_LABELS = { key: \"d\", label: \"D\" } as const;\n\n// ---------------------------------------------------------------------------\n// Sources step hotkeys (customize view)\n// ---------------------------------------------------------------------------\n\nexport const HOTKEY_SET_ALL_LOCAL = { key: \"l\", label: \"L\" } as const;\nexport const HOTKEY_SET_ALL_PLUGIN = { key: \"p\", label: \"P\" } as const;\n\n// ---------------------------------------------------------------------------\n// Settings step hotkeys\n// ---------------------------------------------------------------------------\n\nexport const HOTKEY_ADD_SOURCE = { key: \"a\", label: \"A\" } as const;\n\n// ---------------------------------------------------------------------------\n// Skill search hotkey\n// ---------------------------------------------------------------------------\n\nexport const HOTKEY_COPY_LINK = { key: \"c\", label: \"C\" } as const;\n\n// ---------------------------------------------------------------------------\n// Common key labels (for structural keys handled via Ink key objects)\n// ---------------------------------------------------------------------------\n\nexport const KEY_LABEL_ENTER = \"ENTER\" as const;\nexport const KEY_LABEL_ESC = \"ESC\" as const;\nexport const KEY_LABEL_SPACE = \"SPACE\" as const;\nexport const KEY_LABEL_TAB = \"TAB\" as const;\nexport const KEY_LABEL_DEL = \"DEL\" as const;\nexport const KEY_LABEL_ARROWS = \"\\u2190/\\u2192\" as const;\nexport const KEY_LABEL_ARROWS_VERT = \"\\u2191/\\u2193\" as const;\nexport const KEY_LABEL_VIM = \"h/j/k/l\" as const;\nexport const KEY_LABEL_VIM_VERT = \"j/k\" as const;\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n/** Case-insensitive check for a character hotkey. */\nexport function isHotkey(input: string, hotkey: { key: string }): boolean {\n return input.toLowerCase() === hotkey.key.toLowerCase();\n}\n"],"mappings":";;;;;;AAAA;AAYO,IAAM,cAAc,EAAE,KAAK,KAAK,OAAO,IAAI;AAC3C,IAAM,yBAAyB,EAAE,KAAK,KAAK,OAAO,IAAI;AACtD,IAAM,eAAe,EAAE,KAAK,KAAK,OAAO,IAAI;AAC5C,IAAM,kBAAkB,EAAE,KAAK,KAAK,OAAO,IAAI;AAM/C,IAAM,uBAAuB,EAAE,KAAK,KAAK,OAAO,IAAI;AAMpD,IAAM,uBAAuB,EAAE,KAAK,KAAK,OAAO,IAAI;AACpD,IAAM,wBAAwB,EAAE,KAAK,KAAK,OAAO,IAAI;AAMrD,IAAM,oBAAoB,EAAE,KAAK,KAAK,OAAO,IAAI;AAMjD,IAAM,mBAAmB,EAAE,KAAK,KAAK,OAAO,IAAI;AAMhD,IAAM,kBAAkB;AACxB,IAAM,gBAAgB;AACtB,IAAM,kBAAkB;AACxB,IAAM,gBAAgB;AACtB,IAAM,gBAAgB;AAEtB,IAAM,wBAAwB;AAC9B,IAAM,gBAAgB;AACtB,IAAM,qBAAqB;AAO3B,SAAS,SAAS,OAAe,QAAkC;AACxE,SAAO,MAAM,YAAY,MAAM,OAAO,IAAI,YAAY;AACxD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/commands/init.tsx","../src/cli/lib/permission-checker.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags } from \"@oclif/core\";\nimport { render, Box, Text, useApp } from \"ink\";\nimport fs from \"fs\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { Wizard, type WizardResultV2 } from \"../components/wizard/wizard.js\";\nimport {\n loadSkillsMatrixFromSource,\n fetchMarketplace,\n type SourceLoadResult,\n} from \"../lib/loading/index.js\";\nimport {\n installLocal,\n installPluginConfig,\n detectProjectInstallation,\n deriveInstallMode,\n} from \"../lib/installation/index.js\";\nimport { checkPermissions } from \"../lib/permission-checker.js\";\nimport { getInstallationInfo } from \"../lib/plugins/plugin-info.js\";\nimport {\n claudePluginInstall,\n claudePluginMarketplaceExists,\n claudePluginMarketplaceAdd,\n} from \"../utils/exec.js\";\nimport {\n ASCII_LOGO,\n CLAUDE_SRC_DIR,\n CLI_BIN_NAME,\n DEFAULT_BRANDING,\n GLOBAL_INSTALL_ROOT,\n} from \"../consts.js\";\nimport { SelectList, type SelectListItem } from \"../components/common/select-list.js\";\nimport {\n KEY_LABEL_ARROWS_VERT,\n KEY_LABEL_ENTER,\n KEY_LABEL_ESC,\n} from \"../components/wizard/hotkeys.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport { getSkillById } from \"../lib/matrix/matrix-provider\";\nimport { loadProjectConfig } from \"../lib/configuration/project-config.js\";\nimport {\n enableBuffering,\n drainBuffer,\n disableBuffering,\n type StartupMessage,\n} from \"../utils/logger.js\";\nimport { SUCCESS_MESSAGES, STATUS_MESSAGES } from \"../utils/messages.js\";\nimport { ensureBlankGlobalConfig } from \"../lib/configuration/config-writer.js\";\n\n/** Clears the visible terminal area so the next render starts clean. */\nfunction clearTerminalOutput(): void {\n process.stdout.write(\"\\x1b[2J\\x1b[H\");\n}\n\nconst DASHBOARD_OPTIONS: SelectListItem<string>[] = [\n { label: \"Edit\", value: \"edit\" },\n { label: \"Compile\", value: \"compile\" },\n { label: \"Doctor\", value: \"doctor\" },\n { label: \"List\", value: \"list\" },\n];\n\ntype DashboardProps = {\n onSelect: (command: string) => void;\n onCancel: () => void;\n};\n\nconst Dashboard: React.FC<DashboardProps> = ({ onSelect, onCancel }) => {\n const { exit } = useApp();\n\n return (\n <Box flexDirection=\"column\">\n <Text bold>{DEFAULT_BRANDING.NAME}</Text>\n <Text> </Text>\n <SelectList\n items={DASHBOARD_OPTIONS}\n onSelect={(command) => {\n onSelect(command);\n exit();\n }}\n onCancel={() => {\n onCancel();\n exit();\n }}\n />\n <Text> </Text>\n <Text dimColor>\n {\" \"}\n {KEY_LABEL_ARROWS_VERT} Navigate {\" \"}\n {KEY_LABEL_ENTER} Confirm {\" \"}\n {KEY_LABEL_ESC} Exit\n </Text>\n </Box>\n );\n};\n\nexport type DashboardData = {\n skillCount: number;\n agentCount: number;\n mode: string;\n source?: string;\n};\n\n/** Gathers dashboard data from the installation and project config. */\nexport async function getDashboardData(projectDir: string): Promise<DashboardData> {\n const [info, loaded] = await Promise.all([getInstallationInfo(), loadProjectConfig(projectDir)]);\n\n // Skill count from config (canonical source of truth for installed skills)\n const skillCount = loaded?.config?.skills?.length ?? 0;\n // Agent count from filesystem (compiled .md files in agents dir)\n const agentCount = info?.agentCount ?? 0;\n const mode =\n info?.mode ?? (loaded?.config?.skills ? deriveInstallMode(loaded.config.skills) : \"local\");\n const source = loaded?.config?.source;\n\n return { skillCount, agentCount, mode, source };\n}\n\n/** Formats the dashboard summary as plain text lines (for non-interactive/test output). */\nexport function formatDashboardText(data: DashboardData): string {\n const modeLabel = data.mode === \"plugin\" ? \"Plugin\" : \"Local\";\n const lines = [\n DEFAULT_BRANDING.NAME,\n \"\",\n ` Skills: ${data.skillCount} installed`,\n ` Agents: ${data.agentCount} compiled`,\n ` Mode: ${modeLabel}`,\n ];\n if (data.source) {\n lines.push(` Source: ${data.source}`);\n }\n lines.push(\"\");\n lines.push(` [Edit] [Compile] [Doctor] [List]`);\n return lines.join(\"\\n\");\n}\n\n/**\n * Shows the project dashboard and returns the selected command (or null if cancelled).\n * In non-interactive environments (no TTY), prints the summary text and returns null.\n */\nexport async function showDashboard(\n projectDir: string,\n log?: (message: string) => void,\n): Promise<string | null> {\n const data = await getDashboardData(projectDir);\n\n // Non-interactive: print text summary and exit (CI, piped, tests)\n if (!process.stdin.isTTY) {\n const output = log ?? console.log;\n output(formatDashboardText(data));\n return null;\n }\n\n let selectedCommand: string | null = null;\n\n const { waitUntilExit } = render(\n <Dashboard\n onSelect={(command) => {\n selectedCommand = command;\n }}\n onCancel={() => {\n selectedCommand = null;\n }}\n />,\n );\n\n await waitUntilExit();\n clearTerminalOutput();\n\n return selectedCommand;\n}\n\nexport default class Init extends BaseCommand {\n static summary = `Initialize ${DEFAULT_BRANDING.NAME} in this project`;\n static description =\n \"Interactive wizard to set up skills and agents. Supports Plugin Mode (native install) and Local Mode (copy to .claude/).\";\n\n static examples = [\n {\n description: \"Start the setup wizard\",\n command: \"<%= config.bin %> <%= command.id %>\",\n },\n {\n description: \"Initialize from a custom marketplace\",\n command: \"<%= config.bin %> <%= command.id %> --source github:org/marketplace\",\n },\n {\n description: \"Force refresh skills from remote\",\n command: \"<%= config.bin %> <%= command.id %> --refresh\",\n },\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n refresh: Flags.boolean({\n description: \"Force refresh from remote source\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Init);\n const projectDir = process.cwd();\n\n // For \"already initialized\" check, only look at the target directory (no global fallback)\n const existingInstallation = await detectProjectInstallation(projectDir);\n\n if (existingInstallation) {\n const selectedCommand = await showDashboard(projectDir, (msg) => this.log(msg));\n if (selectedCommand) {\n await this.config.runCommand(selectedCommand);\n }\n return;\n }\n\n // Auto-create blank global config on first init from a project directory.\n // This ensures the project config can always import from global.\n // Resolve both paths through realpathSync — on macOS /var is a symlink to\n // /private/var, so os.homedir() and process.cwd() can return different\n // prefixes for the same directory.\n const isGlobalRoot = fs.realpathSync(projectDir) === fs.realpathSync(GLOBAL_INSTALL_ROOT);\n if (!isGlobalRoot) {\n const created = await ensureBlankGlobalConfig();\n if (created) {\n this.log(\"Created blank global config at ~/\" + CLAUDE_SRC_DIR);\n }\n }\n\n enableBuffering();\n\n let sourceResult: SourceLoadResult;\n let startupMessages: StartupMessage[] = [];\n try {\n sourceResult = await loadSkillsMatrixFromSource({\n sourceFlag: flags.source,\n projectDir,\n forceRefresh: flags.refresh,\n });\n } catch (error) {\n disableBuffering();\n this.error(getErrorMessage(error), {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n startupMessages = drainBuffer();\n disableBuffering();\n\n let wizardResult: WizardResultV2 | null = null;\n\n const { waitUntilExit } = render(\n <Wizard\n version={this.config.version}\n logo={ASCII_LOGO}\n projectDir={projectDir}\n startupMessages={startupMessages}\n onComplete={(result) => {\n wizardResult = result;\n }}\n onCancel={() => {\n this.log(\"Setup cancelled\");\n }}\n />,\n );\n\n await waitUntilExit();\n\n // TypeScript can't track that onComplete callback mutates wizardResult before waitUntilExit resolves\n const result = wizardResult as WizardResultV2 | null;\n\n if (!result || result.cancelled) {\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n if (result.skills.length === 0) {\n this.error(\"No skills selected\", { exit: EXIT_CODES.ERROR });\n }\n\n await this.handleInstallation(result, sourceResult, flags);\n }\n\n private async handleInstallation(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string; refresh: boolean },\n ): Promise<void> {\n const projectDir = process.cwd();\n const installMode = deriveInstallMode(result.skills);\n\n this.log(\"\\n\");\n this.log(`Selected ${result.skills.length} skills`);\n this.log(\n `Install mode: ${installMode === \"plugin\" ? \"Plugin (native install)\" : \"Local (copy to .claude/skills/)\"}`,\n );\n\n if (installMode === \"plugin\") {\n await this.installIndividualPlugins(result, sourceResult, flags, projectDir);\n return;\n }\n\n await this.installLocalMode(result, sourceResult, flags, projectDir);\n }\n\n private async installIndividualPlugins(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string },\n projectDir: string,\n ): Promise<void> {\n // Lazily resolve marketplace name if not already set (e.g. BUILT_IN_MATRIX skips fetch)\n if (!sourceResult.marketplace) {\n try {\n const marketplaceResult = await fetchMarketplace(sourceResult.sourceConfig.source, {});\n sourceResult.marketplace = marketplaceResult.marketplace.name;\n } catch {\n this.warn(\"Could not resolve marketplace. Falling back to Local Mode...\");\n await this.installLocalMode(result, sourceResult, flags, projectDir);\n return;\n }\n }\n\n // After lazy resolution, marketplace is guaranteed to be set (or we returned above)\n const marketplace = sourceResult.marketplace;\n\n const marketplaceExists = await claudePluginMarketplaceExists(marketplace);\n\n if (!marketplaceExists) {\n this.log(`Registering marketplace \"${marketplace}\"...`);\n try {\n const marketplaceSource = sourceResult.sourceConfig.source.replace(/^github:/, \"\");\n await claudePluginMarketplaceAdd(marketplaceSource);\n this.log(`Registered marketplace: ${marketplace}`);\n } catch (error) {\n this.error(getErrorMessage(error), {\n exit: EXIT_CODES.ERROR,\n });\n }\n }\n\n this.log(\"Installing skill plugins...\");\n for (const skill of result.skills.filter((s) => s.source !== \"local\")) {\n const pluginRef = `${skill.id}@${marketplace}`;\n const pluginScope = skill.scope === \"global\" ? \"user\" : \"project\";\n try {\n await claudePluginInstall(pluginRef, pluginScope, projectDir);\n this.log(` Installed ${pluginRef}`);\n } catch (error) {\n this.error(`Failed to install plugin ${pluginRef}: ${getErrorMessage(error)}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n }\n\n const pluginSkillCount = result.skills.filter((s) => s.source !== \"local\").length;\n this.log(`Installed ${pluginSkillCount} skill plugins\\n`);\n\n this.log(\"Generating configuration...\");\n try {\n const configResult = await installPluginConfig({\n wizardResult: result,\n sourceResult,\n projectDir,\n sourceFlag: flags.source,\n });\n\n if (configResult.wasMerged) {\n this.log(`Merged with existing config at ${configResult.mergedConfigPath}`);\n }\n\n this.log(`Configuration saved (${configResult.config.agents.length} agents)\\n`);\n this.log(STATUS_MESSAGES.COMPILING_AGENTS);\n this.log(`Compiled ${configResult.compiledAgents.length} agents to .claude/agents/\\n`);\n\n this.log(`${SUCCESS_MESSAGES.INIT_SUCCESS}\\n`);\n this.log(\"Agents compiled to:\");\n this.log(` ${configResult.agentsDir}`);\n for (const agentName of configResult.compiledAgents) {\n this.log(` ${agentName}.md`);\n }\n this.log(\"\");\n this.log(\"Configuration:\");\n this.log(` ${configResult.configPath}`);\n this.log(\"\");\n this.log(\"To customize agent-skill assignments:\");\n this.log(` 1. Edit .claude-src/config.ts`);\n this.log(` 2. Run '${CLI_BIN_NAME} compile' to regenerate agents`);\n this.log(\"\");\n\n const permissionWarning = await checkPermissions(projectDir);\n if (permissionWarning) {\n const { waitUntilExit } = render(permissionWarning);\n await waitUntilExit();\n }\n } catch (error) {\n this.handleError(error);\n }\n }\n\n private async installLocalMode(\n result: WizardResultV2,\n sourceResult: SourceLoadResult,\n flags: { source?: string },\n projectDir: string,\n ): Promise<void> {\n this.log(\"Copying skills to local directory...\");\n try {\n const installResult = await installLocal({\n wizardResult: result,\n sourceResult,\n projectDir,\n sourceFlag: flags.source,\n });\n\n this.log(`Copied ${installResult.copiedSkills.length} skills to .claude/skills/\\n`);\n this.log(\"Generating configuration...\");\n\n if (installResult.wasMerged) {\n this.log(`Merged with existing config at ${installResult.mergedConfigPath}`);\n }\n\n this.log(`Configuration saved (${installResult.config.agents.length} agents)\\n`);\n this.log(STATUS_MESSAGES.COMPILING_AGENTS);\n this.log(`Compiled ${installResult.compiledAgents.length} agents to .claude/agents/\\n`);\n\n this.log(`${SUCCESS_MESSAGES.INIT_SUCCESS}\\n`);\n this.log(\"Skills copied to:\");\n this.log(` ${installResult.skillsDir}`);\n for (const copiedSkill of installResult.copiedSkills) {\n const displayName = getSkillById(copiedSkill.skillId).displayName;\n this.log(` ${displayName}/`);\n }\n this.log(\"\");\n this.log(\"Agents compiled to:\");\n this.log(` ${installResult.agentsDir}`);\n for (const agentName of installResult.compiledAgents) {\n this.log(` ${agentName}.md`);\n }\n this.log(\"\");\n this.log(\"Configuration:\");\n this.log(` ${installResult.configPath}`);\n this.log(\"\");\n this.log(\"To customize agent-skill assignments:\");\n this.log(` 1. Edit .claude-src/config.ts`);\n this.log(` 2. Run '${CLI_BIN_NAME} compile' to regenerate agents`);\n this.log(\"\");\n\n const permissionWarning = await checkPermissions(projectDir);\n if (permissionWarning) {\n const { waitUntilExit } = render(permissionWarning);\n await waitUntilExit();\n }\n } catch (error) {\n this.handleError(error);\n }\n }\n}\n","import React from \"react\";\n\nimport { Text, Box } from \"ink\";\nimport path from \"path\";\n\nimport { CLAUDE_DIR, CLI_COLORS, MAX_CONFIG_FILE_SIZE } from \"../consts\";\nimport { fileExists, readFileSafe } from \"../utils/fs\";\nimport { warn } from \"../utils/logger\";\nimport { settingsFileSchema, warnUnknownFields } from \"./schemas\";\n\ntype PermissionConfig = {\n allow?: string[];\n deny?: string[];\n};\n\ntype SettingsFile = {\n permissions?: PermissionConfig;\n};\n\nexport async function checkPermissions(projectRoot: string): Promise<React.ReactElement | null> {\n const settingsPath = path.join(projectRoot, CLAUDE_DIR, \"settings.json\");\n const localSettingsPath = path.join(projectRoot, CLAUDE_DIR, \"settings.local.json\");\n\n let permissions: PermissionConfig | undefined;\n\n for (const filePath of [localSettingsPath, settingsPath]) {\n if (await fileExists(filePath)) {\n try {\n const content = await readFileSafe(filePath, MAX_CONFIG_FILE_SIZE);\n const raw = JSON.parse(content);\n if (typeof raw === \"object\" && raw !== null && !Array.isArray(raw)) {\n // Known Claude CLI settings.json fields (permissions is ours; the rest are managed by Claude CLI)\n const EXPECTED_SETTINGS_KEYS = [\n \"permissions\",\n \"enabledPlugins\",\n \"env\",\n \"allowedTools\",\n \"customInstructions\",\n \"defaultModel\",\n ] as const;\n warnUnknownFields(\n raw as Record<string, unknown>,\n EXPECTED_SETTINGS_KEYS,\n `settings file '${filePath}'`,\n );\n }\n const result = settingsFileSchema.safeParse(raw);\n const parsed: SettingsFile = result.success ? (result.data as SettingsFile) : {};\n if (parsed.permissions) {\n permissions = parsed.permissions;\n break;\n }\n } catch {\n warn(`Malformed settings file at '${filePath}' — skipping`);\n }\n }\n }\n\n if (!permissions) {\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor={CLI_COLORS.WARNING} padding={1}>\n <Text bold color={CLI_COLORS.WARNING}>\n Permission Notice\n </Text>\n <Text>No permissions configured in .claude/settings.json</Text>\n <Text>Agents will prompt for approval on each tool use.</Text>\n <Text> </Text>\n <Text>For autonomous operation, add to .claude/settings.json:</Text>\n <Text> </Text>\n <Text color=\"dim\">{\"{\"}</Text>\n <Text color=\"dim\">{' \"permissions\": {'}</Text>\n <Text color=\"dim\">{' \"allow\": ['}</Text>\n <Text color=\"dim\">{' \"Read(*)\",'}</Text>\n <Text color=\"dim\">{' \"Bash(git *)\",'}</Text>\n <Text color=\"dim\">{' \"Bash(bun *)\"'}</Text>\n <Text color=\"dim\">{\" ]\"}</Text>\n <Text color=\"dim\">{\" }\"}</Text>\n <Text color=\"dim\">{\"}\"}</Text>\n </Box>\n );\n }\n\n const hasRestrictiveBash = permissions.deny?.some(\n (rule) => rule === \"Bash(*)\" || rule === \"Bash\",\n );\n const hasNoAllows = !permissions.allow || permissions.allow.length === 0;\n\n if (hasRestrictiveBash || hasNoAllows) {\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor={CLI_COLORS.WARNING} padding={1}>\n <Text bold color={CLI_COLORS.WARNING}>\n Permission Warnings\n </Text>\n {hasRestrictiveBash && (\n <Text>\n ⚠ Bash is denied in permissions. Some agents require Bash for git, testing, and build\n commands.\n </Text>\n )}\n {hasNoAllows && (\n <Text>⚠ No allow rules configured. Agents will prompt for each tool use.</Text>\n )}\n </Box>\n );\n }\n\n return null;\n}\n"],"mappings":"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","names":["Box","Text","jsx","jsxs","Box","Text","result"]}