@agents-inc/cli 0.88.0 → 0.91.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 (237) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{chunk-RWVF6DQE.js → chunk-2RFE7LTV.js} +3 -3
  3. package/dist/{chunk-ZFQTKY2S.js → chunk-2RXDM5HN.js} +5 -5
  4. package/dist/chunk-2RXDM5HN.js.map +1 -0
  5. package/dist/{chunk-CKZ65VFJ.js → chunk-35WALWDD.js} +5 -5
  6. package/dist/chunk-35WALWDD.js.map +1 -0
  7. package/dist/{chunk-BEZ6ZPDS.js → chunk-3O57Z6Q3.js} +3 -3
  8. package/dist/{chunk-2DRPZXXK.js → chunk-3STOCHK4.js} +4 -4
  9. package/dist/{chunk-ANXHMG32.js → chunk-47HMJ4BY.js} +28 -1
  10. package/dist/chunk-47HMJ4BY.js.map +1 -0
  11. package/dist/{chunk-LHUK5L6P.js → chunk-4DZNTUK7.js} +23 -10
  12. package/dist/chunk-4DZNTUK7.js.map +1 -0
  13. package/dist/{chunk-REZZSDXG.js → chunk-5IR4QU7G.js} +37 -24
  14. package/dist/chunk-5IR4QU7G.js.map +1 -0
  15. package/dist/{chunk-TAPEVEET.js → chunk-7K7SA4TZ.js} +2 -2
  16. package/dist/chunk-7QWCPF6F.js +135 -0
  17. package/dist/chunk-7QWCPF6F.js.map +1 -0
  18. package/dist/{chunk-WTPPVXJP.js → chunk-AWB6DO24.js} +17 -10
  19. package/dist/chunk-AWB6DO24.js.map +1 -0
  20. package/dist/{chunk-SB2R5KHJ.js → chunk-BGICSUQK.js} +2 -2
  21. package/dist/{chunk-HK53FRMU.js → chunk-DVBA6PGR.js} +3 -7
  22. package/dist/{chunk-HK53FRMU.js.map → chunk-DVBA6PGR.js.map} +1 -1
  23. package/dist/{chunk-YM3V4Q3W.js → chunk-DZ2IQERZ.js} +5 -5
  24. package/dist/{chunk-I5AZKNNL.js → chunk-FEKVKYCN.js} +2 -2
  25. package/dist/{chunk-EADZIYQW.js → chunk-FVBSRBU3.js} +30 -21
  26. package/dist/chunk-FVBSRBU3.js.map +1 -0
  27. package/dist/{chunk-6YR2NEW3.js → chunk-G3VPBEBC.js} +2 -2
  28. package/dist/{chunk-JNUFQBXX.js → chunk-HCSIS35Y.js} +2 -2
  29. package/dist/{chunk-NPMMU4GY.js → chunk-IR7ADPAZ.js} +56 -1
  30. package/dist/chunk-IR7ADPAZ.js.map +1 -0
  31. package/dist/{chunk-AP4DLJDP.js → chunk-JBS4CCJG.js} +2 -2
  32. package/dist/chunk-M6J5YQ3P.js +100 -0
  33. package/dist/chunk-M6J5YQ3P.js.map +1 -0
  34. package/dist/{chunk-23M3SPXX.js → chunk-MBEXASMU.js} +8 -8
  35. package/dist/{chunk-TEA5KBIA.js → chunk-NESVWSI7.js} +2 -2
  36. package/dist/{chunk-ZTRQO5CX.js → chunk-OOHPUT5M.js} +2 -2
  37. package/dist/{chunk-V36FRPAU.js → chunk-ORTNQZLF.js} +4 -2
  38. package/dist/{chunk-V36FRPAU.js.map → chunk-ORTNQZLF.js.map} +1 -1
  39. package/dist/{chunk-ANZV33N5.js → chunk-OVY7IV3C.js} +2 -2
  40. package/dist/{chunk-ITBSJNIC.js → chunk-Q3NIGPRZ.js} +3 -3
  41. package/dist/{chunk-5IYZGJDW.js → chunk-RDQBXB3Y.js} +6 -6
  42. package/dist/{chunk-MY4TVLRB.js → chunk-TJHCK4OS.js} +4 -4
  43. package/dist/{chunk-PZBLGD7O.js → chunk-UCORQ7YO.js} +2 -2
  44. package/dist/{chunk-NL5EB57E.js → chunk-UHARXISZ.js} +4 -4
  45. package/dist/chunk-UHARXISZ.js.map +1 -0
  46. package/dist/{chunk-57KI55GJ.js → chunk-UK572773.js} +3 -3
  47. package/dist/{chunk-DDCW4SKN.js → chunk-V75HVZTB.js} +7 -6
  48. package/dist/chunk-V75HVZTB.js.map +1 -0
  49. package/dist/{chunk-6XWHJHNZ.js → chunk-WEYWZ7UE.js} +4 -1
  50. package/dist/chunk-WEYWZ7UE.js.map +1 -0
  51. package/dist/{chunk-STMRDPGZ.js → chunk-XM2Y5AFQ.js} +2 -2
  52. package/dist/commands/build/marketplace.js +62 -44
  53. package/dist/commands/build/marketplace.js.map +1 -1
  54. package/dist/commands/build/plugins.js +46 -37
  55. package/dist/commands/build/plugins.js.map +1 -1
  56. package/dist/commands/build/stack.js +43 -35
  57. package/dist/commands/build/stack.js.map +1 -1
  58. package/dist/commands/compile.js +44 -41
  59. package/dist/commands/compile.js.map +1 -1
  60. package/dist/commands/config/index.js +8 -8
  61. package/dist/commands/config/path.js +7 -7
  62. package/dist/commands/config/show.js +8 -8
  63. package/dist/commands/diff.js +13 -12
  64. package/dist/commands/diff.js.map +1 -1
  65. package/dist/commands/doctor.js +17 -40
  66. package/dist/commands/doctor.js.map +1 -1
  67. package/dist/commands/edit.js +63 -70
  68. package/dist/commands/edit.js.map +1 -1
  69. package/dist/commands/eject.js +9 -9
  70. package/dist/commands/import/skill.js +60 -50
  71. package/dist/commands/import/skill.js.map +1 -1
  72. package/dist/commands/info.js +9 -9
  73. package/dist/commands/init.js +28 -29
  74. package/dist/commands/list.js +7 -7
  75. package/dist/commands/new/agent.js +8 -8
  76. package/dist/commands/new/marketplace.js +98 -83
  77. package/dist/commands/new/marketplace.js.map +1 -1
  78. package/dist/commands/new/skill.js +7 -7
  79. package/dist/commands/outdated.js +91 -100
  80. package/dist/commands/outdated.js.map +1 -1
  81. package/dist/commands/search.js +11 -11
  82. package/dist/commands/uninstall.js +40 -31
  83. package/dist/commands/uninstall.js.map +1 -1
  84. package/dist/commands/update.js +9 -9
  85. package/dist/commands/validate.js +7 -7
  86. package/dist/components/skill-search/skill-search.js +2 -2
  87. package/dist/components/wizard/category-grid.js +3 -3
  88. package/dist/components/wizard/category-grid.test.js +12 -12
  89. package/dist/components/wizard/domain-selection.js +9 -9
  90. package/dist/components/wizard/info-panel.js +18 -0
  91. package/dist/components/wizard/search-modal.js +2 -2
  92. package/dist/components/wizard/search-modal.test.js +2 -2
  93. package/dist/components/wizard/source-grid.js +4 -4
  94. package/dist/components/wizard/source-grid.test.js +13 -13
  95. package/dist/components/wizard/stack-selection.js +8 -8
  96. package/dist/components/wizard/stats-panel.js +106 -5
  97. package/dist/components/wizard/stats-panel.js.map +1 -1
  98. package/dist/components/wizard/step-agents.js +9 -9
  99. package/dist/components/wizard/step-agents.test.js +12 -12
  100. package/dist/components/wizard/step-build.js +10 -11
  101. package/dist/components/wizard/step-build.test.js +13 -14
  102. package/dist/components/wizard/step-build.test.js.map +1 -1
  103. package/dist/components/wizard/step-confirm.js +4 -4
  104. package/dist/components/wizard/step-confirm.test.js +10 -10
  105. package/dist/components/wizard/step-refine.js +2 -2
  106. package/dist/components/wizard/step-refine.test.js +2 -2
  107. package/dist/components/wizard/step-settings.js +8 -8
  108. package/dist/components/wizard/step-settings.test.js +11 -11
  109. package/dist/components/wizard/step-sources.js +12 -12
  110. package/dist/components/wizard/step-sources.test.js +15 -15
  111. package/dist/components/wizard/step-stack.js +9 -9
  112. package/dist/components/wizard/step-stack.test.js +10 -10
  113. package/dist/components/wizard/wizard-layout.js +12 -12
  114. package/dist/components/wizard/wizard.js +24 -25
  115. package/dist/config-exports.js +1 -1
  116. package/dist/hooks/init.js +28 -29
  117. package/dist/hooks/init.js.map +1 -1
  118. package/dist/{loader-SQOK2BF7.js → loader-D5VE56SI.js} +4 -4
  119. package/dist/{source-loader-CCECAU5L.js → source-loader-INCCYL5P.js} +7 -7
  120. package/dist/source-manager-TEOUO734.js +19 -0
  121. package/dist/src/agents/developer/ai-developer/critical-reminders.md +31 -0
  122. package/dist/src/agents/developer/ai-developer/critical-requirements.md +17 -0
  123. package/dist/src/agents/developer/ai-developer/examples.md +137 -0
  124. package/dist/src/agents/developer/ai-developer/intro.md +23 -0
  125. package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
  126. package/dist/src/agents/developer/ai-developer/output-format.md +228 -0
  127. package/dist/src/agents/developer/ai-developer/workflow.md +464 -0
  128. package/dist/src/agents/planning/api-pm/critical-reminders.md +32 -0
  129. package/dist/src/agents/planning/api-pm/critical-requirements.md +21 -0
  130. package/dist/src/agents/planning/api-pm/examples.md +157 -0
  131. package/dist/src/agents/planning/api-pm/intro.md +14 -0
  132. package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
  133. package/dist/src/agents/planning/api-pm/output-format.md +317 -0
  134. package/dist/src/agents/planning/api-pm/workflow.md +214 -0
  135. package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +23 -0
  136. package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +19 -0
  137. package/dist/src/agents/reviewer/ai-reviewer/examples.md +131 -0
  138. package/dist/src/agents/reviewer/ai-reviewer/intro.md +23 -0
  139. package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  140. package/dist/src/agents/reviewer/ai-reviewer/output-format.md +263 -0
  141. package/dist/src/agents/reviewer/ai-reviewer/workflow.md +177 -0
  142. package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +21 -0
  143. package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +19 -0
  144. package/dist/src/agents/reviewer/infra-reviewer/examples.md +123 -0
  145. package/dist/src/agents/reviewer/infra-reviewer/intro.md +25 -0
  146. package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  147. package/dist/src/agents/reviewer/infra-reviewer/output-format.md +240 -0
  148. package/dist/src/agents/reviewer/infra-reviewer/workflow.md +250 -0
  149. package/dist/src/agents/tester/api-tester/critical-reminders.md +23 -0
  150. package/dist/src/agents/tester/api-tester/critical-requirements.md +19 -0
  151. package/dist/src/agents/tester/api-tester/examples.md +74 -0
  152. package/dist/src/agents/tester/api-tester/intro.md +21 -0
  153. package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
  154. package/dist/src/agents/tester/api-tester/output-format.md +209 -0
  155. package/dist/src/agents/tester/api-tester/workflow.md +364 -0
  156. package/dist/stores/wizard-store.js +7 -7
  157. package/dist/stores/wizard-store.test.js +26 -26
  158. package/dist/stores/wizard-store.test.js.map +1 -1
  159. package/package.json +1 -1
  160. package/src/agents/developer/ai-developer/critical-reminders.md +31 -0
  161. package/src/agents/developer/ai-developer/critical-requirements.md +17 -0
  162. package/src/agents/developer/ai-developer/examples.md +137 -0
  163. package/src/agents/developer/ai-developer/intro.md +23 -0
  164. package/src/agents/developer/ai-developer/metadata.yaml +12 -0
  165. package/src/agents/developer/ai-developer/output-format.md +228 -0
  166. package/src/agents/developer/ai-developer/workflow.md +464 -0
  167. package/src/agents/planning/api-pm/critical-reminders.md +32 -0
  168. package/src/agents/planning/api-pm/critical-requirements.md +21 -0
  169. package/src/agents/planning/api-pm/examples.md +157 -0
  170. package/src/agents/planning/api-pm/intro.md +14 -0
  171. package/src/agents/planning/api-pm/metadata.yaml +12 -0
  172. package/src/agents/planning/api-pm/output-format.md +317 -0
  173. package/src/agents/planning/api-pm/workflow.md +214 -0
  174. package/src/agents/reviewer/ai-reviewer/critical-reminders.md +23 -0
  175. package/src/agents/reviewer/ai-reviewer/critical-requirements.md +19 -0
  176. package/src/agents/reviewer/ai-reviewer/examples.md +131 -0
  177. package/src/agents/reviewer/ai-reviewer/intro.md +23 -0
  178. package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  179. package/src/agents/reviewer/ai-reviewer/output-format.md +263 -0
  180. package/src/agents/reviewer/ai-reviewer/workflow.md +177 -0
  181. package/src/agents/reviewer/infra-reviewer/critical-reminders.md +21 -0
  182. package/src/agents/reviewer/infra-reviewer/critical-requirements.md +19 -0
  183. package/src/agents/reviewer/infra-reviewer/examples.md +123 -0
  184. package/src/agents/reviewer/infra-reviewer/intro.md +25 -0
  185. package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  186. package/src/agents/reviewer/infra-reviewer/output-format.md +240 -0
  187. package/src/agents/reviewer/infra-reviewer/workflow.md +250 -0
  188. package/src/agents/tester/api-tester/critical-reminders.md +23 -0
  189. package/src/agents/tester/api-tester/critical-requirements.md +19 -0
  190. package/src/agents/tester/api-tester/examples.md +74 -0
  191. package/src/agents/tester/api-tester/intro.md +21 -0
  192. package/src/agents/tester/api-tester/metadata.yaml +12 -0
  193. package/src/agents/tester/api-tester/output-format.md +209 -0
  194. package/src/agents/tester/api-tester/workflow.md +364 -0
  195. package/dist/chunk-6XWHJHNZ.js.map +0 -1
  196. package/dist/chunk-ANXHMG32.js.map +0 -1
  197. package/dist/chunk-ATPHV3MD.js +0 -143
  198. package/dist/chunk-ATPHV3MD.js.map +0 -1
  199. package/dist/chunk-CKZ65VFJ.js.map +0 -1
  200. package/dist/chunk-DDCW4SKN.js.map +0 -1
  201. package/dist/chunk-EADZIYQW.js.map +0 -1
  202. package/dist/chunk-FQTYF3OU.js +0 -114
  203. package/dist/chunk-FQTYF3OU.js.map +0 -1
  204. package/dist/chunk-LHUK5L6P.js.map +0 -1
  205. package/dist/chunk-NL5EB57E.js.map +0 -1
  206. package/dist/chunk-NPMMU4GY.js.map +0 -1
  207. package/dist/chunk-REZZSDXG.js.map +0 -1
  208. package/dist/chunk-VWTZOBBQ.js +0 -111
  209. package/dist/chunk-VWTZOBBQ.js.map +0 -1
  210. package/dist/chunk-WTPPVXJP.js.map +0 -1
  211. package/dist/chunk-ZFQTKY2S.js.map +0 -1
  212. package/dist/components/wizard/help-modal.js +0 -18
  213. package/dist/source-manager-4P7MTZRR.js +0 -19
  214. /package/dist/{chunk-RWVF6DQE.js.map → chunk-2RFE7LTV.js.map} +0 -0
  215. /package/dist/{chunk-BEZ6ZPDS.js.map → chunk-3O57Z6Q3.js.map} +0 -0
  216. /package/dist/{chunk-2DRPZXXK.js.map → chunk-3STOCHK4.js.map} +0 -0
  217. /package/dist/{chunk-TAPEVEET.js.map → chunk-7K7SA4TZ.js.map} +0 -0
  218. /package/dist/{chunk-SB2R5KHJ.js.map → chunk-BGICSUQK.js.map} +0 -0
  219. /package/dist/{chunk-YM3V4Q3W.js.map → chunk-DZ2IQERZ.js.map} +0 -0
  220. /package/dist/{chunk-I5AZKNNL.js.map → chunk-FEKVKYCN.js.map} +0 -0
  221. /package/dist/{chunk-6YR2NEW3.js.map → chunk-G3VPBEBC.js.map} +0 -0
  222. /package/dist/{chunk-JNUFQBXX.js.map → chunk-HCSIS35Y.js.map} +0 -0
  223. /package/dist/{chunk-AP4DLJDP.js.map → chunk-JBS4CCJG.js.map} +0 -0
  224. /package/dist/{chunk-23M3SPXX.js.map → chunk-MBEXASMU.js.map} +0 -0
  225. /package/dist/{chunk-TEA5KBIA.js.map → chunk-NESVWSI7.js.map} +0 -0
  226. /package/dist/{chunk-ZTRQO5CX.js.map → chunk-OOHPUT5M.js.map} +0 -0
  227. /package/dist/{chunk-ANZV33N5.js.map → chunk-OVY7IV3C.js.map} +0 -0
  228. /package/dist/{chunk-ITBSJNIC.js.map → chunk-Q3NIGPRZ.js.map} +0 -0
  229. /package/dist/{chunk-5IYZGJDW.js.map → chunk-RDQBXB3Y.js.map} +0 -0
  230. /package/dist/{chunk-MY4TVLRB.js.map → chunk-TJHCK4OS.js.map} +0 -0
  231. /package/dist/{chunk-PZBLGD7O.js.map → chunk-UCORQ7YO.js.map} +0 -0
  232. /package/dist/{chunk-57KI55GJ.js.map → chunk-UK572773.js.map} +0 -0
  233. /package/dist/{chunk-STMRDPGZ.js.map → chunk-XM2Y5AFQ.js.map} +0 -0
  234. /package/dist/components/wizard/{help-modal.js.map → info-panel.js.map} +0 -0
  235. /package/dist/{loader-SQOK2BF7.js.map → loader-D5VE56SI.js.map} +0 -0
  236. /package/dist/{source-loader-CCECAU5L.js.map → source-loader-INCCYL5P.js.map} +0 -0
  237. /package/dist/{source-manager-4P7MTZRR.js.map → source-manager-TEOUO734.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/types/generated/source-types.ts"],"sourcesContent":["// AUTO-GENERATED from skills source and agent metadata — do not edit manually\n// Run: bun run generate:types\n\n// ── Skill Map (slug → ID) ─────────────────────────────────────\n\nexport const SKILL_MAP = {\n \"angular-standalone\": \"web-framework-angular-standalone\",\n \"ant-design\": \"web-ui-ant-design\",\n \"anthropic-sdk\": \"ai-provider-anthropic-sdk\",\n \"api-performance\": \"api-performance-api-performance\",\n appwrite: \"api-baas-appwrite\",\n astro: \"web-meta-framework-astro\",\n \"auth-security\": \"shared-security-auth-security\",\n \"axiom-pino-sentry\": \"api-observability-axiom-pino-sentry\",\n \"better-auth-drizzle-hono\": \"api-auth-better-auth-drizzle-hono\",\n biome: \"shared-tooling-biome\",\n \"chakra-ui\": \"web-ui-chakra-ui\",\n chroma: \"api-vector-db-chroma\",\n \"claude-vision\": \"ai-provider-claude-vision\",\n clerk: \"api-auth-clerk\",\n \"cli-commander\": \"cli-framework-cli-commander\",\n \"cli-reviewing\": \"meta-reviewing-cli-reviewing\",\n \"cloudflare-workers\": \"infra-platform-cloudflare-workers\",\n cockroachdb: \"api-database-cockroachdb\",\n \"cohere-sdk\": \"ai-provider-cohere-sdk\",\n \"css-animations\": \"web-animation-css-animations\",\n cva: \"web-styling-cva\",\n \"cypress-e2e\": \"web-testing-cypress-e2e\",\n \"date-fns\": \"web-utilities-date-fns\",\n docker: \"infra-ci-cd-docker\",\n drizzle: \"api-database-drizzle\",\n edgedb: \"api-database-edgedb\",\n elasticsearch: \"api-search-elasticsearch\",\n elevenlabs: \"ai-provider-elevenlabs\",\n elysia: \"api-framework-elysia\",\n \"error-boundaries\": \"web-error-handling-error-boundaries\",\n \"eslint-prettier\": \"shared-tooling-eslint-prettier\",\n expo: \"mobile-framework-expo\",\n express: \"api-framework-express\",\n \"expressive-typescript\": \"meta-design-expressive-typescript\",\n fastify: \"api-framework-fastify\",\n \"file-upload-patterns\": \"web-files-file-upload-patterns\",\n firebase: \"api-baas-firebase\",\n \"framer-motion\": \"web-animation-framer-motion\",\n \"git-hooks\": \"shared-tooling-git-hooks\",\n \"github-actions\": \"infra-ci-cd-github-actions\",\n \"google-gemini-sdk\": \"ai-provider-google-gemini-sdk\",\n \"graphql-apollo\": \"web-data-fetching-graphql-apollo\",\n \"graphql-urql\": \"web-data-fetching-graphql-urql\",\n \"headless-ui\": \"web-ui-headless-ui\",\n hono: \"api-framework-hono\",\n \"huggingface-inference\": \"ai-infrastructure-huggingface-inference\",\n \"image-handling\": \"web-files-image-handling\",\n jotai: \"web-state-jotai\",\n knex: \"api-database-knex\",\n langchain: \"ai-orchestration-langchain\",\n langfuse: \"ai-observability-langfuse\",\n litellm: \"ai-infrastructure-litellm\",\n llamaindex: \"ai-orchestration-llamaindex\",\n mantine: \"web-ui-mantine\",\n meilisearch: \"api-search-meilisearch\",\n \"mistral-sdk\": \"ai-provider-mistral-sdk\",\n mobx: \"web-state-mobx\",\n modal: \"ai-infrastructure-modal\",\n mongodb: \"api-database-mongodb\",\n mongoose: \"api-database-mongoose\",\n msw: \"web-mocks-msw\",\n mui: \"web-ui-mui\",\n mysql: \"api-database-mysql\",\n \"native-js\": \"web-utilities-native-js\",\n neon: \"api-baas-neon\",\n nestjs: \"api-framework-nestjs\",\n \"next-intl\": \"web-i18n-next-intl\",\n nextauth: \"api-auth-nextauth\",\n nextjs: \"web-meta-framework-nextjs\",\n \"ngrx-signalstore\": \"web-state-ngrx-signalstore\",\n nuxt: \"web-meta-framework-nuxt\",\n nx: \"shared-monorepo-nx\",\n \"oclif-ink\": \"cli-framework-oclif-ink\",\n \"offline-first\": \"web-pwa-offline-first\",\n ollama: \"ai-infrastructure-ollama\",\n \"openai-sdk\": \"ai-provider-openai-sdk\",\n \"openai-whisper\": \"ai-provider-openai-whisper\",\n payload: \"api-cms-payload\",\n pinecone: \"api-vector-db-pinecone\",\n pinia: \"web-state-pinia\",\n planetscale: \"api-baas-planetscale\",\n \"playwright-e2e\": \"web-testing-playwright-e2e\",\n \"pnpm-workspaces\": \"shared-monorepo-pnpm-workspaces\",\n postgresql: \"api-database-postgresql\",\n \"posthog-analytics\": \"api-analytics-posthog-analytics\",\n \"posthog-flags\": \"api-flags-posthog-flags\",\n prisma: \"api-database-prisma\",\n promptfoo: \"ai-observability-promptfoo\",\n qdrant: \"api-vector-db-qdrant\",\n qwik: \"web-meta-framework-qwik\",\n \"radix-ui\": \"web-ui-radix-ui\",\n react: \"web-framework-react\",\n \"react-hook-form\": \"web-forms-react-hook-form\",\n \"react-intl\": \"web-i18n-react-intl\",\n \"react-native\": \"mobile-framework-react-native\",\n \"react-query\": \"web-server-state-react-query\",\n \"react-router\": \"web-routing-react-router\",\n \"react-testing-library\": \"web-testing-react-testing-library\",\n redis: \"api-database-redis\",\n \"redux-toolkit\": \"web-state-redux-toolkit\",\n remix: \"web-meta-framework-remix\",\n replicate: \"ai-infrastructure-replicate\",\n \"research-methodology\": \"meta-methodology-research-methodology\",\n \"resend-react-email\": \"api-email-resend-react-email\",\n \"result-types\": \"web-error-handling-result-types\",\n reviewing: \"meta-reviewing-reviewing\",\n rxjs: \"web-utilities-rxjs\",\n sanity: \"api-cms-sanity\",\n \"scss-modules\": \"web-styling-scss-modules\",\n sequelize: \"api-database-sequelize\",\n \"service-workers\": \"web-pwa-service-workers\",\n \"setup-axiom-pino-sentry\": \"api-observability-setup-axiom-pino-sentry\",\n \"setup-env\": \"infra-config-setup-env\",\n \"setup-posthog\": \"api-analytics-setup-posthog\",\n \"setup-resend\": \"api-email-setup-resend\",\n \"shadcn-ui\": \"web-ui-shadcn-ui\",\n \"socket-io\": \"web-realtime-socket-io\",\n solidjs: \"web-framework-solidjs\",\n sse: \"web-realtime-sse\",\n storybook: \"web-tooling-storybook\",\n strapi: \"api-cms-strapi\",\n stripe: \"api-commerce-stripe\",\n supabase: \"api-baas-supabase\",\n surrealdb: \"api-database-surrealdb\",\n svelte: \"web-framework-svelte\",\n sveltekit: \"web-meta-framework-sveltekit\",\n swr: \"web-data-fetching-swr\",\n tailwind: \"web-styling-tailwind\",\n \"tanstack-router\": \"web-routing-tanstack-router\",\n \"tanstack-table\": \"web-ui-tanstack-table\",\n \"together-ai\": \"ai-infrastructure-together-ai\",\n \"tool-use-patterns\": \"ai-patterns-tool-use-patterns\",\n trpc: \"web-data-fetching-trpc\",\n turborepo: \"shared-monorepo-turborepo\",\n turso: \"api-baas-turso\",\n typeorm: \"api-database-typeorm\",\n \"typescript-config\": \"shared-tooling-typescript-config\",\n upstash: \"api-database-upstash\",\n \"vee-validate\": \"web-forms-vee-validate\",\n \"vercel-ai-sdk\": \"ai-orchestration-vercel-ai-sdk\",\n \"vercel-kv\": \"api-database-vercel-kv\",\n \"vercel-postgres\": \"api-database-vercel-postgres\",\n \"view-transitions\": \"web-animation-view-transitions\",\n vite: \"web-tooling-vite\",\n vitest: \"web-testing-vitest\",\n \"vue-composition-api\": \"web-framework-vue-composition-api\",\n \"vue-i18n\": \"web-i18n-vue-i18n\",\n \"vue-test-utils\": \"web-testing-vue-test-utils\",\n vueuse: \"web-utilities-vueuse\",\n weaviate: \"api-vector-db-weaviate\",\n \"web-accessibility\": \"web-accessibility-web-accessibility\",\n \"web-performance\": \"web-performance-web-performance\",\n websockets: \"web-realtime-websockets\",\n \"zod-validation\": \"web-forms-zod-validation\",\n zustand: \"web-state-zustand\",\n} as const;\n\nexport type SkillSlug = keyof typeof SKILL_MAP;\nexport type SkillId = (typeof SKILL_MAP)[SkillSlug];\n\n// Derived arrays for Zod enum compatibility\n// (z.enum() requires a readonly tuple, not Object.keys/values)\nexport const SKILL_SLUGS = [\n \"angular-standalone\",\n \"ant-design\",\n \"anthropic-sdk\",\n \"api-performance\",\n \"appwrite\",\n \"astro\",\n \"auth-security\",\n \"axiom-pino-sentry\",\n \"better-auth-drizzle-hono\",\n \"biome\",\n \"chakra-ui\",\n \"chroma\",\n \"claude-vision\",\n \"clerk\",\n \"cli-commander\",\n \"cli-reviewing\",\n \"cloudflare-workers\",\n \"cockroachdb\",\n \"cohere-sdk\",\n \"css-animations\",\n \"cva\",\n \"cypress-e2e\",\n \"date-fns\",\n \"docker\",\n \"drizzle\",\n \"edgedb\",\n \"elasticsearch\",\n \"elevenlabs\",\n \"elysia\",\n \"error-boundaries\",\n \"eslint-prettier\",\n \"expo\",\n \"express\",\n \"expressive-typescript\",\n \"fastify\",\n \"file-upload-patterns\",\n \"firebase\",\n \"framer-motion\",\n \"git-hooks\",\n \"github-actions\",\n \"google-gemini-sdk\",\n \"graphql-apollo\",\n \"graphql-urql\",\n \"headless-ui\",\n \"hono\",\n \"huggingface-inference\",\n \"image-handling\",\n \"jotai\",\n \"knex\",\n \"langchain\",\n \"langfuse\",\n \"litellm\",\n \"llamaindex\",\n \"mantine\",\n \"meilisearch\",\n \"mistral-sdk\",\n \"mobx\",\n \"modal\",\n \"mongodb\",\n \"mongoose\",\n \"msw\",\n \"mui\",\n \"mysql\",\n \"native-js\",\n \"neon\",\n \"nestjs\",\n \"next-intl\",\n \"nextauth\",\n \"nextjs\",\n \"ngrx-signalstore\",\n \"nuxt\",\n \"nx\",\n \"oclif-ink\",\n \"offline-first\",\n \"ollama\",\n \"openai-sdk\",\n \"openai-whisper\",\n \"payload\",\n \"pinecone\",\n \"pinia\",\n \"planetscale\",\n \"playwright-e2e\",\n \"pnpm-workspaces\",\n \"postgresql\",\n \"posthog-analytics\",\n \"posthog-flags\",\n \"prisma\",\n \"promptfoo\",\n \"qdrant\",\n \"qwik\",\n \"radix-ui\",\n \"react\",\n \"react-hook-form\",\n \"react-intl\",\n \"react-native\",\n \"react-query\",\n \"react-router\",\n \"react-testing-library\",\n \"redis\",\n \"redux-toolkit\",\n \"remix\",\n \"replicate\",\n \"research-methodology\",\n \"resend-react-email\",\n \"result-types\",\n \"reviewing\",\n \"rxjs\",\n \"sanity\",\n \"scss-modules\",\n \"sequelize\",\n \"service-workers\",\n \"setup-axiom-pino-sentry\",\n \"setup-env\",\n \"setup-posthog\",\n \"setup-resend\",\n \"shadcn-ui\",\n \"socket-io\",\n \"solidjs\",\n \"sse\",\n \"storybook\",\n \"strapi\",\n \"stripe\",\n \"supabase\",\n \"surrealdb\",\n \"svelte\",\n \"sveltekit\",\n \"swr\",\n \"tailwind\",\n \"tanstack-router\",\n \"tanstack-table\",\n \"together-ai\",\n \"tool-use-patterns\",\n \"trpc\",\n \"turborepo\",\n \"turso\",\n \"typeorm\",\n \"typescript-config\",\n \"upstash\",\n \"vee-validate\",\n \"vercel-ai-sdk\",\n \"vercel-kv\",\n \"vercel-postgres\",\n \"view-transitions\",\n \"vite\",\n \"vitest\",\n \"vue-composition-api\",\n \"vue-i18n\",\n \"vue-test-utils\",\n \"vueuse\",\n \"weaviate\",\n \"web-accessibility\",\n \"web-performance\",\n \"websockets\",\n \"zod-validation\",\n \"zustand\",\n] as const satisfies readonly SkillSlug[];\n\nexport const SKILL_IDS = [\n \"ai-infrastructure-huggingface-inference\",\n \"ai-infrastructure-litellm\",\n \"ai-infrastructure-modal\",\n \"ai-infrastructure-ollama\",\n \"ai-infrastructure-replicate\",\n \"ai-infrastructure-together-ai\",\n \"ai-observability-langfuse\",\n \"ai-observability-promptfoo\",\n \"ai-orchestration-langchain\",\n \"ai-orchestration-llamaindex\",\n \"ai-orchestration-vercel-ai-sdk\",\n \"ai-patterns-tool-use-patterns\",\n \"ai-provider-anthropic-sdk\",\n \"ai-provider-claude-vision\",\n \"ai-provider-cohere-sdk\",\n \"ai-provider-elevenlabs\",\n \"ai-provider-google-gemini-sdk\",\n \"ai-provider-mistral-sdk\",\n \"ai-provider-openai-sdk\",\n \"ai-provider-openai-whisper\",\n \"api-analytics-posthog-analytics\",\n \"api-analytics-setup-posthog\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-auth-clerk\",\n \"api-auth-nextauth\",\n \"api-baas-appwrite\",\n \"api-baas-firebase\",\n \"api-baas-neon\",\n \"api-baas-planetscale\",\n \"api-baas-supabase\",\n \"api-baas-turso\",\n \"api-cms-payload\",\n \"api-cms-sanity\",\n \"api-cms-strapi\",\n \"api-commerce-stripe\",\n \"api-database-cockroachdb\",\n \"api-database-drizzle\",\n \"api-database-edgedb\",\n \"api-database-knex\",\n \"api-database-mongodb\",\n \"api-database-mongoose\",\n \"api-database-mysql\",\n \"api-database-postgresql\",\n \"api-database-prisma\",\n \"api-database-redis\",\n \"api-database-sequelize\",\n \"api-database-surrealdb\",\n \"api-database-typeorm\",\n \"api-database-upstash\",\n \"api-database-vercel-kv\",\n \"api-database-vercel-postgres\",\n \"api-email-resend-react-email\",\n \"api-email-setup-resend\",\n \"api-flags-posthog-flags\",\n \"api-framework-elysia\",\n \"api-framework-express\",\n \"api-framework-fastify\",\n \"api-framework-hono\",\n \"api-framework-nestjs\",\n \"api-observability-axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\",\n \"api-performance-api-performance\",\n \"api-search-elasticsearch\",\n \"api-search-meilisearch\",\n \"api-vector-db-chroma\",\n \"api-vector-db-pinecone\",\n \"api-vector-db-qdrant\",\n \"api-vector-db-weaviate\",\n \"cli-framework-cli-commander\",\n \"cli-framework-oclif-ink\",\n \"infra-ci-cd-docker\",\n \"infra-ci-cd-github-actions\",\n \"infra-config-setup-env\",\n \"infra-platform-cloudflare-workers\",\n \"meta-design-expressive-typescript\",\n \"meta-methodology-research-methodology\",\n \"meta-reviewing-cli-reviewing\",\n \"meta-reviewing-reviewing\",\n \"mobile-framework-expo\",\n \"mobile-framework-react-native\",\n \"shared-monorepo-nx\",\n \"shared-monorepo-pnpm-workspaces\",\n \"shared-monorepo-turborepo\",\n \"shared-security-auth-security\",\n \"shared-tooling-biome\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-typescript-config\",\n \"web-accessibility-web-accessibility\",\n \"web-animation-css-animations\",\n \"web-animation-framer-motion\",\n \"web-animation-view-transitions\",\n \"web-data-fetching-graphql-apollo\",\n \"web-data-fetching-graphql-urql\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-error-handling-error-boundaries\",\n \"web-error-handling-result-types\",\n \"web-files-file-upload-patterns\",\n \"web-files-image-handling\",\n \"web-forms-react-hook-form\",\n \"web-forms-vee-validate\",\n \"web-forms-zod-validation\",\n \"web-framework-angular-standalone\",\n \"web-framework-react\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-framework-vue-composition-api\",\n \"web-i18n-next-intl\",\n \"web-i18n-react-intl\",\n \"web-i18n-vue-i18n\",\n \"web-meta-framework-astro\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-qwik\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-sveltekit\",\n \"web-mocks-msw\",\n \"web-performance-web-performance\",\n \"web-pwa-offline-first\",\n \"web-pwa-service-workers\",\n \"web-realtime-socket-io\",\n \"web-realtime-sse\",\n \"web-realtime-websockets\",\n \"web-routing-react-router\",\n \"web-routing-tanstack-router\",\n \"web-server-state-react-query\",\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-ngrx-signalstore\",\n \"web-state-pinia\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n \"web-styling-cva\",\n \"web-styling-scss-modules\",\n \"web-styling-tailwind\",\n \"web-testing-cypress-e2e\",\n \"web-testing-playwright-e2e\",\n \"web-testing-react-testing-library\",\n \"web-testing-vitest\",\n \"web-testing-vue-test-utils\",\n \"web-tooling-storybook\",\n \"web-tooling-vite\",\n \"web-ui-ant-design\",\n \"web-ui-chakra-ui\",\n \"web-ui-headless-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-utilities-date-fns\",\n \"web-utilities-native-js\",\n \"web-utilities-rxjs\",\n \"web-utilities-vueuse\",\n] as const satisfies readonly SkillId[];\n\n// ── Categories ─────────────────────────────────────────────────\n\nexport const CATEGORIES = [\n \"ai-infrastructure\",\n \"ai-observability\",\n \"ai-orchestration\",\n \"ai-patterns\",\n \"ai-provider\",\n \"api-analytics\",\n \"api-api\",\n \"api-auth\",\n \"api-baas\",\n \"api-cms\",\n \"api-commerce\",\n \"api-database\",\n \"api-email\",\n \"api-framework\",\n \"api-observability\",\n \"api-performance\",\n \"api-search\",\n \"api-vector-db\",\n \"cli-framework\",\n \"infra-ci-cd\",\n \"infra-config\",\n \"infra-platform\",\n \"meta-design\",\n \"meta-methodology\",\n \"meta-reviewing\",\n \"mobile-framework\",\n \"shared-monorepo\",\n \"shared-security\",\n \"shared-tooling\",\n \"web-accessibility\",\n \"web-animation\",\n \"web-client-state\",\n \"web-error-handling\",\n \"web-file-upload\",\n \"web-files\",\n \"web-forms\",\n \"web-framework\",\n \"web-i18n\",\n \"web-meta-framework\",\n \"web-mocking\",\n \"web-performance\",\n \"web-pwa\",\n \"web-realtime\",\n \"web-routing\",\n \"web-server-state\",\n \"web-styling\",\n \"web-testing\",\n \"web-tooling\",\n \"web-ui-components\",\n \"web-utilities\",\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\n// ── Domains ────────────────────────────────────────────────────\n\nexport const DOMAINS = [\"ai\", \"api\", \"cli\", \"infra\", \"meta\", \"mobile\", \"shared\", \"web\"] as const;\n\nexport type Domain = (typeof DOMAINS)[number];\n\n// ── Agent Names ────────────────────────────────────────────────\n\nexport const AGENT_NAMES = [\n \"agent-summoner\",\n \"api-developer\",\n \"api-researcher\",\n \"api-reviewer\",\n \"cli-developer\",\n \"cli-reviewer\",\n \"cli-tester\",\n \"codex-keeper\",\n \"convention-keeper\",\n \"pattern-scout\",\n \"skill-summoner\",\n \"web-architecture\",\n \"web-developer\",\n \"web-pattern-critique\",\n \"web-pm\",\n \"web-researcher\",\n \"web-reviewer\",\n \"web-tester\",\n] as const;\n\nexport type AgentName = (typeof AGENT_NAMES)[number];\n"],"mappings":";;;;;;AAAA;AAwKO,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,UAAU,CAAC,MAAM,OAAO,OAAO,SAAS,QAAQ,UAAU,UAAU,KAAK;AAM/E,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -9,7 +9,7 @@ import {
9
9
  skillFrontmatterLoaderSchema,
10
10
  verbose,
11
11
  warn
12
- } from "./chunk-ZTRQO5CX.js";
12
+ } from "./chunk-OOHPUT5M.js";
13
13
  import {
14
14
  CLAUDE_SRC_DIR,
15
15
  DIRS,
@@ -198,4 +198,4 @@ export {
198
198
  loadSkillsByIds,
199
199
  loadPluginSkills
200
200
  };
201
- //# sourceMappingURL=chunk-STMRDPGZ.js.map
201
+ //# sourceMappingURL=chunk-XM2Y5AFQ.js.map
@@ -3,14 +3,14 @@ import {
3
3
  generateMarketplace,
4
4
  getMarketplaceStats,
5
5
  writeMarketplace
6
- } from "../../chunk-PZBLGD7O.js";
6
+ } from "../../chunk-UCORQ7YO.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-TAPEVEET.js";
9
+ } from "../../chunk-7K7SA4TZ.js";
10
10
  import {
11
11
  setVerbose
12
- } from "../../chunk-ZTRQO5CX.js";
13
- import "../../chunk-6XWHJHNZ.js";
12
+ } from "../../chunk-OOHPUT5M.js";
13
+ import "../../chunk-WEYWZ7UE.js";
14
14
  import {
15
15
  DEFAULT_BRANDING,
16
16
  DEFAULT_PLUGIN_NAME,
@@ -84,54 +84,72 @@ var BuildMarketplace = class _BuildMarketplace extends BaseCommand {
84
84
  const projectRoot = process.cwd();
85
85
  const pluginsDir = path.resolve(projectRoot, flags["plugins-dir"]);
86
86
  const outputPath = path.resolve(projectRoot, flags.output);
87
- this.log("");
88
- this.log("Generating marketplace.json");
89
- this.log(` Plugins directory: ${pluginsDir}`);
90
- this.log(` Output file: ${outputPath}`);
91
- this.log("");
87
+ this.printHeader(pluginsDir, outputPath);
92
88
  try {
93
- this.log("Scanning plugins...");
94
- const marketplace = await generateMarketplace(pluginsDir, {
95
- name: flags.name,
96
- version: flags.version,
97
- description: flags.description,
98
- ownerName: flags["owner-name"],
99
- ownerEmail: flags["owner-email"],
100
- pluginRoot: `./${flags["plugins-dir"]}`
101
- });
102
- const stats = getMarketplaceStats(marketplace);
103
- this.log(`Found ${stats.total} plugins`);
89
+ const marketplace = await this.generateAndWrite(pluginsDir, outputPath, flags);
90
+ this.printStats(marketplace);
91
+ this.printSample(marketplace);
104
92
  this.log("");
105
- this.log("Category breakdown:");
106
- const sortedCategories = sortBy(Object.entries(stats.byCategory), ([, count]) => -count);
107
- for (const [category, count] of sortedCategories) {
108
- this.log(` ${category}: ${count}`);
109
- }
110
- this.log("Writing marketplace.json...");
111
- await writeMarketplace(outputPath, marketplace);
112
- this.log(`Wrote ${outputPath}`);
113
- this.log("");
114
- this.log("Sample plugins:");
115
- const sampleSize = 5;
116
- for (const plugin of marketplace.plugins.slice(0, sampleSize)) {
117
- const version = plugin.version ? `v${plugin.version}` : "";
118
- const category = plugin.category ? `[${plugin.category}]` : "";
119
- this.log(` ${plugin.name} ${version} ${category}`);
120
- if (plugin.description) {
121
- this.log(` ${plugin.description}`);
122
- }
123
- }
124
- if (marketplace.plugins.length > sampleSize) {
125
- this.log(` ... and ${marketplace.plugins.length - sampleSize} more`);
126
- }
127
- this.log("");
128
- this.logSuccess(`Marketplace generated with ${stats.total} plugins!`);
93
+ this.logSuccess(
94
+ `Marketplace generated with ${getMarketplaceStats(marketplace).total} plugins!`
95
+ );
129
96
  this.log("");
130
97
  } catch (error) {
131
98
  this.log("Generation failed");
132
99
  this.handleError(error);
133
100
  }
134
101
  }
102
+ printHeader(pluginsDir, outputPath) {
103
+ this.log("");
104
+ this.log("Generating marketplace.json");
105
+ this.log(` Plugins directory: ${pluginsDir}`);
106
+ this.log(` Output file: ${outputPath}`);
107
+ this.log("");
108
+ }
109
+ async generateAndWrite(pluginsDir, outputPath, flags) {
110
+ this.log("Scanning plugins...");
111
+ const marketplace = await generateMarketplace(pluginsDir, {
112
+ name: flags.name,
113
+ version: flags.version,
114
+ description: flags.description,
115
+ ownerName: flags["owner-name"],
116
+ ownerEmail: flags["owner-email"],
117
+ pluginRoot: `./${flags["plugins-dir"]}`
118
+ });
119
+ const stats = getMarketplaceStats(marketplace);
120
+ this.log(`Found ${stats.total} plugins`);
121
+ this.log("Writing marketplace.json...");
122
+ await writeMarketplace(outputPath, marketplace);
123
+ this.log(`Wrote ${outputPath}`);
124
+ return marketplace;
125
+ }
126
+ printStats(marketplace) {
127
+ this.log("");
128
+ this.log("Category breakdown:");
129
+ const sortedCategories = sortBy(
130
+ Object.entries(getMarketplaceStats(marketplace).byCategory),
131
+ ([, count]) => -count
132
+ );
133
+ for (const [category, count] of sortedCategories) {
134
+ this.log(` ${category}: ${count}`);
135
+ }
136
+ }
137
+ printSample(marketplace) {
138
+ this.log("");
139
+ this.log("Sample plugins:");
140
+ const sampleSize = 5;
141
+ for (const plugin of marketplace.plugins.slice(0, sampleSize)) {
142
+ const version = plugin.version ? `v${plugin.version}` : "";
143
+ const category = plugin.category ? `[${plugin.category}]` : "";
144
+ this.log(` ${plugin.name} ${version} ${category}`);
145
+ if (plugin.description) {
146
+ this.log(` ${plugin.description}`);
147
+ }
148
+ }
149
+ if (marketplace.plugins.length > sampleSize) {
150
+ this.log(` ... and ${marketplace.plugins.length - sampleSize} more`);
151
+ }
152
+ }
135
153
  };
