vskill 0.5.127 → 0.5.128

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 (220) hide show
  1. package/agents.json +1 -1
  2. package/dist/bin.js +0 -0
  3. package/dist/eval-server/api-routes.js +32 -0
  4. package/dist/eval-server/api-routes.js.map +1 -1
  5. package/dist/eval-ui/assets/{CommandPalette-LtejhB76.js → CommandPalette-D_MdwCki.js} +1 -1
  6. package/dist/eval-ui/assets/{CreateSkillPage-3RuqLQnm.js → CreateSkillPage-lLACfsOZ.js} +1 -1
  7. package/dist/eval-ui/assets/{FindSkillsPalette-Dbl2_IC4.js → FindSkillsPalette-VTksFrSO.js} +2 -2
  8. package/dist/eval-ui/assets/{SearchPaletteCore-CLZmxDat.js → SearchPaletteCore-D49bVafl.js} +1 -1
  9. package/dist/eval-ui/assets/{SkillDetailPanel-RQc5u4nm.js → SkillDetailPanel-Cg8lyDAl.js} +1 -1
  10. package/dist/eval-ui/assets/{UpdateDropdown-O8YGQyMH.js → UpdateDropdown-CLt94M3u.js} +1 -1
  11. package/dist/eval-ui/assets/index-fbCfi37A.js +102 -0
  12. package/dist/eval-ui/assets/{skill-url-BpZjDR8A.js → skill-url-DXjZASn-.js} +1 -1
  13. package/dist/eval-ui/index.html +1 -1
  14. package/dist/index.js +0 -0
  15. package/package.json +1 -1
  16. package/dist/agents/agents-registry.test.d.ts +0 -1
  17. package/dist/agents/agents-registry.test.js +0 -248
  18. package/dist/agents/agents-registry.test.js.map +0 -1
  19. package/dist/api/client.test.d.ts +0 -1
  20. package/dist/api/client.test.js +0 -428
  21. package/dist/api/client.test.js.map +0 -1
  22. package/dist/audit/audit-integration.test.d.ts +0 -1
  23. package/dist/audit/audit-integration.test.js +0 -92
  24. package/dist/audit/audit-integration.test.js.map +0 -1
  25. package/dist/audit/audit-llm.test.d.ts +0 -1
  26. package/dist/audit/audit-llm.test.js +0 -110
  27. package/dist/audit/audit-llm.test.js.map +0 -1
  28. package/dist/audit/audit-patterns.test.d.ts +0 -1
  29. package/dist/audit/audit-patterns.test.js +0 -91
  30. package/dist/audit/audit-patterns.test.js.map +0 -1
  31. package/dist/audit/audit-scanner.test.d.ts +0 -1
  32. package/dist/audit/audit-scanner.test.js +0 -112
  33. package/dist/audit/audit-scanner.test.js.map +0 -1
  34. package/dist/audit/audit-types.test.d.ts +0 -1
  35. package/dist/audit/audit-types.test.js +0 -140
  36. package/dist/audit/audit-types.test.js.map +0 -1
  37. package/dist/audit/config.test.d.ts +0 -1
  38. package/dist/audit/config.test.js +0 -44
  39. package/dist/audit/config.test.js.map +0 -1
  40. package/dist/audit/file-discovery.test.d.ts +0 -1
  41. package/dist/audit/file-discovery.test.js +0 -120
  42. package/dist/audit/file-discovery.test.js.map +0 -1
  43. package/dist/audit/fix-suggestions.test.d.ts +0 -1
  44. package/dist/audit/fix-suggestions.test.js +0 -35
  45. package/dist/audit/fix-suggestions.test.js.map +0 -1
  46. package/dist/audit/formatters/json-formatter.test.d.ts +0 -1
  47. package/dist/audit/formatters/json-formatter.test.js +0 -49
  48. package/dist/audit/formatters/json-formatter.test.js.map +0 -1
  49. package/dist/audit/formatters/report-formatter.test.d.ts +0 -1
  50. package/dist/audit/formatters/report-formatter.test.js +0 -51
  51. package/dist/audit/formatters/report-formatter.test.js.map +0 -1
  52. package/dist/audit/formatters/sarif-formatter.test.d.ts +0 -1
  53. package/dist/audit/formatters/sarif-formatter.test.js +0 -71
  54. package/dist/audit/formatters/sarif-formatter.test.js.map +0 -1
  55. package/dist/audit/formatters/terminal-formatter.test.d.ts +0 -1
  56. package/dist/audit/formatters/terminal-formatter.test.js +0 -51
  57. package/dist/audit/formatters/terminal-formatter.test.js.map +0 -1
  58. package/dist/blocklist/blocklist-e2e.test.d.ts +0 -1
  59. package/dist/blocklist/blocklist-e2e.test.js +0 -346
  60. package/dist/blocklist/blocklist-e2e.test.js.map +0 -1
  61. package/dist/blocklist/blocklist.test.d.ts +0 -1
  62. package/dist/blocklist/blocklist.test.js +0 -259
  63. package/dist/blocklist/blocklist.test.js.map +0 -1
  64. package/dist/commands/__tests__/eval-router.test.d.ts +0 -1
  65. package/dist/commands/__tests__/eval-router.test.js +0 -60
  66. package/dist/commands/__tests__/eval-router.test.js.map +0 -1
  67. package/dist/commands/__tests__/eval-serve.test.d.ts +0 -1
  68. package/dist/commands/__tests__/eval-serve.test.js +0 -23
  69. package/dist/commands/__tests__/eval-serve.test.js.map +0 -1
  70. package/dist/commands/add-blocklist-e2e.test.d.ts +0 -1
  71. package/dist/commands/add-blocklist-e2e.test.js +0 -397
  72. package/dist/commands/add-blocklist-e2e.test.js.map +0 -1
  73. package/dist/commands/add-wizard.test.d.ts +0 -1
  74. package/dist/commands/add-wizard.test.js +0 -392
  75. package/dist/commands/add-wizard.test.js.map +0 -1
  76. package/dist/commands/add.test.d.ts +0 -1
  77. package/dist/commands/add.test.js +0 -2365
  78. package/dist/commands/add.test.js.map +0 -1
  79. package/dist/commands/audit.test.d.ts +0 -1
  80. package/dist/commands/audit.test.js +0 -79
  81. package/dist/commands/audit.test.js.map +0 -1
  82. package/dist/commands/blocklist.test.d.ts +0 -1
  83. package/dist/commands/blocklist.test.js +0 -158
  84. package/dist/commands/blocklist.test.js.map +0 -1
  85. package/dist/commands/eval/__tests__/coverage.test.d.ts +0 -1
  86. package/dist/commands/eval/__tests__/coverage.test.js +0 -122
  87. package/dist/commands/eval/__tests__/coverage.test.js.map +0 -1
  88. package/dist/commands/eval/__tests__/generate-all.test.d.ts +0 -1
  89. package/dist/commands/eval/__tests__/generate-all.test.js +0 -133
  90. package/dist/commands/eval/__tests__/generate-all.test.js.map +0 -1
  91. package/dist/commands/eval/__tests__/init.test.d.ts +0 -1
  92. package/dist/commands/eval/__tests__/init.test.js +0 -116
  93. package/dist/commands/eval/__tests__/init.test.js.map +0 -1
  94. package/dist/commands/eval/__tests__/run.test.d.ts +0 -1
  95. package/dist/commands/eval/__tests__/run.test.js +0 -186
  96. package/dist/commands/eval/__tests__/run.test.js.map +0 -1
  97. package/dist/commands/find.test.d.ts +0 -1
  98. package/dist/commands/find.test.js +0 -481
  99. package/dist/commands/find.test.js.map +0 -1
  100. package/dist/commands/marketplace.test.d.ts +0 -1
  101. package/dist/commands/marketplace.test.js +0 -129
  102. package/dist/commands/marketplace.test.js.map +0 -1
  103. package/dist/commands/remove.test.d.ts +0 -1
  104. package/dist/commands/remove.test.js +0 -164
  105. package/dist/commands/remove.test.js.map +0 -1
  106. package/dist/commands/should-skip.test.d.ts +0 -1
  107. package/dist/commands/should-skip.test.js +0 -56
  108. package/dist/commands/should-skip.test.js.map +0 -1
  109. package/dist/commands/submit.test.d.ts +0 -1
  110. package/dist/commands/submit.test.js +0 -83
  111. package/dist/commands/submit.test.js.map +0 -1
  112. package/dist/commands/update.test.d.ts +0 -1
  113. package/dist/commands/update.test.js +0 -250
  114. package/dist/commands/update.test.js.map +0 -1
  115. package/dist/discovery/github-tree.test.d.ts +0 -1
  116. package/dist/discovery/github-tree.test.js +0 -372
  117. package/dist/discovery/github-tree.test.js.map +0 -1
  118. package/dist/eval/__tests__/activation-tester.test.d.ts +0 -1
  119. package/dist/eval/__tests__/activation-tester.test.js +0 -203
  120. package/dist/eval/__tests__/activation-tester.test.js.map +0 -1
  121. package/dist/eval/__tests__/benchmark-history.test.d.ts +0 -1
  122. package/dist/eval/__tests__/benchmark-history.test.js +0 -422
  123. package/dist/eval/__tests__/benchmark-history.test.js.map +0 -1
  124. package/dist/eval/__tests__/benchmark.test.d.ts +0 -1
  125. package/dist/eval/__tests__/benchmark.test.js +0 -94
  126. package/dist/eval/__tests__/benchmark.test.js.map +0 -1
  127. package/dist/eval/__tests__/comparator.test.d.ts +0 -1
  128. package/dist/eval/__tests__/comparator.test.js +0 -282
  129. package/dist/eval/__tests__/comparator.test.js.map +0 -1
  130. package/dist/eval/__tests__/judge.test.d.ts +0 -1
  131. package/dist/eval/__tests__/judge.test.js +0 -122
  132. package/dist/eval/__tests__/judge.test.js.map +0 -1
  133. package/dist/eval/__tests__/llm.test.d.ts +0 -1
  134. package/dist/eval/__tests__/llm.test.js +0 -543
  135. package/dist/eval/__tests__/llm.test.js.map +0 -1
  136. package/dist/eval/__tests__/mcp-detector.test.d.ts +0 -1
  137. package/dist/eval/__tests__/mcp-detector.test.js +0 -180
  138. package/dist/eval/__tests__/mcp-detector.test.js.map +0 -1
  139. package/dist/eval/__tests__/prompt-builder.test.d.ts +0 -1
  140. package/dist/eval/__tests__/prompt-builder.test.js +0 -142
  141. package/dist/eval/__tests__/prompt-builder.test.js.map +0 -1
  142. package/dist/eval/__tests__/schema.test.d.ts +0 -1
  143. package/dist/eval/__tests__/schema.test.js +0 -247
  144. package/dist/eval/__tests__/schema.test.js.map +0 -1
  145. package/dist/eval/__tests__/skill-scanner.test.d.ts +0 -1
  146. package/dist/eval/__tests__/skill-scanner.test.js +0 -228
  147. package/dist/eval/__tests__/skill-scanner.test.js.map +0 -1
  148. package/dist/eval/__tests__/verdict.test.d.ts +0 -1
  149. package/dist/eval/__tests__/verdict.test.js +0 -47
  150. package/dist/eval/__tests__/verdict.test.js.map +0 -1
  151. package/dist/eval-server/__tests__/benchmark-runner.test.d.ts +0 -1
  152. package/dist/eval-server/__tests__/benchmark-runner.test.js +0 -301
  153. package/dist/eval-server/__tests__/benchmark-runner.test.js.map +0 -1
  154. package/dist/eval-server/__tests__/comparison-sse-events.test.d.ts +0 -1
  155. package/dist/eval-server/__tests__/comparison-sse-events.test.js +0 -278
  156. package/dist/eval-server/__tests__/comparison-sse-events.test.js.map +0 -1
  157. package/dist/eval-server/__tests__/sse-helpers.test.d.ts +0 -1
  158. package/dist/eval-server/__tests__/sse-helpers.test.js +0 -128
  159. package/dist/eval-server/__tests__/sse-helpers.test.js.map +0 -1
  160. package/dist/eval-ui/assets/index-DlZduKAT.js +0 -102
  161. package/dist/installer/canonical.test.d.ts +0 -1
  162. package/dist/installer/canonical.test.js +0 -264
  163. package/dist/installer/canonical.test.js.map +0 -1
  164. package/dist/lockfile/lockfile.test.d.ts +0 -1
  165. package/dist/lockfile/lockfile.test.js +0 -204
  166. package/dist/lockfile/lockfile.test.js.map +0 -1
  167. package/dist/lockfile/project-root.test.d.ts +0 -1
  168. package/dist/lockfile/project-root.test.js +0 -49
  169. package/dist/lockfile/project-root.test.js.map +0 -1
  170. package/dist/marketplace/marketplace.test.d.ts +0 -1
  171. package/dist/marketplace/marketplace.test.js +0 -312
  172. package/dist/marketplace/marketplace.test.js.map +0 -1
  173. package/dist/resolvers/source-resolver.test.d.ts +0 -1
  174. package/dist/resolvers/source-resolver.test.js +0 -104
  175. package/dist/resolvers/source-resolver.test.js.map +0 -1
  176. package/dist/resolvers/url-resolver.test.d.ts +0 -1
  177. package/dist/resolvers/url-resolver.test.js +0 -49
  178. package/dist/resolvers/url-resolver.test.js.map +0 -1
  179. package/dist/scanner/dci-integration.test.d.ts +0 -1
  180. package/dist/scanner/dci-integration.test.js +0 -83
  181. package/dist/scanner/dci-integration.test.js.map +0 -1
  182. package/dist/scanner/patterns.test.d.ts +0 -1
  183. package/dist/scanner/patterns.test.js +0 -832
  184. package/dist/scanner/patterns.test.js.map +0 -1
  185. package/dist/scanner/tier1.test.d.ts +0 -1
  186. package/dist/scanner/tier1.test.js +0 -305
  187. package/dist/scanner/tier1.test.js.map +0 -1
  188. package/dist/security/platform-security.test.d.ts +0 -1
  189. package/dist/security/platform-security.test.js +0 -92
  190. package/dist/security/platform-security.test.js.map +0 -1
  191. package/dist/settings/settings.test.d.ts +0 -1
  192. package/dist/settings/settings.test.js +0 -103
  193. package/dist/settings/settings.test.js.map +0 -1
  194. package/dist/updater/source-fetcher.test.d.ts +0 -1
  195. package/dist/updater/source-fetcher.test.js +0 -192
  196. package/dist/updater/source-fetcher.test.js.map +0 -1
  197. package/dist/utils/__tests__/paths.test.d.ts +0 -1
  198. package/dist/utils/__tests__/paths.test.js +0 -22
  199. package/dist/utils/__tests__/paths.test.js.map +0 -1
  200. package/dist/utils/__tests__/resolve-binary.integration.test.d.ts +0 -1
  201. package/dist/utils/__tests__/resolve-binary.integration.test.js +0 -138
  202. package/dist/utils/__tests__/resolve-binary.integration.test.js.map +0 -1
  203. package/dist/utils/__tests__/resolve-binary.test.d.ts +0 -1
  204. package/dist/utils/__tests__/resolve-binary.test.js +0 -175
  205. package/dist/utils/__tests__/resolve-binary.test.js.map +0 -1
  206. package/dist/utils/__tests__/validation.test.d.ts +0 -1
  207. package/dist/utils/__tests__/validation.test.js +0 -107
  208. package/dist/utils/__tests__/validation.test.js.map +0 -1
  209. package/dist/utils/agent-filter.test.d.ts +0 -1
  210. package/dist/utils/agent-filter.test.js +0 -75
  211. package/dist/utils/agent-filter.test.js.map +0 -1
  212. package/dist/utils/output.test.d.ts +0 -1
  213. package/dist/utils/output.test.js +0 -28
  214. package/dist/utils/output.test.js.map +0 -1
  215. package/dist/utils/project-root.test.d.ts +0 -1
  216. package/dist/utils/project-root.test.js +0 -74
  217. package/dist/utils/project-root.test.js.map +0 -1
  218. package/dist/utils/prompts.test.d.ts +0 -1
  219. package/dist/utils/prompts.test.js +0 -285
  220. package/dist/utils/prompts.test.js.map +0 -1
