@claude-collective/cli 0.26.0 → 0.26.1

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 (58) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{chunk-7UPXT32F.js → chunk-2OW7FCIF.js} +2 -2
  3. package/dist/{chunk-TDZE4TDG.js → chunk-2YMMJP4Z.js} +2 -2
  4. package/dist/{chunk-ZDREFYD2.js → chunk-324DM2L6.js} +12 -2
  5. package/dist/chunk-324DM2L6.js.map +1 -0
  6. package/dist/{chunk-ETQ3BPGU.js → chunk-CQ7657GA.js} +18 -7
  7. package/dist/{chunk-ETQ3BPGU.js.map → chunk-CQ7657GA.js.map} +1 -1
  8. package/dist/{chunk-I3YYG5IO.js → chunk-CZBNDP5B.js} +2 -2
  9. package/dist/{chunk-4357L7VK.js → chunk-G35SYE6Z.js} +3 -3
  10. package/dist/{chunk-R7B63JAP.js → chunk-HIQGK5XJ.js} +5 -5
  11. package/dist/{chunk-R5KJVI54.js → chunk-NT4K647L.js} +3 -3
  12. package/dist/commands/build/marketplace.js +1 -1
  13. package/dist/commands/build/plugins.js +3 -3
  14. package/dist/commands/build/stack.js +3 -3
  15. package/dist/commands/compile.js +3 -3
  16. package/dist/commands/config/get.js +2 -2
  17. package/dist/commands/config/index.js +3 -3
  18. package/dist/commands/config/path.js +2 -2
  19. package/dist/commands/config/set-project.js +2 -2
  20. package/dist/commands/config/show.js +3 -3
  21. package/dist/commands/config/unset-project.js +2 -2
  22. package/dist/commands/diff.js +2 -2
  23. package/dist/commands/doctor.js +2 -2
  24. package/dist/commands/edit.js +7 -7
  25. package/dist/commands/eject.js +2 -2
  26. package/dist/commands/import/skill.js +2 -2
  27. package/dist/commands/info.js +2 -2
  28. package/dist/commands/init.js +6 -6
  29. package/dist/commands/list.js +2 -2
  30. package/dist/commands/new/agent.js +2 -2
  31. package/dist/commands/new/skill.js +2 -2
  32. package/dist/commands/outdated.js +2 -2
  33. package/dist/commands/search.js +2 -2
  34. package/dist/commands/uninstall.js +2 -2
  35. package/dist/commands/update.js +3 -3
  36. package/dist/commands/validate.js +2 -2
  37. package/dist/commands/version/bump.js +2 -2
  38. package/dist/commands/version/index.js +2 -2
  39. package/dist/commands/version/set.js +2 -2
  40. package/dist/commands/version/show.js +2 -2
  41. package/dist/components/wizard/step-build.js +3 -3
  42. package/dist/components/wizard/step-build.test.js +3 -3
  43. package/dist/components/wizard/step-settings.js +3 -3
  44. package/dist/components/wizard/step-settings.test.js +6 -6
  45. package/dist/components/wizard/step-sources.js +3 -3
  46. package/dist/components/wizard/step-sources.test.js +3 -3
  47. package/dist/components/wizard/wizard.js +6 -6
  48. package/dist/hooks/init.js +2 -2
  49. package/dist/{source-manager-EYO3F2DV.js → source-manager-VWIIDTK5.js} +3 -3
  50. package/package.json +1 -1
  51. package/dist/chunk-ZDREFYD2.js.map +0 -1
  52. /package/dist/{chunk-7UPXT32F.js.map → chunk-2OW7FCIF.js.map} +0 -0
  53. /package/dist/{chunk-TDZE4TDG.js.map → chunk-2YMMJP4Z.js.map} +0 -0
  54. /package/dist/{chunk-I3YYG5IO.js.map → chunk-CZBNDP5B.js.map} +0 -0
  55. /package/dist/{chunk-4357L7VK.js.map → chunk-G35SYE6Z.js.map} +0 -0
  56. /package/dist/{chunk-R7B63JAP.js.map → chunk-HIQGK5XJ.js.map} +0 -0
  57. /package/dist/{chunk-R5KJVI54.js.map → chunk-NT4K647L.js.map} +0 -0
  58. /package/dist/{source-manager-EYO3F2DV.js.map → source-manager-VWIIDTK5.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.26.1] - 2026-02-13
