@skillsmith/cli 0.6.3 → 0.6.4

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 (178) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts +20 -0
  4. package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts.map +1 -0
  5. package/dist/src/commands/__meta__/telemetry-coverage.test.js +118 -0
  6. package/dist/src/commands/__meta__/telemetry-coverage.test.js.map +1 -0
  7. package/dist/src/commands/ab-test.d.ts +1 -0
  8. package/dist/src/commands/ab-test.d.ts.map +1 -1
  9. package/dist/src/commands/ab-test.js +17 -8
  10. package/dist/src/commands/ab-test.js.map +1 -1
  11. package/dist/src/commands/analyze.d.ts +1 -0
  12. package/dist/src/commands/analyze.d.ts.map +1 -1
  13. package/dist/src/commands/analyze.js +32 -23
  14. package/dist/src/commands/analyze.js.map +1 -1
  15. package/dist/src/commands/audit-collisions.d.ts +1 -4
  16. package/dist/src/commands/audit-collisions.d.ts.map +1 -1
  17. package/dist/src/commands/audit-collisions.js +32 -23
  18. package/dist/src/commands/audit-collisions.js.map +1 -1
  19. package/dist/src/commands/audit-sources.action.d.ts +37 -0
  20. package/dist/src/commands/audit-sources.action.d.ts.map +1 -0
  21. package/dist/src/commands/audit-sources.action.js +300 -0
  22. package/dist/src/commands/audit-sources.action.js.map +1 -0
  23. package/dist/src/commands/audit-sources.d.ts +37 -0
  24. package/dist/src/commands/audit-sources.d.ts.map +1 -0
  25. package/dist/src/commands/audit-sources.js +55 -0
  26. package/dist/src/commands/audit-sources.js.map +1 -0
  27. package/dist/src/commands/audit-sources.test.d.ts +9 -0
  28. package/dist/src/commands/audit-sources.test.d.ts.map +1 -0
  29. package/dist/src/commands/audit-sources.test.js +228 -0
  30. package/dist/src/commands/audit-sources.test.js.map +1 -0
  31. package/dist/src/commands/audit.d.ts +2 -6
  32. package/dist/src/commands/audit.d.ts.map +1 -1
  33. package/dist/src/commands/audit.js +52 -31
  34. package/dist/src/commands/audit.js.map +1 -1
  35. package/dist/src/commands/author/index.d.ts +2 -1
  36. package/dist/src/commands/author/index.d.ts.map +1 -1
  37. package/dist/src/commands/author/index.js +4 -1
  38. package/dist/src/commands/author/index.js.map +1 -1
  39. package/dist/src/commands/author/init.action.d.ts +29 -0
  40. package/dist/src/commands/author/init.action.d.ts.map +1 -0
  41. package/dist/src/commands/author/init.action.js +131 -0
  42. package/dist/src/commands/author/init.action.js.map +1 -0
  43. package/dist/src/commands/author/init.d.ts +0 -14
  44. package/dist/src/commands/author/init.d.ts.map +1 -1
  45. package/dist/src/commands/author/init.js +3 -87
  46. package/dist/src/commands/author/init.js.map +1 -1
  47. package/dist/src/commands/author/mcp-init.d.ts +1 -0
  48. package/dist/src/commands/author/mcp-init.d.ts.map +1 -1
  49. package/dist/src/commands/author/mcp-init.js +21 -13
  50. package/dist/src/commands/author/mcp-init.js.map +1 -1
  51. package/dist/src/commands/author/subagent.d.ts +1 -0
  52. package/dist/src/commands/author/subagent.d.ts.map +1 -1
  53. package/dist/src/commands/author/subagent.js +23 -15
  54. package/dist/src/commands/author/subagent.js.map +1 -1
  55. package/dist/src/commands/author/transform.d.ts +1 -0
  56. package/dist/src/commands/author/transform.d.ts.map +1 -1
  57. package/dist/src/commands/author/transform.js +23 -15
  58. package/dist/src/commands/author/transform.js.map +1 -1
  59. package/dist/src/commands/config.d.ts +2 -0
  60. package/dist/src/commands/config.d.ts.map +1 -1
  61. package/dist/src/commands/config.js +43 -28
  62. package/dist/src/commands/config.js.map +1 -1
  63. package/dist/src/commands/create.d.ts +1 -0
  64. package/dist/src/commands/create.d.ts.map +1 -1
  65. package/dist/src/commands/create.js +28 -19
  66. package/dist/src/commands/create.js.map +1 -1
  67. package/dist/src/commands/diff.d.ts +4 -0
  68. package/dist/src/commands/diff.d.ts.map +1 -1
  69. package/dist/src/commands/diff.js +57 -42
  70. package/dist/src/commands/diff.js.map +1 -1
  71. package/dist/src/commands/diff.test.js +30 -0
  72. package/dist/src/commands/diff.test.js.map +1 -1
  73. package/dist/src/commands/import-local.d.ts +7 -0
  74. package/dist/src/commands/import-local.d.ts.map +1 -1
  75. package/dist/src/commands/import-local.js +43 -34
  76. package/dist/src/commands/import-local.js.map +1 -1
  77. package/dist/src/commands/import.d.ts +6 -0
  78. package/dist/src/commands/import.d.ts.map +1 -1
  79. package/dist/src/commands/import.js +23 -14
  80. package/dist/src/commands/import.js.map +1 -1
  81. package/dist/src/commands/info.d.ts +7 -0
  82. package/dist/src/commands/info.d.ts.map +1 -1
  83. package/dist/src/commands/info.js +77 -68
  84. package/dist/src/commands/info.js.map +1 -1
  85. package/dist/src/commands/install-skill.d.ts +3 -0
  86. package/dist/src/commands/install-skill.d.ts.map +1 -1
  87. package/dist/src/commands/install-skill.js +23 -15
  88. package/dist/src/commands/install-skill.js.map +1 -1
  89. package/dist/src/commands/install.d.ts +21 -0
  90. package/dist/src/commands/install.d.ts.map +1 -1
  91. package/dist/src/commands/install.js +154 -139
  92. package/dist/src/commands/install.js.map +1 -1
  93. package/dist/src/commands/login.d.ts +4 -0
  94. package/dist/src/commands/login.d.ts.map +1 -1
  95. package/dist/src/commands/login.js +56 -47
  96. package/dist/src/commands/login.js.map +1 -1
  97. package/dist/src/commands/logout.d.ts +1 -0
  98. package/dist/src/commands/logout.d.ts.map +1 -1
  99. package/dist/src/commands/logout.js +36 -27
  100. package/dist/src/commands/logout.js.map +1 -1
  101. package/dist/src/commands/manage.d.ts +3 -9
  102. package/dist/src/commands/manage.d.ts.map +1 -1
  103. package/dist/src/commands/manage.js +69 -45
  104. package/dist/src/commands/manage.js.map +1 -1
  105. package/dist/src/commands/merge.d.ts +7 -0
  106. package/dist/src/commands/merge.d.ts.map +1 -1
  107. package/dist/src/commands/merge.js +117 -108
  108. package/dist/src/commands/merge.js.map +1 -1
  109. package/dist/src/commands/pin.d.ts +2 -0
  110. package/dist/src/commands/pin.d.ts.map +1 -1
  111. package/dist/src/commands/pin.js +88 -73
  112. package/dist/src/commands/pin.js.map +1 -1
  113. package/dist/src/commands/recommend.d.ts +1 -0
  114. package/dist/src/commands/recommend.d.ts.map +1 -1
  115. package/dist/src/commands/recommend.js +35 -27
  116. package/dist/src/commands/recommend.js.map +1 -1
  117. package/dist/src/commands/search-formatters.d.ts +1 -0
  118. package/dist/src/commands/search-formatters.d.ts.map +1 -1
  119. package/dist/src/commands/search-formatters.js +3 -0
  120. package/dist/src/commands/search-formatters.js.map +1 -1
  121. package/dist/src/commands/search.action.d.ts +16 -0
  122. package/dist/src/commands/search.action.d.ts.map +1 -0
  123. package/dist/src/commands/search.action.js +384 -0
  124. package/dist/src/commands/search.action.js.map +1 -0
  125. package/dist/src/commands/search.d.ts +3 -0
  126. package/dist/src/commands/search.d.ts.map +1 -1
  127. package/dist/src/commands/search.js +5 -354
  128. package/dist/src/commands/search.js.map +1 -1
  129. package/dist/src/commands/sync.action.d.ts +39 -0
  130. package/dist/src/commands/sync.action.d.ts.map +1 -0
  131. package/dist/src/commands/sync.action.js +353 -0
  132. package/dist/src/commands/sync.action.js.map +1 -0
  133. package/dist/src/commands/sync.d.ts +3 -0
  134. package/dist/src/commands/sync.d.ts.map +1 -1
  135. package/dist/src/commands/sync.js +8 -310
  136. package/dist/src/commands/sync.js.map +1 -1
  137. package/dist/src/commands/telemetry.action.d.ts +38 -0
  138. package/dist/src/commands/telemetry.action.d.ts.map +1 -0
  139. package/dist/src/commands/telemetry.action.js +350 -0
  140. package/dist/src/commands/telemetry.action.js.map +1 -0
  141. package/dist/src/commands/telemetry.d.ts +5 -13
  142. package/dist/src/commands/telemetry.d.ts.map +1 -1
  143. package/dist/src/commands/telemetry.js +13 -302
  144. package/dist/src/commands/telemetry.js.map +1 -1
  145. package/dist/src/commands/whoami.d.ts +1 -0
  146. package/dist/src/commands/whoami.d.ts.map +1 -1
  147. package/dist/src/commands/whoami.js +29 -21
  148. package/dist/src/commands/whoami.js.map +1 -1
  149. package/dist/src/utils/open-database.d.ts +10 -2
  150. package/dist/src/utils/open-database.d.ts.map +1 -1
  151. package/dist/src/utils/open-database.js +15 -2
  152. package/dist/src/utils/open-database.js.map +1 -1
  153. package/dist/src/utils/skills-directory.d.ts.map +1 -1
  154. package/dist/src/utils/skills-directory.js +5 -1
  155. package/dist/src/utils/skills-directory.js.map +1 -1
  156. package/dist/tests/e2e/audit-sources-apply.test.d.ts +13 -0
  157. package/dist/tests/e2e/audit-sources-apply.test.d.ts.map +1 -0
  158. package/dist/tests/e2e/audit-sources-apply.test.js +166 -0
  159. package/dist/tests/e2e/audit-sources-apply.test.js.map +1 -0
  160. package/dist/tests/e2e/audit-sources-recovery.test.d.ts +15 -0
  161. package/dist/tests/e2e/audit-sources-recovery.test.d.ts.map +1 -0
  162. package/dist/tests/e2e/audit-sources-recovery.test.js +179 -0
  163. package/dist/tests/e2e/audit-sources-recovery.test.js.map +1 -0
  164. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts +23 -0
  165. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts.map +1 -0
  166. package/dist/tests/e2e/audit-sources-roundtrip.test.js +107 -0
  167. package/dist/tests/e2e/audit-sources-roundtrip.test.js.map +1 -0
  168. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts +49 -0
  169. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts.map +1 -0
  170. package/dist/tests/e2e/utils/source-recovery-fixture.js +106 -0
  171. package/dist/tests/e2e/utils/source-recovery-fixture.js.map +1 -0
  172. package/dist/tests/init.test.js +2 -1
  173. package/dist/tests/init.test.js.map +1 -1
  174. package/dist/tests/install-quarantine.test.d.ts +10 -0
  175. package/dist/tests/install-quarantine.test.d.ts.map +1 -0
  176. package/dist/tests/install-quarantine.test.js +86 -0
  177. package/dist/tests/install-quarantine.test.js.map +1 -0
  178. package/package.json +4 -5