136
154
  export {
137
155
  BuildMarketplace as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/build/marketplace.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport path from \"path\";\nimport { sortBy } from \"remeda\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport {\n generateMarketplace,\n writeMarketplace,\n getMarketplaceStats,\n} from \"../../lib/marketplace-generator\";\nimport {\n DEFAULT_BRANDING,\n DEFAULT_PLUGIN_NAME,\n DEFAULT_VERSION,\n PLUGIN_MANIFEST_DIR,\n} from \"../../consts\";\n\nconst DEFAULT_PLUGINS_DIR = \"dist/plugins\";\nconst DEFAULT_OUTPUT_FILE = `${PLUGIN_MANIFEST_DIR}/marketplace.json`;\nconst DEFAULT_DESCRIPTION = \"Community skills and stacks for Claude Code\";\nconst DEFAULT_OWNER_NAME = DEFAULT_BRANDING.NAME;\nconst DEFAULT_OWNER_EMAIL = `hello@${DEFAULT_PLUGIN_NAME}.com`;\n\nexport default class BuildMarketplace extends BaseCommand {\n static summary = \"Generate marketplace.json from built plugins (requires skills repo)\";\n\n static description =\n \"Generate marketplace.json from built plugins. This command scans the plugins directory and generates a marketplace manifest file.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --plugins-dir dist/stacks\",\n \"<%= config.bin %> <%= command.id %> --output .claude-plugin/market.json\",\n \"<%= config.bin %> <%= command.id %> --name my-marketplace --version 2.0.0\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n \"plugins-dir\": Flags.string({\n char: \"p\",\n description: \"Plugins directory\",\n default: DEFAULT_PLUGINS_DIR,\n }),\n output: Flags.string({\n char: \"o\",\n description: \"Output file\",\n default: DEFAULT_OUTPUT_FILE,\n }),\n name: Flags.string({\n description: \"Marketplace name\",\n default: DEFAULT_PLUGIN_NAME,\n }),\n version: Flags.string({\n description: \"Marketplace version\",\n default: DEFAULT_VERSION,\n }),\n description: Flags.string({\n description: \"Marketplace description\",\n default: DEFAULT_DESCRIPTION,\n }),\n \"owner-name\": Flags.string({\n description: \"Owner name\",\n default: DEFAULT_OWNER_NAME,\n }),\n \"owner-email\": Flags.string({\n description: \"Owner email\",\n default: DEFAULT_OWNER_EMAIL,\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildMarketplace);\n\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const pluginsDir = path.resolve(projectRoot, flags[\"plugins-dir\"]);\n const outputPath = path.resolve(projectRoot, flags.output);\n\n this.log(\"\");\n this.log(\"Generating marketplace.json\");\n this.log(` Plugins directory: ${pluginsDir}`);\n this.log(` Output file: ${outputPath}`);\n this.log(\"\");\n\n try {\n this.log(\"Scanning plugins...\");\n\n const marketplace = await generateMarketplace(pluginsDir, {\n name: flags.name,\n version: flags.version,\n description: flags.description,\n ownerName: flags[\"owner-name\"],\n ownerEmail: flags[\"owner-email\"],\n pluginRoot: `./${flags[\"plugins-dir\"]}`,\n });\n\n const stats = getMarketplaceStats(marketplace);\n this.log(`Found ${stats.total} plugins`);\n\n this.log(\"\");\n this.log(\"Category breakdown:\");\n const sortedCategories = sortBy(Object.entries(stats.byCategory), ([, count]) => -count);\n for (const [category, count] of sortedCategories) {\n this.log(` ${category}: ${count}`);\n }\n\n this.log(\"Writing marketplace.json...\");\n await writeMarketplace(outputPath, marketplace);\n this.log(`Wrote ${outputPath}`);\n\n this.log(\"\");\n this.log(\"Sample plugins:\");\n const sampleSize = 5;\n for (const plugin of marketplace.plugins.slice(0, sampleSize)) {\n const version = plugin.version ? `v${plugin.version}` : \"\";\n const category = plugin.category ? `[${plugin.category}]` : \"\";\n this.log(` ${plugin.name} ${version} ${category}`);\n if (plugin.description) {\n this.log(` ${plugin.description}`);\n }\n }\n if (marketplace.plugins.length > sampleSize) {\n this.log(` ... and ${marketplace.plugins.length - sampleSize} more`);\n }\n\n this.log(\"\");\n this.logSuccess(`Marketplace generated with ${stats.total} plugins!`);\n this.log(\"\");\n } catch (error) {\n this.log(\"Generation failed\");\n this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/commands/build/marketplace.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport path from \"path\";\nimport { sortBy } from \"remeda\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport {\n generateMarketplace,\n writeMarketplace,\n getMarketplaceStats,\n} from \"../../lib/marketplace-generator\";\nimport {\n DEFAULT_BRANDING,\n DEFAULT_PLUGIN_NAME,\n DEFAULT_VERSION,\n PLUGIN_MANIFEST_DIR,\n} from \"../../consts\";\nimport type { Marketplace } from \"../../types/plugins\";\n\nconst DEFAULT_PLUGINS_DIR = \"dist/plugins\";\nconst DEFAULT_OUTPUT_FILE = `${PLUGIN_MANIFEST_DIR}/marketplace.json`;\nconst DEFAULT_DESCRIPTION = \"Community skills and stacks for Claude Code\";\nconst DEFAULT_OWNER_NAME = DEFAULT_BRANDING.NAME;\nconst DEFAULT_OWNER_EMAIL = `hello@${DEFAULT_PLUGIN_NAME}.com`;\n\nexport default class BuildMarketplace extends BaseCommand {\n static summary = \"Generate marketplace.json from built plugins (requires skills repo)\";\n\n static description =\n \"Generate marketplace.json from built plugins. This command scans the plugins directory and generates a marketplace manifest file.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --plugins-dir dist/stacks\",\n \"<%= config.bin %> <%= command.id %> --output .claude-plugin/market.json\",\n \"<%= config.bin %> <%= command.id %> --name my-marketplace --version 2.0.0\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n \"plugins-dir\": Flags.string({\n char: \"p\",\n description: \"Plugins directory\",\n default: DEFAULT_PLUGINS_DIR,\n }),\n output: Flags.string({\n char: \"o\",\n description: \"Output file\",\n default: DEFAULT_OUTPUT_FILE,\n }),\n name: Flags.string({\n description: \"Marketplace name\",\n default: DEFAULT_PLUGIN_NAME,\n }),\n version: Flags.string({\n description: \"Marketplace version\",\n default: DEFAULT_VERSION,\n }),\n description: Flags.string({\n description: \"Marketplace description\",\n default: DEFAULT_DESCRIPTION,\n }),\n \"owner-name\": Flags.string({\n description: \"Owner name\",\n default: DEFAULT_OWNER_NAME,\n }),\n \"owner-email\": Flags.string({\n description: \"Owner email\",\n default: DEFAULT_OWNER_EMAIL,\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildMarketplace);\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const pluginsDir = path.resolve(projectRoot, flags[\"plugins-dir\"]);\n const outputPath = path.resolve(projectRoot, flags.output);\n\n this.printHeader(pluginsDir, outputPath);\n\n try {\n const marketplace = await this.generateAndWrite(pluginsDir, outputPath, flags);\n this.printStats(marketplace);\n this.printSample(marketplace);\n\n this.log(\"\");\n this.logSuccess(\n `Marketplace generated with ${getMarketplaceStats(marketplace).total} plugins!`,\n );\n this.log(\"\");\n } catch (error) {\n this.log(\"Generation failed\");\n this.handleError(error);\n }\n }\n\n private printHeader(pluginsDir: string, outputPath: string): void {\n this.log(\"\");\n this.log(\"Generating marketplace.json\");\n this.log(` Plugins directory: ${pluginsDir}`);\n this.log(` Output file: ${outputPath}`);\n this.log(\"\");\n }\n\n private async generateAndWrite(\n pluginsDir: string,\n outputPath: string,\n flags: {\n name: string;\n version: string;\n description: string;\n \"owner-name\": string;\n \"owner-email\": string;\n \"plugins-dir\": string;\n },\n ): Promise<Marketplace> {\n this.log(\"Scanning plugins...\");\n\n const marketplace = await generateMarketplace(pluginsDir, {\n name: flags.name,\n version: flags.version,\n description: flags.description,\n ownerName: flags[\"owner-name\"],\n ownerEmail: flags[\"owner-email\"],\n pluginRoot: `./${flags[\"plugins-dir\"]}`,\n });\n\n const stats = getMarketplaceStats(marketplace);\n this.log(`Found ${stats.total} plugins`);\n\n this.log(\"Writing marketplace.json...\");\n await writeMarketplace(outputPath, marketplace);\n this.log(`Wrote ${outputPath}`);\n\n return marketplace;\n }\n\n private printStats(marketplace: Marketplace): void {\n this.log(\"\");\n this.log(\"Category breakdown:\");\n const sortedCategories = sortBy(\n Object.entries(getMarketplaceStats(marketplace).byCategory),\n ([, count]) => -count,\n );\n for (const [category, count] of sortedCategories) {\n this.log(` ${category}: ${count}`);\n }\n }\n\n private printSample(marketplace: Marketplace): void {\n this.log(\"\");\n this.log(\"Sample plugins:\");\n const sampleSize = 5;\n for (const plugin of marketplace.plugins.slice(0, sampleSize)) {\n const version = plugin.version ? `v${plugin.version}` : \"\";\n const category = plugin.category ? `[${plugin.category}]` : \"\";\n this.log(` ${plugin.name} ${version} ${category}`);\n if (plugin.description) {\n this.log(` ${plugin.description}`);\n }\n }\n if (marketplace.plugins.length > sampleSize) {\n this.log(` ... and ${marketplace.plugins.length - sampleSize} more`);\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -2,25 +2,25 @@
2
2
  import {
3
3
  compileAllAgentPlugins,
4
4
  printAgentCompilationSummary
5
- } from "../../chunk-YM3V4Q3W.js";
5
+ } from "../../chunk-DZ2IQERZ.js";
6
6
  import {
7
7
  compileAllSkillPlugins,
8
8
  compileSkillPlugin,
9
9
  printCompilationSummary
10
- } from "../../chunk-EADZIYQW.js";
11
- import "../../chunk-STMRDPGZ.js";
12
- import "../../chunk-ANXHMG32.js";
10
+ } from "../../chunk-FVBSRBU3.js";
11
+ import "../../chunk-XM2Y5AFQ.js";
12
+ import "../../chunk-47HMJ4BY.js";
13
13
  import {
14
14
  BaseCommand
15
- } from "../../chunk-TAPEVEET.js";
15
+ } from "../../chunk-7K7SA4TZ.js";
16
16
  import {
17
17
  setVerbose
18
- } from "../../chunk-ZTRQO5CX.js";
19
- import "../../chunk-6XWHJHNZ.js";
18
+ } from "../../chunk-OOHPUT5M.js";
19
+ import "../../chunk-WEYWZ7UE.js";
20
20
  import {
21
21
  DIRS
22
22
  } from "../../chunk-6PGL2XMY.js";