9
+
10
+ ### Fixed
11
+
12
+ - **Metadata version coercion** — `cc build plugins` no longer warns on `version: 1` in metadata.yaml. Added lenient `skillMetadataLoaderSchema` that coerces YAML numeric versions to strings.
13
+ - **Stack lookup from source in plugin mode** — `compileStackPlugin` now resolves stacks from the source's `config/stacks.yaml` before falling back to the CLI's built-in stacks. Fixes "stack not found" error when running `cc init --source` with a private marketplace in plugin mode.
14
+ - **Skills matrix fallback** — Stack compiler gracefully falls back to CLI matrix when the source's `config/skills-matrix.yaml` is missing or invalid.
15
+
8
16
  ## [0.26.0] - 2026-02-13
9
17
 
10
18
  ### Added
@@ -7,7 +7,7 @@ import {
7
7
  addSource,
8
8
  getSourceSummary,
9
9
  removeSource
10
- } from "./chunk-ETQ3BPGU.js";
10
+ } from "./chunk-CQ7657GA.js";
11
11
  import {
12
12
  init_esm_shims
13
13
  } from "./chunk-AWKZ5BDL.js";
@@ -194,4 +194,4 @@ var StepSettings = ({ projectDir, onClose }) => {
194
194
  export {
195
195
  StepSettings
196
196
  };
197
- //# sourceMappingURL=chunk-7UPXT32F.js.map
197
+ //# sourceMappingURL=chunk-2OW7FCIF.js.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  getAvailableSkills,
13
13
  resolveAlias
14
- } from "./chunk-ETQ3BPGU.js";
14
+ } from "./chunk-CQ7657GA.js";
15
15
  import {
16
16
  init_esm_shims
17
17
  } from "./chunk-AWKZ5BDL.js";
@@ -217,4 +217,4 @@ export {
217
217
  getDisplayLabel,
218
218
  StepBuild
219
219
  };
220
- //# sourceMappingURL=chunk-TDZE4TDG.js.map
220
+ //# sourceMappingURL=chunk-2YMMJP4Z.js.map
@@ -346,6 +346,16 @@ var skillMetadataConfigSchema = z.object({
346
346
  compatible_with: z.array(skillIdSchema).optional(),
347
347
  conflicts_with: z.array(skillIdSchema).optional()
348
348
  });