@@ -8,6 +8,7 @@ import { Command } from 'commander';
8
8
  import chalk from 'chalk';
9
9
  import ora from 'ora';
10
10
  import { SkillRepository, createApiClient, loadStoredAccessToken } from '@skillsmith/core';
11
+ import { withTelemetry } from '@skillsmith/core/telemetry';
11
12
  import { openCliDatabase } from '../utils/open-database.js';
12
13
  import { DEFAULT_DB_PATH } from '../config.js';
13
14
  import { sanitizeError } from '../utils/sanitize.js';
@@ -17,85 +18,93 @@ function stripAnsiEscapes(text) {
17
18
  // eslint-disable-next-line no-control-regex
18
19
  return text.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '').replace(/\x1b\][^\x07]*\x07/g, '');
19
20
  }
20
- /**
21
- * Create the `info` command
22
- */
23
- export function createInfoCommand() {
24
- return new Command('info')
25
- .description('Show full details and SKILL.md content for a skill')
26
- .argument('<skill-id>', 'Skill ID (e.g., "getsentry/commit")')
27
- .option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
28
- .option('--raw', 'Output only SKILL.md content (no metadata)')
29
- .option('--json', 'Output full JSON response')
30
- .action(async (skillId, options) => {
31
- const spinner = ora('Looking up skill...').start();
21
+ // SMI-5040: extracted from inline .action() closure to a named function so
22
+ // withTelemetry can wrap it at the export boundary (SMI-5018 coverage gate).
23
+ async function infoActionImpl(skillId, options) {
24
+ const spinner = ora('Looking up skill...').start();
25
+ try {
26
+ const db = await openCliDatabase(options.db);
27
+ const skillRepo = new SkillRepository(db);
28
+ // Try local DB first
29
+ const skill = skillRepo.findById(skillId);
30
+ if (!skill) {
31
+ spinner.fail(`Skill "${skillId}" not found`);
32
+ process.exit(1);
33
+ }
34
+ // Fetch content from local DB (raw_content column)
35
+ let content;
32
36
  try {
33
- const db = await openCliDatabase(options.db);
34
- const skillRepo = new SkillRepository(db);
35
- // Try local DB first
36
- const skill = skillRepo.findById(skillId);
37
- if (!skill) {
38
- spinner.fail(`Skill "${skillId}" not found`);
39
- process.exit(1);
40
- }
41
- // Fetch content from local DB (raw_content column)
42
- let content;
37
+ const row = db.prepare('SELECT raw_content FROM skills WHERE id = ?').get(skillId);
38
+ content = row?.raw_content || undefined;
39
+ }
40
+ catch {
41
+ // raw_content column may not exist in pre-migration databases
42
+ content = undefined;
43
+ }
44
+ // Try API for content if not available locally
45
+ if (!content) {
43
46
  try {
44
- const row = db.prepare('SELECT raw_content FROM skills WHERE id = ?').get(skillId);
45
- content = row?.raw_content || undefined;
46
- }
47
- catch {
48
- // raw_content column may not exist in pre-migration databases
49
- content = undefined;
50
- }
51
- // Try API for content if not available locally
52
- if (!content) {
53
- try {
54
- // SMI-4474: auto-load JWT so logged-in users count toward quota.
55
- const jwtToken = await loadStoredAccessToken();
56
- const apiClient = createApiClient(jwtToken ? { jwtToken } : {});
57
- if (!apiClient.isOffline()) {
58
- const apiResponse = await apiClient.getSkill(skillId, { includeContent: true });
59
- content = apiResponse.data.content || undefined;
60
- }
61
- }
62
- catch {
63
- // API failed — continue without content
47
+ // SMI-4474: auto-load JWT so logged-in users count toward quota.
48
+ const jwtToken = await loadStoredAccessToken();
49
+ const apiClient = createApiClient(jwtToken ? { jwtToken } : {});
50
+ if (!apiClient.isOffline()) {
51
+ const apiResponse = await apiClient.getSkill(skillId, { includeContent: true });
52
+ content = apiResponse.data.content || undefined;
64
53
  }
65
54
  }
66
- spinner.stop();
67
- // JSON output
68
- if (options.json) {
69
- console.log(JSON.stringify({ skill, content: content || null }, null, 2));
70
- return;
71
- }
72
- // Raw content only
73
- if (options.raw) {
74
- if (content) {
75
- console.log(stripAnsiEscapes(content));
76
- }
77
- else {
78
- console.log(chalk.gray('No SKILL.md content available for this skill.'));
79
- }
80
- return;
55
+ catch {
56
+ // API failed — continue without content
81
57
  }
82
- // Default: metadata + content
83
- displaySkillDetails({ skill, rank: 0, highlights: {} });
58
+ }
59
+ spinner.stop();
60
+ // JSON output
61
+ if (options.json) {
62
+ console.log(JSON.stringify({ skill, content: content || null }, null, 2));
63
+ return;
64
+ }
65
+ // Raw content only
66
+ if (options.raw) {
84
67
  if (content) {
85
- console.log(chalk.bold('\nSkill Content:'));
86
- console.log(chalk.dim('─'.repeat(60)));
87
68
  console.log(stripAnsiEscapes(content));
88
- console.log(chalk.dim('─'.repeat(60)));
89
69
  }
90
70
  else {
91
- console.log(chalk.gray('\nNo SKILL.md content available for this skill.'));
71
+ console.log(chalk.gray('No SKILL.md content available for this skill.'));
92
72
  }
73
+ return;
93
74
  }
94
- catch (error) {
95
- spinner.fail('Failed to retrieve skill info');
96
- console.error(sanitizeError(error));
97
- process.exit(1);
75
+ // Default: metadata + content
76
+ displaySkillDetails({ skill, rank: 0, highlights: {} });
77
+ if (content) {
78
+ console.log(chalk.bold('\nSkill Content:'));
79
+ console.log(chalk.dim('─'.repeat(60)));
80
+ console.log(stripAnsiEscapes(content));
81
+ console.log(chalk.dim('─'.repeat(60)));
82
+ }
83
+ else {
84
+ console.log(chalk.gray('\nNo SKILL.md content available for this skill.'));
98
85
  }
99
- });
86
+ }
87
+ catch (error) {
88
+ spinner.fail('Failed to retrieve skill info');
89
+ console.error(sanitizeError(error));
90
+ process.exit(1);
91
+ }
92
+ }
93
+ export const infoAction = withTelemetry(infoActionImpl, {
94
+ source: 'cli',
95
+ extractSkillId: (args) => args[0] ?? 'info',
96
+ extractFramework: () => 'cli',
97
+ });
98
+ /**
99
+ * Create the `info` command
100
+ */
101
+ export function createInfoCommand() {
102
+ return new Command('info')
103
+ .description('Show full details and SKILL.md content for a skill')
104
+ .argument('<skill-id>', 'Skill ID (e.g., "getsentry/commit")')
105
+ .option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
106
+ .option('--raw', 'Output only SKILL.md content (no metadata)')
107
+ .option('--json', 'Output full JSON response')
108
+ .action(infoAction);
100
109
  }
101
110
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/info.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@
5
5
  * for enabling /skillsmith slash command in Claude Code sessions.
6
6
  */
7
7
  import { Command } from 'commander';
8
+ export declare const setupAction: (opts: {
9
+ force?: boolean;
10
+ }) => Promise<void>;
8
11
  /**
9
12
  * Create the install-skill command
10
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../../../src/commands/install-skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwInC;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAyBnD;AAED,eAAe,yBAAyB,CAAA"}
1
+ {"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../../../src/commands/install-skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6JnC,eAAO,MAAM,WAAW;YAnBuB,OAAO;mBAuBpD,CAAA;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAQnD;AAED,eAAe,yBAAyB,CAAA"}
@@ -11,6 +11,7 @@ import { mkdir, copyFile, stat, readdir } from 'fs/promises';
11
11
  import { join, dirname } from 'path';
12
12
  import { fileURLToPath } from 'url';
13
13
  import { getCanonicalInstallPath } from '@skillsmith/core/install';
14
+ import { withTelemetry } from '@skillsmith/core/telemetry';
14
15
  import { sanitizeError } from '../utils/sanitize.js';
15
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
16
17
  /**
@@ -119,6 +120,27 @@ async function installSkillsmithSkill(force) {
119
120
  throw error;
120
121
  }
121
122
  }
123
+ // SMI-5040: extracted from inline .action() closure for withTelemetry wrap.
124
+ async function setupActionImpl(opts) {
125
+ try {
126
+ // SMI-3484: Deprecation warning when invoked via old name
127
+ const invokedName = process.argv[2];
128
+ if (invokedName === 'install-skill') {
129
+ console.log(chalk.yellow('Warning: "install-skill" is deprecated and will be removed in a future release. ' +
130
+ 'Use "setup" instead.'));
131
+ }
132
+ await installSkillsmithSkill(opts.force ?? false);
133
+ }
134
+ catch (error) {
135
+ console.error(chalk.red('Error:'), sanitizeError(error));
136
+ process.exit(1);
137
+ }
138
+ }
139
+ export const setupAction = withTelemetry(setupActionImpl, {
140
+ source: 'cli',
141
+ extractSkillId: () => 'setup',
142
+ extractFramework: () => 'cli',
143
+ });
122
144
  /**
123
145
  * Create the install-skill command
124
146
  */
@@ -127,21 +149,7 @@ export function createInstallSkillCommand() {
127
149
  .alias('install-skill')
128
150
  .description('Set up the skillsmith slash command skill (installs to ~/.claude/skills/skillsmith/)')
129
151
  .option('-f, --force', 'Reinstall even if already installed')
130
- .action(async (opts) => {
131
- try {
132
- // SMI-3484: Deprecation warning when invoked via old name
133
- const invokedName = process.argv[2];
134
- if (invokedName === 'install-skill') {
135
- console.log(chalk.yellow('Warning: "install-skill" is deprecated and will be removed in a future release. ' +
136
- 'Use "setup" instead.'));
137
- }
138
- await installSkillsmithSkill(opts.force ?? false);
139
- }
140
- catch (error) {
141
- console.error(chalk.red('Error:'), sanitizeError(error));
142
- process.exit(1);
143
- }
144
- });
152
+ .action(setupAction);
145
153
  }
146
154
  export default createInstallSkillCommand;
147
155
  //# sourceMappingURL=install-skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../../src/commands/install-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../../src/commands/install-skill.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,27 @@
5
5
  * Consumes SkillInstallationService from @skillsmith/core.
6
6
  */
7
7
  import { Command } from 'commander';
8
+ import { SkillRepository, type RegistryLookup, type DatabaseType } from '@skillsmith/core';
9
+ /**
10
+ * Create a registry lookup backed by the local SQLite database.
11
+ * Returns null for skills without a repo_url (metadata-only entries).
12
+ *
13
+ * SMI-5358 GAP-07: Quarantine enforcement is now live — QuarantineRepository.isQuarantined
14
+ * checks the local quarantine table so CLI installs block quarantined skills just as the
15
+ * MCP registry API path does.
16
+ */
17
+ export declare function createDbRegistryLookup(skillRepo: SkillRepository, db: DatabaseType): RegistryLookup;
18
+ export declare const installAction: (skillId: string, opts: {
19
+ force?: boolean;
20
+ skipScan?: boolean;
21
+ skipOptimize?: boolean;
22
+ quiet?: boolean;
23
+ json?: boolean;
24
+ db?: string;
25
+ client?: string;
26
+ alsoLink?: string;
27
+ symlink?: boolean;
28
+ }) => Promise<void>;
8
29
  /**
9
30
  * Create the install command
10
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoKnC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CA0L9C;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EACL,eAAe,EAOf,KAAK,cAAc,EAEnB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAA;AAkDzB;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,EAAE,EAAE,YAAY,GACf,cAAc,CAsBhB;AA+OD,eAAO,MAAM,aAAa;YA1Jd,OAAO;eACJ,OAAO;mBACH,OAAO;YACd,OAAO;WACR,OAAO;SACT,MAAM;aACF,MAAM;eACJ,MAAM;cACP,OAAO;mBAsJnB,CAAA;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAsB9C;AAED,eAAe,oBAAoB,CAAA"}