@skillsmith/cli 0.6.3 → 0.6.5

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 (182) hide show
  1. package/CHANGELOG.md +11 -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 +321 -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 +90 -54
  70. package/dist/src/commands/diff.js.map +1 -1
  71. package/dist/src/commands/diff.test.js +52 -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-affix.test.d.ts +11 -0
  157. package/dist/tests/e2e/audit-sources-affix.test.d.ts.map +1 -0
  158. package/dist/tests/e2e/audit-sources-affix.test.js +121 -0
  159. package/dist/tests/e2e/audit-sources-affix.test.js.map +1 -0
  160. package/dist/tests/e2e/audit-sources-apply.test.d.ts +13 -0
  161. package/dist/tests/e2e/audit-sources-apply.test.d.ts.map +1 -0
  162. package/dist/tests/e2e/audit-sources-apply.test.js +166 -0
  163. package/dist/tests/e2e/audit-sources-apply.test.js.map +1 -0
  164. package/dist/tests/e2e/audit-sources-recovery.test.d.ts +15 -0
  165. package/dist/tests/e2e/audit-sources-recovery.test.d.ts.map +1 -0
  166. package/dist/tests/e2e/audit-sources-recovery.test.js +179 -0
  167. package/dist/tests/e2e/audit-sources-recovery.test.js.map +1 -0
  168. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts +23 -0
  169. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts.map +1 -0
  170. package/dist/tests/e2e/audit-sources-roundtrip.test.js +139 -0
  171. package/dist/tests/e2e/audit-sources-roundtrip.test.js.map +1 -0
  172. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts +49 -0
  173. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts.map +1 -0
  174. package/dist/tests/e2e/utils/source-recovery-fixture.js +106 -0
  175. package/dist/tests/e2e/utils/source-recovery-fixture.js.map +1 -0
  176. package/dist/tests/init.test.js +2 -1
  177. package/dist/tests/init.test.js.map +1 -1
  178. package/dist/tests/install-quarantine.test.d.ts +10 -0
  179. package/dist/tests/install-quarantine.test.d.ts.map +1 -0
  180. package/dist/tests/install-quarantine.test.js +86 -0
  181. package/dist/tests/install-quarantine.test.js.map +1 -0
  182. package/package.json +4 -5
@@ -11,315 +11,13 @@
11
11
  * skillsmith sync status # Show sync status
12
12
  * skillsmith sync history # Show sync history
13
13
  * skillsmith sync config # Configure auto-sync
14
+ *
15
+ * SMI-5127: Action implementations moved to sync.action.ts.
16
+ * This file retains only the commander factory functions.
14
17
  */
15
18
  import { Command } from 'commander';
16
- import chalk from 'chalk';
17
- import ora from 'ora';
18
- import Table from 'cli-table3';
19
- import { SyncConfigRepository, SyncHistoryRepository, } from '@skillsmith/core';
20
- import { openCliDatabase } from '../utils/open-database.js';
21
- import { runRegistrySync } from './run-registry-sync.js';
22
19
  import { DEFAULT_DB_PATH } from '../config.js';