349
+ var skillMetadataLoaderSchema = z.object({
350
+ category: categoryPathSchema.optional(),
351
+ category_exclusive: z.boolean().optional(),
352
+ author: z.string().optional(),
353
+ version: z.union([z.string(), z.number()]).transform(String).optional(),
354
+ tags: z.array(z.string()).optional(),
355
+ requires: z.array(skillIdSchema).optional(),
356
+ compatible_with: z.array(skillIdSchema).optional(),
357
+ conflicts_with: z.array(skillIdSchema).optional()
358
+ }).passthrough();
349
359
  var pluginAuthorSchema = z.object({
350
360
  name: z.string(),
351
361
  email: z.string().optional()
@@ -674,7 +684,7 @@ export {
674
684
  categoryPathSchema,
675
685
  hooksRecordSchema,
676
686
  skillFrontmatterLoaderSchema,
677
- skillMetadataConfigSchema,
687
+ skillMetadataLoaderSchema,
678
688
  pluginAuthorSchema,
679
689
  pluginManifestSchema,
680
690
  agentYamlConfigSchema,
@@ -693,4 +703,4 @@ export {
693
703
  metadataValidationSchema,
694
704
  stackConfigValidationSchema
695
705
  };
696
- //# sourceMappingURL=chunk-ZDREFYD2.js.map
706
+ //# sourceMappingURL=chunk-324DM2L6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/utils/logger.ts","../src/cli/utils/fs.ts","../src/cli/lib/schemas.ts"],"sourcesContent":["// Verbose logging utility for lib/ modules that don't have access to oclif command context.\n// In oclif commands, prefer using this.log() instead.\n\nlet verboseMode = false;\n\nexport function setVerbose(enabled: boolean): void {\n verboseMode = enabled;\n}\n\nexport function verbose(msg: string): void {\n if (verboseMode) {\n console.log(` ${msg}`);\n }\n}\n\n// Always visible (not gated by verbose mode).\n// Used for issues the user should know about, like unresolved references.\nexport function warn(msg: string): void {\n console.warn(` Warning: ${msg}`);\n}\n","import fs from \"fs-extra\";\nimport fg from \"fast-glob\";\nimport path from \"path\";\n\nexport async function readFile(filePath: string): Promise<string> {\n return fs.readFile(filePath, \"utf-8\");\n}\n\nexport async function readFileOptional(filePath: string, fallback = \"\"): Promise<string> {\n try {\n return await fs.readFile(filePath, \"utf-8\");\n } catch {\n return fallback;\n }\n}\n\nexport async function fileExists(filePath: string): Promise<boolean> {\n return fs.pathExists(filePath);\n}\n\nexport async function directoryExists(dirPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(dirPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n}\n\nexport async function listDirectories(dirPath: string): Promise<string[]> {\n try {\n const entries = await fs.readdir(dirPath, { withFileTypes: true });\n return entries.filter((e) => e.isDirectory()).map((e) => e.name);\n } catch {\n return [];\n }\n}\n\nexport async function glob(pattern: string, cwd: string): Promise<string[]> {\n return fg(pattern, { cwd, onlyFiles: true });\n}\n\nexport async function writeFile(filePath: string, content: string): Promise<void> {\n await fs.ensureDir(path.dirname(filePath));\n await fs.writeFile(filePath, content, \"utf-8\");\n}\n\nexport async function ensureDir(dirPath: string): Promise<void> {\n await fs.ensureDir(dirPath);\n}\n\nexport async function remove(filePath: string): Promise<void> {\n await fs.remove(filePath);\n}\n\nexport async function copy(src: string, dest: string): Promise<void> {\n await fs.copy(src, dest);\n}\n","import { z } from \"zod\";\nimport type {\n AgentHookAction,\n AgentHookDefinition,\n AgentName,\n AgentYamlConfig,\n AlternativeGroup,\n BoundSkill,\n CategoryDefinition,\n CategoryPath,\n ConflictRule,\n DiscourageRule,\n Domain,\n Marketplace,\n MarketplaceMetadata,\n MarketplaceOwner,\n MarketplacePlugin,\n MarketplaceRemoteSource,\n ModelName,\n PermissionMode,\n PluginAuthor,\n PluginManifest,\n ProjectConfig,\n RecommendRule,\n RelationshipDefinitions,\n RequireRule,\n SkillAssignment,\n SkillDisplayName,\n SkillFrontmatter,\n SkillId,\n SkillMetadataConfig,\n SkillSource,\n SkillSourceType,\n SkillsMatrixConfig,\n Stack,\n StackAgentConfig,\n StacksConfig,\n Subcategory,\n ValidationResult,\n} from \"../types\";\n\nexport const domainSchema = z.enum([\n \"web\",\n \"web-extras\",\n \"api\",\n \"cli\",\n \"mobile\",\n \"shared\",\n]) as z.ZodType<Domain>;\n\nexport const skillSourceTypeSchema = z.enum([\n \"public\",\n \"private\",\n \"local\",\n]) as z.ZodType<SkillSourceType>;\n\nexport const skillSourceSchema = z\n .object({\n name: z.string(),\n type: skillSourceTypeSchema,\n url: z.string().optional(),\n version: z.string().optional(),\n installed: z.boolean(),\n installMode: z.enum([\"plugin\", \"local\"]).optional(),\n })\n .passthrough();\n\nexport const boundSkillSchema: z.ZodType<BoundSkill> = z.object({\n id: z.string() as z.ZodType<SkillId>,\n sourceUrl: z.string(),\n sourceName: z.string(),\n boundTo: z.string(),\n description: z.string().optional(),\n});\n\nexport const subcategorySchema = z.enum([\n // Web\n \"framework\",\n \"meta-framework\",\n \"styling\",\n \"client-state\",\n \"server-state\",\n \"forms\",\n \"testing\",\n \"ui-components\",\n \"mocking\",\n \"error-handling\",\n \"i18n\",\n \"file-upload\",\n \"files\",\n \"utilities\",\n \"realtime\",\n \"animation\",\n \"pwa\",\n \"accessibility\",\n \"web-performance\",\n // API\n \"api\",\n \"database\",\n \"auth\",\n \"observability\",\n \"analytics\",\n \"email\",\n \"performance\",\n // Mobile\n \"mobile-framework\",\n // Shared / Infrastructure\n \"monorepo\",\n \"tooling\",\n \"security\",\n \"methodology\",\n \"research\",\n \"reviewing\",\n \"ci-cd\",\n // CLI\n \"cli-framework\",\n \"cli-prompts\",\n \"cli-testing\",\n]) as z.ZodType<Subcategory>;\n\nexport const agentNameSchema = z.enum([\n // Developers\n \"web-developer\",\n \"api-developer\",\n \"cli-developer\",\n \"web-architecture\",\n // Meta\n \"agent-summoner\",\n \"documentor\",\n \"skill-summoner\",\n // Migration\n \"cli-migrator\",\n // Pattern\n \"pattern-scout\",\n \"web-pattern-critique\",\n // Planning\n \"web-pm\",\n // Researchers\n \"api-researcher\",\n \"web-researcher\",\n // Reviewers\n \"api-reviewer\",\n \"cli-reviewer\",\n \"web-reviewer\",\n // Testers\n \"cli-tester\",\n \"web-tester\",\n]) as z.ZodType<AgentName>;\n\nexport const modelNameSchema = z.enum([\n \"sonnet\",\n \"opus\",\n \"haiku\",\n \"inherit\",\n]) as z.ZodType<ModelName>;\n\nexport const permissionModeSchema = z.enum([\n \"default\",\n \"acceptEdits\",\n \"dontAsk\",\n \"bypassPermissions\",\n \"plan\",\n \"delegate\",\n]) as z.ZodType<PermissionMode>;\n\nexport const skillDisplayNameSchema = z.enum([\n // Frameworks\n \"react\",\n \"vue\",\n \"angular\",\n \"solidjs\",\n // Meta-frameworks\n \"nextjs-app-router\",\n \"nextjs-server-actions\",\n \"remix\",\n \"nuxt\",\n // Styling\n \"scss-modules\",\n \"cva\",\n \"tailwind\",\n // Client State\n \"zustand\",\n \"redux-toolkit\",\n \"pinia\",\n \"ngrx-signalstore\",\n \"jotai\",\n \"mobx\",\n // Server State / Data Fetching\n \"react-query\",\n \"swr\",\n \"graphql-apollo\",\n \"graphql-urql\",\n \"trpc\",\n // Forms & Validation\n \"react-hook-form\",\n \"vee-validate\",\n \"zod-validation\",\n // Testing\n \"vitest\",\n \"playwright-e2e\",\n \"cypress-e2e\",\n \"react-testing-library\",\n \"vue-test-utils\",\n \"msw\",\n // UI Components\n \"shadcn-ui\",\n \"tanstack-table\",\n \"radix-ui\",\n // Backend - API Framework\n \"hono\",\n \"express\",\n \"fastify\",\n // Backend - Database\n \"drizzle\",\n \"prisma\",\n // Backend - Auth\n \"better-auth\",\n // Backend - Observability\n \"axiom-pino-sentry\",\n // Backend - Analytics\n \"posthog\",\n \"posthog-flags\",\n // Backend - Email\n \"resend\",\n // Backend - CI/CD\n \"github-actions\",\n // Mobile\n \"react-native\",\n \"expo\",\n // Setup / Infrastructure\n \"turborepo\",\n \"tooling\",\n \"posthog-setup\",\n \"env\",\n \"observability-setup\",\n \"email-setup\",\n // Animation / PWA / Realtime / etc.\n \"framer-motion\",\n \"css-animations\",\n \"view-transitions\",\n \"storybook\",\n \"error-boundaries\",\n \"accessibility\",\n \"websockets\",\n \"sse\",\n \"socket-io\",\n \"service-workers\",\n \"file-upload\",\n \"image-handling\",\n \"date-fns\",\n // Backend-specific category skills\n \"api-testing\",\n \"api-performance\",\n \"web-performance\",\n // Security\n \"security\",\n // CLI\n \"commander\",\n \"cli-commander\",\n \"oclif\",\n // Reviewing / Meta\n \"reviewing\",\n \"cli-reviewing\",\n \"research-methodology\",\n // Methodology\n \"investigation-requirements\",\n \"anti-over-engineering\",\n \"success-criteria\",\n \"write-verification\",\n \"improvement-protocol\",\n \"context-management\",\n]) as z.ZodType<SkillDisplayName>;\n\nconst SKILL_ID_PATTERN = /^(web|api|cli|mobile|infra|meta|security)-.+-.+$/;\n\n// Regex-based since Zod cannot express template literal types natively\nexport const skillIdSchema = z\n .string()\n .regex(\n SKILL_ID_PATTERN,\n \"Must be a valid skill ID (e.g., 'web-framework-react')\",\n ) as z.ZodType<SkillId>;\n\n// Accepts: \"prefix/subcategory\", \"prefix-subcategory\", bare subcategory, or \"local\"\nexport const categoryPathSchema = z.string().refine(\n (val): val is CategoryPath => {\n // \"local\" literal\n if (val === \"local\") return true;\n // prefix/subcategory format\n if (/^(web|api|cli|mobile|infra|meta|security)\\/.+$/.test(val)) return true;\n // prefix-subcategory format\n if (/^(web|api|cli|mobile|infra|meta|security)-.+$/.test(val)) return true;\n // Bare subcategory — validated against the subcategory union\n return subcategorySchema.safeParse(val).success;\n },\n {\n message:\n \"Must be a valid category path (e.g., 'web/framework', 'web-framework', 'testing', or 'local')\",\n },\n) as z.ZodType<CategoryPath>;\n\nexport const agentHookActionSchema: z.ZodType<AgentHookAction> = z.object({\n type: z.enum([\"command\", \"script\", \"prompt\"]),\n command: z.string().optional(),\n script: z.string().optional(),\n prompt: z.string().optional(),\n});\n\nexport const agentHookDefinitionSchema: z.ZodType<AgentHookDefinition> = z.object({\n matcher: z.string().optional(),\n hooks: z.array(agentHookActionSchema).optional(),\n});\n\nexport const hooksRecordSchema = z.record(z.string(), z.array(agentHookDefinitionSchema));\n\nexport const skillAssignmentSchema: z.ZodType<SkillAssignment> = z.object({\n id: skillIdSchema,\n preloaded: z.boolean().optional(),\n local: z.boolean().optional(),\n path: z.string().optional(),\n});\n\nexport const skillFrontmatterSchema: z.ZodType<SkillFrontmatter> = z.object({\n name: skillIdSchema,\n description: z.string(),\n model: modelNameSchema.optional(),\n});\n\n// Lenient: accepts any string for `name` since local/custom skills may not follow strict SkillId pattern\nexport const skillFrontmatterLoaderSchema = z.object({\n name: z.string(),\n description: z.string(),\n model: modelNameSchema.optional(),\n});\n\nexport const skillMetadataConfigSchema: z.ZodType<SkillMetadataConfig> = z.object({\n category: categoryPathSchema.optional(),\n category_exclusive: z.boolean().optional(),\n author: z.string().optional(),\n version: z.string().optional(),\n tags: z.array(z.string()).optional(),\n requires: z.array(skillIdSchema).optional(),\n compatible_with: z.array(skillIdSchema).optional(),\n conflicts_with: z.array(skillIdSchema).optional(),\n});\n\n// Lenient version coercion: YAML parses bare `1` as number, not string.\n// All other fields remain strict — invalid category/skillId warnings are legitimate.\nexport const skillMetadataLoaderSchema = z\n .object({\n category: categoryPathSchema.optional(),\n category_exclusive: z.boolean().optional(),\n author: z.string().optional(),\n version: z.union([z.string(), z.number()]).transform(String).optional(),\n tags: z.array(z.string()).optional(),\n requires: z.array(skillIdSchema).optional(),\n compatible_with: z.array(skillIdSchema).optional(),\n conflicts_with: z.array(skillIdSchema).optional(),\n })\n .passthrough();\n\nexport const pluginAuthorSchema: z.ZodType<PluginAuthor> = z.object({\n name: z.string(),\n email: z.string().optional(),\n});\n\nexport const pluginManifestSchema: z.ZodType<PluginManifest> = z.object({\n name: z.string(),\n version: z.string().optional(),\n description: z.string().optional(),\n author: pluginAuthorSchema.optional(),\n keywords: z.array(z.string()).optional(),\n commands: z.union([z.string(), z.array(z.string())]).optional(),\n agents: z.union([z.string(), z.array(z.string())]).optional(),\n skills: z.union([z.string(), z.array(z.string())]).optional(),\n hooks: z.union([z.string(), hooksRecordSchema]).optional(),\n});\n\nexport const agentYamlConfigSchema: z.ZodType<AgentYamlConfig> = z.object({\n id: agentNameSchema,\n title: z.string(),\n description: z.string(),\n model: modelNameSchema.optional(),\n tools: z.array(z.string()),\n disallowed_tools: z.array(z.string()).optional(),\n permission_mode: permissionModeSchema.optional(),\n hooks: hooksRecordSchema.optional(),\n output_format: z.string().optional(),\n});\n\nexport const projectConfigSchema: z.ZodType<ProjectConfig> = z.object({\n version: z.literal(\"1\").optional(),\n name: z.string(),\n description: z.string().optional(),\n agents: z.array(z.string() as z.ZodType<AgentName>),\n skills: z.array(skillIdSchema),\n\n author: z.string().optional(),\n installMode: z.enum([\"local\", \"plugin\"]).optional(),\n stack: z.record(z.string(), z.record(subcategorySchema, skillIdSchema)).optional(),\n source: z.string().optional(),\n marketplace: z.string().optional(),\n agents_source: z.string().optional(),\n});\n\n// Lenient: name/agents optional since partial configs are valid at load time.\n// Full validation happens in validateProjectConfig().\nexport const projectConfigLoaderSchema = z\n .object({\n version: z.literal(\"1\").optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n agents: z.array(z.string()).optional(),\n skills: z.array(skillIdSchema).optional(),\n\n author: z.string().optional(),\n installMode: z.enum([\"local\", \"plugin\"]).optional(),\n stack: z.record(z.string(), z.record(z.string(), skillIdSchema)).optional(),\n source: z.string().optional(),\n marketplace: z.string().optional(),\n agents_source: z.string().optional(),\n })\n .passthrough();\n\nexport const validationResultSchema: z.ZodType<ValidationResult> = z.object({\n valid: z.boolean(),\n errors: z.array(z.string()),\n warnings: z.array(z.string()),\n});\n\nexport const categoryDefinitionSchema: z.ZodType<CategoryDefinition> = z.object({\n id: subcategorySchema,\n displayName: z.string(),\n description: z.string(),\n domain: domainSchema.optional(),\n parent_domain: domainSchema.optional(),\n exclusive: z.boolean(),\n required: z.boolean(),\n order: z.number(),\n icon: z.string().optional(),\n});\n\n// Lenient: accepts both SkillId and SkillDisplayName, resolved to canonical IDs by matrix-loader\nconst skillRefInYaml = z.string() as z.ZodType<SkillId>;\n\nexport const conflictRuleSchema: z.ZodType<ConflictRule> = z.object({\n skills: z.array(skillRefInYaml),\n reason: z.string(),\n});\n\nexport const discourageRuleSchema: z.ZodType<DiscourageRule> = z.object({\n skills: z.array(skillRefInYaml),\n reason: z.string(),\n});\n\nexport const recommendRuleSchema: z.ZodType<RecommendRule> = z.object({\n when: skillRefInYaml,\n suggest: z.array(skillRefInYaml),\n reason: z.string(),\n});\n\nexport const requireRuleSchema: z.ZodType<RequireRule> = z.object({\n skill: skillRefInYaml,\n needs: z.array(skillRefInYaml),\n needs_any: z.boolean().optional(),\n reason: z.string(),\n});\n\nexport const alternativeGroupSchema: z.ZodType<AlternativeGroup> = z.object({\n purpose: z.string(),\n skills: z.array(skillRefInYaml),\n});\n\nexport const relationshipDefinitionsSchema: z.ZodType<RelationshipDefinitions> = z.object({\n conflicts: z.array(conflictRuleSchema),\n discourages: z.array(discourageRuleSchema),\n recommends: z.array(recommendRuleSchema),\n requires: z.array(requireRuleSchema),\n alternatives: z.array(alternativeGroupSchema),\n});\n\nexport const skillsMatrixConfigSchema: z.ZodType<SkillsMatrixConfig> = z.object({\n version: z.string(),\n categories: z.record(subcategorySchema, categoryDefinitionSchema) as z.ZodType<\n SkillsMatrixConfig[\"categories\"]\n >,\n relationships: relationshipDefinitionsSchema,\n skill_aliases: z.record(skillDisplayNameSchema, skillIdSchema) as z.ZodType<\n SkillsMatrixConfig[\"skill_aliases\"]\n >,\n});\n\n// All fields optional — the loader validates cli_name after parsing\nexport const localRawMetadataSchema = z\n .object({\n cli_name: z.string().optional(),\n cli_description: z.string().optional(),\n category: categoryPathSchema.optional(),\n category_exclusive: z.boolean().optional(),\n usage_guidance: z.string().optional(),\n tags: z.array(z.string()).optional(),\n compatible_with: z.array(skillIdSchema).optional(),\n conflicts_with: z.array(skillIdSchema).optional(),\n requires: z.array(skillIdSchema).optional(),\n requires_setup: z.array(skillIdSchema).optional(),\n provides_setup_for: z.array(skillIdSchema).optional(),\n })\n .passthrough();\n\nexport const localSkillMetadataSchema = z\n .object({\n forked_from: z\n .object({\n skill_id: skillIdSchema,\n content_hash: z.string(),\n date: z.string(),\n })\n .optional(),\n })\n .passthrough();\n\n// Lenient z.string() keys/values for forward compatibility with new subcategories/aliases\nexport const stackAgentConfigSchema = z.record(\n z.string(),\n z.string(),\n) as z.ZodType<StackAgentConfig>;\n\nexport const stackSchema: z.ZodType<Stack> = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n agents: z.record(z.string(), stackAgentConfigSchema) as z.ZodType<Stack[\"agents\"]>,\n philosophy: z.string().optional(),\n});\n\nexport const stacksConfigSchema: z.ZodType<StacksConfig> = z.object({\n stacks: z.array(stackSchema),\n});\n\nexport const marketplaceRemoteSourceSchema: z.ZodType<MarketplaceRemoteSource> = z.object({\n source: z.enum([\"github\", \"url\"]),\n repo: z.string().optional(),\n url: z.string().optional(),\n ref: z.string().optional(),\n});\n\nexport const marketplacePluginSchema: z.ZodType<MarketplacePlugin> = z.object({\n name: z.string(),\n source: z.union([z.string(), marketplaceRemoteSourceSchema]),\n description: z.string().optional(),\n version: z.string().optional(),\n author: pluginAuthorSchema.optional(),\n category: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n});\n\nexport const marketplaceOwnerSchema: z.ZodType<MarketplaceOwner> = z.object({\n name: z.string(),\n email: z.string().optional(),\n});\n\nexport const marketplaceMetadataSchema: z.ZodType<MarketplaceMetadata> = z.object({\n pluginRoot: z.string().optional(),\n});\n\nexport const marketplaceSchema: z.ZodType<Marketplace> = z.object({\n $schema: z.string().optional(),\n name: z.string(),\n version: z.string(),\n description: z.string().optional(),\n owner: marketplaceOwnerSchema,\n metadata: marketplaceMetadataSchema.optional(),\n plugins: z.array(marketplacePluginSchema),\n});\n\nexport const versionedMetadataSchema = z\n .object({\n version: z.number(),\n content_hash: z.string().optional(),\n updated: z.string().optional(),\n })\n .passthrough();\n\nexport const defaultMappingsSchema = z.object({\n skill_to_agents: z.record(z.string(), z.array(z.string())),\n preloaded_skills: z.record(z.string(), z.array(z.string())),\n subcategory_aliases: z.record(z.string(), z.string()),\n});\n\nexport const permissionConfigSchema = z.object({\n allow: z.array(z.string()).optional(),\n deny: z.array(z.string()).optional(),\n});\n\nexport const settingsFileSchema = z\n .object({\n permissions: permissionConfigSchema.optional(),\n })\n .passthrough();\n\nexport const importedSkillMetadataSchema = z\n .object({\n forked_from: z\n .object({\n source: z.string(),\n skill_name: z.string(),\n content_hash: z.string(),\n date: z.string(),\n })\n .optional(),\n })\n .passthrough();\n\nexport const projectSourceConfigSchema = z\n .object({\n source: z.string().optional(),\n author: z.string().optional(),\n marketplace: z.string().optional(),\n agents_source: z.string().optional(),\n sources: z\n .array(\n z.object({\n name: z.string(),\n url: z.string(),\n description: z.string().optional(),\n ref: z.string().optional(),\n }),\n )\n .optional(),\n boundSkills: z.array(boundSkillSchema).optional(),\n })\n .passthrough();\n\n// Strict validation schemas — used by cc validate / plugin-validator\nconst KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\n\n// Lenient `id` (any string) since marketplace agents may have any kebab-case identifier\nexport const agentYamlGenerationSchema = z\n .object({\n $schema: z.string().optional(),\n id: z.string().min(1),\n title: z.string().min(1),\n description: z.string().min(1),\n model: modelNameSchema.optional(),\n tools: z.array(z.string()),\n disallowed_tools: z.array(z.string()).optional(),\n permission_mode: permissionModeSchema.optional(),\n hooks: hooksRecordSchema.optional(),\n output_format: z.string().optional(),\n })\n .strict();\n\nexport const agentFrontmatterValidationSchema = z\n .object({\n name: z.string().regex(KEBAB_CASE_PATTERN).min(1),\n description: z.string().min(1),\n tools: z.string().optional(),\n disallowedTools: z.string().optional(),\n model: modelNameSchema.optional(),\n permissionMode: permissionModeSchema.optional(),\n skills: z.array(z.string().min(1)).optional(),\n hooks: hooksRecordSchema.optional(),\n })\n .strict();\n\nexport const skillFrontmatterValidationSchema = z\n .object({\n name: z.string().min(1),\n description: z.string().min(1),\n \"disable-model-invocation\": z.boolean().optional(),\n \"user-invocable\": z.boolean().optional(),\n \"allowed-tools\": z.string().optional(),\n model: modelNameSchema.optional(),\n context: z.enum([\"fork\"]).optional(),\n agent: z.string().optional(),\n \"argument-hint\": z.string().optional(),\n })\n .strict();\n\nexport const metadataValidationSchema = z\n .object({\n category: z.string(),\n category_exclusive: z.boolean().optional(),\n author: z.string().regex(/^@[a-z][a-z0-9-]*$/),\n version: z.number().int().min(1).optional(),\n cli_name: z.string().min(1).max(30),\n cli_description: z.string().min(1).max(60),\n usage_guidance: z.string().min(10),\n requires: z.array(z.string().min(1)).optional(),\n compatible_with: z.array(z.string().min(1)).optional(),\n conflicts_with: z.array(z.string().min(1)).optional(),\n tags: z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).optional(),\n requires_setup: z.array(z.string().min(1)).optional(),\n provides_setup_for: z.array(z.string().min(1)).optional(),\n content_hash: z\n .string()\n .regex(/^[a-f0-9]{7}$/)\n .optional(),\n updated: z.string().optional(),\n forked_from: z\n .object({\n skill_id: z.string(),\n version: z.number().int().min(1).optional(),\n content_hash: z.string(),\n source: z.string().optional(),\n date: z.string(),\n })\n .optional(),\n })\n .strict();\n\nconst stackSkillAssignmentSchema = z\n .object({\n id: z.string().min(1),\n preloaded: z.boolean().optional(),\n })\n .strict();\n\nexport const stackConfigValidationSchema = z\n .object({\n id: z.string().regex(KEBAB_CASE_PATTERN).optional(),\n name: z.string().min(1),\n version: z.string(),\n author: z.string().min(1),\n description: z.string().optional(),\n created: z.string().optional(),\n updated: z.string().optional(),\n framework: z.string().optional(),\n skills: z.array(stackSkillAssignmentSchema).min(1),\n agents: z.array(z.string().regex(KEBAB_CASE_PATTERN)).min(1),\n agent_skills: z\n .record(z.string(), z.record(z.string(), z.array(stackSkillAssignmentSchema)))\n .optional(),\n philosophy: z.string().optional(),\n principles: z.array(z.string().min(1)).optional(),\n tags: z.array(z.string().regex(KEBAB_CASE_PATTERN)).optional(),\n overrides: z\n .record(\n z.string(),\n z\n .object({\n alternatives: z.array(z.string().min(1)).optional(),\n locked: z.boolean().optional(),\n })\n .strict(),\n )\n .optional(),\n metrics: z\n .object({\n upvotes: z.number().int().min(0).optional(),\n downloads: z.number().int().min(0).optional(),\n })\n .strict()\n .optional(),\n hooks: z\n .record(\n z.string(),\n z.array(\n z.object({\n matcher: z.string().optional(),\n hooks: z.array(agentHookActionSchema).min(1),\n }),\n ),\n )\n .optional(),\n })\n .strict();\n"],"mappings":"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","names":[]}
@@ -24,13 +24,13 @@ import {
24
24
  skillFrontmatterLoaderSchema,
25
25
  skillFrontmatterValidationSchema,
26
26
  skillIdSchema,
27
- skillMetadataConfigSchema,
27
+ skillMetadataLoaderSchema,
28
28
  skillsMatrixConfigSchema,
29
29
  stacksConfigSchema,
30
30
  verbose,
31
31
  warn,
32
32
  writeFile
33
- } from "./chunk-ZDREFYD2.js";
33
+ } from "./chunk-324DM2L6.js";
34
34
  import {
35
35
  typedEntries,
36
36
  typedKeys
@@ -2047,9 +2047,20 @@ async function compileStackPlugin(options) {
2047
2047
  verbose(
2048
2048
  ` Loaded ${Object.keys(localAgents).length} local agents, ${Object.keys(cliAgents).length} CLI agents`
2049
2049
  );
2050
- const newStack = options.stack || await loadStackById(stackId, PROJECT_ROOT);
2051
- const matrixPath = path13.join(PROJECT_ROOT, SKILLS_MATRIX_PATH);
2052
- const matrix = await loadSkillsMatrix(matrixPath);
2050
+ let newStack = options.stack || await loadStackById(stackId, projectRoot);
2051
+ if (!newStack) {
2052
+ newStack = await loadStackById(stackId, PROJECT_ROOT);
2053
+ }
2054
+ const sourceMatrixPath = path13.join(projectRoot, SKILLS_MATRIX_PATH);
2055
+ const cliMatrixPath = path13.join(PROJECT_ROOT, SKILLS_MATRIX_PATH);
2056
+ let matrix;
2057
+ try {
2058
+ matrix = await loadSkillsMatrix(
2059
+ await fileExists(sourceMatrixPath) ? sourceMatrixPath : cliMatrixPath
2060
+ );
2061
+ } catch {
2062
+ matrix = await loadSkillsMatrix(cliMatrixPath);
2063
+ }
2053
2064
  const skillAliases = matrix.skill_aliases || {};
2054
2065
  let stack;
2055
2066
  if (newStack) {
@@ -3418,7 +3429,7 @@ async function readSkillMetadata(skillPath) {
3418
3429
  const content = await readFile(metadataPath);
3419
3430
  const lines = content.split("\n");
3420
3431
  const yamlContent = lines[0]?.startsWith("# yaml-language-server:") ? lines.slice(1).join("\n") : content;
3421
- const result = skillMetadataConfigSchema.safeParse(parseYaml9(yamlContent));
3432
+ const result = skillMetadataLoaderSchema.safeParse(parseYaml9(yamlContent));
3422
3433
  if (!result.success) {
3423
3434
  warn(
3424
3435
  `Invalid metadata.yaml at ${skillPath}: ${result.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ")}`
@@ -4201,4 +4212,4 @@ export {
4201
4212
  validateAllPlugins,
4202
4213
  printPluginValidationResult
4203
4214
  };
4204
- //# sourceMappingURL=chunk-ETQ3BPGU.js.map
4215
+ //# sourceMappingURL=chunk-CQ7657GA.js.map