23
- import "../../chunk-NPMMU4GY.js";
23
+ import "../../chunk-IR7ADPAZ.js";
24
24
  import {
25
25
  init_esm_shims
26
26
  } from "../../chunk-DHET7RCE.js";
@@ -71,37 +71,11 @@ var BuildPlugins = class _BuildPlugins extends BaseCommand {
71
71
  const projectRoot = process.cwd();
72
72
  const skillsDir = path.resolve(projectRoot, flags["skills-dir"]);
73
73
  const outputDir = path.resolve(projectRoot, flags["output-dir"]);
74
- this.log("");
75
- this.log("Compiling skill plugins");
76
- this.log(` Skills directory: ${skillsDir}`);
77
- this.log(` Output directory: ${outputDir}`);
78
- this.log("");
74
+ this.printHeader(skillsDir, outputDir);
79
75
  try {
80
- if (flags.skill) {
81
- const skillPath = path.resolve(skillsDir, flags.skill);
82
- this.log(`Compiling skill at ${skillPath}...`);
83
- const result = await compileSkillPlugin({
84
- skillPath,
85
- outputDir
86
- });
87
- this.log(`Compiled ${result.skillName}`);
88
- this.log(` Plugin path: ${result.pluginPath}`);
89
- } else {
90
- this.log("Finding and compiling all skills...");
91
- const results = await compileAllSkillPlugins(skillsDir, outputDir);
92
- this.log(`Compiled ${results.length} skill plugins`);
93
- printCompilationSummary(results);
94
- }
76
+ await this.compileSkills(flags.skill, skillsDir, outputDir);
95
77
  if (flags["agents-dir"]) {
96
- const agentsDir = path.resolve(projectRoot, flags["agents-dir"]);
97
- this.log("");
98
- this.log("Compiling agent plugins");
99
- this.log(` Agents directory: ${agentsDir}`);
100
- this.log("");
101
- this.log("Finding and compiling all agents...");
102
- const agentResults = await compileAllAgentPlugins(agentsDir, outputDir);
103
- this.log(`Compiled ${agentResults.length} agent plugins`);
104
- printAgentCompilationSummary(agentResults);
78
+ await this.compileAgents(projectRoot, flags["agents-dir"], outputDir);
105
79
  }
106
80
  this.log("");
107
81
  this.logSuccess("Plugin compilation complete!");
@@ -110,6 +84,41 @@ var BuildPlugins = class _BuildPlugins extends BaseCommand {
110
84
  this.handleError(error);
111
85
  }
112
86
  }
87
+ printHeader(skillsDir, outputDir) {
88
+ this.log("");
89
+ this.log("Compiling skill plugins");
90
+ this.log(` Skills directory: ${skillsDir}`);
91
+ this.log(` Output directory: ${outputDir}`);
92
+ this.log("");
93
+ }
94
+ async compileSkills(skillFlag, skillsDir, outputDir) {
95
+ if (skillFlag) {
96
+ const skillPath = path.resolve(skillsDir, skillFlag);
97
+ this.log(`Compiling skill at ${skillPath}...`);
98
+ const result = await compileSkillPlugin({
99
+ skillPath,
100
+ outputDir
101
+ });
102
+ this.log(`Compiled ${result.skillName}`);
103
+ this.log(` Plugin path: ${result.pluginPath}`);
104
+ } else {
105
+ this.log("Finding and compiling all skills...");
106
+ const results = await compileAllSkillPlugins(skillsDir, outputDir);
107
+ this.log(`Compiled ${results.length} skill plugins`);
108
+ printCompilationSummary(results);
109
+ }
110
+ }
111
+ async compileAgents(projectRoot, agentsDir, outputDir) {
112
+ const resolvedAgentsDir = path.resolve(projectRoot, agentsDir);
113
+ this.log("");
114
+ this.log("Compiling agent plugins");
115
+ this.log(` Agents directory: ${resolvedAgentsDir}`);
116
+ this.log("");
117
+ this.log("Finding and compiling all agents...");
118
+ const agentResults = await compileAllAgentPlugins(resolvedAgentsDir, outputDir);
119
+ this.log(`Compiled ${agentResults.length} agent plugins`);
120
+ printAgentCompilationSummary(agentResults);
121
+ }
113
122
  };
