@agents-inc/cli 0.72.0 → 0.73.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 (174) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{chunk-OODTDGEM.js → chunk-3K6FSET7.js} +6 -6
  3. package/dist/{chunk-LBTW5HSY.js → chunk-3REVX6S5.js} +11 -11
  4. package/dist/chunk-3REVX6S5.js.map +1 -0
  5. package/dist/{chunk-HMJGSAKV.js → chunk-3VNQPCOE.js} +2510 -2687
  6. package/dist/chunk-3VNQPCOE.js.map +1 -0
  7. package/dist/{chunk-V2XIWRHP.js → chunk-4KLUOFP6.js} +6 -7
  8. package/dist/chunk-4KLUOFP6.js.map +1 -0
  9. package/dist/{chunk-MGQVO357.js → chunk-6JRQPSKV.js} +2 -2
  10. package/dist/chunk-6JRQPSKV.js.map +1 -0
  11. package/dist/{chunk-ZYUASJUN.js → chunk-BH4LN7XV.js} +8 -6
  12. package/dist/chunk-BH4LN7XV.js.map +1 -0
  13. package/dist/{chunk-6YMW4HMX.js → chunk-DNPJ5GUK.js} +6 -6
  14. package/dist/chunk-DNPJ5GUK.js.map +1 -0
  15. package/dist/chunk-E74Q7GUE.js +5132 -0
  16. package/dist/chunk-E74Q7GUE.js.map +1 -0
  17. package/dist/{chunk-AHZ34QVK.js → chunk-EMWP363L.js} +8 -10
  18. package/dist/chunk-EMWP363L.js.map +1 -0
  19. package/dist/chunk-EMX7PA2I.js +39 -0
  20. package/dist/chunk-EMX7PA2I.js.map +1 -0
  21. package/dist/{chunk-SEAL43IR.js → chunk-G23HPF6K.js} +3 -3
  22. package/dist/chunk-GDUOOT3J.js +689 -0
  23. package/dist/chunk-GDUOOT3J.js.map +1 -0
  24. package/dist/{chunk-HJVWBSLM.js → chunk-GSFZDUV2.js} +4 -4
  25. package/dist/chunk-GSFZDUV2.js.map +1 -0
  26. package/dist/{chunk-LM5YQUBR.js → chunk-H4ETXZVL.js} +6 -6
  27. package/dist/{chunk-ZFRALAK5.js → chunk-JHMECCBN.js} +4 -5
  28. package/dist/chunk-JHMECCBN.js.map +1 -0
  29. package/dist/{chunk-UQTG4ZBA.js → chunk-K7WYMQQB.js} +18 -20
  30. package/dist/chunk-K7WYMQQB.js.map +1 -0
  31. package/dist/{chunk-RJOLQ7EK.js → chunk-KE2EAVFQ.js} +4 -4
  32. package/dist/{chunk-CKPJTMNC.js → chunk-KSMT5FVM.js} +4 -4
  33. package/dist/chunk-KSMT5FVM.js.map +1 -0
  34. package/dist/{chunk-52THXN5G.js → chunk-NUJHWYCR.js} +2 -2
  35. package/dist/{chunk-URAXGHF2.js → chunk-OLWGGD4G.js} +20 -15
  36. package/dist/chunk-OLWGGD4G.js.map +1 -0
  37. package/dist/{chunk-FKRYJOPC.js → chunk-PNZCVOCE.js} +5 -5
  38. package/dist/chunk-PNZCVOCE.js.map +1 -0
  39. package/dist/chunk-SRIH4U5Y.js +159 -0
  40. package/dist/chunk-SRIH4U5Y.js.map +1 -0
  41. package/dist/{chunk-J4TVAB5H.js → chunk-T7QY777F.js} +2 -2
  42. package/dist/{chunk-Q3YMO5YG.js → chunk-TNSVPZHP.js} +20 -2
  43. package/dist/chunk-TNSVPZHP.js.map +1 -0
  44. package/dist/{chunk-WWHDP5CP.js → chunk-V5HR77EY.js} +94 -13
  45. package/dist/chunk-V5HR77EY.js.map +1 -0
  46. package/dist/{chunk-ZEJIEC2A.js → chunk-WJL4KU5V.js} +66 -240
  47. package/dist/chunk-WJL4KU5V.js.map +1 -0
  48. package/dist/{chunk-G3LNIYZG.js → chunk-Y47CLMWE.js} +2 -2
  49. package/dist/{chunk-3SLO2QPW.js → chunk-Y4VUU5BT.js} +12 -14
  50. package/dist/chunk-Y4VUU5BT.js.map +1 -0
  51. package/dist/{chunk-F43WGOGN.js → chunk-ZBLSWJFM.js} +2 -2
  52. package/dist/chunk-ZBLSWJFM.js.map +1 -0
  53. package/dist/commands/build/marketplace.js +4 -3
  54. package/dist/commands/build/marketplace.js.map +1 -1
  55. package/dist/commands/build/plugins.js +8 -7
  56. package/dist/commands/build/plugins.js.map +1 -1
  57. package/dist/commands/build/stack.js +8 -7
  58. package/dist/commands/build/stack.js.map +1 -1
  59. package/dist/commands/compile.js +13 -9
  60. package/dist/commands/compile.js.map +1 -1
  61. package/dist/commands/config/index.js +8 -7
  62. package/dist/commands/config/index.js.map +1 -1
  63. package/dist/commands/config/path.js +7 -6
  64. package/dist/commands/config/path.js.map +1 -1
  65. package/dist/commands/config/show.js +8 -7
  66. package/dist/commands/diff.js +7 -6
  67. package/dist/commands/diff.js.map +1 -1
  68. package/dist/commands/doctor.js +12 -13
  69. package/dist/commands/doctor.js.map +1 -1
  70. package/dist/commands/edit.js +32 -34
  71. package/dist/commands/edit.js.map +1 -1
  72. package/dist/commands/eject.js +14 -12
  73. package/dist/commands/eject.js.map +1 -1
  74. package/dist/commands/import/skill.js +7 -6
  75. package/dist/commands/import/skill.js.map +1 -1
  76. package/dist/commands/info.js +11 -10
  77. package/dist/commands/info.js.map +1 -1
  78. package/dist/commands/init.js +27 -26
  79. package/dist/commands/list.js +7 -6
  80. package/dist/commands/list.js.map +1 -1
  81. package/dist/commands/new/agent.js +8 -7
  82. package/dist/commands/new/agent.js.map +1 -1
  83. package/dist/commands/new/marketplace.js +11 -14
  84. package/dist/commands/new/marketplace.js.map +1 -1
  85. package/dist/commands/new/skill.js +8 -7
  86. package/dist/commands/outdated.js +7 -6
  87. package/dist/commands/outdated.js.map +1 -1
  88. package/dist/commands/search.js +8 -9
  89. package/dist/commands/search.js.map +1 -1
  90. package/dist/commands/uninstall.js +7 -6
  91. package/dist/commands/uninstall.js.map +1 -1
  92. package/dist/commands/update.js +9 -9
  93. package/dist/commands/update.js.map +1 -1
  94. package/dist/commands/validate.js +15 -17
  95. package/dist/commands/validate.js.map +1 -1
  96. package/dist/components/wizard/category-grid.js +2 -2
  97. package/dist/components/wizard/category-grid.test.js +16 -65
  98. package/dist/components/wizard/category-grid.test.js.map +1 -1
  99. package/dist/components/wizard/domain-selection.js +9 -8
  100. package/dist/components/wizard/source-grid.js +4 -4
  101. package/dist/components/wizard/source-grid.test.js +18 -16
  102. package/dist/components/wizard/source-grid.test.js.map +1 -1
  103. package/dist/components/wizard/stack-selection.js +8 -7
  104. package/dist/components/wizard/step-agents.js +9 -8
  105. package/dist/components/wizard/step-agents.test.js +14 -13
  106. package/dist/components/wizard/step-agents.test.js.map +1 -1
  107. package/dist/components/wizard/step-build.js +10 -9
  108. package/dist/components/wizard/step-build.test.js +16 -15
  109. package/dist/components/wizard/step-build.test.js.map +1 -1
  110. package/dist/components/wizard/step-confirm.js +5 -4
  111. package/dist/components/wizard/step-confirm.test.js +10 -9
  112. package/dist/components/wizard/step-confirm.test.js.map +1 -1
  113. package/dist/components/wizard/step-settings.js +8 -7
  114. package/dist/components/wizard/step-settings.test.js +11 -10
  115. package/dist/components/wizard/step-settings.test.js.map +1 -1
  116. package/dist/components/wizard/step-sources.js +13 -12
  117. package/dist/components/wizard/step-sources.test.js +18 -17
  118. package/dist/components/wizard/step-sources.test.js.map +1 -1
  119. package/dist/components/wizard/step-stack.js +11 -10
  120. package/dist/components/wizard/step-stack.test.js +15 -14
  121. package/dist/components/wizard/step-stack.test.js.map +1 -1
  122. package/dist/components/wizard/wizard-layout.js +8 -7
  123. package/dist/components/wizard/wizard.js +25 -24
  124. package/dist/hooks/init.js +27 -26
  125. package/dist/hooks/init.js.map +1 -1
  126. package/dist/{loader-KVKSTKWX.js → loader-XQ3WBTVP.js} +4 -3
  127. package/dist/{source-loader-65IAJPNV.js → source-loader-F4PGP6LH.js} +7 -6
  128. package/dist/source-manager-QCIO4XZK.js +20 -0
  129. package/dist/stores/wizard-store.js +7 -6
  130. package/dist/stores/wizard-store.test.js +29 -28
  131. package/dist/stores/wizard-store.test.js.map +1 -1
  132. package/package.json +1 -1
  133. package/src/schemas/custom-metadata.schema.json +81 -0
  134. package/src/schemas/metadata.schema.json +127 -41
  135. package/src/schemas/stacks.schema.json +3 -45
  136. package/dist/chunk-3SLO2QPW.js.map +0 -1
  137. package/dist/chunk-6YMW4HMX.js.map +0 -1
  138. package/dist/chunk-AHZ34QVK.js.map +0 -1
  139. package/dist/chunk-BKL3DF2Q.js +0 -45
  140. package/dist/chunk-BKL3DF2Q.js.map +0 -1
  141. package/dist/chunk-CKPJTMNC.js.map +0 -1
  142. package/dist/chunk-D7FEORKC.js +0 -253
  143. package/dist/chunk-D7FEORKC.js.map +0 -1
  144. package/dist/chunk-F43WGOGN.js.map +0 -1
  145. package/dist/chunk-FKRYJOPC.js.map +0 -1
  146. package/dist/chunk-HJVWBSLM.js.map +0 -1
  147. package/dist/chunk-HMJGSAKV.js.map +0 -1
  148. package/dist/chunk-LBTW5HSY.js.map +0 -1
  149. package/dist/chunk-MGQVO357.js.map +0 -1
  150. package/dist/chunk-Q3YMO5YG.js.map +0 -1
  151. package/dist/chunk-T4EXUIBY.js +0 -19
  152. package/dist/chunk-T4EXUIBY.js.map +0 -1
  153. package/dist/chunk-UQTG4ZBA.js.map +0 -1
  154. package/dist/chunk-URAXGHF2.js.map +0 -1
  155. package/dist/chunk-V2XIWRHP.js.map +0 -1
  156. package/dist/chunk-WWHDP5CP.js.map +0 -1
  157. package/dist/chunk-ZEJIEC2A.js.map +0 -1
  158. package/dist/chunk-ZFRALAK5.js.map +0 -1
  159. package/dist/chunk-ZYUASJUN.js.map +0 -1
  160. package/dist/source-manager-LJH225GA.js +0 -19
  161. package/dist/stores/matrix-store.js +0 -15
  162. package/dist/stores/matrix-store.js.map +0 -1
  163. package/dist/stores/matrix-store.test.js +0 -127
  164. package/dist/stores/matrix-store.test.js.map +0 -1
  165. /package/dist/{chunk-OODTDGEM.js.map → chunk-3K6FSET7.js.map} +0 -0
  166. /package/dist/{chunk-SEAL43IR.js.map → chunk-G23HPF6K.js.map} +0 -0
  167. /package/dist/{chunk-LM5YQUBR.js.map → chunk-H4ETXZVL.js.map} +0 -0
  168. /package/dist/{chunk-RJOLQ7EK.js.map → chunk-KE2EAVFQ.js.map} +0 -0
  169. /package/dist/{chunk-52THXN5G.js.map → chunk-NUJHWYCR.js.map} +0 -0
  170. /package/dist/{chunk-J4TVAB5H.js.map → chunk-T7QY777F.js.map} +0 -0
  171. /package/dist/{chunk-G3LNIYZG.js.map → chunk-Y47CLMWE.js.map} +0 -0
  172. /package/dist/{loader-KVKSTKWX.js.map → loader-XQ3WBTVP.js.map} +0 -0
  173. /package/dist/{source-loader-65IAJPNV.js.map → source-loader-F4PGP6LH.js.map} +0 -0
  174. /package/dist/{source-manager-LJH225GA.js.map → source-manager-QCIO4XZK.js.map} +0 -0
