vskill 0.5.127 → 0.5.129

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 (232) 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-server/eval-server.js +2 -0
  6. package/dist/eval-server/eval-server.js.map +1 -1
  7. package/dist/eval-server/git-routes.d.ts +5 -0
  8. package/dist/eval-server/git-routes.js +172 -0
  9. package/dist/eval-server/git-routes.js.map +1 -0
  10. package/dist/eval-server/router.d.ts +2 -0
  11. package/dist/eval-server/router.js +3 -1
  12. package/dist/eval-server/router.js.map +1 -1
  13. package/dist/eval-server/skill-name-resolver.d.ts +13 -0
  14. package/dist/eval-server/skill-name-resolver.js +42 -0
  15. package/dist/eval-server/skill-name-resolver.js.map +1 -1
  16. package/dist/eval-ui/assets/{CommandPalette-LtejhB76.js → CommandPalette-BIjKkHCC.js} +1 -1
  17. package/dist/eval-ui/assets/{CreateSkillPage-3RuqLQnm.js → CreateSkillPage-CmV0WZOn.js} +1 -1
  18. package/dist/eval-ui/assets/{FindSkillsPalette-Dbl2_IC4.js → FindSkillsPalette-BtYgEsVD.js} +2 -2
  19. package/dist/eval-ui/assets/{SearchPaletteCore-CLZmxDat.js → SearchPaletteCore-CAEO357X.js} +1 -1
  20. package/dist/eval-ui/assets/{SkillDetailPanel-RQc5u4nm.js → SkillDetailPanel-AH9wV3VU.js} +1 -1
  21. package/dist/eval-ui/assets/{UpdateDropdown-O8YGQyMH.js → UpdateDropdown-BwMxB2Ub.js} +1 -1
  22. package/dist/eval-ui/assets/index-ZByf-wxl.js +102 -0
  23. package/dist/eval-ui/assets/skill-url-C4ekwoGs.js +1 -0
  24. package/dist/eval-ui/index.html +1 -1
  25. package/dist/index.js +0 -0
  26. package/package.json +1 -1
  27. package/dist/agents/agents-registry.test.d.ts +0 -1
  28. package/dist/agents/agents-registry.test.js +0 -248
  29. package/dist/agents/agents-registry.test.js.map +0 -1
  30. package/dist/api/client.test.d.ts +0 -1
  31. package/dist/api/client.test.js +0 -428
  32. package/dist/api/client.test.js.map +0 -1
  33. package/dist/audit/audit-integration.test.d.ts +0 -1
  34. package/dist/audit/audit-integration.test.js +0 -92
  35. package/dist/audit/audit-integration.test.js.map +0 -1
  36. package/dist/audit/audit-llm.test.d.ts +0 -1
  37. package/dist/audit/audit-llm.test.js +0 -110
  38. package/dist/audit/audit-llm.test.js.map +0 -1
  39. package/dist/audit/audit-patterns.test.d.ts +0 -1
  40. package/dist/audit/audit-patterns.test.js +0 -91
  41. package/dist/audit/audit-patterns.test.js.map +0 -1
  42. package/dist/audit/audit-scanner.test.d.ts +0 -1
  43. package/dist/audit/audit-scanner.test.js +0 -112
  44. package/dist/audit/audit-scanner.test.js.map +0 -1
  45. package/dist/audit/audit-types.test.d.ts +0 -1
  46. package/dist/audit/audit-types.test.js +0 -140
  47. package/dist/audit/audit-types.test.js.map +0 -1
  48. package/dist/audit/config.test.d.ts +0 -1
  49. package/dist/audit/config.test.js +0 -44
  50. package/dist/audit/config.test.js.map +0 -1
  51. package/dist/audit/file-discovery.test.d.ts +0 -1
  52. package/dist/audit/file-discovery.test.js +0 -120
  53. package/dist/audit/file-discovery.test.js.map +0 -1
  54. package/dist/audit/fix-suggestions.test.d.ts +0 -1
  55. package/dist/audit/fix-suggestions.test.js +0 -35
  56. package/dist/audit/fix-suggestions.test.js.map +0 -1
  57. package/dist/audit/formatters/json-formatter.test.d.ts +0 -1
  58. package/dist/audit/formatters/json-formatter.test.js +0 -49
  59. package/dist/audit/formatters/json-formatter.test.js.map +0 -1
  60. package/dist/audit/formatters/report-formatter.test.d.ts +0 -1
  61. package/dist/audit/formatters/report-formatter.test.js +0 -51
  62. package/dist/audit/formatters/report-formatter.test.js.map +0 -1
  63. package/dist/audit/formatters/sarif-formatter.test.d.ts +0 -1
  64. package/dist/audit/formatters/sarif-formatter.test.js +0 -71
  65. package/dist/audit/formatters/sarif-formatter.test.js.map +0 -1
  66. package/dist/audit/formatters/terminal-formatter.test.d.ts +0 -1
  67. package/dist/audit/formatters/terminal-formatter.test.js +0 -51
  68. package/dist/audit/formatters/terminal-formatter.test.js.map +0 -1
  69. package/dist/blocklist/blocklist-e2e.test.d.ts +0 -1
  70. package/dist/blocklist/blocklist-e2e.test.js +0 -346
  71. package/dist/blocklist/blocklist-e2e.test.js.map +0 -1
  72. package/dist/blocklist/blocklist.test.d.ts +0 -1
  73. package/dist/blocklist/blocklist.test.js +0 -259
  74. package/dist/blocklist/blocklist.test.js.map +0 -1
  75. package/dist/commands/__tests__/eval-router.test.d.ts +0 -1
  76. package/dist/commands/__tests__/eval-router.test.js +0 -60
  77. package/dist/commands/__tests__/eval-router.test.js.map +0 -1
  78. package/dist/commands/__tests__/eval-serve.test.d.ts +0 -1
  79. package/dist/commands/__tests__/eval-serve.test.js +0 -23
  80. package/dist/commands/__tests__/eval-serve.test.js.map +0 -1
  81. package/dist/commands/add-blocklist-e2e.test.d.ts +0 -1
  82. package/dist/commands/add-blocklist-e2e.test.js +0 -397
  83. package/dist/commands/add-blocklist-e2e.test.js.map +0 -1
  84. package/dist/commands/add-wizard.test.d.ts +0 -1
  85. package/dist/commands/add-wizard.test.js +0 -392
  86. package/dist/commands/add-wizard.test.js.map +0 -1
  87. package/dist/commands/add.test.d.ts +0 -1
  88. package/dist/commands/add.test.js +0 -2365
  89. package/dist/commands/add.test.js.map +0 -1
  90. package/dist/commands/audit.test.d.ts +0 -1
  91. package/dist/commands/audit.test.js +0 -79
  92. package/dist/commands/audit.test.js.map +0 -1
  93. package/dist/commands/blocklist.test.d.ts +0 -1
  94. package/dist/commands/blocklist.test.js +0 -158
  95. package/dist/commands/blocklist.test.js.map +0 -1
  96. package/dist/commands/eval/__tests__/coverage.test.d.ts +0 -1
  97. package/dist/commands/eval/__tests__/coverage.test.js +0 -122
  98. package/dist/commands/eval/__tests__/coverage.test.js.map +0 -1
  99. package/dist/commands/eval/__tests__/generate-all.test.d.ts +0 -1
  100. package/dist/commands/eval/__tests__/generate-all.test.js +0 -133
  101. package/dist/commands/eval/__tests__/generate-all.test.js.map +0 -1
  102. package/dist/commands/eval/__tests__/init.test.d.ts +0 -1
  103. package/dist/commands/eval/__tests__/init.test.js +0 -116
  104. package/dist/commands/eval/__tests__/init.test.js.map +0 -1
  105. package/dist/commands/eval/__tests__/run.test.d.ts +0 -1
  106. package/dist/commands/eval/__tests__/run.test.js +0 -186
  107. package/dist/commands/eval/__tests__/run.test.js.map +0 -1
  108. package/dist/commands/find.test.d.ts +0 -1
  109. package/dist/commands/find.test.js +0 -481
  110. package/dist/commands/find.test.js.map +0 -1
  111. package/dist/commands/marketplace.test.d.ts +0 -1
  112. package/dist/commands/marketplace.test.js +0 -129
  113. package/dist/commands/marketplace.test.js.map +0 -1
  114. package/dist/commands/remove.test.d.ts +0 -1
  115. package/dist/commands/remove.test.js +0 -164
  116. package/dist/commands/remove.test.js.map +0 -1
  117. package/dist/commands/should-skip.test.d.ts +0 -1
  118. package/dist/commands/should-skip.test.js +0 -56
  119. package/dist/commands/should-skip.test.js.map +0 -1
  120. package/dist/commands/submit.test.d.ts +0 -1
  121. package/dist/commands/submit.test.js +0 -83
  122. package/dist/commands/submit.test.js.map +0 -1
  123. package/dist/commands/update.test.d.ts +0 -1
  124. package/dist/commands/update.test.js +0 -250
  125. package/dist/commands/update.test.js.map +0 -1
  126. package/dist/discovery/github-tree.test.d.ts +0 -1
  127. package/dist/discovery/github-tree.test.js +0 -372
  128. package/dist/discovery/github-tree.test.js.map +0 -1
  129. package/dist/eval/__tests__/activation-tester.test.d.ts +0 -1
  130. package/dist/eval/__tests__/activation-tester.test.js +0 -203
  131. package/dist/eval/__tests__/activation-tester.test.js.map +0 -1
  132. package/dist/eval/__tests__/benchmark-history.test.d.ts +0 -1
  133. package/dist/eval/__tests__/benchmark-history.test.js +0 -422
  134. package/dist/eval/__tests__/benchmark-history.test.js.map +0 -1
  135. package/dist/eval/__tests__/benchmark.test.d.ts +0 -1
  136. package/dist/eval/__tests__/benchmark.test.js +0 -94
  137. package/dist/eval/__tests__/benchmark.test.js.map +0 -1
  138. package/dist/eval/__tests__/comparator.test.d.ts +0 -1
  139. package/dist/eval/__tests__/comparator.test.js +0 -282
  140. package/dist/eval/__tests__/comparator.test.js.map +0 -1
  141. package/dist/eval/__tests__/judge.test.d.ts +0 -1
  142. package/dist/eval/__tests__/judge.test.js +0 -122
  143. package/dist/eval/__tests__/judge.test.js.map +0 -1
  144. package/dist/eval/__tests__/llm.test.d.ts +0 -1
  145. package/dist/eval/__tests__/llm.test.js +0 -543
  146. package/dist/eval/__tests__/llm.test.js.map +0 -1
  147. package/dist/eval/__tests__/mcp-detector.test.d.ts +0 -1
  148. package/dist/eval/__tests__/mcp-detector.test.js +0 -180
  149. package/dist/eval/__tests__/mcp-detector.test.js.map +0 -1
  150. package/dist/eval/__tests__/prompt-builder.test.d.ts +0 -1
  151. package/dist/eval/__tests__/prompt-builder.test.js +0 -142
  152. package/dist/eval/__tests__/prompt-builder.test.js.map +0 -1
  153. package/dist/eval/__tests__/schema.test.d.ts +0 -1
  154. package/dist/eval/__tests__/schema.test.js +0 -247
  155. package/dist/eval/__tests__/schema.test.js.map +0 -1
  156. package/dist/eval/__tests__/skill-scanner.test.d.ts +0 -1
  157. package/dist/eval/__tests__/skill-scanner.test.js +0 -228
  158. package/dist/eval/__tests__/skill-scanner.test.js.map +0 -1
  159. package/dist/eval/__tests__/verdict.test.d.ts +0 -1
  160. package/dist/eval/__tests__/verdict.test.js +0 -47
  161. package/dist/eval/__tests__/verdict.test.js.map +0 -1
  162. package/dist/eval-server/__tests__/benchmark-runner.test.d.ts +0 -1
  163. package/dist/eval-server/__tests__/benchmark-runner.test.js +0 -301
  164. package/dist/eval-server/__tests__/benchmark-runner.test.js.map +0 -1
  165. package/dist/eval-server/__tests__/comparison-sse-events.test.d.ts +0 -1
  166. package/dist/eval-server/__tests__/comparison-sse-events.test.js +0 -278
  167. package/dist/eval-server/__tests__/comparison-sse-events.test.js.map +0 -1
  168. package/dist/eval-server/__tests__/sse-helpers.test.d.ts +0 -1
  169. package/dist/eval-server/__tests__/sse-helpers.test.js +0 -128
  170. package/dist/eval-server/__tests__/sse-helpers.test.js.map +0 -1
  171. package/dist/eval-ui/assets/index-DlZduKAT.js +0 -102
  172. package/dist/eval-ui/assets/skill-url-BpZjDR8A.js +0 -1
  173. package/dist/installer/canonical.test.d.ts +0 -1
  174. package/dist/installer/canonical.test.js +0 -264
  175. package/dist/installer/canonical.test.js.map +0 -1
  176. package/dist/lockfile/lockfile.test.d.ts +0 -1
  177. package/dist/lockfile/lockfile.test.js +0 -204
  178. package/dist/lockfile/lockfile.test.js.map +0 -1
  179. package/dist/lockfile/project-root.test.d.ts +0 -1
  180. package/dist/lockfile/project-root.test.js +0 -49
  181. package/dist/lockfile/project-root.test.js.map +0 -1
  182. package/dist/marketplace/marketplace.test.d.ts +0 -1
  183. package/dist/marketplace/marketplace.test.js +0 -312
  184. package/dist/marketplace/marketplace.test.js.map +0 -1
  185. package/dist/resolvers/source-resolver.test.d.ts +0 -1
  186. package/dist/resolvers/source-resolver.test.js +0 -104
  187. package/dist/resolvers/source-resolver.test.js.map +0 -1
  188. package/dist/resolvers/url-resolver.test.d.ts +0 -1
  189. package/dist/resolvers/url-resolver.test.js +0 -49
  190. package/dist/resolvers/url-resolver.test.js.map +0 -1
  191. package/dist/scanner/dci-integration.test.d.ts +0 -1
  192. package/dist/scanner/dci-integration.test.js +0 -83
  193. package/dist/scanner/dci-integration.test.js.map +0 -1
  194. package/dist/scanner/patterns.test.d.ts +0 -1
  195. package/dist/scanner/patterns.test.js +0 -832
  196. package/dist/scanner/patterns.test.js.map +0 -1
  197. package/dist/scanner/tier1.test.d.ts +0 -1
  198. package/dist/scanner/tier1.test.js +0 -305
  199. package/dist/scanner/tier1.test.js.map +0 -1
  200. package/dist/security/platform-security.test.d.ts +0 -1
  201. package/dist/security/platform-security.test.js +0 -92
  202. package/dist/security/platform-security.test.js.map +0 -1
  203. package/dist/settings/settings.test.d.ts +0 -1
  204. package/dist/settings/settings.test.js +0 -103
  205. package/dist/settings/settings.test.js.map +0 -1
  206. package/dist/updater/source-fetcher.test.d.ts +0 -1
  207. package/dist/updater/source-fetcher.test.js +0 -192
  208. package/dist/updater/source-fetcher.test.js.map +0 -1
  209. package/dist/utils/__tests__/paths.test.d.ts +0 -1
  210. package/dist/utils/__tests__/paths.test.js +0 -22
  211. package/dist/utils/__tests__/paths.test.js.map +0 -1
  212. package/dist/utils/__tests__/resolve-binary.integration.test.d.ts +0 -1
  213. package/dist/utils/__tests__/resolve-binary.integration.test.js +0 -138
  214. package/dist/utils/__tests__/resolve-binary.integration.test.js.map +0 -1
  215. package/dist/utils/__tests__/resolve-binary.test.d.ts +0 -1
  216. package/dist/utils/__tests__/resolve-binary.test.js +0 -175
  217. package/dist/utils/__tests__/resolve-binary.test.js.map +0 -1
  218. package/dist/utils/__tests__/validation.test.d.ts +0 -1
  219. package/dist/utils/__tests__/validation.test.js +0 -107
  220. package/dist/utils/__tests__/validation.test.js.map +0 -1
  221. package/dist/utils/agent-filter.test.d.ts +0 -1
  222. package/dist/utils/agent-filter.test.js +0 -75
  223. package/dist/utils/agent-filter.test.js.map +0 -1
  224. package/dist/utils/output.test.d.ts +0 -1
  225. package/dist/utils/output.test.js +0 -28
  226. package/dist/utils/output.test.js.map +0 -1
  227. package/dist/utils/project-root.test.d.ts +0 -1
  228. package/dist/utils/project-root.test.js +0 -74
  229. package/dist/utils/project-root.test.js.map +0 -1
  230. package/dist/utils/prompts.test.d.ts +0 -1
  231. package/dist/utils/prompts.test.js +0 -285
  232. 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 {};