@skillsmith/cli 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli.js +44014 -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 -285
- 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 -108
- 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,179 +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
|
-
import chalk from 'chalk';
|
|
16
|
-
import { pushInventory, getDeviceId, forgetDevice, getLastInventoryPushAt, isInventorySyncDisabledLocally, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, } from '@skillsmith/core';
|
|
17
|
-
import { enumerateHarnessPresence } from '@skillsmith/core/install';
|
|
18
|
-
import { withTelemetry } from '@skillsmith/core/telemetry';
|
|
19
|
-
import { sanitizeError } from '../utils/sanitize.js';
|
|
20
|
-
import { getInstalledSkillsPerHarness } from '../utils/skills-directory.js';
|
|
21
|
-
import { VERSION } from '../version.js';
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// push
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
/**
|
|
26
|
-
* Build and upload this device's cross-harness skill inventory snapshot.
|
|
27
|
-
*
|
|
28
|
-
* The local opt-out (`SKILLSMITH_INVENTORY_DISABLE`) and the server-side
|
|
29
|
-
* consent-disabled path are both rendered as informational messages rather
|
|
30
|
-
* than errors.
|
|
31
|
-
*
|
|
32
|
-
* @see SMI-5392
|
|
33
|
-
*/
|
|
34
|
-
export async function runPush() {
|
|
35
|
-
const r = await pushInventory({ cliVersion: VERSION });
|
|
36
|
-
if (r.reason === 'disabled_locally') {
|
|
37
|
-
console.log(chalk.dim('Inventory sync disabled locally via SKILLSMITH_INVENTORY_DISABLE; nothing sent.'));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
if (!r.applied && r.reason === 'consent_disabled') {
|
|
41
|
-
console.log(chalk.yellow('Inventory sync is OFF for your account. Enable it in account settings; nothing stored.'));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (r.applied) {
|
|
45
|
-
console.log(chalk.green(`Pushed for device ${r.device_id ?? '(unknown)'}: ` +
|
|
46
|
-
`${r.skills_present ?? 0} present, ${r.skills_absent ?? 0} marked absent.`));
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
// Defensive: unexpected ok/reason combo — relay raw fields.
|
|
50
|
-
console.log(`Inventory push result: ok=${String(r.ok)} reason=${r.reason ?? '(none)'}`);
|
|
51
|
-
}
|
|
52
|
-
/** @internal Exported for unit tests. */
|
|
53
|
-
export async function inventoryPushActionImpl() {
|
|
54
|
-
try {
|
|
55
|
-
await runPush();
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
if (err instanceof InventoryAuthError) {
|
|
59
|
-
console.error(chalk.red('Not logged in. Run `skillsmith login` and try again.'));
|
|
60
|
-
}
|
|
61
|
-
else if (err instanceof InventoryConflictError) {
|
|
62
|
-
console.error(chalk.red('This device is registered to another account. ' +
|
|
63
|
-
'Run `skillsmith inventory forget-device` and push again.'));
|
|
64
|
-
}
|
|
65
|
-
else if (err instanceof InventoryValidationError) {
|
|
66
|
-
console.error(chalk.red(err.message));
|
|
67
|
-
}
|
|
68
|
-
else if (err instanceof InventoryUploadError) {
|
|
69
|
-
console.error(chalk.red('Inventory upload failed. ' + err.message));
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
console.error(chalk.red('Error:'), sanitizeError(err));
|
|
73
|
-
}
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
export const inventoryPushAction = withTelemetry(inventoryPushActionImpl, {
|
|
78
|
-
source: 'cli',
|
|
79
|
-
extractSkillId: () => 'inventory push',
|
|
80
|
-
extractFramework: () => 'cli',
|
|
81
|
-
});
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// status (read-only, no network)
|
|
84
|
-
// ---------------------------------------------------------------------------
|
|
85
|
-
/**
|
|
86
|
-
* Print a local inventory snapshot: device ID, last-push timestamp, local
|
|
87
|
-
* opt-out flag, harness presence, and per-harness skill counts.
|
|
88
|
-
*
|
|
89
|
-
* @param opts.verbose - When true, list individual skill IDs under each harness.
|
|
90
|
-
* @see SMI-5392
|
|
91
|
-
*/
|
|
92
|
-
export async function runStatus(opts) {
|
|
93
|
-
const deviceId = getDeviceId();
|
|
94
|
-
const lastPush = getLastInventoryPushAt();
|
|
95
|
-
const syncDisabled = isInventorySyncDisabledLocally();
|
|
96
|
-
const harnessPresence = enumerateHarnessPresence();
|
|
97
|
-
const allSkills = await getInstalledSkillsPerHarness();
|
|
98
|
-
// Group skill counts by harness key.
|
|
99
|
-
const countByHarness = new Map();
|
|
100
|
-
for (const entry of allSkills) {
|
|
101
|
-
const key = String(entry.harness);
|
|
102
|
-
countByHarness.set(key, (countByHarness.get(key) ?? 0) + 1);
|
|
103
|
-
}
|
|
104
|
-
console.log(chalk.bold('Skillsmith Inventory Status'));
|
|
105
|
-
console.log();
|
|
106
|
-
console.log(` Device ID: ${deviceId ? chalk.cyan(deviceId) : chalk.dim('(not yet registered — a push will create one)')}`);
|
|
107
|
-
console.log(` Last push: ${lastPush ? chalk.dim(lastPush) : chalk.dim('never')}`);
|
|
108
|
-
console.log(` Local opt-out: ${syncDisabled ? chalk.yellow('yes (SKILLSMITH_INVENTORY_DISABLE set)') : chalk.dim('no')}`);
|
|
109
|
-
// Local (./.claude/skills) skills count.
|
|
110
|
-
const localCount = countByHarness.get('local') ?? 0;
|
|
111
|
-
if (localCount > 0) {
|
|
112
|
-
console.log(` Local skills: ${chalk.dim(`${localCount} skill${localCount === 1 ? '' : 's'} in ./.claude/skills (repo-local — not synced to your account)`)}`);
|
|
113
|
-
if (opts?.verbose) {
|
|
114
|
-
for (const s of allSkills.filter((e) => e.harness === 'local')) {
|
|
115
|
-
console.log(` - ${s.skillId}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
console.log();
|
|
120
|
-
console.log(' Harness presence:');
|
|
121
|
-
for (const { harness, present } of harnessPresence) {
|
|
122
|
-
const count = countByHarness.get(harness) ?? 0;
|
|
123
|
-
const badge = present ? chalk.green('yes') : chalk.dim('no ');
|
|
124
|
-
const skillStr = present ? chalk.dim(`${count} skill${count === 1 ? '' : 's'}`) : '';
|
|
125
|
-
console.log(` ${String(harness).padEnd(14)} ${badge} ${skillStr}`);
|
|
126
|
-
if (opts?.verbose && present) {
|
|
127
|
-
for (const s of allSkills.filter((e) => e.harness === harness)) {
|
|
128
|
-
console.log(` - ${s.skillId}`);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/** @internal Exported for unit tests. */
|
|
134
|
-
export async function inventoryStatusActionImpl(options) {
|
|
135
|
-
try {
|
|
136
|
-
await runStatus(options);
|
|
137
|
-
}
|
|
138
|
-
catch (err) {
|
|
139
|
-
console.error(chalk.red('Error:'), sanitizeError(err));
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
export const inventoryStatusAction = withTelemetry(inventoryStatusActionImpl, {
|
|
144
|
-
source: 'cli',
|
|
145
|
-
extractSkillId: () => 'inventory status',
|
|
146
|
-
extractFramework: () => 'cli',
|
|
147
|
-
});
|
|
148
|
-
// ---------------------------------------------------------------------------
|
|
149
|
-
// forget-device
|
|
150
|
-
// ---------------------------------------------------------------------------
|
|
151
|
-
/**
|
|
152
|
-
* Clear the locally-persisted device registration so that the next push
|
|
153
|
-
* registers a fresh device UUID.
|
|
154
|
-
*
|
|
155
|
-
* @see SMI-5392
|
|
156
|
-
*/
|
|
157
|
-
export async function runForgetDevice() {
|
|
158
|
-
const had = getDeviceId();
|
|
159
|
-
forgetDevice();
|
|
160
|
-
console.log(chalk.green('Device registration cleared.'));
|
|
161
|
-
console.log(chalk.dim(` Was: ${had ?? '(none)'}`));
|
|
162
|
-
console.log(chalk.dim(' The next push will register a fresh device.'));
|
|
163
|
-
}
|
|
164
|
-
/** @internal Exported for unit tests. */
|
|
165
|
-
export async function inventoryForgetDeviceActionImpl() {
|
|
166
|
-
try {
|
|
167
|
-
await runForgetDevice();
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
console.error(chalk.red('Error:'), sanitizeError(err));
|
|
171
|
-
process.exit(1);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
export const inventoryForgetDeviceAction = withTelemetry(inventoryForgetDeviceActionImpl, {
|
|
175
|
-
source: 'cli',
|
|
176
|
-
extractSkillId: () => 'inventory forget-device',
|
|
177
|
-
extractFramework: () => 'cli',
|
|
178
|
-
});
|
|
179
|
-
//# sourceMappingURL=inventory.action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.action.js","sourceRoot":"","sources":["../../../src/commands/inventory.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tests for `skillsmith inventory` subcommands.
|
|
3
|
-
* @module @skillsmith/cli/commands/inventory.action.test
|
|
4
|
-
* @see SMI-5392 Wave 3 — CLI inventory push/status/forget-device (umbrella SMI-5382)
|
|
5
|
-
*
|
|
6
|
-
* Covers:
|
|
7
|
-
* push: renders applied / consent-off / disabled-locally output correctly
|
|
8
|
-
* push: maps each of the 4 typed errors to console.error + process.exit(1)
|
|
9
|
-
* status: prints device ID, last-push, opt-out flag, and harness presence
|
|
10
|
-
* forget-device: calls core forgetDevice and prints confirmation with prior ID
|
|
11
|
-
*
|
|
12
|
-
* instanceof strategy:
|
|
13
|
-
* @skillsmith/core is mocked with inline class definitions for the four error
|
|
14
|
-
* types. Because vi.mock factories are hoisted, both the source module and the
|
|
15
|
-
* test file receive the SAME class reference — so `err instanceof InventoryAuthError`
|
|
16
|
-
* inside inventoryPushActionImpl matches the errors thrown in tests.
|
|
17
|
-
*/
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=inventory.action.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.action.test.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory.action.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tests for `skillsmith inventory` subcommands.
|
|
3
|
-
* @module @skillsmith/cli/commands/inventory.action.test
|
|
4
|
-
* @see SMI-5392 Wave 3 — CLI inventory push/status/forget-device (umbrella SMI-5382)
|
|
5
|
-
*
|
|
6
|
-
* Covers:
|
|
7
|
-
* push: renders applied / consent-off / disabled-locally output correctly
|
|
8
|
-
* push: maps each of the 4 typed errors to console.error + process.exit(1)
|
|
9
|
-
* status: prints device ID, last-push, opt-out flag, and harness presence
|
|
10
|
-
* forget-device: calls core forgetDevice and prints confirmation with prior ID
|
|
11
|
-
*
|
|
12
|
-
* instanceof strategy:
|
|
13
|
-
* @skillsmith/core is mocked with inline class definitions for the four error
|
|
14
|
-
* types. Because vi.mock factories are hoisted, both the source module and the
|
|
15
|
-
* test file receive the SAME class reference — so `err instanceof InventoryAuthError`
|
|
16
|
-
* inside inventoryPushActionImpl matches the errors thrown in tests.
|
|
17
|
-
*/
|
|
18
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
// @skillsmith/core/telemetry — passthrough so withTelemetry has no side effects
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
vi.mock('@skillsmith/core/telemetry', () => ({
|
|
23
|
-
withTelemetry: (fn) => fn,
|
|
24
|
-
}));
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
// @skillsmith/core — mock functions; inline class definitions for error types
|
|
27
|
-
// so instanceof checks work (same reference in source + test).
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
|
-
vi.mock('@skillsmith/core', () => {
|
|
30
|
-
class InventoryAuthError extends Error {
|
|
31
|
-
constructor(msg = 'Not authenticated. Run `skillsmith login` and try again.') {
|
|
32
|
-
super(msg);
|
|
33
|
-
this.name = 'InventoryAuthError';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
class InventoryConflictError extends Error {
|
|
37
|
-
constructor(msg = 'device_conflict') {
|
|
38
|
-
super(msg);
|
|
39
|
-
this.name = 'InventoryConflictError';
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
class InventoryValidationError extends Error {
|
|
43
|
-
constructor(msg = 'invalid payload') {
|
|
44
|
-
super(msg);
|
|
45
|
-
this.name = 'InventoryValidationError';
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
class InventoryUploadError extends Error {
|
|
49
|
-
constructor(msg) {
|
|
50
|
-
super(msg);
|
|
51
|
-
this.name = 'InventoryUploadError';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
pushInventory: vi.fn(),
|
|
56
|
-
getDeviceId: vi.fn(),
|
|
57
|
-
forgetDevice: vi.fn(),
|
|
58
|
-
getLastInventoryPushAt: vi.fn(),
|
|
59
|
-
isInventorySyncDisabledLocally: vi.fn(),
|
|
60
|
-
InventoryAuthError,
|
|
61
|
-
InventoryConflictError,
|
|
62
|
-
InventoryValidationError,
|
|
63
|
-
InventoryUploadError,
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
// ---------------------------------------------------------------------------
|
|
67
|
-
// @skillsmith/core/install — sync function, mock to return a fixed presence set
|
|
68
|
-
// ---------------------------------------------------------------------------
|
|
69
|
-
vi.mock('@skillsmith/core/install', () => ({
|
|
70
|
-
enumerateHarnessPresence: vi.fn(() => [
|
|
71
|
-
{ harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
|
|
72
|
-
{ harness: 'cursor', present: false, path: '/mock/.cursor/skills' },
|
|
73
|
-
]),
|
|
74
|
-
}));
|
|
75
|
-
// ---------------------------------------------------------------------------
|
|
76
|
-
// CLI utilities
|
|
77
|
-
// ---------------------------------------------------------------------------
|
|
78
|
-
vi.mock('../utils/skills-directory.js', () => ({
|
|
79
|
-
getInstalledSkillsPerHarness: vi.fn(() => Promise.resolve([])),
|
|
80
|
-
}));
|
|
81
|
-
vi.mock('../version.js', () => ({ VERSION: '0.0.0-test' }));
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Import after mocks are registered
|
|
84
|
-
// ---------------------------------------------------------------------------
|
|
85
|
-
import { runPush, runStatus, runForgetDevice, inventoryPushActionImpl, inventoryStatusActionImpl, inventoryForgetDeviceActionImpl, } from './inventory.action.js';
|
|
86
|
-
import { pushInventory, getDeviceId, forgetDevice, getLastInventoryPushAt, isInventorySyncDisabledLocally, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, } from '@skillsmith/core';
|
|
87
|
-
import { enumerateHarnessPresence } from '@skillsmith/core/install';
|
|
88
|
-
import { getInstalledSkillsPerHarness } from '../utils/skills-directory.js';
|
|
89
|
-
const pushInventoryMock = vi.mocked(pushInventory);
|
|
90
|
-
const getDeviceIdMock = vi.mocked(getDeviceId);
|
|
91
|
-
const forgetDeviceMock = vi.mocked(forgetDevice);
|
|
92
|
-
const getLastInventoryPushAtMock = vi.mocked(getLastInventoryPushAt);
|
|
93
|
-
const isInventorySyncDisabledLocallyMock = vi.mocked(isInventorySyncDisabledLocally);
|
|
94
|
-
const enumerateHarnessPresenceMock = vi.mocked(enumerateHarnessPresence);
|
|
95
|
-
const getInstalledSkillsPerHarnessMock = vi.mocked(getInstalledSkillsPerHarness);
|
|
96
|
-
// ---------------------------------------------------------------------------
|
|
97
|
-
// Console capture helper
|
|
98
|
-
// ---------------------------------------------------------------------------
|
|
99
|
-
function captureConsole() {
|
|
100
|
-
const log = [];
|
|
101
|
-
const err = [];
|
|
102
|
-
vi.spyOn(console, 'log').mockImplementation((...args) => log.push(args.join(' ')));
|
|
103
|
-
vi.spyOn(console, 'error').mockImplementation((...args) => err.push(args.join(' ')));
|
|
104
|
-
return {
|
|
105
|
-
log,
|
|
106
|
-
err,
|
|
107
|
-
all: () => [...log, ...err],
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
// ---------------------------------------------------------------------------
|
|
111
|
-
// Setup / teardown
|
|
112
|
-
// ---------------------------------------------------------------------------
|
|
113
|
-
beforeEach(() => {
|
|
114
|
-
vi.clearAllMocks();
|
|
115
|
-
// Defaults so tests that don't care about these still get sensible values.
|
|
116
|
-
getDeviceIdMock.mockReturnValue('test-device-uuid-1234');
|
|
117
|
-
getLastInventoryPushAtMock.mockReturnValue(undefined);
|
|
118
|
-
isInventorySyncDisabledLocallyMock.mockReturnValue(false);
|
|
119
|
-
getInstalledSkillsPerHarnessMock.mockResolvedValue([]);
|
|
120
|
-
});
|
|
121
|
-
afterEach(() => {
|
|
122
|
-
vi.restoreAllMocks();
|
|
123
|
-
});
|
|
124
|
-
// ---------------------------------------------------------------------------
|
|
125
|
-
// push — happy-path rendering
|
|
126
|
-
// ---------------------------------------------------------------------------
|
|
127
|
-
describe('inventory push — happy paths', () => {
|
|
128
|
-
it('prints dim note when sync is locally disabled (disabled_locally)', async () => {
|
|
129
|
-
pushInventoryMock.mockResolvedValue({
|
|
130
|
-
ok: true,
|
|
131
|
-
applied: false,
|
|
132
|
-
reason: 'disabled_locally',
|
|
133
|
-
});
|
|
134
|
-
const cap = captureConsole();
|
|
135
|
-
await runPush();
|
|
136
|
-
const output = cap.all().join('\n');
|
|
137
|
-
expect(output).toContain('SKILLSMITH_INVENTORY_DISABLE');
|
|
138
|
-
expect(output).toContain('nothing sent');
|
|
139
|
-
});
|
|
140
|
-
it('prints yellow consent-off message when server returns consent_disabled', async () => {
|
|
141
|
-
pushInventoryMock.mockResolvedValue({
|
|
142
|
-
ok: true,
|
|
143
|
-
applied: false,
|
|
144
|
-
reason: 'consent_disabled',
|
|
145
|
-
});
|
|
146
|
-
const cap = captureConsole();
|
|
147
|
-
await runPush();
|
|
148
|
-
const output = cap.all().join('\n');
|
|
149
|
-
expect(output).toContain('sync is OFF');
|
|
150
|
-
expect(output).toContain('nothing stored');
|
|
151
|
-
});
|
|
152
|
-
it('prints green success line with device_id and counts when applied=true', async () => {
|
|
153
|
-
pushInventoryMock.mockResolvedValue({
|
|
154
|
-
ok: true,
|
|
155
|
-
applied: true,
|
|
156
|
-
device_id: 'abc-device-123',
|
|
157
|
-
skills_present: 7,
|
|
158
|
-
skills_absent: 2,
|
|
159
|
-
});
|
|
160
|
-
const cap = captureConsole();
|
|
161
|
-
await runPush();
|
|
162
|
-
const output = cap.all().join('\n');
|
|
163
|
-
expect(output).toContain('abc-device-123');
|
|
164
|
-
expect(output).toContain('7 present');
|
|
165
|
-
expect(output).toContain('2 marked absent');
|
|
166
|
-
});
|
|
167
|
-
it('prints defensive raw result for unexpected ok/reason combo', async () => {
|
|
168
|
-
pushInventoryMock.mockResolvedValue({ ok: false, applied: false, reason: 'unknown_reason' });
|
|
169
|
-
const cap = captureConsole();
|
|
170
|
-
await runPush();
|
|
171
|
-
const output = cap.all().join('\n');
|
|
172
|
-
expect(output).toContain('unknown_reason');
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
// ---------------------------------------------------------------------------
|
|
176
|
-
// push — typed error mapping → process.exit(1)
|
|
177
|
-
// ---------------------------------------------------------------------------
|
|
178
|
-
describe('inventory push — typed error mapping', () => {
|
|
179
|
-
function mockExit() {
|
|
180
|
-
return vi.spyOn(process, 'exit').mockImplementation((code) => {
|
|
181
|
-
throw new Error(`process.exit(${String(code)})`);
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
it('maps InventoryAuthError → "Not logged in" message + exit(1)', async () => {
|
|
185
|
-
const exitSpy = mockExit();
|
|
186
|
-
pushInventoryMock.mockRejectedValue(new InventoryAuthError());
|
|
187
|
-
const cap = captureConsole();
|
|
188
|
-
await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
|
|
189
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
190
|
-
expect(cap.err.join(' ')).toContain('Not logged in');
|
|
191
|
-
});
|
|
192
|
-
it('maps InventoryConflictError → "forget-device" hint + exit(1)', async () => {
|
|
193
|
-
const exitSpy = mockExit();
|
|
194
|
-
pushInventoryMock.mockRejectedValue(new InventoryConflictError());
|
|
195
|
-
const cap = captureConsole();
|
|
196
|
-
await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
|
|
197
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
198
|
-
expect(cap.err.join(' ')).toContain('forget-device');
|
|
199
|
-
});
|
|
200
|
-
it('maps InventoryValidationError → server message + exit(1)', async () => {
|
|
201
|
-
const exitSpy = mockExit();
|
|
202
|
-
pushInventoryMock.mockRejectedValue(new InventoryValidationError('skill_id_too_long'));
|
|
203
|
-
const cap = captureConsole();
|
|
204
|
-
await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
|
|
205
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
206
|
-
expect(cap.err.join(' ')).toContain('skill_id_too_long');
|
|
207
|
-
});
|
|
208
|
-
it('maps InventoryUploadError → "Inventory upload failed." prefix + exit(1)', async () => {
|
|
209
|
-
const exitSpy = mockExit();
|
|
210
|
-
pushInventoryMock.mockRejectedValue(new InventoryUploadError('HTTP 503'));
|
|
211
|
-
const cap = captureConsole();
|
|
212
|
-
await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
|
|
213
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
214
|
-
expect(cap.err.join(' ')).toContain('Inventory upload failed.');
|
|
215
|
-
expect(cap.err.join(' ')).toContain('HTTP 503');
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
// ---------------------------------------------------------------------------
|
|
219
|
-
// status — read-only local view
|
|
220
|
-
// ---------------------------------------------------------------------------
|
|
221
|
-
describe('inventory status', () => {
|
|
222
|
-
it('shows device ID when registered', async () => {
|
|
223
|
-
getDeviceIdMock.mockReturnValue('my-stable-device-uuid');
|
|
224
|
-
const cap = captureConsole();
|
|
225
|
-
await runStatus();
|
|
226
|
-
expect(cap.log.join('\n')).toContain('my-stable-device-uuid');
|
|
227
|
-
});
|
|
228
|
-
it('shows placeholder when device not yet registered', async () => {
|
|
229
|
-
getDeviceIdMock.mockReturnValue(undefined);
|
|
230
|
-
const cap = captureConsole();
|
|
231
|
-
await runStatus();
|
|
232
|
-
expect(cap.log.join('\n')).toContain('not yet registered');
|
|
233
|
-
});
|
|
234
|
-
it('shows "never" when no push has occurred', async () => {
|
|
235
|
-
getLastInventoryPushAtMock.mockReturnValue(undefined);
|
|
236
|
-
const cap = captureConsole();
|
|
237
|
-
await runStatus();
|
|
238
|
-
expect(cap.log.join('\n')).toContain('never');
|
|
239
|
-
});
|
|
240
|
-
it('shows last push timestamp when present', async () => {
|
|
241
|
-
getLastInventoryPushAtMock.mockReturnValue('2026-01-15T10:00:00.000Z');
|
|
242
|
-
const cap = captureConsole();
|
|
243
|
-
await runStatus();
|
|
244
|
-
expect(cap.log.join('\n')).toContain('2026-01-15T10:00:00.000Z');
|
|
245
|
-
});
|
|
246
|
-
it('shows opt-out warning when SKILLSMITH_INVENTORY_DISABLE is set', async () => {
|
|
247
|
-
isInventorySyncDisabledLocallyMock.mockReturnValue(true);
|
|
248
|
-
const cap = captureConsole();
|
|
249
|
-
await runStatus();
|
|
250
|
-
expect(cap.log.join('\n')).toContain('SKILLSMITH_INVENTORY_DISABLE');
|
|
251
|
-
});
|
|
252
|
-
it('lists harness presence from enumerateHarnessPresence', async () => {
|
|
253
|
-
enumerateHarnessPresenceMock.mockReturnValue([
|
|
254
|
-
{ harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
|
|
255
|
-
{ harness: 'cursor', present: false, path: '/mock/.cursor/skills' },
|
|
256
|
-
]);
|
|
257
|
-
const cap = captureConsole();
|
|
258
|
-
await runStatus();
|
|
259
|
-
const out = cap.log.join('\n');
|
|
260
|
-
expect(out).toContain('claude-code');
|
|
261
|
-
expect(out).toContain('cursor');
|
|
262
|
-
});
|
|
263
|
-
it('shows skill count for present harnesses', async () => {
|
|
264
|
-
enumerateHarnessPresenceMock.mockReturnValue([
|
|
265
|
-
{ harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
|
|
266
|
-
]);
|
|
267
|
-
getInstalledSkillsPerHarnessMock.mockResolvedValue([
|
|
268
|
-
{
|
|
269
|
-
harness: 'claude-code',
|
|
270
|
-
skillId: 'foo/bar',
|
|
271
|
-
version: '1.0.0',
|
|
272
|
-
contentHash: null,
|
|
273
|
-
path: '/mock/foo-bar',
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
harness: 'claude-code',
|
|
277
|
-
skillId: 'baz/qux',
|
|
278
|
-
version: null,
|
|
279
|
-
contentHash: null,
|
|
280
|
-
path: '/mock/baz-qux',
|
|
281
|
-
},
|
|
282
|
-
]);
|
|
283
|
-
const cap = captureConsole();
|
|
284
|
-
await runStatus();
|
|
285
|
-
expect(cap.log.join('\n')).toContain('2 skills');
|
|
286
|
-
});
|
|
287
|
-
it('lists skill IDs under each harness when --verbose is passed', async () => {
|
|
288
|
-
enumerateHarnessPresenceMock.mockReturnValue([
|
|
289
|
-
{ harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
|
|
290
|
-
]);
|
|
291
|
-
getInstalledSkillsPerHarnessMock.mockResolvedValue([
|
|
292
|
-
{
|
|
293
|
-
harness: 'claude-code',
|
|
294
|
-
skillId: 'author/my-skill',
|
|
295
|
-
version: '1.0.0',
|
|
296
|
-
contentHash: null,
|
|
297
|
-
path: '/mock/my-skill',
|
|
298
|
-
},
|
|
299
|
-
]);
|
|
300
|
-
const cap = captureConsole();
|
|
301
|
-
await runStatus({ verbose: true });
|
|
302
|
-
expect(cap.log.join('\n')).toContain('author/my-skill');
|
|
303
|
-
});
|
|
304
|
-
it('does not list skill IDs when --verbose is not passed', async () => {
|
|
305
|
-
enumerateHarnessPresenceMock.mockReturnValue([
|
|
306
|
-
{ harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
|
|
307
|
-
]);
|
|
308
|
-
getInstalledSkillsPerHarnessMock.mockResolvedValue([
|
|
309
|
-
{
|
|
310
|
-
harness: 'claude-code',
|
|
311
|
-
skillId: 'author/hidden-skill',
|
|
312
|
-
version: null,
|
|
313
|
-
contentHash: null,
|
|
314
|
-
path: '/mock/hidden',
|
|
315
|
-
},
|
|
316
|
-
]);
|
|
317
|
-
const cap = captureConsole();
|
|
318
|
-
await runStatus({ verbose: false });
|
|
319
|
-
expect(cap.log.join('\n')).not.toContain('author/hidden-skill');
|
|
320
|
-
});
|
|
321
|
-
it('passes through errors from getInstalledSkillsPerHarness to inventoryStatusActionImpl', async () => {
|
|
322
|
-
getInstalledSkillsPerHarnessMock.mockRejectedValue(new Error('disk error'));
|
|
323
|
-
const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
|
|
324
|
-
throw new Error(`process.exit(${String(code)})`);
|
|
325
|
-
});
|
|
326
|
-
captureConsole();
|
|
327
|
-
await expect(inventoryStatusActionImpl({})).rejects.toThrow('process.exit(1)');
|
|
328
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
// ---------------------------------------------------------------------------
|
|
332
|
-
// forget-device
|
|
333
|
-
// ---------------------------------------------------------------------------
|
|
334
|
-
describe('inventory forget-device', () => {
|
|
335
|
-
it('calls core forgetDevice', async () => {
|
|
336
|
-
getDeviceIdMock.mockReturnValue('old-device-uuid');
|
|
337
|
-
captureConsole();
|
|
338
|
-
await runForgetDevice();
|
|
339
|
-
expect(forgetDeviceMock).toHaveBeenCalledTimes(1);
|
|
340
|
-
});
|
|
341
|
-
it('confirms the previous device ID in output', async () => {
|
|
342
|
-
getDeviceIdMock.mockReturnValue('previous-device-abc');
|
|
343
|
-
const cap = captureConsole();
|
|
344
|
-
await runForgetDevice();
|
|
345
|
-
expect(cap.log.join('\n')).toContain('previous-device-abc');
|
|
346
|
-
});
|
|
347
|
-
it('shows "(none)" when there was no device ID to forget', async () => {
|
|
348
|
-
getDeviceIdMock.mockReturnValue(undefined);
|
|
349
|
-
const cap = captureConsole();
|
|
350
|
-
await runForgetDevice();
|
|
351
|
-
expect(cap.log.join('\n')).toContain('(none)');
|
|
352
|
-
});
|
|
353
|
-
it('mentions fresh device on next push', async () => {
|
|
354
|
-
getDeviceIdMock.mockReturnValue('any-device');
|
|
355
|
-
const cap = captureConsole();
|
|
356
|
-
await runForgetDevice();
|
|
357
|
-
expect(cap.log.join('\n')).toContain('fresh device');
|
|
358
|
-
});
|
|
359
|
-
it('passes through errors to inventoryForgetDeviceActionImpl + exit(1)', async () => {
|
|
360
|
-
forgetDeviceMock.mockImplementation(() => {
|
|
361
|
-
throw new Error('config write error');
|
|
362
|
-
});
|
|
363
|
-
const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
|
|
364
|
-
throw new Error(`process.exit(${String(code)})`);
|
|
365
|
-
});
|
|
366
|
-
captureConsole();
|
|
367
|
-
await expect(inventoryForgetDeviceActionImpl()).rejects.toThrow('process.exit(1)');
|
|
368
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
369
|
-
});
|
|
370
|
-
});
|
|
371
|
-
//# sourceMappingURL=inventory.action.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.action.test.js","sourceRoot":"","sources":["../../../src/commands/inventory.action.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview `skillsmith inventory` command group — cross-harness inventory management.
|
|
3
|
-
* @module @skillsmith/cli/commands/inventory
|
|
4
|
-
* @see SMI-5392 Wave 3 — CLI `inventory` subcommands (umbrella SMI-5382).
|
|
5
|
-
* @see SMI-5128 sibling-split convention — action impls + withTelemetry wrappers
|
|
6
|
-
* live in inventory.action.ts; this file retains only the commander factory.
|
|
7
|
-
*
|
|
8
|
-
* Subcommands:
|
|
9
|
-
* skillsmith inventory push
|
|
10
|
-
* skillsmith inventory status [--verbose]
|
|
11
|
-
* skillsmith inventory forget-device
|
|
12
|
-
*/
|
|
13
|
-
import { Command } from 'commander';
|
|
14
|
-
/**
|
|
15
|
-
* Build and return the `inventory` commander group with its three subcommands.
|
|
16
|
-
*
|
|
17
|
-
* @see SMI-5392
|
|
18
|
-
*/
|
|
19
|
-
export declare function createInventoryCommand(): Command;
|
|
20
|
-
export { runPush, runStatus, runForgetDevice, inventoryPushActionImpl, inventoryStatusActionImpl, inventoryForgetDeviceActionImpl, } from './inventory.action.js';
|
|
21
|
-
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAsBhD;AAGD,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,uBAAuB,CAAA"}
|