114
123
  export {
115
124
  BuildPlugins as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/build/plugins.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport { DIRS } from \"../../consts\";\nimport {\n compileAllSkillPlugins,\n compileSkillPlugin,\n printCompilationSummary,\n} from \"../../lib/skills\";\nimport { compileAllAgentPlugins, printAgentCompilationSummary } from \"../../lib/agents\";\n\nconst DEFAULT_OUTPUT_DIR = \"dist/plugins\";\n\nexport default class BuildPlugins extends BaseCommand {\n static summary = \"Build skills and agents into standalone plugins\";\n\n static description =\n \"Build skills and agents into standalone plugins. By default, compiles all skills. Use --skill to compile a specific skill only. Use --agents-dir to also compile agents.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --skill cli-commander\",\n \"<%= config.bin %> <%= command.id %> --skills-dir ./src/skills --output-dir ./plugins\",\n \"<%= config.bin %> <%= command.id %> --agents-dir ./agents\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n \"skills-dir\": Flags.string({\n char: \"s\",\n description: \"Skills source directory\",\n default: DIRS.skills,\n }),\n \"agents-dir\": Flags.string({\n char: \"a\",\n description: \"Agents source directory (builds one plugin per agent)\",\n }),\n \"output-dir\": Flags.string({\n char: \"o\",\n description: \"Output directory\",\n default: DEFAULT_OUTPUT_DIR,\n }),\n skill: Flags.string({\n description: \"Compile only a specific skill (path to skill directory)\",\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildPlugins);\n\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const skillsDir = path.resolve(projectRoot, flags[\"skills-dir\"]);\n const outputDir = path.resolve(projectRoot, flags[\"output-dir\"]);\n\n this.log(\"\");\n this.log(\"Compiling skill plugins\");\n this.log(` Skills directory: ${skillsDir}`);\n this.log(` Output directory: ${outputDir}`);\n this.log(\"\");\n\n try {\n if (flags.skill) {\n const skillPath = path.resolve(skillsDir, flags.skill);\n this.log(`Compiling skill at ${skillPath}...`);\n\n const result = await compileSkillPlugin({\n skillPath,\n outputDir,\n });\n\n this.log(`Compiled ${result.skillName}`);\n this.log(` Plugin path: ${result.pluginPath}`);\n } else {\n this.log(\"Finding and compiling all skills...\");\n\n const results = await compileAllSkillPlugins(skillsDir, outputDir);\n\n this.log(`Compiled ${results.length} skill plugins`);\n printCompilationSummary(results);\n }\n\n if (flags[\"agents-dir\"]) {\n const agentsDir = path.resolve(projectRoot, flags[\"agents-dir\"]);\n\n this.log(\"\");\n this.log(\"Compiling agent plugins\");\n this.log(` Agents directory: ${agentsDir}`);\n this.log(\"\");\n\n this.log(\"Finding and compiling all agents...\");\n\n const agentResults = await compileAllAgentPlugins(agentsDir, outputDir);\n\n this.log(`Compiled ${agentResults.length} agent plugins`);\n printAgentCompilationSummary(agentResults);\n }\n\n this.log(\"\");\n this.logSuccess(\"Plugin compilation complete!\");\n } catch (error) {\n this.log(\"Compilation failed\");\n this.handleError(error);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAS,aAAa;AACtB,OAAO,UAAU;AAYjB,IAAM,qBAAqB;AAE3B,IAAqB,eAArB,MAAqB,sBAAqB,YAAY;AAAA,EACpD,OAAO,UAAU;AAAA,EAEjB,OAAO,cACL;AAAA,EAEF,OAAO,WAAW;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAO,QAAQ;AAAA,IACb,GAAG,YAAY;AAAA,IACf,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,KAAK;AAAA,IAChB,CAAC;AAAA,IACD,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,IACf,CAAC;AAAA,IACD,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,IACD,OAAO,MAAM,OAAO;AAAA,MAClB,aAAa;AAAA,IACf,CAAC;AAAA,IACD,SAAS,MAAM,QAAQ;AAAA,MACrB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,aAAY;AAE/C,eAAW,MAAM,OAAO;AAExB,UAAM,cAAc,QAAQ,IAAI;AAChC,UAAM,YAAY,KAAK,QAAQ,aAAa,MAAM,YAAY,CAAC;AAC/D,UAAM,YAAY,KAAK,QAAQ,aAAa,MAAM,YAAY,CAAC;AAE/D,SAAK,IAAI,EAAE;AACX,SAAK,IAAI,yBAAyB;AAClC,SAAK,IAAI,uBAAuB,SAAS,EAAE;AAC3C,SAAK,IAAI,uBAAuB,SAAS,EAAE;AAC3C,SAAK,IAAI,EAAE;AAEX,QAAI;AACF,UAAI,MAAM,OAAO;AACf,cAAM,YAAY,KAAK,QAAQ,WAAW,MAAM,KAAK;AACrD,aAAK,IAAI,sBAAsB,SAAS,KAAK;AAE7C,cAAM,SAAS,MAAM,mBAAmB;AAAA,UACtC;AAAA,UACA;AAAA,QACF,CAAC;AAED,aAAK,IAAI,YAAY,OAAO,SAAS,EAAE;AACvC,aAAK,IAAI,kBAAkB,OAAO,UAAU,EAAE;AAAA,MAChD,OAAO;AACL,aAAK,IAAI,qCAAqC;AAE9C,cAAM,UAAU,MAAM,uBAAuB,WAAW,SAAS;AAEjE,aAAK,IAAI,YAAY,QAAQ,MAAM,gBAAgB;AACnD,gCAAwB,OAAO;AAAA,MACjC;AAEA,UAAI,MAAM,YAAY,GAAG;AACvB,cAAM,YAAY,KAAK,QAAQ,aAAa,MAAM,YAAY,CAAC;AAE/D,aAAK,IAAI,EAAE;AACX,aAAK,IAAI,yBAAyB;AAClC,aAAK,IAAI,uBAAuB,SAAS,EAAE;AAC3C,aAAK,IAAI,EAAE;AAEX,aAAK,IAAI,qCAAqC;AAE9C,cAAM,eAAe,MAAM,uBAAuB,WAAW,SAAS;AAEtE,aAAK,IAAI,YAAY,aAAa,MAAM,gBAAgB;AACxD,qCAA6B,YAAY;AAAA,MAC3C;AAEA,WAAK,IAAI,EAAE;AACX,WAAK,WAAW,8BAA8B;AAAA,IAChD,SAAS,OAAO;AACd,WAAK,IAAI,oBAAoB;AAC7B,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/commands/build/plugins.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport { DIRS } from \"../../consts\";\nimport {\n compileAllSkillPlugins,\n compileSkillPlugin,\n printCompilationSummary,\n} from \"../../lib/skills\";\nimport { compileAllAgentPlugins, printAgentCompilationSummary } from \"../../lib/agents\";\n\nconst DEFAULT_OUTPUT_DIR = \"dist/plugins\";\n\nexport default class BuildPlugins extends BaseCommand {\n static summary = \"Build skills and agents into standalone plugins\";\n\n static description =\n \"Build skills and agents into standalone plugins. By default, compiles all skills. Use --skill to compile a specific skill only. Use --agents-dir to also compile agents.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --skill cli-commander\",\n \"<%= config.bin %> <%= command.id %> --skills-dir ./src/skills --output-dir ./plugins\",\n \"<%= config.bin %> <%= command.id %> --agents-dir ./agents\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n \"skills-dir\": Flags.string({\n char: \"s\",\n description: \"Skills source directory\",\n default: DIRS.skills,\n }),\n \"agents-dir\": Flags.string({\n char: \"a\",\n description: \"Agents source directory (builds one plugin per agent)\",\n }),\n \"output-dir\": Flags.string({\n char: \"o\",\n description: \"Output directory\",\n default: DEFAULT_OUTPUT_DIR,\n }),\n skill: Flags.string({\n description: \"Compile only a specific skill (path to skill directory)\",\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildPlugins);\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const skillsDir = path.resolve(projectRoot, flags[\"skills-dir\"]);\n const outputDir = path.resolve(projectRoot, flags[\"output-dir\"]);\n\n this.printHeader(skillsDir, outputDir);\n\n try {\n await this.compileSkills(flags.skill, skillsDir, outputDir);\n\n if (flags[\"agents-dir\"]) {\n await this.compileAgents(projectRoot, flags[\"agents-dir\"], outputDir);\n }\n\n this.log(\"\");\n this.logSuccess(\"Plugin compilation complete!\");\n } catch (error) {\n this.log(\"Compilation failed\");\n this.handleError(error);\n }\n }\n\n private printHeader(skillsDir: string, outputDir: string): void {\n this.log(\"\");\n this.log(\"Compiling skill plugins\");\n this.log(` Skills directory: ${skillsDir}`);\n this.log(` Output directory: ${outputDir}`);\n this.log(\"\");\n }\n\n private async compileSkills(\n skillFlag: string | undefined,\n skillsDir: string,\n outputDir: string,\n ): Promise<void> {\n if (skillFlag) {\n const skillPath = path.resolve(skillsDir, skillFlag);\n this.log(`Compiling skill at ${skillPath}...`);\n\n const result = await compileSkillPlugin({\n skillPath,\n outputDir,\n });\n\n this.log(`Compiled ${result.skillName}`);\n this.log(` Plugin path: ${result.pluginPath}`);\n } else {\n this.log(\"Finding and compiling all skills...\");\n\n const results = await compileAllSkillPlugins(skillsDir, outputDir);\n\n this.log(`Compiled ${results.length} skill plugins`);\n printCompilationSummary(results);\n }\n }\n\n private async compileAgents(\n projectRoot: string,\n agentsDir: string,\n outputDir: string,\n ): Promise<void> {\n const resolvedAgentsDir = path.resolve(projectRoot, agentsDir);\n\n this.log(\"\");\n this.log(\"Compiling agent plugins\");\n this.log(` Agents directory: ${resolvedAgentsDir}`);\n this.log(\"\");\n\n this.log(\"Finding and compiling all agents...\");\n\n const agentResults = await compileAllAgentPlugins(resolvedAgentsDir, outputDir);\n\n this.log(`Compiled ${agentResults.length} agent plugins`);\n printAgentCompilationSummary(agentResults);\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,27 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getAgentDefinitions
4
- } from "../../chunk-YM3V4Q3W.js";
4
+ } from "../../chunk-DZ2IQERZ.js";
5
5
  import {
6
6
  compileStackPlugin,
7
7
  loadStacks,
8
8
  printStackCompilationSummary
9
- } from "../../chunk-EADZIYQW.js";
10
- import "../../chunk-STMRDPGZ.js";
11
- import "../../chunk-ANXHMG32.js";
9
+ } from "../../chunk-FVBSRBU3.js";
10
+ import "../../chunk-XM2Y5AFQ.js";
11
+ import "../../chunk-47HMJ4BY.js";
12
12
  import {
13
13
  BaseCommand,
14
14
  EXIT_CODES
15
- } from "../../chunk-TAPEVEET.js";
15
+ } from "../../chunk-7K7SA4TZ.js";
16
16
  import {
17
17
  setVerbose
18
- } from "../../chunk-ZTRQO5CX.js";
19
- import "../../chunk-6XWHJHNZ.js";
18
+ } from "../../chunk-OOHPUT5M.js";
19
+ import "../../chunk-WEYWZ7UE.js";
20
20
  import {
21
21
  PROJECT_ROOT,
22
22
  STACKS_FILE_PATH
23
23
  } from "../../chunk-6PGL2XMY.js";