23
- import { sanitizeError } from '../utils/sanitize.js';
24
- import { formatDuration, formatDate, formatTimeUntil } from '../utils/formatters.js';
25
- import { scanLocalSkillsForWarnings, formatAdapterWarnings, isAuthFailure, formatAuthGuidance, } from './sync.helpers.js';
26
- /**
27
- * Run sync operation
28
- */
29
- async function runSync(options) {
30
- const spinner = ora();
31
- try {
32
- spinner.start('Opening database...');
33
- // SMI-4917: openCliDatabase opens a connected, schema-initialized DB —
34
- // fresh installs would otherwise hit "no such table: skills".
35
- const db = await openCliDatabase(options.dbPath);
36
- try {
37
- spinner.text = options.force ? 'Starting full sync...' : 'Starting differential sync...';
38
- const result = await runRegistrySync(db, {
39
- force: options.force,
40
- dryRun: options.dryRun,
41
- onProgress: (progress) => {
42
- switch (progress.phase) {
43
- case 'connecting':
44
- spinner.text = 'Checking API health...';
45
- break;
46
- case 'fetching':
47
- spinner.text = `Fetching skills... (${progress.current} fetched)`;
48
- break;
49
- case 'comparing':
50
- spinner.text = `Comparing ${progress.total} skills with local database...`;
51
- break;
52
- case 'upserting':
53
- spinner.text = `Syncing skill ${progress.current}/${progress.total}...`;
54
- break;
55
- case 'complete':
56
- break;
57
- }
58
- },
59
- });
60
- if (options.json) {
61
- spinner.stop();
62
- console.log(JSON.stringify(result, null, 2));
63
- // SMI-4482: signal auth failure via exit code so `--json` scripts can
64
- // detect "needs login" without parsing the payload.
65
- if (isAuthFailure(result)) {
66
- process.exitCode = 1;
67
- }
68
- return;
69
- }
70
- // SMI-4482: When sync failed because no credentials were available
71
- // (anonymous IP-trial exhausted, or auth rejected), replace the bare
72
- // `Authentication required` error with actionable guidance and exit
73
- // non-zero — instead of printing `Σ Total: 0` with no next step.
74
- if (isAuthFailure(result)) {
75
- spinner.fail(chalk.yellow('Sync requires authentication'));
76
- console.log();
77
- for (const line of formatAuthGuidance()) {
78
- console.error(line);
79
- }
80
- // db.close() runs in the `finally` block below before process.exit.
81
- process.exitCode = 1;
82
- return;
83
- }
84
- if (result.success) {
85
- spinner.succeed(options.dryRun
86
- ? chalk.yellow('Dry run complete (no changes made)')
87
- : chalk.green('Sync completed successfully'));
88
- }
89
- else {
90
- spinner.warn(chalk.yellow('Sync completed with errors'));
91
- }
92
- // Display results
93
- console.log();
94
- console.log(chalk.bold('Results:'));
95
- console.log(` ${chalk.green('+')} Added: ${result.skillsAdded}`);
96
- console.log(` ${chalk.blue('~')} Updated: ${result.skillsUpdated}`);
97
- console.log(` ${chalk.dim('=')} Unchanged: ${result.skillsUnchanged}`);
98
- console.log(` ${chalk.cyan('Σ')} Total: ${result.totalProcessed}`);
99
- console.log(` ${chalk.dim('⏱')} Duration: ${formatDuration(result.durationMs)}`);
100
- if (result.errors.length > 0) {
101
- console.log();
102
- console.log(chalk.red('Errors:'));
103
- for (const error of result.errors) {
104
- console.log(` ${chalk.red('•')} ${error}`);
105
- }
106
- }
107
- if (options.dryRun) {
108
- console.log();
109
- console.log(chalk.dim('Run without --dry-run to apply these changes.'));
110
- }
111
- }
112
- finally {
113
- db.close();
114
- }
115
- }
116
- catch (error) {
117
- spinner.fail('Sync failed');
118
- console.error(chalk.red('Error:'), sanitizeError(error));
119
- process.exit(1);
120
- }
121
- }
122
- /**
123
- * Show sync status
124
- */
125
- async function showStatus(options) {
126
- try {
127
- const db = await openCliDatabase(options.dbPath);
128
- try {
129
- const syncConfigRepo = new SyncConfigRepository(db);
130
- const syncHistoryRepo = new SyncHistoryRepository(db);
131
- const config = syncConfigRepo.getConfig();
132
- const lastRun = syncHistoryRepo.getLastSuccessful();
133
- const isRunning = syncHistoryRepo.isRunning();
134
- const isDue = syncConfigRepo.isSyncDue();
135
- const stats = syncHistoryRepo.getStats();
136
- if (options.json) {
137
- console.log(JSON.stringify({
138
- config,
139
- lastRun,
140
- isRunning,
141
- isDue,
142
- stats,
143
- }, null, 2));
144
- return;
145
- }
146
- console.log(chalk.bold.blue('\n=== Sync Status ===\n'));
147
- // Configuration
148
- console.log(chalk.bold('Configuration:'));
149
- console.log(` Auto-sync: ${config.enabled ? chalk.green('Enabled') : chalk.red('Disabled')}`);
150
- console.log(` Frequency: ${chalk.cyan(config.frequency)}`);
151
- console.log();
152
- // Current state
153
- console.log(chalk.bold('Current State:'));
154
- console.log(` Last sync: ${formatDate(config.lastSyncAt)}`);
155
- console.log(` Next sync: ${formatDate(config.nextSyncAt)}`);
156
- console.log(` Time until: ${formatTimeUntil(config.nextSyncAt)}`);
157
- console.log(` Status: ${isRunning ? chalk.yellow('Running') : isDue ? chalk.green('Due') : chalk.dim('Waiting')}`);
158
- console.log();
159
- // Last run details
160
- if (lastRun) {
161
- console.log(chalk.bold('Last Successful Run:'));
162
- console.log(` Started: ${formatDate(lastRun.startedAt)}`);
163
- console.log(` Duration: ${lastRun.durationMs ? formatDuration(lastRun.durationMs) : 'N/A'}`);
164
- console.log(` Added: ${lastRun.skillsAdded}`);
165
- console.log(` Updated: ${lastRun.skillsUpdated}`);
166
- console.log(` Unchanged: ${lastRun.skillsUnchanged}`);
167
- console.log();
168
- }
169
- // Error info
170
- if (config.lastSyncError) {
171
- console.log(chalk.bold.red('Last Error:'));
172
- console.log(` ${config.lastSyncError}`);
173
- console.log();
174
- }
175
- // Statistics
176
- console.log(chalk.bold('Statistics:'));
177
- console.log(` Total runs: ${stats.totalRuns}`);
178
- console.log(` Successful: ${stats.successfulRuns}`);
179
- console.log(` Failed: ${stats.failedRuns}`);
180
- console.log(` Avg duration: ${stats.averageDurationMs ? formatDuration(stats.averageDurationMs) : 'N/A'}`);
181
- // Local-skills adapter warnings (SMI-4287, GitHub #600).
182
- // Surface symlink-escape / permission / loop errors so the user can
183
- // act on them (e.g. `chmod +r`, remove rogue symlink).
184
- const adapterWarnings = await scanLocalSkillsForWarnings();
185
- if (adapterWarnings.length > 0) {
186
- console.log();
187
- console.log(chalk.bold.yellow('Local skill warnings:'));
188
- for (const line of formatAdapterWarnings(adapterWarnings)) {
189
- console.error(line);
190
- }
191
- }
192
- }
193
- finally {
194
- db.close();
195
- }
196
- }
197
- catch (error) {
198
- console.error(chalk.red('Error:'), sanitizeError(error));
199
- process.exit(1);
200
- }
201
- }
202
- /**
203
- * Show sync history
204
- */
205
- async function showHistory(options) {
206
- try {
207
- const db = await openCliDatabase(options.dbPath);
208
- try {
209
- const syncHistoryRepo = new SyncHistoryRepository(db);
210
- const history = syncHistoryRepo.getHistory(options.limit);
211
- if (options.json) {
212
- console.log(JSON.stringify(history, null, 2));
213
- return;
214
- }
215
- if (history.length === 0) {
216
- console.log(chalk.dim('\nNo sync history found. Run `skillsmith sync` to start syncing.\n'));
217
- return;
218
- }
219
- console.log(chalk.bold.blue('\n=== Sync History ===\n'));
220
- const table = new Table({
221
- head: [
222
- chalk.bold('Date'),
223
- chalk.bold('Status'),
224
- chalk.bold('Added'),
225
- chalk.bold('Updated'),
226
- chalk.bold('Duration'),
227
- ],
228
- colWidths: [22, 12, 10, 10, 12],
229
- });
230
- for (const entry of history) {
231
- const statusColor = entry.status === 'success'
232
- ? chalk.green
233
- : entry.status === 'failed'
234
- ? chalk.red
235
- : entry.status === 'partial'
236
- ? chalk.yellow
237
- : chalk.blue;
238
- table.push([
239
- new Date(entry.startedAt).toLocaleString(),
240
- statusColor(entry.status),
241
- String(entry.skillsAdded),
242
- String(entry.skillsUpdated),
243
- entry.durationMs ? formatDuration(entry.durationMs) : '-',
244
- ]);
245
- }
246
- console.log(table.toString());
247
- if (history.some((e) => e.errorMessage)) {
248
- console.log();
249
- console.log(chalk.bold.red('Errors:'));
250
- for (const entry of history.filter((e) => e.errorMessage)) {
251
- console.log(` ${chalk.dim(new Date(entry.startedAt).toLocaleDateString())}: ${entry.errorMessage}`);
252
- }
253
- }
254
- }
255
- finally {
256
- db.close();
257
- }
258
- }
259
- catch (error) {
260
- console.error(chalk.red('Error:'), sanitizeError(error));
261
- process.exit(1);
262
- }
263
- }
264
- /**
265
- * Configure sync settings
266
- */
267
- async function configureSync(options) {
268
- try {
269
- const db = await openCliDatabase(options.dbPath);
270
- try {
271
- const syncConfigRepo = new SyncConfigRepository(db);
272
- // If just showing config
273
- if (options.show || (!options.enable && !options.disable && !options.frequency)) {
274
- const config = syncConfigRepo.getConfig();
275
- if (options.json) {
276
- console.log(JSON.stringify(config, null, 2));
277
- return;
278
- }
279
- console.log(chalk.bold.blue('\n=== Sync Configuration ===\n'));
280
- console.log(` Auto-sync: ${config.enabled ? chalk.green('Enabled') : chalk.red('Disabled')}`);
281
- console.log(` Frequency: ${chalk.cyan(config.frequency)}`);
282
- console.log(` Interval: ${formatDuration(config.intervalMs)}`);
283
- console.log(` Last sync: ${formatDate(config.lastSyncAt)}`);
284
- console.log(` Next sync: ${formatDate(config.nextSyncAt)}`);
285
- console.log();
286
- console.log(chalk.dim('Use --enable/--disable to toggle auto-sync'));
287
- console.log(chalk.dim('Use --frequency daily|weekly to change schedule'));
288
- return;
289
- }
290
- // Apply changes
291
- if (options.enable) {
292
- syncConfigRepo.enable();
293
- console.log(chalk.green('✓ Auto-sync enabled'));
294
- }
295
- if (options.disable) {
296
- syncConfigRepo.disable();
297
- console.log(chalk.yellow('✓ Auto-sync disabled'));
298
- }
299
- if (options.frequency) {
300
- const freq = options.frequency.toLowerCase();
301
- if (freq !== 'daily' && freq !== 'weekly') {
302
- console.error(chalk.red('Error: Frequency must be "daily" or "weekly"'));
303
- process.exit(1);
304
- }
305
- syncConfigRepo.setFrequency(freq);
306
- console.log(chalk.green(`✓ Frequency set to ${freq}`));
307
- }
308
- // Show updated config
309
- const config = syncConfigRepo.getConfig();
310
- console.log();
311
- console.log(chalk.dim('Current settings:'));
312
- console.log(` Auto-sync: ${config.enabled ? 'enabled' : 'disabled'}, Frequency: ${config.frequency}`);
313
- }
314
- finally {
315
- db.close();
316
- }
317
- }
318
- catch (error) {
319
- console.error(chalk.red('Error:'), sanitizeError(error));
320
- process.exit(1);
321
- }
322
- }
20
+ import { syncAction, syncStatusAction, syncHistoryAction, syncConfigAction } from './sync.action.js';
323
21
  /**
324
22
  * Create sync status subcommand
325
23
  */