@@ -1,392 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
- // ---------------------------------------------------------------------------
3
- // Mock node:fs
4
- // ---------------------------------------------------------------------------
5
- const mockMkdirSync = vi.fn();
6
- const mockWriteFileSync = vi.fn();
7
- const mockReadFileSync = vi.fn();
8
- const mockExistsSync = vi.fn();
9
- const mockChmodSync = vi.fn();
10
- const mockReaddirSync = vi.fn();
11
- const mockStatSync = vi.fn();
12
- const mockCopyFileSync = vi.fn();
13
- const mockRmSync = vi.fn();
14
- vi.mock("node:fs", () => ({
15
- mkdirSync: (...args) => mockMkdirSync(...args),
16
- writeFileSync: (...args) => mockWriteFileSync(...args),
17
- readFileSync: (...args) => mockReadFileSync(...args),
18
- existsSync: (...args) => mockExistsSync(...args),
19
- chmodSync: (...args) => mockChmodSync(...args),
20
- readdirSync: (...args) => mockReaddirSync(...args),
21
- statSync: (...args) => mockStatSync(...args),
22
- copyFileSync: (...args) => mockCopyFileSync(...args),
23
- rmSync: (...args) => mockRmSync(...args),
24
- }));
25
- vi.mock("node:path", async () => {
26
- const actual = await vi.importActual("node:path");
27
- return { ...actual };
28
- });
29
- const mockDigest = vi.fn().mockReturnValue("abcdef123456xxxx");
30
- const mockUpdate = vi.fn().mockReturnValue({ digest: mockDigest });
31
- vi.mock("node:crypto", () => ({
32
- createHash: () => ({ update: mockUpdate }),
33
- }));
34
- // ---------------------------------------------------------------------------
35
- // Mock agents registry
36
- // ---------------------------------------------------------------------------
37
- const mockDetectInstalledAgents = vi.fn();
38
- vi.mock("../agents/agents-registry.js", () => ({
39
- detectInstalledAgents: (...args) => mockDetectInstalledAgents(...args),
40
- AGENTS_REGISTRY: [
41
- { id: "claude-code", displayName: "Claude Code", isUniversal: false, parentCompany: "Anthropic", localSkillsDir: ".claude/commands", globalSkillsDir: "~/.claude/commands" },
42
- { id: "cursor", displayName: "Cursor", isUniversal: false, parentCompany: "Anysphere", localSkillsDir: ".cursor/commands", globalSkillsDir: "~/.cursor/commands" },
43
- ],
44
- }));
45
- // ---------------------------------------------------------------------------
46
- // Mock lockfile
47
- // ---------------------------------------------------------------------------
48
- const mockEnsureLockfile = vi.fn();
49
- const mockWriteLockfile = vi.fn();
50
- vi.mock("../lockfile/index.js", () => ({
51
- ensureLockfile: (...args) => mockEnsureLockfile(...args),
52
- writeLockfile: (...args) => mockWriteLockfile(...args),
53
- }));
54
- // ---------------------------------------------------------------------------
55
- // Mock scanner, blocklist, security, API client, discovery
56
- // ---------------------------------------------------------------------------
57
- const mockRunTier1Scan = vi.fn();
58
- vi.mock("../scanner/index.js", () => ({
59
- runTier1Scan: (...args) => mockRunTier1Scan(...args),
60
- }));
61
- const mockCheckBlocklist = vi.fn();
62
- const mockCheckInstallSafety = vi.fn();
63
- vi.mock("../blocklist/blocklist.js", () => ({
64
- checkBlocklist: (...args) => mockCheckBlocklist(...args),
65
- checkInstallSafety: (...args) => mockCheckInstallSafety(...args),
66
- }));
67
- const mockCheckPlatformSecurity = vi.fn();
68
- vi.mock("../security/index.js", () => ({
69
- checkPlatformSecurity: (...args) => mockCheckPlatformSecurity(...args),
70
- }));
71
- const mockGetSkill = vi.fn();
72
- vi.mock("../api/client.js", () => ({
73
- getSkill: (...args) => mockGetSkill(...args),
74
- reportInstall: vi.fn().mockResolvedValue(undefined),
75
- reportInstallBatch: vi.fn().mockResolvedValue(undefined),
76
- }));
77
- const mockDiscoverSkills = vi.fn();
78
- vi.mock("../discovery/github-tree.js", () => ({
79
- discoverSkills: (...args) => mockDiscoverSkills(...args),
80
- }));
81
- // ---------------------------------------------------------------------------
82
- // Mock project root & agent filter
83
- // ---------------------------------------------------------------------------
84
- const mockFindProjectRoot = vi.fn();
85
- vi.mock("../utils/project-root.js", () => ({
86
- findProjectRoot: (...args) => mockFindProjectRoot(...args),
87
- }));
88
- const mockFilterAgents = vi.fn();
89
- vi.mock("../utils/agent-filter.js", () => ({
90
- filterAgents: (...args) => mockFilterAgents(...args),
91
- }));
92
- // ---------------------------------------------------------------------------
93
- // Mock output (suppress ANSI output)
94
- // ---------------------------------------------------------------------------
95
- vi.mock("../utils/output.js", () => ({
96
- bold: (s) => s,
97
- green: (s) => s,
98
- red: (s) => s,
99
- yellow: (s) => s,
100
- dim: (s) => s,
101
- cyan: (s) => s,
102
- spinner: () => ({ stop: vi.fn() }),
103
- }));
104
- // ---------------------------------------------------------------------------
105
- // Mock prompts (to test wizard integration without real readline)
106
- // ---------------------------------------------------------------------------
107
- const mockPromptCheckboxList = vi.fn();
108
- const mockPromptChoice = vi.fn();
109
- const mockPromptConfirm = vi.fn();
110
- const mockIsTTY = vi.fn();
111
- vi.mock("../utils/prompts.js", () => ({
112
- isTTY: (...args) => mockIsTTY(...args),
113
- createPrompter: () => ({
114
- promptCheckboxList: (...args) => mockPromptCheckboxList(...args),
115
- promptChoice: (...args) => mockPromptChoice(...args),
116
- promptConfirm: (...args) => mockPromptConfirm(...args),
117
- }),
118
- }));
119
- // ---------------------------------------------------------------------------
120
- // Mock canonical installer
121
- // ---------------------------------------------------------------------------
122
- const mockInstallSymlink = vi.fn();
123
- const mockInstallCopy = vi.fn();
124
- vi.mock("../installer/canonical.js", () => ({
125
- installSymlink: (...args) => mockInstallSymlink(...args),
126
- installCopy: (...args) => mockInstallCopy(...args),
127
- }));
128
- // ---------------------------------------------------------------------------
129
- // Import module under test AFTER mocks
130
- // ---------------------------------------------------------------------------
131
- const { addCommand } = await import("./add.js");
132
- // ---------------------------------------------------------------------------
133
- // Helpers
134
- // ---------------------------------------------------------------------------
135
- function makeScanResult(overrides = {}) {
136
- return {
137
- verdict: "PASS",
138
- findings: [],
139
- score: 100,
140
- patternsChecked: 37,
141
- criticalCount: 0,
142
- highCount: 0,
143
- mediumCount: 0,
144
- lowCount: 0,
145
- infoCount: 0,
146
- durationMs: 1,
147
- ...overrides,
148
- };
149
- }
150
- function makeAgent(overrides = {}) {
151
- return {
152
- id: "claude-code",
153
- displayName: "Claude Code",
154
- localSkillsDir: ".claude/commands",
155
- globalSkillsDir: "~/.claude/commands",
156
- ...overrides,
157
- };
158
- }
159
- const originalFetch = globalThis.fetch;
160
- beforeEach(() => {
161
- vi.clearAllMocks();
162
- vi.spyOn(console, "log").mockImplementation(() => { });
163
- vi.spyOn(console, "error").mockImplementation(() => { });
164
- // Default: safe skill content
165
- globalThis.fetch = vi.fn().mockResolvedValue({
166
- ok: true,
167
- text: async () => "# Safe Skill\nNormal content",
168
- });
169
- mockRunTier1Scan.mockReturnValue(makeScanResult());
170
- mockCheckBlocklist.mockResolvedValue(null);
171
- mockCheckInstallSafety.mockResolvedValue({ blocked: false, rejected: false });
172
- mockCheckPlatformSecurity.mockResolvedValue(null);
173
- mockEnsureLockfile.mockReturnValue({ skills: {}, agents: [] });
174
- mockFindProjectRoot.mockReturnValue("/projects/myapp");
175
- mockFilterAgents.mockImplementation((agents) => agents);
176
- // Default: TTY
177
- mockIsTTY.mockReturnValue(true);
178
- });
179
- afterEach(() => {
180
- globalThis.fetch = originalFetch;
181
- });
182
- // ---------------------------------------------------------------------------
183
- // Tests: interactive-first default (prompts in TTY)
184
- // ---------------------------------------------------------------------------
185
- describe("wizard integration: interactive by default in TTY", () => {
186
- it("prompts for agents and method by default for multi-skill repos", async () => {
187
- const agents = [makeAgent(), makeAgent({ id: "cursor", displayName: "Cursor", localSkillsDir: ".cursor/skills" })];
188
- mockDetectInstalledAgents.mockResolvedValue(agents);
189
- mockDiscoverSkills.mockResolvedValue([
190
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
191
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
192
- ]);
193
- // Agent selection, method selection, skill selection (no scope prompt)
194
- mockPromptCheckboxList
195
- .mockResolvedValueOnce([0, 1]) // agents
196
- .mockResolvedValueOnce([0, 1]); // skills
197
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
198
- await addCommand("owner/repo", {});
199
- // Agent checkbox + skill checkbox
200
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
201
- // Method prompt only (scope prompt removed)
202
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
203
- });
204
- });
205
- describe("wizard integration: --yes flag (backward compat)", () => {
206
- it("skips all prompts when --yes is set", async () => {
207
- const agents = [makeAgent(), makeAgent({ id: "cursor", localSkillsDir: ".cursor/skills" })];
208
- mockDetectInstalledAgents.mockResolvedValue(agents);
209
- mockDiscoverSkills.mockResolvedValue([
210
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
211
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
212
- ]);
213
- await addCommand("owner/repo", { yes: true });
214
- expect(mockPromptCheckboxList).not.toHaveBeenCalled();
215
- expect(mockPromptChoice).not.toHaveBeenCalled();
216
- expect(mockPromptConfirm).not.toHaveBeenCalled();
217
- });
218
- });
219
- describe("wizard integration: --select is a no-op (interactive is default)", () => {
220
- it("shows same prompts with or without --select", async () => {
221
- const agents = [makeAgent()];
222
- mockDetectInstalledAgents.mockResolvedValue(agents);
223
- mockDiscoverSkills.mockResolvedValue([
224
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
225
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
226
- ]);
227
- // 1 detected + 1 undetected from registry → agent checkbox + method + skill checkbox (no scope)
228
- mockPromptCheckboxList
229
- .mockResolvedValueOnce([0]) // agents: select detected only
230
- .mockResolvedValueOnce([0, 1]); // skills
231
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
232
- await addCommand("owner/repo", { select: true });
233
- // Method prompt only (scope removed)
234
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
235
- // Agent checkbox + skill checkbox
236
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
237
- });
238
- });
239
- describe("wizard integration: non-TTY mode", () => {
240
- it("skips prompts when stdin is not a TTY even with --select", async () => {
241
- mockIsTTY.mockReturnValue(false);
242
- const agents = [makeAgent()];
243
- mockDetectInstalledAgents.mockResolvedValue(agents);
244
- mockDiscoverSkills.mockResolvedValue([
245
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
246
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
247
- ]);
248
- await addCommand("owner/repo", { select: true });
249
- expect(mockPromptCheckboxList).not.toHaveBeenCalled();
250
- expect(mockPromptChoice).not.toHaveBeenCalled();
251
- expect(mockPromptConfirm).not.toHaveBeenCalled();
252
- });
253
- });
254
- describe("wizard integration: single skill prompts for method", () => {
255
- it("shows method prompt and agent checkbox for single-skill with undetected agents", async () => {
256
- const agents = [makeAgent()];
257
- mockDetectInstalledAgents.mockResolvedValue(agents);
258
- mockDiscoverSkills.mockResolvedValue([
259
- { name: "only-skill", rawUrl: "https://raw.githubusercontent.com/o/r/main/SKILL.md" },
260
- ]);
261
- // 1 detected + 1 undetected → agent checkbox shown
262
- mockPromptCheckboxList.mockResolvedValueOnce([0]); // agents: select detected
263
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
264
- await addCommand("owner/repo", {});
265
- // Agent checkbox shown (detected + undetected agents in list)
266
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(1);
267
- // Method prompt only (scope removed)
268
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
269
- });
270
- });
271
- describe("wizard integration: --agent flag skips agent selection", () => {
272
- it("does not prompt for agents but still prompts for method", async () => {
273
- const agents = [makeAgent()];
274
- mockDetectInstalledAgents.mockResolvedValue(agents);
275
- mockDiscoverSkills.mockResolvedValue([
276
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
277
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
278
- ]);
279
- // Method selection + skill selection (no agent checkbox since --agent, no scope prompt)
280
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
281
- mockPromptCheckboxList.mockResolvedValue([0, 1]); // select all skills
282
- await addCommand("owner/repo", { agent: ["claude-code"] });
283
- // Skill checkbox called, agent checkbox NOT called (--agent flag)
284
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(1);
285
- // Method prompt only (scope removed)
286
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
287
- });
288
- });
289
- describe("wizard integration: --global flag skips scope selection", () => {
290
- it("does not prompt for scope when --global is provided but still prompts for method", async () => {
291
- const agents = [makeAgent()];
292
- mockDetectInstalledAgents.mockResolvedValue(agents);
293
- mockDiscoverSkills.mockResolvedValue([
294
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
295
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
296
- ]);
297
- // Agent checkbox + skill checkbox (no scope since --global, but method is prompted)
298
- mockPromptCheckboxList
299
- .mockResolvedValueOnce([0]) // agents: select detected
300
- .mockResolvedValueOnce([0, 1]); // skills
301
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink
302
- await addCommand("owner/repo", { global: true, select: true });
303
- // Only method prompt (scope skipped due to --global)
304
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
305
- });
306
- });
307
- describe("wizard integration: abort at agent selection", () => {
308
- it("exits cleanly when user selects no agents", async () => {
309
- const agents = [makeAgent(), makeAgent({ id: "cursor", displayName: "Cursor", localSkillsDir: ".cursor/skills" })];
310
- mockDetectInstalledAgents.mockResolvedValue(agents);
311
- mockDiscoverSkills.mockResolvedValue([
312
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
313
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
314
- ]);
315
- mockPromptCheckboxList.mockResolvedValueOnce([]); // user deselects all agents
316
- const mockExit = vi.spyOn(process, "exit").mockImplementation(() => {
317
- throw new Error("process.exit");
318
- });
319
- await expect(addCommand("owner/repo", {})).rejects.toThrow("process.exit");
320
- mockExit.mockRestore();
321
- // No skills should have been installed
322
- expect(mockWriteFileSync).not.toHaveBeenCalled();
323
- expect(mockInstallSymlink).not.toHaveBeenCalled();
324
- expect(mockInstallCopy).not.toHaveBeenCalled();
325
- });
326
- });
327
- // TC-014: Single-agent detected shows agents + method + skills (undetected shown too)
328
- describe("wizard integration: TC-014 single-agent prompts agents + method + skills", () => {
329
- it("shows agent checkbox with detected+undetected, method, and skills", async () => {
330
- const agents = [makeAgent()];
331
- mockDetectInstalledAgents.mockResolvedValue(agents);
332
- mockDiscoverSkills.mockResolvedValue([
333
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
334
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
335
- ]);
336
- // Agent checkbox (detected + undetected) + skill checkbox
337
- mockPromptCheckboxList
338
- .mockResolvedValueOnce([0]) // agents: select detected
339
- .mockResolvedValueOnce([0, 1]); // select both skills
340
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
341
- await addCommand("owner/repo", {});
342
- // Agent checkbox + skill checkbox
343
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
344
- // Method prompt only (scope removed)
345
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
346
- // Installation proceeded (via canonical installer)
347
- expect(mockInstallSymlink).toHaveBeenCalled();
348
- });
349
- });
350
- // TC-015: Multi-agent shows agents + method + skills
351
- describe("wizard integration: TC-015 multi-agent prompts agents + method + skills", () => {
352
- it("shows agent checkbox, method selection, and skill checkbox", async () => {
353
- const agents = [makeAgent(), makeAgent({ id: "cursor", displayName: "Cursor" })];
354
- mockDetectInstalledAgents.mockResolvedValue(agents);
355
- mockDiscoverSkills.mockResolvedValue([
356
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
357
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
358
- ]);
359
- mockPromptCheckboxList
360
- .mockResolvedValueOnce([0, 1]) // agents
361
- .mockResolvedValueOnce([0, 1]); // skills
362
- mockPromptChoice.mockResolvedValueOnce(0); // method: symlink (no scope prompt)
363
- await addCommand("owner/repo", {});
364
- // Two checkbox prompts: agents + skills
365
- expect(mockPromptCheckboxList).toHaveBeenCalledTimes(2);
366
- // Method prompt only (scope removed)
367
- expect(mockPromptChoice).toHaveBeenCalledTimes(1);
368
- });
369
- });
370
- // TC-016: --copy flag causes copy behavior instead of symlink
371
- describe("wizard integration: TC-016 --copy flag", () => {
372
- it("accepts --copy flag, skips method prompt, uses installCopy", async () => {
373
- const agents = [makeAgent()];
374
- mockDetectInstalledAgents.mockResolvedValue(agents);
375
- mockDiscoverSkills.mockResolvedValue([
376
- { name: "skill-a", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-a/SKILL.md" },
377
- { name: "skill-b", rawUrl: "https://raw.githubusercontent.com/o/r/main/skills/skill-b/SKILL.md" },
378
- ]);
379
- // Agent checkbox + skill checkbox (no scope, no method since --copy)
380
- mockPromptCheckboxList
381
- .mockResolvedValueOnce([0]) // agents: select detected
382
- .mockResolvedValueOnce([0, 1]); // skills
383
- // Should not throw - --copy is a valid flag
384
- await addCommand("owner/repo", { copy: true });
385
- // Both scope and method prompts skipped (scope removed, method skipped by --copy)
386
- expect(mockPromptChoice).toHaveBeenCalledTimes(0);
387
- // Uses installCopy, not installSymlink
388
- expect(mockInstallCopy).toHaveBeenCalled();
389
- expect(mockInstallSymlink).not.toHaveBeenCalled();
390
- });
391
- });
392
- //# sourceMappingURL=add-wizard.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-wizard.test.js","sourceRoot":"","sources":["../../src/commands/add-wizard.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};