24
- import "../../chunk-NPMMU4GY.js";
24
+ import "../../chunk-IR7ADPAZ.js";
25
25
  import {
26
26
  init_esm_shims
27
27
  } from "../../chunk-DHET7RCE.js";
@@ -88,51 +88,59 @@ var BuildStack = class _BuildStack extends BaseCommand {
88
88
  setVerbose(flags.verbose);
89
89
  const projectRoot = process.cwd();
90
90
  const outputDir = path.resolve(projectRoot, flags["output-dir"]);
91
- let stackId = flags.stack;
92
- if (!stackId) {
93
- const stacks = await loadStacks(projectRoot);
94
- const availableStacks = stacks.map((s) => s.id).sort();
95
- if (availableStacks.length === 0) {
96
- this.error(`No stacks found in ${STACKS_FILE_PATH}`, {
97
- exit: EXIT_CODES.ERROR
98
- });
99
- }
100
- stackId = await new Promise((resolve, reject) => {
101
- const { waitUntilExit } = render(
102
- /* @__PURE__ */ jsx(
103
- StackSelector,
104
- {
105
- availableStacks,
106
- onSelect: (selected) => {
107
- resolve(selected);
108
- }
109
- }
110
- )
111
- );
112
- waitUntilExit().catch(reject);
113
- }).catch(() => {
114
- this.log("Cancelled");
115
- this.exit(EXIT_CODES.CANCELLED);
91
+ const stackId = flags.stack ?? await this.selectStackInteractively(projectRoot);
92
+ this.printCompileHeader(stackId, outputDir);
93
+ const agentSourcePath = await this.loadAgentPartials(flags);
94
+ await this.compileStack(stackId, outputDir, projectRoot, agentSourcePath);
95
+ }
96
+ async selectStackInteractively(projectRoot) {
97
+ const stacks = await loadStacks(projectRoot);
98
+ const availableStacks = stacks.map((s) => s.id).sort();
99
+ if (availableStacks.length === 0) {
100
+ this.error(`No stacks found in ${STACKS_FILE_PATH}`, {
101
+ exit: EXIT_CODES.ERROR
116
102
  });
117
103
  }
104
+ return new Promise((resolve, reject) => {
105
+ const { waitUntilExit } = render(
106
+ /* @__PURE__ */ jsx(
107
+ StackSelector,
108
+ {
109
+ availableStacks,
110
+ onSelect: (selected) => {
111
+ resolve(selected);
112
+ }
113
+ }
114
+ )
115
+ );
116
+ waitUntilExit().catch(reject);
117
+ }).catch(() => {
118
+ this.log("Cancelled");
119
+ this.exit(EXIT_CODES.CANCELLED);
120
+ });
121
+ }
122
+ printCompileHeader(stackId, outputDir) {
118
123
  this.log("");
119
124
  this.log(`Compiling stack plugin: ${stackId}`);
120
125
  this.log(` Output directory: ${outputDir}`);
121
126
  this.log("");
122
- let agentSourcePath;
127
+ }
128
+ async loadAgentPartials(flags) {
123
129
  try {
124
130
  this.log(flags["agent-source"] ? "Fetching agent partials..." : "Loading agent partials...");
125
131
  const agentDefs = await getAgentDefinitions(flags["agent-source"], {
126
132
  forceRefresh: flags.refresh
127
133
  });
128
- agentSourcePath = agentDefs.sourcePath;
129
134
  this.log(
130
135
  flags["agent-source"] ? `Agent partials fetched from: ${flags["agent-source"]}` : `Agent partials loaded from: ${PROJECT_ROOT}`
131
136
  );
137
+ return agentDefs.sourcePath;
132
138
  } catch (error) {
133
139
  this.log("Failed to load agent partials");
134
140
  this.handleError(error);
135
141
  }
142
+ }
143
+ async compileStack(stackId, outputDir, projectRoot, agentSourcePath) {
136
144
  try {
137
145
  this.log(`Compiling stack "${stackId}"...`);
138
146
  const result = await compileStackPlugin({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/build/stack.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags } from \"@oclif/core\";\nimport { Select } from \"@inkjs/ui\";\nimport { render, Box, Text } from \"ink\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport { PROJECT_ROOT, STACKS_FILE_PATH } from \"../../consts\";\nimport { compileStackPlugin, printStackCompilationSummary, loadStacks } from \"../../lib/stacks\";\nimport { getAgentDefinitions } from \"../../lib/agents\";\nimport { EXIT_CODES } from \"../../lib/exit-codes\";\n\nconst DEFAULT_OUTPUT_DIR = \"dist/stacks\";\n\ntype StackSelectorProps = {\n availableStacks: string[];\n onSelect: (stackId: string) => void;\n};\n\nconst StackSelector: React.FC<StackSelectorProps> = ({ availableStacks, onSelect }) => {\n return (\n <Box flexDirection=\"column\">\n <Text>Select a stack to compile:</Text>\n <Select\n options={availableStacks.map((name) => ({\n value: name,\n label: name,\n }))}\n onChange={(value) => {\n onSelect(value);\n }}\n />\n </Box>\n );\n};\n\nexport default class BuildStack extends BaseCommand {\n static summary = \"Build a stack into a standalone plugin\";\n\n static description =\n \"Build a stack into a standalone plugin (requires skills repo). If no stack is specified, you will be prompted to select one.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --stack frontend-stack\",\n \"<%= config.bin %> <%= command.id %> --stack frontend-stack --output-dir ./plugins\",\n \"<%= config.bin %> <%= command.id %> --agent-source /path/to/agents --refresh\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n stack: Flags.string({\n description: \"Stack ID to compile (directory name in src/stacks/)\",\n }),\n \"output-dir\": Flags.string({\n char: \"o\",\n description: \"Output directory\",\n default: DEFAULT_OUTPUT_DIR,\n }),\n \"agent-source\": Flags.string({\n description: \"Agent partials source (default: local CLI)\",\n }),\n refresh: Flags.boolean({\n description: \"Force refresh remote agent source\",\n default: false,\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildStack);\n\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const outputDir = path.resolve(projectRoot, flags[\"output-dir\"]);\n\n let stackId = flags.stack;\n\n if (!stackId) {\n const stacks = await loadStacks(projectRoot);\n const availableStacks = stacks.map((s) => s.id).sort();\n\n if (availableStacks.length === 0) {\n this.error(`No stacks found in ${STACKS_FILE_PATH}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n stackId = await new Promise<string>((resolve, reject) => {\n const { waitUntilExit } = render(\n <StackSelector\n availableStacks={availableStacks}\n onSelect={(selected) => {\n resolve(selected);\n }}\n />,\n );\n\n waitUntilExit().catch(reject);\n }).catch(() => {\n this.log(\"Cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n });\n }\n\n this.log(\"\");\n this.log(`Compiling stack plugin: ${stackId}`);\n this.log(` Output directory: ${outputDir}`);\n this.log(\"\");\n\n let agentSourcePath: string;\n try {\n this.log(flags[\"agent-source\"] ? \"Fetching agent partials...\" : \"Loading agent partials...\");\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n agentSourcePath = agentDefs.sourcePath;\n this.log(\n flags[\"agent-source\"]\n ? `Agent partials fetched from: ${flags[\"agent-source\"]}`\n : `Agent partials loaded from: ${PROJECT_ROOT}`,\n );\n } catch (error) {\n this.log(\"Failed to load agent partials\");\n this.handleError(error);\n }\n\n try {\n this.log(`Compiling stack \"${stackId}\"...`);\n\n const result = await compileStackPlugin({\n stackId,\n outputDir,\n projectRoot,\n agentSourcePath,\n });\n\n this.log(`Compiled stack plugin: ${result.stackName}`);\n\n printStackCompilationSummary(result);\n\n this.log(\"\");\n this.logSuccess(\"Stack plugin compilation complete!\");\n } catch (error) {\n this.log(\"Compilation failed\");\n this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/commands/build/stack.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags } from \"@oclif/core\";\nimport { Select } from \"@inkjs/ui\";\nimport { render, Box, Text } from \"ink\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../../base-command\";\nimport { setVerbose } from \"../../utils/logger\";\nimport { PROJECT_ROOT, STACKS_FILE_PATH } from \"../../consts\";\nimport { compileStackPlugin, printStackCompilationSummary, loadStacks } from \"../../lib/stacks\";\nimport { getAgentDefinitions } from \"../../lib/agents\";\nimport { EXIT_CODES } from \"../../lib/exit-codes\";\n\nconst DEFAULT_OUTPUT_DIR = \"dist/stacks\";\n\ntype StackSelectorProps = {\n availableStacks: string[];\n onSelect: (stackId: string) => void;\n};\n\nconst StackSelector: React.FC<StackSelectorProps> = ({ availableStacks, onSelect }) => {\n return (\n <Box flexDirection=\"column\">\n <Text>Select a stack to compile:</Text>\n <Select\n options={availableStacks.map((name) => ({\n value: name,\n label: name,\n }))}\n onChange={(value) => {\n onSelect(value);\n }}\n />\n </Box>\n );\n};\n\nexport default class BuildStack extends BaseCommand {\n static summary = \"Build a stack into a standalone plugin\";\n\n static description =\n \"Build a stack into a standalone plugin (requires skills repo). If no stack is specified, you will be prompted to select one.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --stack frontend-stack\",\n \"<%= config.bin %> <%= command.id %> --stack frontend-stack --output-dir ./plugins\",\n \"<%= config.bin %> <%= command.id %> --agent-source /path/to/agents --refresh\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n stack: Flags.string({\n description: \"Stack ID to compile (directory name in src/stacks/)\",\n }),\n \"output-dir\": Flags.string({\n char: \"o\",\n description: \"Output directory\",\n default: DEFAULT_OUTPUT_DIR,\n }),\n \"agent-source\": Flags.string({\n description: \"Agent partials source (default: local CLI)\",\n }),\n refresh: Flags.boolean({\n description: \"Force refresh remote agent source\",\n default: false,\n }),\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(BuildStack);\n setVerbose(flags.verbose);\n\n const projectRoot = process.cwd();\n const outputDir = path.resolve(projectRoot, flags[\"output-dir\"]);\n\n const stackId = flags.stack ?? (await this.selectStackInteractively(projectRoot));\n\n this.printCompileHeader(stackId, outputDir);\n const agentSourcePath = await this.loadAgentPartials(flags);\n await this.compileStack(stackId, outputDir, projectRoot, agentSourcePath);\n }\n\n private async selectStackInteractively(projectRoot: string): Promise<string> {\n const stacks = await loadStacks(projectRoot);\n const availableStacks = stacks.map((s) => s.id).sort();\n\n if (availableStacks.length === 0) {\n this.error(`No stacks found in ${STACKS_FILE_PATH}`, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n return new Promise<string>((resolve, reject) => {\n const { waitUntilExit } = render(\n <StackSelector\n availableStacks={availableStacks}\n onSelect={(selected) => {\n resolve(selected);\n }}\n />,\n );\n\n waitUntilExit().catch(reject);\n }).catch(() => {\n this.log(\"Cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n });\n }\n\n private printCompileHeader(stackId: string, outputDir: string): void {\n this.log(\"\");\n this.log(`Compiling stack plugin: ${stackId}`);\n this.log(` Output directory: ${outputDir}`);\n this.log(\"\");\n }\n\n private async loadAgentPartials(flags: {\n \"agent-source\"?: string;\n refresh: boolean;\n }): Promise<string> {\n try {\n this.log(flags[\"agent-source\"] ? \"Fetching agent partials...\" : \"Loading agent partials...\");\n const agentDefs = await getAgentDefinitions(flags[\"agent-source\"], {\n forceRefresh: flags.refresh,\n });\n this.log(\n flags[\"agent-source\"]\n ? `Agent partials fetched from: ${flags[\"agent-source\"]}`\n : `Agent partials loaded from: ${PROJECT_ROOT}`,\n );\n return agentDefs.sourcePath;\n } catch (error) {\n this.log(\"Failed to load agent partials\");\n this.handleError(error);\n }\n }\n\n private async compileStack(\n stackId: string,\n outputDir: string,\n projectRoot: string,\n agentSourcePath: string,\n ): Promise<void> {\n try {\n this.log(`Compiling stack \"${stackId}\"...`);\n\n const result = await compileStackPlugin({\n stackId,\n outputDir,\n projectRoot,\n agentSourcePath,\n });\n\n this.log(`Compiled stack plugin: ${result.stackName}`);\n printStackCompilationSummary(result);\n\n this.log(\"\");\n this.logSuccess(\"Stack plugin compilation complete!\");\n } catch (error) {\n this.log(\"Compilation failed\");\n this.handleError(error);\n }\n }\n}\n"],"mappings":"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","names":[]}