@skillsmith/cli 0.7.1 → 0.7.3
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.
- package/CHANGELOG.md +9 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli.js +44039 -0
- package/package.json +21 -11
- package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts +0 -20
- package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts.map +0 -1
- package/dist/src/commands/__meta__/telemetry-coverage.test.js +0 -118
- package/dist/src/commands/__meta__/telemetry-coverage.test.js.map +0 -1
- package/dist/src/commands/ab-test.d.ts +0 -29
- package/dist/src/commands/ab-test.d.ts.map +0 -1
- package/dist/src/commands/ab-test.js +0 -226
- package/dist/src/commands/ab-test.js.map +0 -1
- package/dist/src/commands/ab-test.test.d.ts +0 -7
- package/dist/src/commands/ab-test.test.d.ts.map +0 -1
- package/dist/src/commands/ab-test.test.js +0 -255
- package/dist/src/commands/ab-test.test.js.map +0 -1
- package/dist/src/commands/analyze.d.ts +0 -14
- package/dist/src/commands/analyze.d.ts.map +0 -1
- package/dist/src/commands/analyze.js +0 -191
- package/dist/src/commands/analyze.js.map +0 -1
- package/dist/src/commands/audit-collisions.d.ts +0 -68
- package/dist/src/commands/audit-collisions.d.ts.map +0 -1
- package/dist/src/commands/audit-collisions.js +0 -309
- package/dist/src/commands/audit-collisions.js.map +0 -1
- package/dist/src/commands/audit-sources.action.d.ts +0 -37
- package/dist/src/commands/audit-sources.action.d.ts.map +0 -1
- package/dist/src/commands/audit-sources.action.js +0 -321
- package/dist/src/commands/audit-sources.action.js.map +0 -1
- package/dist/src/commands/audit-sources.d.ts +0 -37
- package/dist/src/commands/audit-sources.d.ts.map +0 -1
- package/dist/src/commands/audit-sources.js +0 -55
- package/dist/src/commands/audit-sources.js.map +0 -1
- package/dist/src/commands/audit-sources.test.d.ts +0 -9
- package/dist/src/commands/audit-sources.test.d.ts.map +0 -1
- package/dist/src/commands/audit-sources.test.js +0 -228
- package/dist/src/commands/audit-sources.test.js.map +0 -1
- package/dist/src/commands/audit.d.ts +0 -40
- package/dist/src/commands/audit.d.ts.map +0 -1
- package/dist/src/commands/audit.js +0 -223
- package/dist/src/commands/audit.js.map +0 -1
- package/dist/src/commands/audit.test.d.ts +0 -8
- package/dist/src/commands/audit.test.d.ts.map +0 -1
- package/dist/src/commands/audit.test.js +0 -97
- package/dist/src/commands/audit.test.js.map +0 -1
- package/dist/src/commands/author/index.d.ts +0 -17
- package/dist/src/commands/author/index.d.ts.map +0 -1
- package/dist/src/commands/author/index.js +0 -21
- package/dist/src/commands/author/index.js.map +0 -1
- package/dist/src/commands/author/init.action.d.ts +0 -29
- package/dist/src/commands/author/init.action.d.ts.map +0 -1
- package/dist/src/commands/author/init.action.js +0 -131
- package/dist/src/commands/author/init.action.js.map +0 -1
- package/dist/src/commands/author/init.d.ts +0 -36
- package/dist/src/commands/author/init.d.ts.map +0 -1
- package/dist/src/commands/author/init.helpers.d.ts +0 -80
- package/dist/src/commands/author/init.helpers.d.ts.map +0 -1
- package/dist/src/commands/author/init.helpers.js +0 -107
- package/dist/src/commands/author/init.helpers.js.map +0 -1
- package/dist/src/commands/author/init.js +0 -320
- package/dist/src/commands/author/init.js.map +0 -1
- package/dist/src/commands/author/mcp-init.d.ts +0 -21
- package/dist/src/commands/author/mcp-init.d.ts.map +0 -1
- package/dist/src/commands/author/mcp-init.js +0 -202
- package/dist/src/commands/author/mcp-init.js.map +0 -1
- package/dist/src/commands/author/subagent.d.ts +0 -23
- package/dist/src/commands/author/subagent.d.ts.map +0 -1
- package/dist/src/commands/author/subagent.js +0 -174
- package/dist/src/commands/author/subagent.js.map +0 -1
- package/dist/src/commands/author/transform.d.ts +0 -23
- package/dist/src/commands/author/transform.d.ts.map +0 -1
- package/dist/src/commands/author/transform.js +0 -149
- package/dist/src/commands/author/transform.js.map +0 -1
- package/dist/src/commands/author/utils.d.ts +0 -27
- package/dist/src/commands/author/utils.d.ts.map +0 -1
- package/dist/src/commands/author/utils.js +0 -118
- package/dist/src/commands/author/utils.js.map +0 -1
- package/dist/src/commands/config.d.ts +0 -57
- package/dist/src/commands/config.d.ts.map +0 -1
- package/dist/src/commands/config.js +0 -226
- package/dist/src/commands/config.js.map +0 -1
- package/dist/src/commands/create.d.ts +0 -43
- package/dist/src/commands/create.d.ts.map +0 -1
- package/dist/src/commands/create.js +0 -336
- package/dist/src/commands/create.js.map +0 -1
- package/dist/src/commands/diff.d.ts +0 -21
- package/dist/src/commands/diff.d.ts.map +0 -1
- package/dist/src/commands/diff.js +0 -227
- package/dist/src/commands/diff.js.map +0 -1
- package/dist/src/commands/diff.test.d.ts +0 -6
- package/dist/src/commands/diff.test.d.ts.map +0 -1
- package/dist/src/commands/diff.test.js +0 -327
- package/dist/src/commands/diff.test.js.map +0 -1
- package/dist/src/commands/import-local.d.ts +0 -28
- package/dist/src/commands/import-local.d.ts.map +0 -1
- package/dist/src/commands/import-local.helpers.d.ts +0 -28
- package/dist/src/commands/import-local.helpers.d.ts.map +0 -1
- package/dist/src/commands/import-local.helpers.js +0 -166
- package/dist/src/commands/import-local.helpers.js.map +0 -1
- package/dist/src/commands/import-local.js +0 -273
- package/dist/src/commands/import-local.js.map +0 -1
- package/dist/src/commands/import-local.types.d.ts +0 -59
- package/dist/src/commands/import-local.types.d.ts.map +0 -1
- package/dist/src/commands/import-local.types.js +0 -2
- package/dist/src/commands/import-local.types.js.map +0 -1
- package/dist/src/commands/import.d.ts +0 -47
- package/dist/src/commands/import.d.ts.map +0 -1
- package/dist/src/commands/import.js +0 -314
- package/dist/src/commands/import.js.map +0 -1
- package/dist/src/commands/index.d.ts +0 -28
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/commands/index.js +0 -50
- package/dist/src/commands/index.js.map +0 -1
- package/dist/src/commands/info.d.ts +0 -19
- package/dist/src/commands/info.d.ts.map +0 -1
- package/dist/src/commands/info.js +0 -110
- package/dist/src/commands/info.js.map +0 -1
- package/dist/src/commands/install-skill.d.ts +0 -16
- package/dist/src/commands/install-skill.d.ts.map +0 -1
- package/dist/src/commands/install-skill.js +0 -155
- package/dist/src/commands/install-skill.js.map +0 -1
- package/dist/src/commands/install.d.ts +0 -34
- package/dist/src/commands/install.d.ts.map +0 -1
- package/dist/src/commands/install.js +0 -311
- package/dist/src/commands/install.js.map +0 -1
- package/dist/src/commands/inventory.action.d.ts +0 -55
- package/dist/src/commands/inventory.action.d.ts.map +0 -1
- package/dist/src/commands/inventory.action.js +0 -179
- package/dist/src/commands/inventory.action.js.map +0 -1
- package/dist/src/commands/inventory.action.test.d.ts +0 -19
- package/dist/src/commands/inventory.action.test.d.ts.map +0 -1
- package/dist/src/commands/inventory.action.test.js +0 -371
- package/dist/src/commands/inventory.action.test.js.map +0 -1
- package/dist/src/commands/inventory.d.ts +0 -21
- package/dist/src/commands/inventory.d.ts.map +0 -1
- package/dist/src/commands/inventory.js +0 -42
- package/dist/src/commands/inventory.js.map +0 -1
- package/dist/src/commands/login.d.ts +0 -7
- package/dist/src/commands/login.d.ts.map +0 -1
- package/dist/src/commands/login.js +0 -323
- package/dist/src/commands/login.js.map +0 -1
- package/dist/src/commands/login.test-helpers.d.ts +0 -7
- package/dist/src/commands/login.test-helpers.d.ts.map +0 -1
- package/dist/src/commands/login.test-helpers.js +0 -44
- package/dist/src/commands/login.test-helpers.js.map +0 -1
- package/dist/src/commands/login.test.d.ts +0 -2
- package/dist/src/commands/login.test.d.ts.map +0 -1
- package/dist/src/commands/login.test.js +0 -387
- package/dist/src/commands/login.test.js.map +0 -1
- package/dist/src/commands/logout.d.ts +0 -15
- package/dist/src/commands/logout.d.ts.map +0 -1
- package/dist/src/commands/logout.js +0 -54
- package/dist/src/commands/logout.js.map +0 -1
- package/dist/src/commands/logout.test.d.ts +0 -8
- package/dist/src/commands/logout.test.d.ts.map +0 -1
- package/dist/src/commands/logout.test.js +0 -137
- package/dist/src/commands/logout.test.js.map +0 -1
- package/dist/src/commands/manage.d.ts +0 -19
- package/dist/src/commands/manage.d.ts.map +0 -1
- package/dist/src/commands/manage.js +0 -346
- package/dist/src/commands/manage.js.map +0 -1
- package/dist/src/commands/merge.d.ts +0 -24
- package/dist/src/commands/merge.d.ts.map +0 -1
- package/dist/src/commands/merge.js +0 -168
- package/dist/src/commands/merge.js.map +0 -1
- package/dist/src/commands/pin.d.ts +0 -26
- package/dist/src/commands/pin.d.ts.map +0 -1
- package/dist/src/commands/pin.js +0 -138
- package/dist/src/commands/pin.js.map +0 -1
- package/dist/src/commands/pin.test.d.ts +0 -6
- package/dist/src/commands/pin.test.d.ts.map +0 -1
- package/dist/src/commands/pin.test.js +0 -206
- package/dist/src/commands/pin.test.js.map +0 -1
- package/dist/src/commands/recommend-scoring.d.ts +0 -29
- package/dist/src/commands/recommend-scoring.d.ts.map +0 -1
- package/dist/src/commands/recommend-scoring.js +0 -141
- package/dist/src/commands/recommend-scoring.js.map +0 -1
- package/dist/src/commands/recommend.d.ts +0 -15
- package/dist/src/commands/recommend.d.ts.map +0 -1
- package/dist/src/commands/recommend.helpers.d.ts +0 -44
- package/dist/src/commands/recommend.helpers.d.ts.map +0 -1
- package/dist/src/commands/recommend.helpers.js +0 -303
- package/dist/src/commands/recommend.helpers.js.map +0 -1
- package/dist/src/commands/recommend.js +0 -198
- package/dist/src/commands/recommend.js.map +0 -1
- package/dist/src/commands/recommend.types.d.ts +0 -66
- package/dist/src/commands/recommend.types.d.ts.map +0 -1
- package/dist/src/commands/recommend.types.js +0 -14
- package/dist/src/commands/recommend.types.js.map +0 -1
- package/dist/src/commands/run-registry-sync.d.ts +0 -31
- package/dist/src/commands/run-registry-sync.d.ts.map +0 -1
- package/dist/src/commands/run-registry-sync.js +0 -45
- package/dist/src/commands/run-registry-sync.js.map +0 -1
- package/dist/src/commands/search-formatters.d.ts +0 -36
- package/dist/src/commands/search-formatters.d.ts.map +0 -1
- package/dist/src/commands/search-formatters.js +0 -132
- package/dist/src/commands/search-formatters.js.map +0 -1
- package/dist/src/commands/search-types.d.ts +0 -46
- package/dist/src/commands/search-types.d.ts.map +0 -1
- package/dist/src/commands/search-types.js +0 -12
- package/dist/src/commands/search-types.js.map +0 -1
- package/dist/src/commands/search.action.d.ts +0 -16
- package/dist/src/commands/search.action.d.ts.map +0 -1
- package/dist/src/commands/search.action.js +0 -384
- package/dist/src/commands/search.action.js.map +0 -1
- package/dist/src/commands/search.d.ts +0 -18
- package/dist/src/commands/search.d.ts.map +0 -1
- package/dist/src/commands/search.helpers.d.ts +0 -52
- package/dist/src/commands/search.helpers.d.ts.map +0 -1
- package/dist/src/commands/search.helpers.js +0 -95
- package/dist/src/commands/search.helpers.js.map +0 -1
- package/dist/src/commands/search.js +0 -48
- package/dist/src/commands/search.js.map +0 -1
- package/dist/src/commands/search.test.d.ts +0 -10
- package/dist/src/commands/search.test.d.ts.map +0 -1
- package/dist/src/commands/search.test.js +0 -179
- package/dist/src/commands/search.test.js.map +0 -1
- package/dist/src/commands/sync.action.d.ts +0 -39
- package/dist/src/commands/sync.action.d.ts.map +0 -1
- package/dist/src/commands/sync.action.js +0 -353
- package/dist/src/commands/sync.action.js.map +0 -1
- package/dist/src/commands/sync.d.ts +0 -24
- package/dist/src/commands/sync.d.ts.map +0 -1
- package/dist/src/commands/sync.helpers.d.ts +0 -55
- package/dist/src/commands/sync.helpers.d.ts.map +0 -1
- package/dist/src/commands/sync.helpers.js +0 -90
- package/dist/src/commands/sync.helpers.js.map +0 -1
- package/dist/src/commands/sync.js +0 -101
- package/dist/src/commands/sync.js.map +0 -1
- package/dist/src/commands/telemetry.action.d.ts +0 -38
- package/dist/src/commands/telemetry.action.d.ts.map +0 -1
- package/dist/src/commands/telemetry.action.js +0 -350
- package/dist/src/commands/telemetry.action.js.map +0 -1
- package/dist/src/commands/telemetry.d.ts +0 -30
- package/dist/src/commands/telemetry.d.ts.map +0 -1
- package/dist/src/commands/telemetry.helpers.d.ts +0 -58
- package/dist/src/commands/telemetry.helpers.d.ts.map +0 -1
- package/dist/src/commands/telemetry.helpers.js +0 -173
- package/dist/src/commands/telemetry.helpers.js.map +0 -1
- package/dist/src/commands/telemetry.helpers.test.d.ts +0 -15
- package/dist/src/commands/telemetry.helpers.test.d.ts.map +0 -1
- package/dist/src/commands/telemetry.helpers.test.js +0 -240
- package/dist/src/commands/telemetry.helpers.test.js.map +0 -1
- package/dist/src/commands/telemetry.js +0 -65
- package/dist/src/commands/telemetry.js.map +0 -1
- package/dist/src/commands/telemetry.test.d.ts +0 -18
- package/dist/src/commands/telemetry.test.d.ts.map +0 -1
- package/dist/src/commands/telemetry.test.js +0 -401
- package/dist/src/commands/telemetry.test.js.map +0 -1
- package/dist/src/commands/whoami.d.ts +0 -15
- package/dist/src/commands/whoami.d.ts.map +0 -1
- package/dist/src/commands/whoami.js +0 -55
- package/dist/src/commands/whoami.js.map +0 -1
- package/dist/src/commands/whoami.test.d.ts +0 -8
- package/dist/src/commands/whoami.test.d.ts.map +0 -1
- package/dist/src/commands/whoami.test.js +0 -133
- package/dist/src/commands/whoami.test.js.map +0 -1
- package/dist/src/config.d.ts +0 -29
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -34
- package/dist/src/config.js.map +0 -1
- package/dist/src/index.d.ts +0 -22
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -117
- package/dist/src/index.js.map +0 -1
- package/dist/src/templates/changelog.md.template.d.ts +0 -8
- package/dist/src/templates/changelog.md.template.d.ts.map +0 -1
- package/dist/src/templates/changelog.md.template.js +0 -19
- package/dist/src/templates/changelog.md.template.js.map +0 -1
- package/dist/src/templates/index.d.ts +0 -11
- package/dist/src/templates/index.d.ts.map +0 -1
- package/dist/src/templates/index.js +0 -11
- package/dist/src/templates/index.js.map +0 -1
- package/dist/src/templates/mcp-server.template.d.ts +0 -82
- package/dist/src/templates/mcp-server.template.d.ts.map +0 -1
- package/dist/src/templates/mcp-server.template.js +0 -430
- package/dist/src/templates/mcp-server.template.js.map +0 -1
- package/dist/src/templates/mcp-server.template.snippets.d.ts +0 -51
- package/dist/src/templates/mcp-server.template.snippets.d.ts.map +0 -1
- package/dist/src/templates/mcp-server.template.snippets.js +0 -162
- package/dist/src/templates/mcp-server.template.snippets.js.map +0 -1
- package/dist/src/templates/mcp-template-handlers.d.ts +0 -33
- package/dist/src/templates/mcp-template-handlers.d.ts.map +0 -1
- package/dist/src/templates/mcp-template-handlers.js +0 -106
- package/dist/src/templates/mcp-template-handlers.js.map +0 -1
- package/dist/src/templates/mcp-template-types.d.ts +0 -48
- package/dist/src/templates/mcp-template-types.d.ts.map +0 -1
- package/dist/src/templates/mcp-template-types.js +0 -18
- package/dist/src/templates/mcp-template-types.js.map +0 -1
- package/dist/src/templates/readme.md.template.d.ts +0 -8
- package/dist/src/templates/readme.md.template.d.ts.map +0 -1
- package/dist/src/templates/readme.md.template.js +0 -86
- package/dist/src/templates/readme.md.template.js.map +0 -1
- package/dist/src/templates/skill.md.template.d.ts +0 -8
- package/dist/src/templates/skill.md.template.d.ts.map +0 -1
- package/dist/src/templates/skill.md.template.js +0 -97
- package/dist/src/templates/skill.md.template.js.map +0 -1
- package/dist/src/templates/subagent.md.template.d.ts +0 -38
- package/dist/src/templates/subagent.md.template.d.ts.map +0 -1
- package/dist/src/templates/subagent.md.template.js +0 -128
- package/dist/src/templates/subagent.md.template.js.map +0 -1
- package/dist/src/utils/errors.d.ts +0 -52
- package/dist/src/utils/errors.d.ts.map +0 -1
- package/dist/src/utils/errors.js +0 -58
- package/dist/src/utils/errors.js.map +0 -1
- package/dist/src/utils/formatters.d.ts +0 -39
- package/dist/src/utils/formatters.d.ts.map +0 -1
- package/dist/src/utils/formatters.js +0 -69
- package/dist/src/utils/formatters.js.map +0 -1
- package/dist/src/utils/license-types.d.ts +0 -88
- package/dist/src/utils/license-types.d.ts.map +0 -1
- package/dist/src/utils/license-types.js +0 -60
- package/dist/src/utils/license-types.js.map +0 -1
- package/dist/src/utils/license-validation.d.ts +0 -61
- package/dist/src/utils/license-validation.d.ts.map +0 -1
- package/dist/src/utils/license-validation.js +0 -198
- package/dist/src/utils/license-validation.js.map +0 -1
- package/dist/src/utils/license.d.ts +0 -56
- package/dist/src/utils/license.d.ts.map +0 -1
- package/dist/src/utils/license.js +0 -163
- package/dist/src/utils/license.js.map +0 -1
- package/dist/src/utils/license.test.d.ts +0 -7
- package/dist/src/utils/license.test.d.ts.map +0 -1
- package/dist/src/utils/license.test.js +0 -308
- package/dist/src/utils/license.test.js.map +0 -1
- package/dist/src/utils/manifest.d.ts +0 -121
- package/dist/src/utils/manifest.d.ts.map +0 -1
- package/dist/src/utils/manifest.js +0 -133
- package/dist/src/utils/manifest.js.map +0 -1
- package/dist/src/utils/manifest.test.d.ts +0 -20
- package/dist/src/utils/manifest.test.d.ts.map +0 -1
- package/dist/src/utils/manifest.test.js +0 -344
- package/dist/src/utils/manifest.test.js.map +0 -1
- package/dist/src/utils/node-version.d.ts +0 -41
- package/dist/src/utils/node-version.d.ts.map +0 -1
- package/dist/src/utils/node-version.js +0 -123
- package/dist/src/utils/node-version.js.map +0 -1
- package/dist/src/utils/open-database.d.ts +0 -35
- package/dist/src/utils/open-database.d.ts.map +0 -1
- package/dist/src/utils/open-database.js +0 -73
- package/dist/src/utils/open-database.js.map +0 -1
- package/dist/src/utils/require-tier.d.ts +0 -38
- package/dist/src/utils/require-tier.d.ts.map +0 -1
- package/dist/src/utils/require-tier.js +0 -74
- package/dist/src/utils/require-tier.js.map +0 -1
- package/dist/src/utils/sanitize.d.ts +0 -30
- package/dist/src/utils/sanitize.d.ts.map +0 -1
- package/dist/src/utils/sanitize.js +0 -45
- package/dist/src/utils/sanitize.js.map +0 -1
- package/dist/src/utils/skill-name.d.ts +0 -19
- package/dist/src/utils/skill-name.d.ts.map +0 -1
- package/dist/src/utils/skill-name.js +0 -26
- package/dist/src/utils/skill-name.js.map +0 -1
- package/dist/src/utils/skills-directory.d.ts +0 -95
- package/dist/src/utils/skills-directory.d.ts.map +0 -1
- package/dist/src/utils/skills-directory.js +0 -283
- package/dist/src/utils/skills-directory.js.map +0 -1
- package/dist/src/utils/startup-header-gate.d.ts +0 -29
- package/dist/src/utils/startup-header-gate.d.ts.map +0 -1
- package/dist/src/utils/startup-header-gate.js +0 -44
- package/dist/src/utils/startup-header-gate.js.map +0 -1
- package/dist/src/utils/startup-header-gate.test.d.ts +0 -2
- package/dist/src/utils/startup-header-gate.test.d.ts.map +0 -1
- package/dist/src/utils/startup-header-gate.test.js +0 -46
- package/dist/src/utils/startup-header-gate.test.js.map +0 -1
- package/dist/src/utils/tool-analyzer.d.ts +0 -54
- package/dist/src/utils/tool-analyzer.d.ts.map +0 -1
- package/dist/src/utils/tool-analyzer.js +0 -156
- package/dist/src/utils/tool-analyzer.js.map +0 -1
- package/dist/src/version.d.ts +0 -2
- package/dist/src/version.d.ts.map +0 -1
- package/dist/src/version.js +0 -24
- package/dist/src/version.js.map +0 -1
- package/dist/tests/audit-collisions.test.d.ts +0 -42
- package/dist/tests/audit-collisions.test.d.ts.map +0 -1
- package/dist/tests/audit-collisions.test.js +0 -370
- package/dist/tests/audit-collisions.test.js.map +0 -1
- package/dist/tests/audit-restructure.test.d.ts +0 -15
- package/dist/tests/audit-restructure.test.d.ts.map +0 -1
- package/dist/tests/audit-restructure.test.js +0 -151
- package/dist/tests/audit-restructure.test.js.map +0 -1
- package/dist/tests/author.test.d.ts +0 -5
- package/dist/tests/author.test.d.ts.map +0 -1
- package/dist/tests/author.test.js +0 -653
- package/dist/tests/author.test.js.map +0 -1
- package/dist/tests/config.test.d.ts +0 -33
- package/dist/tests/config.test.d.ts.map +0 -1
- package/dist/tests/config.test.js +0 -240
- package/dist/tests/config.test.js.map +0 -1
- package/dist/tests/create.test.d.ts +0 -5
- package/dist/tests/create.test.d.ts.map +0 -1
- package/dist/tests/create.test.js +0 -449
- package/dist/tests/create.test.js.map +0 -1
- package/dist/tests/e2e/audit-sources-affix.test.d.ts +0 -11
- package/dist/tests/e2e/audit-sources-affix.test.d.ts.map +0 -1
- package/dist/tests/e2e/audit-sources-affix.test.js +0 -121
- package/dist/tests/e2e/audit-sources-affix.test.js.map +0 -1
- package/dist/tests/e2e/audit-sources-apply.test.d.ts +0 -13
- package/dist/tests/e2e/audit-sources-apply.test.d.ts.map +0 -1
- package/dist/tests/e2e/audit-sources-apply.test.js +0 -166
- package/dist/tests/e2e/audit-sources-apply.test.js.map +0 -1
- package/dist/tests/e2e/audit-sources-recovery.test.d.ts +0 -15
- package/dist/tests/e2e/audit-sources-recovery.test.d.ts.map +0 -1
- package/dist/tests/e2e/audit-sources-recovery.test.js +0 -179
- package/dist/tests/e2e/audit-sources-recovery.test.js.map +0 -1
- package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts +0 -23
- package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts.map +0 -1
- package/dist/tests/e2e/audit-sources-roundtrip.test.js +0 -139
- package/dist/tests/e2e/audit-sources-roundtrip.test.js.map +0 -1
- package/dist/tests/e2e/author.e2e.test.d.ts +0 -9
- package/dist/tests/e2e/author.e2e.test.d.ts.map +0 -1
- package/dist/tests/e2e/author.e2e.test.js +0 -666
- package/dist/tests/e2e/author.e2e.test.js.map +0 -1
- package/dist/tests/e2e/import.e2e.test.d.ts +0 -10
- package/dist/tests/e2e/import.e2e.test.d.ts.map +0 -1
- package/dist/tests/e2e/import.e2e.test.js +0 -213
- package/dist/tests/e2e/import.e2e.test.js.map +0 -1
- package/dist/tests/e2e/manage.e2e.test.d.ts +0 -9
- package/dist/tests/e2e/manage.e2e.test.d.ts.map +0 -1
- package/dist/tests/e2e/manage.e2e.test.js +0 -277
- package/dist/tests/e2e/manage.e2e.test.js.map +0 -1
- package/dist/tests/e2e/search.e2e.test.d.ts +0 -10
- package/dist/tests/e2e/search.e2e.test.d.ts.map +0 -1
- package/dist/tests/e2e/search.e2e.test.js +0 -324
- package/dist/tests/e2e/search.e2e.test.js.map +0 -1
- package/dist/tests/e2e/test-config.d.ts +0 -39
- package/dist/tests/e2e/test-config.d.ts.map +0 -1
- package/dist/tests/e2e/test-config.js +0 -44
- package/dist/tests/e2e/test-config.js.map +0 -1
- package/dist/tests/e2e/utils/baseline-collector.d.ts +0 -107
- package/dist/tests/e2e/utils/baseline-collector.d.ts.map +0 -1
- package/dist/tests/e2e/utils/baseline-collector.js +0 -211
- package/dist/tests/e2e/utils/baseline-collector.js.map +0 -1
- package/dist/tests/e2e/utils/hardcoded-detector.d.ts +0 -46
- package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +0 -1
- package/dist/tests/e2e/utils/hardcoded-detector.js +0 -238
- package/dist/tests/e2e/utils/hardcoded-detector.js.map +0 -1
- package/dist/tests/e2e/utils/index.d.ts +0 -12
- package/dist/tests/e2e/utils/index.d.ts.map +0 -1
- package/dist/tests/e2e/utils/index.js +0 -12
- package/dist/tests/e2e/utils/index.js.map +0 -1
- package/dist/tests/e2e/utils/linear-reporter.d.ts +0 -60
- package/dist/tests/e2e/utils/linear-reporter.d.ts.map +0 -1
- package/dist/tests/e2e/utils/linear-reporter.js +0 -223
- package/dist/tests/e2e/utils/linear-reporter.js.map +0 -1
- package/dist/tests/e2e/utils/mock-github.d.ts +0 -23
- package/dist/tests/e2e/utils/mock-github.d.ts.map +0 -1
- package/dist/tests/e2e/utils/mock-github.js +0 -60
- package/dist/tests/e2e/utils/mock-github.js.map +0 -1
- package/dist/tests/e2e/utils/mock-prompts.d.ts +0 -19
- package/dist/tests/e2e/utils/mock-prompts.d.ts.map +0 -1
- package/dist/tests/e2e/utils/mock-prompts.js +0 -48
- package/dist/tests/e2e/utils/mock-prompts.js.map +0 -1
- package/dist/tests/e2e/utils/source-recovery-fixture.d.ts +0 -49
- package/dist/tests/e2e/utils/source-recovery-fixture.d.ts.map +0 -1
- package/dist/tests/e2e/utils/source-recovery-fixture.js +0 -106
- package/dist/tests/e2e/utils/source-recovery-fixture.js.map +0 -1
- package/dist/tests/embedding-probe-stdio.test.d.ts +0 -11
- package/dist/tests/embedding-probe-stdio.test.d.ts.map +0 -1
- package/dist/tests/embedding-probe-stdio.test.js +0 -58
- package/dist/tests/embedding-probe-stdio.test.js.map +0 -1
- package/dist/tests/import.test.d.ts +0 -5
- package/dist/tests/import.test.d.ts.map +0 -1
- package/dist/tests/import.test.js +0 -11
- package/dist/tests/import.test.js.map +0 -1
- package/dist/tests/init.test.d.ts +0 -30
- package/dist/tests/init.test.d.ts.map +0 -1
- package/dist/tests/init.test.js +0 -357
- package/dist/tests/init.test.js.map +0 -1
- package/dist/tests/install-multi-client.test.d.ts +0 -2
- package/dist/tests/install-multi-client.test.d.ts.map +0 -1
- package/dist/tests/install-multi-client.test.js +0 -202
- package/dist/tests/install-multi-client.test.js.map +0 -1
- package/dist/tests/install-quarantine.test.d.ts +0 -10
- package/dist/tests/install-quarantine.test.d.ts.map +0 -1
- package/dist/tests/install-quarantine.test.js +0 -86
- package/dist/tests/install-quarantine.test.js.map +0 -1
- package/dist/tests/install-skill.test.d.ts +0 -8
- package/dist/tests/install-skill.test.d.ts.map +0 -1
- package/dist/tests/install-skill.test.js +0 -414
- package/dist/tests/install-skill.test.js.map +0 -1
- package/dist/tests/integration/import-local.test.d.ts +0 -2
- package/dist/tests/integration/import-local.test.d.ts.map +0 -1
- package/dist/tests/integration/import-local.test.js +0 -158
- package/dist/tests/integration/import-local.test.js.map +0 -1
- package/dist/tests/license-validation.test.d.ts +0 -8
- package/dist/tests/license-validation.test.d.ts.map +0 -1
- package/dist/tests/license-validation.test.js +0 -186
- package/dist/tests/license-validation.test.js.map +0 -1
- package/dist/tests/manage.test.d.ts +0 -5
- package/dist/tests/manage.test.d.ts.map +0 -1
- package/dist/tests/manage.test.js +0 -495
- package/dist/tests/manage.test.js.map +0 -1
- package/dist/tests/mcp-server-template.test.d.ts +0 -7
- package/dist/tests/mcp-server-template.test.d.ts.map +0 -1
- package/dist/tests/mcp-server-template.test.js +0 -372
- package/dist/tests/mcp-server-template.test.js.map +0 -1
- package/dist/tests/node-version.test.d.ts +0 -8
- package/dist/tests/node-version.test.d.ts.map +0 -1
- package/dist/tests/node-version.test.js +0 -200
- package/dist/tests/node-version.test.js.map +0 -1
- package/dist/tests/open-database.test.d.ts +0 -2
- package/dist/tests/open-database.test.d.ts.map +0 -1
- package/dist/tests/open-database.test.js +0 -77
- package/dist/tests/open-database.test.js.map +0 -1
- package/dist/tests/recommend-helpers.test.d.ts +0 -9
- package/dist/tests/recommend-helpers.test.d.ts.map +0 -1
- package/dist/tests/recommend-helpers.test.js +0 -308
- package/dist/tests/recommend-helpers.test.js.map +0 -1
- package/dist/tests/recommend-scoring.test.d.ts +0 -8
- package/dist/tests/recommend-scoring.test.d.ts.map +0 -1
- package/dist/tests/recommend-scoring.test.js +0 -184
- package/dist/tests/recommend-scoring.test.js.map +0 -1
- package/dist/tests/recommend.errors.test.d.ts +0 -8
- package/dist/tests/recommend.errors.test.d.ts.map +0 -1
- package/dist/tests/recommend.errors.test.js +0 -232
- package/dist/tests/recommend.errors.test.js.map +0 -1
- package/dist/tests/recommend.filters.test.d.ts +0 -9
- package/dist/tests/recommend.filters.test.d.ts.map +0 -1
- package/dist/tests/recommend.filters.test.js +0 -235
- package/dist/tests/recommend.filters.test.js.map +0 -1
- package/dist/tests/recommend.test-helpers.d.ts +0 -66
- package/dist/tests/recommend.test-helpers.d.ts.map +0 -1
- package/dist/tests/recommend.test-helpers.js +0 -79
- package/dist/tests/recommend.test-helpers.js.map +0 -1
- package/dist/tests/recommend.test.d.ts +0 -11
- package/dist/tests/recommend.test.d.ts.map +0 -1
- package/dist/tests/recommend.test.js +0 -320
- package/dist/tests/recommend.test.js.map +0 -1
- package/dist/tests/search-helpers.test.d.ts +0 -2
- package/dist/tests/search-helpers.test.d.ts.map +0 -1
- package/dist/tests/search-helpers.test.js +0 -110
- package/dist/tests/search-helpers.test.js.map +0 -1
- package/dist/tests/search.test.d.ts +0 -5
- package/dist/tests/search.test.d.ts.map +0 -1
- package/dist/tests/search.test.js +0 -91
- package/dist/tests/search.test.js.map +0 -1
- package/dist/tests/skills-directory-per-harness.test.d.ts +0 -2
- package/dist/tests/skills-directory-per-harness.test.d.ts.map +0 -1
- package/dist/tests/skills-directory-per-harness.test.js +0 -116
- package/dist/tests/skills-directory-per-harness.test.js.map +0 -1
- package/dist/tests/skills-directory.test.d.ts +0 -2
- package/dist/tests/skills-directory.test.d.ts.map +0 -1
- package/dist/tests/skills-directory.test.js +0 -97
- package/dist/tests/skills-directory.test.js.map +0 -1
- package/dist/tests/sync.auth-ux.test.d.ts +0 -14
- package/dist/tests/sync.auth-ux.test.d.ts.map +0 -1
- package/dist/tests/sync.auth-ux.test.js +0 -148
- package/dist/tests/sync.auth-ux.test.js.map +0 -1
- package/dist/tests/tool-analyzer.test.d.ts +0 -8
- package/dist/tests/tool-analyzer.test.d.ts.map +0 -1
- package/dist/tests/tool-analyzer.test.js +0 -149
- package/dist/tests/tool-analyzer.test.js.map +0 -1
- package/dist/tests/unit/commands/install.test.d.ts +0 -7
- package/dist/tests/unit/commands/install.test.d.ts.map +0 -1
- package/dist/tests/unit/commands/install.test.js +0 -482
- package/dist/tests/unit/commands/install.test.js.map +0 -1
- package/dist/tests/unit/import-local.helpers.test.d.ts +0 -2
- package/dist/tests/unit/import-local.helpers.test.d.ts.map +0 -1
- package/dist/tests/unit/import-local.helpers.test.js +0 -96
- package/dist/tests/unit/import-local.helpers.test.js.map +0 -1
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-824: Install Skillsmith Skill Command
|
|
3
|
-
*
|
|
4
|
-
* Installs the bundled skillsmith skill to ~/.claude/skills/skillsmith/
|
|
5
|
-
* for enabling /skillsmith slash command in Claude Code sessions.
|
|
6
|
-
*/
|
|
7
|
-
import { Command } from 'commander';
|
|
8
|
-
import chalk from 'chalk';
|
|
9
|
-
import ora from 'ora';
|
|
10
|
-
import { mkdir, copyFile, stat, readdir } from 'fs/promises';
|
|
11
|
-
import { join, dirname } from 'path';
|
|
12
|
-
import { fileURLToPath } from 'url';
|
|
13
|
-
import { getCanonicalInstallPath } from '@skillsmith/core/install';
|
|
14
|
-
import { withTelemetry } from '@skillsmith/core/telemetry';
|
|
15
|
-
import { sanitizeError } from '../utils/sanitize.js';
|
|
16
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
|
-
/**
|
|
18
|
-
* Get the path to bundled skill assets
|
|
19
|
-
*/
|
|
20
|
-
function getAssetsPath() {
|
|
21
|
-
// Assets are in packages/cli/assets/skillsmith-skill/ relative to dist/src/commands/
|
|
22
|
-
return join(__dirname, '..', '..', '..', 'assets', 'skillsmith-skill');
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get the target installation path.
|
|
26
|
-
*
|
|
27
|
-
* SMI-4578: routes through `@skillsmith/core/install` so the canonical
|
|
28
|
-
* Claude Code directory is defined in exactly one place.
|
|
29
|
-
*/
|
|
30
|
-
function getTargetPath() {
|
|
31
|
-
return join(getCanonicalInstallPath(), 'skillsmith');
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Check if a directory exists
|
|
35
|
-
*/
|
|
36
|
-
async function directoryExists(path) {
|
|
37
|
-
try {
|
|
38
|
-
const stats = await stat(path);
|
|
39
|
-
return stats.isDirectory();
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Copy all files from source to destination directory
|
|
47
|
-
* Skips symlinks for security (prevents path traversal attacks)
|
|
48
|
-
*/
|
|
49
|
-
async function copyDirectory(src, dest) {
|
|
50
|
-
const entries = await readdir(src, { withFileTypes: true });
|
|
51
|
-
let filesCopied = 0;
|
|
52
|
-
for (const entry of entries) {
|
|
53
|
-
// Security: Skip symlinks to prevent path traversal attacks
|
|
54
|
-
if (entry.isSymbolicLink()) {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
const srcPath = join(src, entry.name);
|
|
58
|
-
const destPath = join(dest, entry.name);
|
|
59
|
-
if (entry.isDirectory()) {
|
|
60
|
-
await mkdir(destPath, { recursive: true });
|
|
61
|
-
filesCopied += await copyDirectory(srcPath, destPath);
|
|
62
|
-
}
|
|
63
|
-
else if (entry.isFile()) {
|
|
64
|
-
await copyFile(srcPath, destPath);
|
|
65
|
-
filesCopied++;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return filesCopied;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Install the skillsmith skill to ~/.claude/skills/skillsmith/
|
|
72
|
-
*/
|
|
73
|
-
async function installSkillsmithSkill(force) {
|
|
74
|
-
const assetsPath = getAssetsPath();
|
|
75
|
-
const targetPath = getTargetPath();
|
|
76
|
-
// Check if assets exist
|
|
77
|
-
if (!(await directoryExists(assetsPath))) {
|
|
78
|
-
throw new Error(`Skill assets not found at ${assetsPath}. This may indicate a corrupted installation.`);
|
|
79
|
-
}
|
|
80
|
-
// Check for existing installation
|
|
81
|
-
const exists = await directoryExists(targetPath);
|
|
82
|
-
if (exists && !force) {
|
|
83
|
-
console.log(chalk.yellow('\nSkillsmith skill is already installed.'));
|
|
84
|
-
console.log(chalk.dim(`Location: ${targetPath}`));
|
|
85
|
-
console.log(chalk.dim('\nUse --force to reinstall.'));
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const spinner = ora('Installing skillsmith skill...').start();
|
|
89
|
-
try {
|
|
90
|
-
// Create parent directories if needed
|
|
91
|
-
await mkdir(dirname(targetPath), { recursive: true });
|
|
92
|
-
// Create target directory
|
|
93
|
-
await mkdir(targetPath, { recursive: true });
|
|
94
|
-
// Copy all assets
|
|
95
|
-
const filesCopied = await copyDirectory(assetsPath, targetPath);
|
|
96
|
-
// Validate that files were actually copied
|
|
97
|
-
if (filesCopied === 0) {
|
|
98
|
-
spinner.warn(chalk.yellow('Warning: No files found in assets directory'));
|
|
99
|
-
console.log(chalk.dim('This may indicate a corrupted installation. Try reinstalling the CLI.'));
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
spinner.succeed(chalk.green('Skillsmith skill installed successfully!'));
|
|
103
|
-
console.log();
|
|
104
|
-
console.log(chalk.bold('Installation Details:'));
|
|
105
|
-
console.log(chalk.dim(` Location: ${targetPath}`));
|
|
106
|
-
console.log(chalk.dim(` Files copied: ${filesCopied}`));
|
|
107
|
-
console.log();
|
|
108
|
-
console.log(chalk.bold('Available Commands:'));
|
|
109
|
-
console.log(chalk.cyan(' /skillsmith search <query>') + ' - Search for skills');
|
|
110
|
-
console.log(chalk.cyan(' /skillsmith install <author/name>') + ' - Install a skill');
|
|
111
|
-
console.log(chalk.cyan(' /skillsmith recommend') + ' - Get recommendations');
|
|
112
|
-
console.log(chalk.cyan(' /skillsmith compare <ids>') + ' - Compare skills');
|
|
113
|
-
console.log(chalk.cyan(' /skillsmith list') + ' - List installed skills');
|
|
114
|
-
console.log(chalk.cyan(' /skillsmith uninstall <id>') + ' - Remove a skill');
|
|
115
|
-
console.log();
|
|
116
|
-
console.log(chalk.dim('Tip: Start a new Claude Code session to use the /skillsmith command.'));
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
spinner.fail('Failed to install skillsmith skill');
|
|
120
|
-
throw error;
|
|
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
|
-
});
|
|
144
|
-
/**
|
|
145
|
-
* Create the install-skill command
|
|
146
|
-
*/
|
|
147
|
-
export function createInstallSkillCommand() {
|
|
148
|
-
return new Command('setup')
|
|
149
|
-
.alias('install-skill')
|
|
150
|
-
.description('Set up the skillsmith slash command skill (installs to ~/.claude/skills/skillsmith/)')
|
|
151
|
-
.option('-f, --force', 'Reinstall even if already installed')
|
|
152
|
-
.action(setupAction);
|
|
153
|
-
}
|
|
154
|
-
export default createInstallSkillCommand;
|
|
155
|
-
//# sourceMappingURL=install-skill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../../src/commands/install-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-3484: CLI Install Command (Wave 1)
|
|
3
|
-
*
|
|
4
|
-
* Installs a skill from the registry or GitHub URL to ~/.claude/skills/.
|
|
5
|
-
* Consumes SkillInstallationService from @skillsmith/core.
|
|
6
|
-
*/
|
|
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>;
|
|
29
|
-
/**
|
|
30
|
-
* Create the install command
|
|
31
|
-
*/
|
|
32
|
-
export declare function createInstallCommand(): Command;
|
|
33
|
-
export default createInstallCommand;
|
|
34
|
-
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-3484: CLI Install Command (Wave 1)
|
|
3
|
-
*
|
|
4
|
-
* Installs a skill from the registry or GitHub URL to ~/.claude/skills/.
|
|
5
|
-
* Consumes SkillInstallationService from @skillsmith/core.
|
|
6
|
-
*/
|
|
7
|
-
import { Command } from 'commander';
|
|
8
|
-
import chalk from 'chalk';
|
|
9
|
-
import ora from 'ora';
|
|
10
|
-
import { SkillRepository, SkillDependencyRepository, SkillInstallationService, QuarantineRepository, emitInstallEvent, isGitHubUrl, } from '@skillsmith/core';
|
|
11
|
-
import { withTelemetry } from '@skillsmith/core/telemetry';
|
|
12
|
-
import { openCliDatabase } from '../utils/open-database.js';
|
|
13
|
-
import { addLink, assertClientId, getInstallPath } from '@skillsmith/core/install';
|
|
14
|
-
import { DEFAULT_DB_PATH, DEFAULT_MANIFEST_PATH } from '../config.js';
|
|
15
|
-
import { sanitizeError } from '../utils/sanitize.js';
|
|
16
|
-
const VALID_CLIENT_HINT = 'Valid IDs: claude-code | cursor | copilot | windsurf | agents (Codex users pass --client agents).';
|
|
17
|
-
/**
|
|
18
|
-
* SMI-4578: parse and validate the comma-separated `--also-link` value.
|
|
19
|
-
* Rejects empty entries, duplicates, and any client ID not in the
|
|
20
|
-
* canonical table. The default-client (`--client`) is excluded — fanning
|
|
21
|
-
* out into the same client you just installed for is a no-op.
|
|
22
|
-
*/
|
|
23
|
-
function parseAlsoLink(raw, defaultClient) {
|
|
24
|
-
if (!raw || raw.trim() === '')
|
|
25
|
-
return [];
|
|
26
|
-
const ids = raw
|
|
27
|
-
.split(',')
|
|
28
|
-
.map((s) => s.trim())
|
|
29
|
-
.filter((s) => s !== '');
|
|
30
|
-
const seen = new Set();
|
|
31
|
-
const out = [];
|
|
32
|
-
for (const id of ids) {
|
|
33
|
-
assertClientId(id);
|
|
34
|
-
if (id === defaultClient) {
|
|
35
|
-
throw new Error(`--also-link target '${id}' is the same as --client; pick a different client or drop it from --also-link.`);
|
|
36
|
-
}
|
|
37
|
-
if (seen.has(id)) {
|
|
38
|
-
throw new Error(`--also-link target '${id}' is listed more than once`);
|
|
39
|
-
}
|
|
40
|
-
seen.add(id);
|
|
41
|
-
out.push(id);
|
|
42
|
-
}
|
|
43
|
-
return out;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Validate that a skill ID is in author/name format.
|
|
47
|
-
* Rejects IDs that look like bare names without an author prefix.
|
|
48
|
-
*/
|
|
49
|
-
function isValidSkillId(skillId) {
|
|
50
|
-
if (isGitHubUrl(skillId))
|
|
51
|
-
return true;
|
|
52
|
-
// Must be author/name format: non-empty segments separated by exactly one slash
|
|
53
|
-
return /^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/.test(skillId);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Create a registry lookup backed by the local SQLite database.
|
|
57
|
-
* Returns null for skills without a repo_url (metadata-only entries).
|
|
58
|
-
*
|
|
59
|
-
* SMI-5358 GAP-07: Quarantine enforcement is now live — QuarantineRepository.isQuarantined
|
|
60
|
-
* checks the local quarantine table so CLI installs block quarantined skills just as the
|
|
61
|
-
* MCP registry API path does.
|
|
62
|
-
*/
|
|
63
|
-
export function createDbRegistryLookup(skillRepo, db) {
|
|
64
|
-
// Memoized-lazy: construct on the first real lookup() that needs it, then
|
|
65
|
-
// reuse. Lazy avoids running QuarantineRepository's constructor (schema init +
|
|
66
|
-
// prepared statements) at factory time — callers that never resolve a skill
|
|
67
|
-
// (and tests that mock the install service so lookup() is never reached) pay
|
|
68
|
-
// nothing; memoization avoids redoing it per dependency during resolution.
|
|
69
|
-
let quarantineRepo;
|
|
70
|
-
return {
|
|
71
|
-
async lookup(skillId) {
|
|
72
|
-
const skill = skillRepo.findById(skillId);
|
|
73
|
-
if (!skill)
|
|
74
|
-
return null;
|
|
75
|
-
if (!skill.repoUrl)
|
|
76
|
-
return null;
|
|
77
|
-
quarantineRepo ??= new QuarantineRepository(db);
|
|
78
|
-
return {
|
|
79
|
-
repoUrl: skill.repoUrl,
|
|
80
|
-
name: skill.name,
|
|
81
|
-
trustTier: skill.trustTier,
|
|
82
|
-
quarantined: quarantineRepo.isQuarantined(skill.id || skillId),
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Format install result for --json output
|
|
89
|
-
*/
|
|
90
|
-
function formatJsonResult(result) {
|
|
91
|
-
return JSON.stringify({
|
|
92
|
-
success: result.success,
|
|
93
|
-
skillId: result.skillId,
|
|
94
|
-
installPath: result.installPath,
|
|
95
|
-
error: result.error,
|
|
96
|
-
trustTier: result.trustTier,
|
|
97
|
-
optimization: result.optimization,
|
|
98
|
-
tips: result.tips,
|
|
99
|
-
}, null, 2);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Display install result in human-readable format
|
|
103
|
-
*/
|
|
104
|
-
function displayResult(result, quiet) {
|
|
105
|
-
if (result.success) {
|
|
106
|
-
console.log(chalk.green('\nSkill installed successfully!'));
|
|
107
|
-
console.log(chalk.dim(` Path: ${result.installPath}`));
|
|
108
|
-
if (result.trustTier) {
|
|
109
|
-
console.log(chalk.dim(` Trust tier: ${result.trustTier}`));
|
|
110
|
-
}
|
|
111
|
-
if (result.optimization?.optimized && !quiet) {
|
|
112
|
-
console.log(chalk.dim(` Optimized: ${result.optimization.tokenReductionPercent}% reduction`));
|
|
113
|
-
if (result.optimization.subSkills && result.optimization.subSkills.length > 0) {
|
|
114
|
-
console.log(chalk.dim(` Sub-skills: ${result.optimization.subSkills.join(', ')}`));
|
|
115
|
-
}
|
|
116
|
-
if (result.optimization.subagentGenerated) {
|
|
117
|
-
console.log(chalk.dim(` Companion subagent generated`));
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (result.contentHashMismatch) {
|
|
121
|
-
console.log(chalk.yellow('\n Warning: Content has changed since last indexed.'));
|
|
122
|
-
console.log(chalk.yellow(" Review recent changes at the skill's repository before using."));
|
|
123
|
-
}
|
|
124
|
-
if (result.tips && result.tips.length > 0 && !quiet) {
|
|
125
|
-
// Skip the first tip when contentHashMismatch is true — it's the mismatch
|
|
126
|
-
// warning already displayed as chalk.yellow above (added via tips.unshift)
|
|
127
|
-
const startIndex = result.contentHashMismatch ? 1 : 0;
|
|
128
|
-
if (startIndex < result.tips.length) {
|
|
129
|
-
console.log();
|
|
130
|
-
for (let i = startIndex; i < result.tips.length; i++) {
|
|
131
|
-
console.log(chalk.dim(` Tip: ${result.tips[i]}`));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
console.error(chalk.red(`\nInstallation failed: ${result.error}`));
|
|
138
|
-
if (result.securityReport && !result.securityReport.passed) {
|
|
139
|
-
console.error(chalk.red(' Security scan failed.'));
|
|
140
|
-
for (const finding of result.securityReport.findings) {
|
|
141
|
-
if (finding.severity === 'critical' || finding.severity === 'high') {
|
|
142
|
-
console.error(chalk.red(` [${finding.severity}] ${finding.message}`));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (result.tips && result.tips.length > 0 && !quiet) {
|
|
147
|
-
console.log();
|
|
148
|
-
for (const tip of result.tips) {
|
|
149
|
-
console.log(chalk.dim(` ${tip}`));
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// SMI-5128: extracted from inline .action() closure to a named function so
|
|
155
|
-
// withTelemetry can wrap it at the export boundary (SMI-5040 coverage gate).
|
|
156
|
-
async function installActionImpl(skillId, opts) {
|
|
157
|
-
const quiet = opts.quiet ?? false;
|
|
158
|
-
const jsonOutput = opts.json ?? false;
|
|
159
|
-
try {
|
|
160
|
-
// SMI-4578: validate --client and parse --also-link before any
|
|
161
|
-
// I/O so a bad flag fails fast with a friendly hint.
|
|
162
|
-
const rawClient = opts.client ?? 'claude-code';
|
|
163
|
-
if (rawClient.includes(',')) {
|
|
164
|
-
throw new Error(`--client takes a single value (got '${rawClient}'). Pass --also-link <ids> to fan-out into additional clients.`);
|
|
165
|
-
}
|
|
166
|
-
assertClientId(rawClient);
|
|
167
|
-
const client = rawClient;
|
|
168
|
-
const alsoLinkClients = parseAlsoLink(opts.alsoLink, client);
|
|
169
|
-
const skillsDir = getInstallPath(client);
|
|
170
|
-
// Validate skill ID format
|
|
171
|
-
if (!isValidSkillId(skillId)) {
|
|
172
|
-
const errorMsg = 'Invalid skill ID format. Expected "author/name" or a GitHub URL.\n' +
|
|
173
|
-
' Examples:\n' +
|
|
174
|
-
' skillsmith install getsentry/commit\n' +
|
|
175
|
-
' skillsmith install https://github.com/owner/repo';
|
|
176
|
-
if (jsonOutput) {
|
|
177
|
-
console.log(JSON.stringify({ success: false, skillId, error: errorMsg }, null, 2));
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
console.error(chalk.red(errorMsg));
|
|
181
|
-
}
|
|
182
|
-
process.exit(1);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
const dbPath = opts.db ?? DEFAULT_DB_PATH;
|
|
186
|
-
const db = await openCliDatabase(dbPath);
|
|
187
|
-
const spinner = jsonOutput ? null : ora('Installing skill...').start();
|
|
188
|
-
try {
|
|
189
|
-
const skillRepo = new SkillRepository(db);
|
|
190
|
-
const skillDependencyRepo = new SkillDependencyRepository(db);
|
|
191
|
-
const service = new SkillInstallationService({
|
|
192
|
-
db,
|
|
193
|
-
skillRepo,
|
|
194
|
-
skillDependencyRepo,
|
|
195
|
-
skillsDir,
|
|
196
|
-
manifestPath: DEFAULT_MANIFEST_PATH,
|
|
197
|
-
registryLookup: createDbRegistryLookup(skillRepo, db),
|
|
198
|
-
onProgress: (_stage, detail) => {
|
|
199
|
-
if (spinner) {
|
|
200
|
-
spinner.text = detail;
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
});
|
|
204
|
-
// Build install options — only set defined properties (exactOptionalPropertyTypes)
|
|
205
|
-
const installOptions = {};
|
|
206
|
-
if (opts.force !== undefined) {
|
|
207
|
-
installOptions.force = opts.force;
|
|
208
|
-
}
|
|
209
|
-
if (opts.skipScan !== undefined) {
|
|
210
|
-
installOptions.skipScan = opts.skipScan;
|
|
211
|
-
}
|
|
212
|
-
if (opts.skipOptimize !== undefined) {
|
|
213
|
-
installOptions.skipOptimize = opts.skipOptimize;
|
|
214
|
-
}
|
|
215
|
-
const installStart = Date.now();
|
|
216
|
-
const result = await service.install(skillId, installOptions);
|
|
217
|
-
// SMI-4182 / SMI-4795: fire-and-forget install telemetry —
|
|
218
|
-
// skipped when CLI is unauthenticated (no SKILLSMITH_API_KEY),
|
|
219
|
-
// per product decision. `trustTier` is included on every event
|
|
220
|
-
// (when known); `errorCode` is included only on failures.
|
|
221
|
-
void emitInstallEvent({
|
|
222
|
-
skillId,
|
|
223
|
-
source: 'cli',
|
|
224
|
-
success: result.success,
|
|
225
|
-
durationMs: Date.now() - installStart,
|
|
226
|
-
...(result.trustTier !== undefined && { trustTier: result.trustTier }),
|
|
227
|
-
...(!result.success && result.errorCode !== undefined && { errorCode: result.errorCode }),
|
|
228
|
-
});
|
|
229
|
-
// SMI-4578: fan-out to --also-link clients only after the
|
|
230
|
-
// primary install succeeds. Any fan-out failure is reported as
|
|
231
|
-
// a warning but does NOT mark the overall install as failed —
|
|
232
|
-
// the canonical install at `client` is already complete.
|
|
233
|
-
if (result.success && alsoLinkClients.length > 0) {
|
|
234
|
-
for (const target of alsoLinkClients) {
|
|
235
|
-
try {
|
|
236
|
-
const linked = await addLink({
|
|
237
|
-
skillId,
|
|
238
|
-
fromClient: client,
|
|
239
|
-
toClient: target,
|
|
240
|
-
preferSymlink: opts.symlink ?? false,
|
|
241
|
-
force: opts.force ?? false,
|
|
242
|
-
});
|
|
243
|
-
if (!quiet && !jsonOutput) {
|
|
244
|
-
const note = linked.fellBackToCopy ? ' (fell back to copy)' : '';
|
|
245
|
-
console.log(chalk.dim(` Linked into ${target} as ${linked.record.kind}${note}`));
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
catch (linkErr) {
|
|
249
|
-
if (!jsonOutput) {
|
|
250
|
-
console.warn(chalk.yellow(` Warning: could not link to ${target}: ${sanitizeError(linkErr)}`));
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
if (spinner) {
|
|
256
|
-
if (result.success) {
|
|
257
|
-
spinner.succeed('Skill installed');
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
spinner.fail('Installation failed');
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
if (jsonOutput) {
|
|
264
|
-
console.log(formatJsonResult(result));
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
displayResult(result, quiet);
|
|
268
|
-
}
|
|
269
|
-
if (!result.success) {
|
|
270
|
-
process.exit(1);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
finally {
|
|
274
|
-
db.close();
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
catch (error) {
|
|
278
|
-
if (jsonOutput) {
|
|
279
|
-
console.log(JSON.stringify({ success: false, skillId, error: sanitizeError(error) }, null, 2));
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
console.error(chalk.red('Install error:'), sanitizeError(error));
|
|
283
|
-
}
|
|
284
|
-
process.exit(1);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
export const installAction = withTelemetry(installActionImpl, {
|
|
288
|
-
source: 'cli',
|
|
289
|
-
extractSkillId: () => 'install',
|
|
290
|
-
extractFramework: () => 'cli',
|
|
291
|
-
});
|
|
292
|
-
/**
|
|
293
|
-
* Create the install command
|
|
294
|
-
*/
|
|
295
|
-
export function createInstallCommand() {
|
|
296
|
-
return new Command('install')
|
|
297
|
-
.description('Install a skill from the registry or GitHub URL')
|
|
298
|
-
.argument('<skillId>', 'Skill ID (author/name) or GitHub URL')
|
|
299
|
-
.option('-f, --force', 'Force reinstall if already installed')
|
|
300
|
-
.option('--skip-scan', 'Skip security scan (not recommended)')
|
|
301
|
-
.option('--skip-optimize', 'Skip Skillsmith optimization')
|
|
302
|
-
.option('-q, --quiet', 'Suppress advisory output')
|
|
303
|
-
.option('--json', 'Output structured JSON result')
|
|
304
|
-
.option('-d, --db <path>', 'Database file path', DEFAULT_DB_PATH)
|
|
305
|
-
.option('--client <id>', `install for a specific agent (${VALID_CLIENT_HINT})`, 'claude-code')
|
|
306
|
-
.option('--also-link <ids>', 'comma-separated additional clients to fan-out into (default: copy; pair with --symlink for POSIX symlinks)', '')
|
|
307
|
-
.option('--symlink', 'use relative symlinks instead of file copies for --also-link (POSIX only; falls back to copy on Windows EPERM)', false)
|
|
308
|
-
.action(installAction);
|
|
309
|
-
}
|
|
310
|
-
export default createInstallCommand;
|
|
311
|
-
//# sourceMappingURL=install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GAKZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAA;AACjG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,iBAAiB,GACrB,mGAAmG,CAAA;AAErG;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAuB,EAAE,aAAuB;IACrE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IACxC,MAAM,GAAG,GAAG,GAAG;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAY,CAAA;IAChC,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,CAAA;QAClB,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,iFAAiF,CAC3G,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACZ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,WAAW,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACrC,gFAAgF;IAChF,OAAO,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAA0B,EAC1B,EAAgB;IAEhB,0EAA0E;IAC1E,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,cAAgD,CAAA;IACpD,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,OAAe;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAA;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAA;YAE/B,cAAc,KAAK,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAA;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC;aAC/D,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAyB;IACjD,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,EACD,IAAI,EACJ,CAAC,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAyB,EAAE,KAAc;IAC9D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAEvD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,qBAAqB,aAAa,CAAC,CAAC,CAAA;YAC9F,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACrF,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAA;YACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iEAAiE,CAAC,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,0EAA0E;YAC1E,2EAA2E;YAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACrD,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,EAAE,CAAA;gBACb,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAElE,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAA;YACnD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBACrD,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACnE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,EAAE,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,IAUC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAA;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAA;IAErC,IAAI,CAAC;QACH,+DAA+D;QAC/D,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAA;QAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,gEAAgE,CACjH,CAAA;QACH,CAAC;QACD,cAAc,CAAC,SAAS,CAAC,CAAA;QACzB,MAAM,MAAM,GAAa,SAAS,CAAA;QAClC,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QAExC,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GACZ,oEAAoE;gBACpE,eAAe;gBACf,2CAA2C;gBAC3C,sDAAsD,CAAA;YAExD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YACpC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,eAAe,CAAA;QACzC,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAExC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAA;QAEtE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAA;YACzC,MAAM,mBAAmB,GAAG,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAA;YAE7D,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC;gBAC3C,EAAE;gBACF,SAAS;gBACT,mBAAmB;gBACnB,SAAS;gBACT,YAAY,EAAE,qBAAqB;gBACnC,cAAc,EAAE,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC;gBACrD,UAAU,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;oBAC7C,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;oBACvB,CAAC;gBACH,CAAC;aACF,CAAC,CAAA;YAEF,mFAAmF;YACnF,MAAM,cAAc,GAA8C,EAAE,CAAA;YACpE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACnC,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YACzC,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACpC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YACjD,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAE7D,2DAA2D;YAC3D,+DAA+D;YAC/D,+DAA+D;YAC/D,0DAA0D;YAC1D,KAAK,gBAAgB,CAAC;gBACpB,OAAO;gBACP,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;gBACrC,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;aAC1F,CAAC,CAAA;YAEF,0DAA0D;YAC1D,+DAA+D;YAC/D,8DAA8D;YAC9D,yDAAyD;YACzD,IAAI,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;4BAC3B,OAAO;4BACP,UAAU,EAAE,MAAM;4BAClB,QAAQ,EAAE,MAAM;4BAChB,aAAa,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;4BACpC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;yBAC3B,CAAC,CAAA;wBACF,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;4BAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAA;4BAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;wBACnF,CAAC;oBACH,CAAC;oBAAC,OAAO,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CAAC,gCAAgC,MAAM,KAAK,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAClF,CAAA;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC9B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAChG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,iBAAiB,EAAE;IAC5D,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;IAC/B,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;CAC9B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC,iDAAiD,CAAC;SAC9D,QAAQ,CAAC,WAAW,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC7D,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;SACzD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,iCAAiC,iBAAiB,GAAG,EAAE,aAAa,CAAC;SAC7F,MAAM,CACL,mBAAmB,EACnB,4GAA4G,EAC5G,EAAE,CACH;SACA,MAAM,CACL,WAAW,EACX,gHAAgH,EAChH,KAAK,CACN;SACA,MAAM,CAAC,aAAa,CAAC,CAAA;AAC1B,CAAC;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview `skillsmith inventory` action implementations + telemetry wrappers.
|
|
3
|
-
* @module @skillsmith/cli/commands/inventory.action
|
|
4
|
-
* @see SMI-5392 Wave 3 — CLI `inventory push/status/forget-device` subcommands
|
|
5
|
-
* (umbrella SMI-5382). Follows the SMI-5128 sibling-split convention: the run*
|
|
6
|
-
* business logic + typed-error handling + withTelemetry-wrapped exports live here;
|
|
7
|
-
* the commander factory stays in inventory.ts.
|
|
8
|
-
*
|
|
9
|
-
* Error-mapping contract for `push`:
|
|
10
|
-
* InventoryAuthError → "Not logged in. Run `skillsmith login` and try again."
|
|
11
|
-
* InventoryConflictError → device already owned; instruct forget-device
|
|
12
|
-
* InventoryValidationError → err.message (server-supplied reason)
|
|
13
|
-
* InventoryUploadError → "Inventory upload failed. " + err.message
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Build and upload this device's cross-harness skill inventory snapshot.
|
|
17
|
-
*
|
|
18
|
-
* The local opt-out (`SKILLSMITH_INVENTORY_DISABLE`) and the server-side
|
|
19
|
-
* consent-disabled path are both rendered as informational messages rather
|
|
20
|
-
* than errors.
|
|
21
|
-
*
|
|
22
|
-
* @see SMI-5392
|
|
23
|
-
*/
|
|
24
|
-
export declare function runPush(): Promise<void>;
|
|
25
|
-
/** @internal Exported for unit tests. */
|
|
26
|
-
export declare function inventoryPushActionImpl(): Promise<void>;
|
|
27
|
-
export declare const inventoryPushAction: () => Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Print a local inventory snapshot: device ID, last-push timestamp, local
|
|
30
|
-
* opt-out flag, harness presence, and per-harness skill counts.
|
|
31
|
-
*
|
|
32
|
-
* @param opts.verbose - When true, list individual skill IDs under each harness.
|
|
33
|
-
* @see SMI-5392
|
|
34
|
-
*/
|
|
35
|
-
export declare function runStatus(opts?: {
|
|
36
|
-
verbose?: boolean;
|
|
37
|
-
}): Promise<void>;
|
|
38
|
-
/** @internal Exported for unit tests. */
|
|
39
|
-
export declare function inventoryStatusActionImpl(options: {
|
|
40
|
-
verbose?: boolean;
|
|
41
|
-
}): Promise<void>;
|
|
42
|
-
export declare const inventoryStatusAction: (options: {
|
|
43
|
-
verbose?: boolean;
|
|
44
|
-
}) => Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Clear the locally-persisted device registration so that the next push
|
|
47
|
-
* registers a fresh device UUID.
|
|
48
|
-
*
|
|
49
|
-
* @see SMI-5392
|
|
50
|
-
*/
|
|
51
|
-
export declare function runForgetDevice(): Promise<void>;
|
|
52
|
-
/** @internal Exported for unit tests. */
|
|
53
|
-
export declare function inventoryForgetDeviceActionImpl(): Promise<void>;
|
|
54
|
-
export declare const inventoryForgetDeviceAction: () => Promise<void>;
|
|
55
|
-
//# sourceMappingURL=inventory.action.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.action.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory.action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH;;;;;;;;GAQG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B7C;AAED,yCAAyC;AACzC,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB7D;AAED,eAAO,MAAM,mBAAmB,qBAI9B,CAAA;AAMF;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD3E;AAED,yCAAyC;AACzC,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7F;AAED,eAAO,MAAM,qBAAqB;cATmC,OAAO;mBAa1E,CAAA;AAMF;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,yCAAyC;AACzC,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC,CAOrE;AAED,eAAO,MAAM,2BAA2B,qBAItC,CAAA"}
|