@@ -329,7 +27,7 @@ function createStatusCommand() {
329
27
  .option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
330
28
  .option('--json', 'Output as JSON')
331
29
  .action(async (opts) => {
332
- await showStatus({
30
+ await syncStatusAction({
333
31
  dbPath: opts['db'],
334
32
  json: opts['json'] ?? false,
335
33
  });
@@ -345,7 +43,7 @@ function createHistoryCommand() {
345
43
  .option('-l, --limit <number>', 'Number of entries to show', '10')
346
44
  .option('--json', 'Output as JSON')
347
45
  .action(async (opts) => {
348
- await showHistory({
46
+ await syncHistoryAction({
349
47
  dbPath: opts['db'],
350
48
  limit: parseInt(opts['limit'], 10),
351
49
  json: opts['json'] ?? false,
@@ -365,7 +63,7 @@ function createConfigCommand() {
365
63
  .option('--show', 'Show current configuration')
366
64
  .option('--json', 'Output as JSON')
367
65
  .action(async (opts) => {
368
- await configureSync({
66
+ await syncConfigAction({
369
67
  dbPath: opts['db'],
370
68
  enable: opts['enable'],
371
69
  disable: opts['disable'],
@@ -386,7 +84,7 @@ export function createSyncCommand() {
386
84
  .option('--dry-run', 'Show what would be synced without making changes')
387
85
  .option('--json', 'Output results as JSON')
388
86
  .action(async (opts) => {
389
- await runSync({
87
+ await syncAction({
390
88
  dbPath: opts['db'],
391
89
  force: opts['force'] ?? false,
392
90
  dryRun: opts['dry-run'] ?? false,
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview `skillsmith telemetry` action implementations + telemetry wrappers.
3
+ * @module @skillsmith/cli/commands/telemetry.action
4
+ * @see SMI-5128 batch D — sibling-split of telemetry.ts so the 6 subcommand
5
+ * handlers can be wrapped with withTelemetry without exceeding the 500-LOC
6
+ * gate. Mirrors the sync.action.ts / search.action.ts convention (SMI-5127):
7
+ * the run* business logic + the wrapped *Action exports live here; the
8
+ * commander factory stays in telemetry.ts and imports the wrapped actions.
9
+ *
10
+ * Privacy invariants (plan line 719):
11
+ * - anonymousId is NEVER printed in full. Only the last 8 hex chars appear in stdout.
12
+ * - The full SHA-256 hex travels only to the events endpoint in hook payloads.
13
+ */
14
+ declare function idTail(id: string | undefined): string;
15
+ declare function runEnable(): Promise<void>;
16
+ declare function runDisable(): Promise<void>;
17
+ declare function runStatus(): Promise<void>;
18
+ declare function runInstallHook(options: {
19
+ scope: 'user' | 'project';
20
+ endpoint?: string;
21
+ }): Promise<void>;
22
+ declare function runUninstallHook(options: {
23
+ scope: 'user' | 'project';
24
+ }): Promise<void>;
25
+ declare function runResetId(): Promise<void>;
26
+ export declare const telemetryEnableAction: () => Promise<void>;
27
+ export declare const telemetryDisableAction: () => Promise<void>;
28
+ export declare const telemetryStatusAction: () => Promise<void>;
29
+ export declare const telemetryInstallHookAction: (options: {
30
+ scope: string;
31
+ endpoint?: string;
32
+ }) => Promise<void>;
33
+ export declare const telemetryUninstallHookAction: (options: {
34
+ scope: string;
35
+ }) => Promise<void>;
36
+ export declare const telemetryResetIdAction: () => Promise<void>;
37
+ export { runEnable, runDisable, runStatus, runInstallHook, runUninstallHook, runResetId, idTail };
38
+ //# sourceMappingURL=telemetry.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.action.d.ts","sourceRoot":"","sources":["../../../src/commands/telemetry.action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmDH,iBAAS,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG9C;AA8BD,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCxC;AAMD,iBAAe,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBzC;AAMD,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDxC;AAMD,iBAAe,cAAc,CAAC,OAAO,EAAE;IACrC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhB;AAMD,iBAAe,gBAAgB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF;AAMD,iBAAe,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAezC;AAeD,eAAO,MAAM,qBAAqB,qBAIhC,CAAA;AAWF,eAAO,MAAM,sBAAsB,qBAIjC,CAAA;AAWF,eAAO,MAAM,qBAAqB,qBAIhC,CAAA;AAsBF,eAAO,MAAM,0BAA0B;WAnB9B,MAAM;eACF,MAAM;mBAsBjB,CAAA;AAYF,eAAO,MAAM,4BAA4B;WAVyB,MAAM;mBActE,CAAA;AAWF,eAAO,MAAM,sBAAsB,qBAIjC,CAAA;AAGF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA"}