@@ -0,0 +1,689 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ FRAMEWORK_CATEGORY
4
+ } from "./chunk-TNSVPZHP.js";
5
+ import {
6
+ SKILLS,
7
+ TEST_CATEGORIES,
8
+ createMockCategory,
9
+ createMockCompileConfig,
10
+ createMockExtractedSkill,
11
+ createMockMatrix,
12
+ createMockMatrixConfig,
13
+ createMockSkill,
14
+ createMockSkillEntry,
15
+ createTestSkill,
16
+ renderSkillMd,
17
+ testSkillToResolvedSkill
18
+ } from "./chunk-V5HR77EY.js";
19
+ import {
20
+ init_esm_shims
21
+ } from "./chunk-DHET7RCE.js";
22
+
23
+ // src/cli/lib/__tests__/mock-data/mock-matrices.ts
24
+ init_esm_shims();
25
+ import { groupBy, mapValues } from "remeda";
26
+
27
+ // src/cli/lib/__tests__/mock-data/mock-skills.ts
28
+ init_esm_shims();
29
+ var REACT_SKILL_PRELOADED = createMockSkillEntry("web-framework-react", true);
30
+ var REACT_SKILL = createMockSkillEntry("web-framework-react");
31
+ var VITEST_SKILL = createMockSkillEntry("web-testing-vitest");
32
+ var VITEST_SINGLE_FILE_SKILL = {
33
+ ...VITEST_SKILL,
34
+ path: "skills/web-testing-vitest.md"
35
+ };
36
+ var METHODOLOGY_TEST_SKILLS = [
37
+ {
38
+ id: "meta-methodology-anti-over-engineering",
39
+ slug: "anti-over-engineering",
40
+ displayName: "Anti Over-Engineering",
41
+ description: "Surgical implementation, not architectural innovation",
42
+ category: "shared-methodology",
43
+ author: "@test",
44
+ domain: "shared",
45
+ tags: ["methodology", "foundational"]
46
+ }
47
+ ];
48
+ var reactSkill = createTestSkill(
49
+ "web-framework-react",
50
+ "React framework for building user interfaces",
51
+ {
52
+ tags: ["react", "web", "ui"]
53
+ }
54
+ );
55
+ var zustandSkill = createTestSkill("web-state-zustand", "Bear necessities state management", {
56
+ tags: ["state", "react", "zustand"]
57
+ });
58
+ var vitestSkill = createTestSkill("web-testing-vitest", "Next generation testing framework", {
59
+ tags: ["testing", "vitest", "unit"]
60
+ });
61
+ var honoSkill = createTestSkill("api-framework-hono", "Lightweight web framework for the edge", {
62
+ tags: ["api", "hono", "edge"]
63
+ });
64
+ var vueSkill = createTestSkill(
65
+ "web-framework-vue-composition-api",
66
+ "Progressive JavaScript framework",
67
+ {
68
+ tags: ["vue", "web"]
69
+ }
70
+ );
71
+ var scssSkill = createTestSkill("web-styling-scss-modules", "CSS Modules with SCSS", {
72
+ displayName: "SCSS Modules",
73
+ tags: ["css", "scss"]
74
+ });
75
+ var drizzleSkill = createTestSkill("api-database-drizzle", "TypeScript ORM for SQL databases", {
76
+ tags: ["database", "orm"]
77
+ });
78
+ var EXTRA_DOMAIN_TEST_SKILLS = [vueSkill, scssSkill, drizzleSkill];
79
+ var COMPILE_LOCAL_SKILL = createTestSkill(
80
+ // Boundary cast: fictional skill ID for testing local skill compilation
81
+ "web-tooling-local-skill",
82
+ "A local project skill",
83
+ { slug: "tooling", displayName: "Local Skill", tags: ["local", "custom"] }
84
+ );
85
+ var DEFAULT_TEST_SKILLS = [reactSkill, zustandSkill, vitestSkill, honoSkill];
86
+ var PIPELINE_TEST_SKILLS = [
87
+ ...DEFAULT_TEST_SKILLS,
88
+ ...EXTRA_DOMAIN_TEST_SKILLS
89
+ ];
90
+ var DOCKER_TOOLING_SKILL = createTestSkill(
91
+ // Boundary cast: fictional skill ID for testing infra tooling
92
+ "infra-tooling-docker",
93
+ "Docker containerization patterns",
94
+ {
95
+ slug: "tooling",
96
+ displayName: "Docker",
97
+ domain: "shared",
98
+ tags: ["docker", "devops", "containers"]
99
+ }
100
+ );
101
+ var CI_CD_SKILLS = [
102
+ // Boundary cast: fictional skill ID for testing CI/CD skills
103
+ createTestSkill("infra-ci-cd-github-actions", "github-actions CI/CD pipeline", {
104
+ slug: "github-actions",
105
+ displayName: "GitHub Actions",
106
+ category: "infra-ci-cd",
107
+ domain: "shared",
108
+ tags: ["ci-cd", "github-actions"]
109
+ }),
110
+ // Boundary cast: fictional skill ID for testing CI/CD skills
111
+ createTestSkill("infra-ci-cd-gitlab-ci", "gitlab-ci CI/CD pipeline", {
112
+ slug: "gitlab-ci",
113
+ displayName: "GitLab CI",
114
+ category: "infra-ci-cd",
115
+ domain: "shared",
116
+ tags: ["ci-cd", "gitlab-ci"]
117
+ })
118
+ ];
119
+ var DATADOG_OBSERVABILITY_SKILL = createTestSkill(
120
+ // Boundary cast: fictional skill ID for testing observability skills
121
+ "api-observability-datadog",
122
+ "Datadog APM integration",
123
+ { tags: ["monitoring", "observability", "apm", "custom-tag"] }
124
+ );
125
+ function contentSkill(id, description, tags, body, author) {
126
+ return createTestSkill(id, description, {
127
+ ...author ? { author } : {},
128
+ tags,
129
+ content: renderSkillMd(id, description, body)
130
+ });
131
+ }
132
+ var SWITCHABLE_SKILLS = [
133
+ contentSkill(
134
+ "web-framework-react",
135
+ "React framework for building user interfaces",
136
+ ["react", "web"],
137
+ "# React (Marketplace Version)\n\nReact is a JavaScript library for building user interfaces.\nUse component-based architecture with JSX."
138
+ ),
139
+ contentSkill(
140
+ "web-state-zustand",
141
+ "Bear necessities state management",
142
+ ["state", "zustand"],
143
+ "# Zustand (Marketplace Version)\n\nZustand is a minimal state management library for React."
144
+ ),
145
+ contentSkill(
146
+ "api-framework-hono",
147
+ "Lightweight web framework for the edge",
148
+ ["api", "hono"],
149
+ "# Hono (Marketplace Version)\n\nHono is a fast web framework for the edge."
150
+ ),
151
+ contentSkill(
152
+ "web-testing-vitest",
153
+ "Next generation testing framework",
154
+ ["testing", "vitest"],
155
+ "# Vitest (Marketplace Version)\n\nVitest is a fast unit test framework powered by Vite."
156
+ )
157
+ ];
158
+ var LOCAL_SKILL_VARIANTS = [
159
+ contentSkill(
160
+ "web-framework-react",
161
+ "React framework (local customized version)",
162
+ ["react", "web"],
163
+ "# React (Local Version)\n\nThis is my customized React skill with project-specific patterns.",
164
+ "@local-user"
165
+ ),
166
+ contentSkill(
167
+ "web-state-zustand",
168
+ "Zustand state management (local customized version)",
169
+ ["state", "zustand"],
170
+ "# Zustand (Local Version)\n\nMy customized Zustand patterns with project-specific stores.",
171
+ "@local-user"
172
+ )
173
+ ];
174
+ var RESOLUTION_PIPELINE_SKILLS = [
175
+ createTestSkill("web-framework-react", "React framework (public source)", {
176
+ tags: ["react", "web"]
177
+ }),
178
+ createTestSkill("api-framework-hono", "Hono framework (acme source)", {
179
+ author: "@acme",
180
+ tags: ["api", "hono"]
181
+ }),
182
+ // Boundary cast: fictional skill ID for testing multi-source resolution
183
+ createTestSkill("web-animation-framer", "Framer Motion (internal source)", {
184
+ slug: "framer-motion",
185
+ displayName: "Framer Motion",
186
+ author: "@internal",
187
+ tags: ["animation"]
188
+ }),
189
+ createTestSkill("api-database-drizzle", "Drizzle ORM (acme source)", {
190
+ author: "@acme",
191
+ tags: ["database"]
192
+ }),
193
+ createTestSkill("web-testing-vitest", "Vitest testing (public source)", {
194
+ tags: ["testing"]
195
+ })
196
+ ];
197
+ var ALL_TEST_SKILLS = [
198
+ ...DEFAULT_TEST_SKILLS,
199
+ ...EXTRA_DOMAIN_TEST_SKILLS,
200
+ ...METHODOLOGY_TEST_SKILLS
201
+ ];
202
+ var INIT_SKILL_IDS = [
203
+ "web-framework-react",
204
+ "api-framework-hono",
205
+ "web-testing-vitest"
206
+ ];
207
+ var INIT_TEST_SKILLS = DEFAULT_TEST_SKILLS.filter(
208
+ (s) => INIT_SKILL_IDS.includes(s.id)
209
+ );
210
+ var REACT_EXTRACTED = createMockExtractedSkill("web-framework-react", {
211
+ description: "React framework",
212
+ author: "@vince",
213
+ tags: ["react"]
214
+ });
215
+ var REACT_EXTRACTED_BASIC = createMockExtractedSkill("web-framework-react", {
216
+ description: "React"
217
+ });
218
+ var VUE_EXTRACTED_BASIC = createMockExtractedSkill("web-framework-vue-composition-api", {
219
+ description: "Vue"
220
+ });
221
+ var ZUSTAND_EXTRACTED = createMockExtractedSkill("web-state-zustand", {
222
+ description: "Zustand",
223
+ category: "web-client-state"
224
+ });
225
+ var JOTAI_EXTRACTED = createMockExtractedSkill("web-state-jotai", {
226
+ description: "Jotai",
227
+ category: "web-client-state"
228
+ });
229
+ var HEALTH_ZUSTAND_RECOMMENDED = {
230
+ ...SKILLS.zustand,
231
+ isRecommended: true,
232
+ recommendedReason: "Works well with React"
233
+ };
234
+ var HEALTH_ORPHAN_SKILL = {
235
+ ...SKILLS.react,
236
+ category: "nonexistent-category"
237
+ };
238
+ var HEALTH_UNRESOLVED_COMPATIBLE_WITH_SKILL = {
239
+ ...SKILLS.zustand,
240
+ // Boundary cast: fake SkillId for unresolved-ref testing
241
+ compatibleWith: ["web-framework-nonexistent"]
242
+ };
243
+ var HEALTH_UNRESOLVED_CONFLICTS_WITH_SKILL = {
244
+ ...SKILLS.react,
245
+ // Boundary cast: fake SkillId for unresolved-ref testing
246
+ conflictsWith: [{ skillId: "web-framework-ghost", reason: "Conflicts" }]
247
+ };
248
+ var HEALTH_UNRESOLVED_REQUIRES_SKILL = createMockSkill("web-testing-cypress-e2e", {
249
+ requires: [
250
+ {
251
+ skillIds: ["web-framework-missing"],
252
+ needsAny: false,
253
+ reason: "Needs a framework"
254
+ }
255
+ ]
256
+ });
257
+ var HEALTH_MULTIPLE_UNRESOLVED_REFS_SKILL = {
258
+ ...SKILLS.zustand,
259
+ // Boundary casts: fake SkillIds for unresolved-ref testing
260
+ compatibleWith: ["web-framework-missing"],
261
+ conflictsWith: [{ skillId: "web-state-ghost", reason: "Conflicts" }]
262
+ };
263
+ var HEALTH_ALL_REFS_RESOLVED_SKILL = {
264
+ ...SKILLS.zustand,
265
+ conflictsWith: [{ skillId: "web-framework-react", reason: "Test" }],
266
+ requires: [
267
+ {
268
+ skillIds: ["web-framework-react"],
269
+ needsAny: false,
270
+ reason: "Needs React"
271
+ }
272
+ ]
273
+ };
274
+ var HEALTH_PARTIAL_UNRESOLVED_REQUIRES_SKILL = createMockSkill("web-testing-cypress-e2e", {
275
+ requires: [
276
+ {
277
+ skillIds: ["web-framework-react", "web-framework-missing"],
278
+ needsAny: true,
279
+ reason: "Needs one framework"
280
+ }
281
+ ]
282
+ });
283
+ var CATEGORY_GRID_SKILLS = [
284
+ { id: "web-framework-react", displayName: "React", category: "web-framework" },
285
+ { id: "web-framework-vue-composition-api", displayName: "Vue", category: "web-framework" },
286
+ { id: "web-framework-angular-standalone", displayName: "Angular", category: "web-framework" },
287
+ { id: "web-framework-solidjs", displayName: "SolidJS", category: "web-framework" },
288
+ { id: "web-framework-nuxt", displayName: "Nuxt", category: "web-framework" },
289
+ { id: "web-framework-remix", displayName: "Remix", category: "web-framework" },
290
+ {
291
+ id: "web-framework-nextjs-app-router",
292
+ displayName: "Next.js App Router",
293
+ category: "web-framework"
294
+ },
295
+ {
296
+ id: "web-framework-nextjs-server-actions",
297
+ displayName: "Next.js Server Actions",
298
+ category: "web-framework"
299
+ },
300
+ { id: "web-styling-scss-modules", displayName: "SCSS Modules", category: "web-styling" },
301
+ { id: "web-styling-tailwind", displayName: "Tailwind", category: "web-styling" },
302
+ { id: "web-styling-cva", displayName: "CVA", category: "web-styling" },
303
+ { id: "web-state-zustand", displayName: "Zustand", category: "web-client-state" },
304
+ { id: "web-state-jotai", displayName: "Jotai", category: "web-client-state" },
305
+ { id: "web-state-redux-toolkit", displayName: "Redux", category: "web-client-state" },
306
+ { id: "web-state-mobx", displayName: "MobX", category: "web-client-state" },
307
+ { id: "web-server-state-react-query", displayName: "React Query", category: "web-server-state" },
308
+ { id: "web-data-fetching-swr", displayName: "SWR", category: "web-server-state" },
309
+ { id: "web-data-fetching-graphql-apollo", displayName: "Apollo", category: "web-server-state" },
310
+ { id: "api-analytics-posthog-analytics", displayName: "PostHog", category: "api-analytics" },
311
+ { id: "web-forms-react-hook-form", displayName: "React Hook Form", category: "web-forms" },
312
+ { id: "web-forms-vee-validate", displayName: "Vee Validate", category: "web-forms" },
313
+ { id: "web-forms-zod-validation", displayName: "Zod Validation", category: "web-forms" },
314
+ { id: "web-testing-vitest", displayName: "Vitest", category: "web-testing" },
315
+ { id: "web-testing-playwright-e2e", displayName: "Playwright", category: "web-testing" },
316
+ { id: "web-testing-cypress-e2e", displayName: "Cypress", category: "web-testing" },
317
+ { id: "web-mocks-msw", displayName: "MSW", category: "web-mocking" },
318
+ {
319
+ id: "web-testing-react-testing-library",
320
+ displayName: "React Testing Library",
321
+ category: "web-testing"
322
+ },
323
+ { id: "web-testing-vue-test-utils", displayName: "Vue Test Utils", category: "web-testing" },
324
+ { id: "web-i18n-next-intl", displayName: "Next Intl", category: "web-i18n" },
325
+ { id: "web-i18n-react-intl", displayName: "React Intl", category: "web-i18n" },
326
+ { id: "web-i18n-vue-i18n", displayName: "Vue I18n", category: "web-i18n" }
327
+ ];
328
+
329
+ // src/cli/lib/__tests__/mock-data/mock-matrices.ts
330
+ var EMPTY_MATRIX = createMockMatrix();
331
+ var SINGLE_REACT_MATRIX = createMockMatrix(SKILLS.react);
332
+ var WEB_PAIR_MATRIX = createMockMatrix(SKILLS.react, SKILLS.zustand);
333
+ var FULLSTACK_PAIR_MATRIX = createMockMatrix(SKILLS.react, SKILLS.hono);
334
+ var WEB_TRIO_MATRIX = createMockMatrix(SKILLS.react, SKILLS.zustand, SKILLS.vitest);
335
+ var FULLSTACK_TRIO_MATRIX = createMockMatrix(SKILLS.react, SKILLS.hono, SKILLS.vitest);
336
+ var VITEST_REACT_HONO_MATRIX = createMockMatrix(SKILLS.vitest, SKILLS.react, SKILLS.hono);
337
+ var REACT_SCSS_MATRIX = createMockMatrix(SKILLS.react, SKILLS.scss);
338
+ var REACT_SCSS_HONO_MATRIX = createMockMatrix(SKILLS.react, SKILLS.scss, SKILLS.hono);
339
+ var SCSS_HONO_REACT_MATRIX = createMockMatrix(SKILLS.scss, SKILLS.hono, SKILLS.react);
340
+ var HONO_REACT_MATRIX = createMockMatrix(SKILLS.hono, SKILLS.react);
341
+ var REACT_ZUSTAND_HONO_MATRIX = createMockMatrix(
342
+ SKILLS.react,
343
+ SKILLS.zustand,
344
+ SKILLS.hono
345
+ );
346
+ var CATEGORY_GRID_MATRIX = createMockMatrix(
347
+ ...CATEGORY_GRID_SKILLS.map(
348
+ ({ id, displayName, category }) => createMockSkill(id, { displayName, category })
349
+ )
350
+ );
351
+ var ALL_SKILLS_TEST_CATEGORIES_MATRIX = createMockMatrix(...Object.values(SKILLS), {
352
+ categories: TEST_CATEGORIES
353
+ });
354
+ var ALL_SKILLS_WEB_FRAMEWORK_MATRIX = createMockMatrix(...Object.values(SKILLS), {
355
+ categories: {
356
+ "web-framework": { domain: "web" }
357
+ }
358
+ });
359
+ var ALL_SKILLS_WEB_PAIR_CATEGORIES_MATRIX = createMockMatrix(...Object.values(SKILLS), {
360
+ categories: {
361
+ "web-framework": { domain: "web" },
362
+ "web-client-state": { domain: "web" }
363
+ }
364
+ });
365
+ var ALL_SKILLS_FULLSTACK_CATEGORIES_MATRIX = createMockMatrix(...Object.values(SKILLS), {
366
+ categories: {
367
+ "web-framework": { domain: "web" },
368
+ "web-client-state": { domain: "web" },
369
+ "api-api": { domain: "api" }
370
+ }
371
+ });
372
+ var ALL_SKILLS_WEB_AND_API_MATRIX = createMockMatrix(...Object.values(SKILLS), {
373
+ categories: {
374
+ "web-framework": { domain: "web" },
375
+ "api-api": { domain: "api" }
376
+ }
377
+ });
378
+ var ALL_SKILLS_METHODOLOGY_MATRIX = createMockMatrix(...Object.values(SKILLS), {
379
+ categories: {
380
+ "shared-methodology": { domain: "shared" }
381
+ }
382
+ });
383
+ var ALL_SKILLS_METHODOLOGY_BARE_MATRIX = createMockMatrix(...Object.values(SKILLS), {
384
+ categories: {
385
+ "shared-methodology": {}
386
+ }
387
+ });
388
+ var ALL_SKILLS_MULTI_DOMAIN_MATRIX = createMockMatrix(...Object.values(SKILLS), {
389
+ categories: {
390
+ "web-framework": { domain: "web" },
391
+ "shared-methodology": { domain: "shared" },
392
+ "api-api": { domain: "api" }
393
+ }
394
+ });
395
+ var REACT_HONO_FRAMEWORK_API_MATRIX = createMockMatrix(SKILLS.react, SKILLS.hono, {
396
+ categories: {
397
+ "web-framework": TEST_CATEGORIES.framework,
398
+ "api-api": TEST_CATEGORIES.api
399
+ }
400
+ });
401
+ var MERGE_BASIC_MATRIX = createMockMatrixConfig({ "web-framework": FRAMEWORK_CATEGORY });
402
+ var CONFLICT_MATRIX = createMockMatrixConfig(
403
+ {},
404
+ {
405
+ relationships: {
406
+ conflicts: [{ skills: ["react", "vue-composition-api"], reason: "Pick one framework" }]
407
+ }
408
+ }
409
+ );
410
+ var ALTERNATIVES_MATRIX = createMockMatrixConfig(
411
+ {},
412
+ {
413
+ relationships: {
414
+ alternatives: [
415
+ {
416
+ purpose: "State management",
417
+ skills: ["zustand", "jotai"]
418
+ }
419
+ ]
420
+ }
421
+ }
422
+ );
423
+ var REQUIRES_MATRIX = createMockMatrixConfig(
424
+ {},
425
+ {
426
+ relationships: {
427
+ requires: [
428
+ {
429
+ skill: "zustand",
430
+ needs: ["react"],
431
+ reason: "Zustand needs React"
432
+ }
433
+ ]
434
+ }
435
+ }
436
+ );
437
+ var LOCAL_SKILL_MATRIX = createMockMatrix(
438
+ // Boundary cast: fictional skill ID for testing local skill matrix
439
+ createMockSkill("web-local-skill", {
440
+ local: true,
441
+ localPath: ".claude/skills/my-local-skill/"
442
+ })
443
+ );
444
+ var MIXED_LOCAL_REMOTE_MATRIX = createMockMatrix(
445
+ SKILLS.react,
446
+ // Boundary cast: fictional skill ID for testing mixed local/remote matrix
447
+ createMockSkill("meta-company-patterns", {
448
+ local: true,
449
+ localPath: ".claude/skills/company-patterns/"
450
+ })
451
+ );
452
+ var METHODOLOGY_MATRIX = createMockMatrix(SKILLS.antiOverEng);
453
+ var VITEST_MATRIX = createMockMatrix(SKILLS.vitest);
454
+ var WEB_AND_API_COMPILE_CONFIG = createMockCompileConfig({
455
+ "web-developer": {},
456
+ "api-developer": {}
457
+ });
458
+ var WEB_ONLY_COMPILE_CONFIG = createMockCompileConfig({
459
+ "web-developer": {}
460
+ });
461
+ var TOOLING_AND_FRAMEWORK_CONFIG = createMockMatrixConfig({
462
+ "shared-tooling": {
463
+ ...TEST_CATEGORIES.tooling,
464
+ description: "Development tooling and infrastructure",
465
+ domain: "shared",
466
+ exclusive: false,
467
+ order: 20
468
+ },
469
+ "web-framework": {
470
+ ...TEST_CATEGORIES.framework,
471
+ description: "UI Framework",
472
+ required: true,
473
+ order: 1
474
+ }
475
+ });
476
+ var CI_CD_CONFIG = createMockMatrixConfig({
477
+ "shared-ci-cd": createMockCategory("shared-ci-cd", "CI/CD", {
478
+ description: "Continuous integration and deployment",
479
+ domain: "shared",
480
+ exclusive: true,
481
+ required: false,
482
+ order: 30
483
+ })
484
+ });
485
+ var FRAMEWORK_AND_STYLING_CONFIG = createMockMatrixConfig(
486
+ {
487
+ "web-framework": {
488
+ ...TEST_CATEGORIES.framework,
489
+ description: "UI Framework",
490
+ required: true,
491
+ order: 1
492
+ },
493
+ "web-styling": {
494
+ ...TEST_CATEGORIES.styling,
495
+ description: "CSS approach",
496
+ exclusive: false,
497
+ order: 2
498
+ }
499
+ },
500
+ {
501
+ relationships: {
502
+ discourages: [
503
+ {
504
+ skills: ["react", "scss-modules"],
505
+ reason: "These tools have conflicting design philosophies"
506
+ }
507
+ ],
508
+ recommends: [
509
+ {
510
+ skill: "vue-composition-api",
511
+ reason: "These work great together"
512
+ }
513
+ ]
514
+ }
515
+ }
516
+ );
517
+ var OBSERVABILITY_CONFIG = createMockMatrixConfig({
518
+ "api-observability": createMockCategory("api-observability", "Observability", {
519
+ description: "Monitoring and observability tools",
520
+ domain: "api",
521
+ exclusive: false,
522
+ required: false,
523
+ order: 15
524
+ })
525
+ });
526
+ var FRAMEWORK_AND_TESTING_CONFIG = createMockMatrixConfig(
527
+ {
528
+ "web-framework": {
529
+ ...TEST_CATEGORIES.framework,
530
+ description: "UI Framework",
531
+ required: true,
532
+ order: 1
533
+ },
534
+ "web-testing": {
535
+ ...TEST_CATEGORIES.testing,
536
+ description: "Testing tools",
537
+ domain: "shared",
538
+ exclusive: false,
539
+ order: 10
540
+ }
541
+ },
542
+ {
543
+ relationships: {
544
+ requires: [
545
+ {
546
+ skill: "vitest",
547
+ needs: ["react"],
548
+ reason: "RTL requires React to function"
549
+ }
550
+ ]
551
+ }
552
+ }
553
+ );
554
+ var EMPTY_MATRIX_CONFIG = createMockMatrixConfig({});
555
+ var UNRESOLVED_CONFLICT_MATRIX = createMockMatrixConfig(
556
+ {},
557
+ {
558
+ relationships: {
559
+ conflicts: [
560
+ {
561
+ // Boundary cast: deliberately invalid slug to test unresolved reference handling
562
+ skills: ["react", "nonexistent"],
563
+ reason: "Conflict with missing skill"
564
+ }
565
+ ]
566
+ }
567
+ }
568
+ );
569
+ var PIPELINE_MATRIX = createMockMatrix(
570
+ Object.fromEntries(
571
+ PIPELINE_TEST_SKILLS.map((skill) => [skill.id, testSkillToResolvedSkill(skill)])
572
+ )
573
+ );
574
+ var HEALTH_MISSING_DOMAIN_FRAMEWORK_CATEGORY = {
575
+ ...TEST_CATEGORIES.framework,
576
+ domain: void 0
577
+ };
578
+ var HEALTH_MISSING_DOMAIN_STYLING_CATEGORY = {
579
+ ...TEST_CATEGORIES.styling,
580
+ domain: void 0
581
+ };
582
+ var HEALTH_HEALTHY_MATRIX = createMockMatrix(SKILLS.react, HEALTH_ZUSTAND_RECOMMENDED, {
583
+ categories: {
584
+ "web-framework": TEST_CATEGORIES.framework,
585
+ "web-client-state": TEST_CATEGORIES.clientState
586
+ }
587
+ });
588
+ var HEALTH_SINGLE_SKILL_MATRIX = createMockMatrix(SKILLS.react, {
589
+ categories: {
590
+ "web-framework": TEST_CATEGORIES.framework
591
+ }
592
+ });
593
+ var HEALTH_MISSING_DOMAIN_MATRIX = createMockMatrix(SKILLS.react, {
594
+ categories: {
595
+ "web-framework": HEALTH_MISSING_DOMAIN_FRAMEWORK_CATEGORY
596
+ }
597
+ });
598
+ var HEALTH_MULTIPLE_MISSING_DOMAINS_MATRIX = createMockMatrix(
599
+ {},
600
+ {
601
+ categories: {
602
+ "web-framework": HEALTH_MISSING_DOMAIN_FRAMEWORK_CATEGORY,
603
+ "web-styling": HEALTH_MISSING_DOMAIN_STYLING_CATEGORY,
604
+ "web-client-state": TEST_CATEGORIES.clientState
605
+ }
606
+ }
607
+ );
608
+ var HEALTH_UNKNOWN_CATEGORY_MATRIX = createMockMatrix(HEALTH_ORPHAN_SKILL, {
609
+ categories: {
610
+ "web-framework": TEST_CATEGORIES.framework
611
+ }
612
+ });
613
+ var HEALTH_ORPHAN_SKILL_WITH_MISSING_DOMAIN_MATRIX = createMockMatrix(
614
+ HEALTH_ORPHAN_SKILL,
615
+ {
616
+ categories: {
617
+ "web-framework": HEALTH_MISSING_DOMAIN_FRAMEWORK_CATEGORY
618
+ }
619
+ }
620
+ );
621
+ var HEALTH_UNRESOLVED_COMPATIBLE_WITH_MATRIX = createMockMatrix(
622
+ HEALTH_UNRESOLVED_COMPATIBLE_WITH_SKILL,
623
+ {
624
+ categories: {
625
+ "web-client-state": TEST_CATEGORIES.clientState
626
+ }
627
+ }
628
+ );
629
+ var HEALTH_UNRESOLVED_CONFLICTS_WITH_MATRIX = createMockMatrix(
630
+ HEALTH_UNRESOLVED_CONFLICTS_WITH_SKILL,
631
+ {
632
+ categories: {
633
+ "web-framework": TEST_CATEGORIES.framework
634
+ }
635
+ }
636
+ );
637
+ var HEALTH_UNRESOLVED_REQUIRES_MATRIX = createMockMatrix(
638
+ HEALTH_UNRESOLVED_REQUIRES_SKILL,
639
+ {
640
+ categories: {
641
+ "web-testing": TEST_CATEGORIES.testing
642
+ }
643
+ }
644
+ );
645
+ var HEALTH_MULTIPLE_UNRESOLVED_REFS_MATRIX = createMockMatrix(
646
+ HEALTH_MULTIPLE_UNRESOLVED_REFS_SKILL,
647
+ {
648
+ categories: {
649
+ "web-client-state": TEST_CATEGORIES.clientState
650
+ }
651
+ }
652
+ );
653
+ var HEALTH_ALL_REFS_RESOLVED_MATRIX = createMockMatrix(
654
+ SKILLS.react,
655
+ HEALTH_ALL_REFS_RESOLVED_SKILL,
656
+ {
657
+ categories: {
658
+ "web-framework": TEST_CATEGORIES.framework,
659
+ "web-client-state": TEST_CATEGORIES.clientState
660
+ }
661
+ }
662
+ );
663
+ var HEALTH_PARTIAL_UNRESOLVED_REQUIRES_MATRIX = createMockMatrix(
664
+ SKILLS.react,
665
+ HEALTH_PARTIAL_UNRESOLVED_REQUIRES_SKILL,
666
+ {
667
+ categories: {
668
+ "web-framework": TEST_CATEGORIES.framework,
669
+ "web-testing": TEST_CATEGORIES.testing
670
+ }
671
+ }
672
+ );
673
+
674
+ export {
675
+ EMPTY_MATRIX,
676
+ WEB_PAIR_MATRIX,
677
+ WEB_TRIO_MATRIX,
678
+ CATEGORY_GRID_MATRIX,
679
+ ALL_SKILLS_TEST_CATEGORIES_MATRIX,
680
+ ALL_SKILLS_WEB_FRAMEWORK_MATRIX,
681
+ ALL_SKILLS_WEB_PAIR_CATEGORIES_MATRIX,
682
+ ALL_SKILLS_FULLSTACK_CATEGORIES_MATRIX,
683
+ ALL_SKILLS_WEB_AND_API_MATRIX,
684
+ ALL_SKILLS_METHODOLOGY_MATRIX,
685
+ ALL_SKILLS_METHODOLOGY_BARE_MATRIX,
686
+ ALL_SKILLS_MULTI_DOMAIN_MATRIX,
687
+ REACT_HONO_FRAMEWORK_API_MATRIX
688
+ };
689
+ //# sourceMappingURL=chunk-GDUOOT3J.js.map