@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,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview SMI-5407 end-to-end — `sklx audit sources --apply` write paths.
|
|
3
|
-
*
|
|
4
|
-
* Real temp manifest (redirected via $HOME) + real temp SQLite. Covers:
|
|
5
|
-
* 3. Collision safety — ambiguous low match is NOT auto-written; `--set` then
|
|
6
|
-
* writes the user-specified owner/skill-name id + https source.
|
|
7
|
-
* 6. Idempotency + never-clobber — a second `--apply` is a no-op; a pre-existing
|
|
8
|
-
* healthy entry with a differing source is left untouched.
|
|
9
|
-
* 8. --write-frontmatter churn guard — never writes `repository:` into a `.git`
|
|
10
|
-
* dir or when one already exists; DOES write into a non-git dir lacking it.
|
|
11
|
-
*/
|
|
12
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
|
|
13
|
-
import * as fs from 'node:fs';
|
|
14
|
-
import * as os from 'node:os';
|
|
15
|
-
import * as path from 'node:path';
|
|
16
|
-
import { writeSourceFixture, seedSkillsDb, skillMd, FIXTURE_DIRS, } from './utils/source-recovery-fixture.js';
|
|
17
|
-
let runAuditSources;
|
|
18
|
-
let tempHome = '';
|
|
19
|
-
let skillsRoot = '';
|
|
20
|
-
let manifestPath = '';
|
|
21
|
-
let originalHome;
|
|
22
|
-
let dbCounter = 0;
|
|
23
|
-
function makeOpts(o) {
|
|
24
|
-
return {
|
|
25
|
-
skillsRoot: o.skillsRoot ?? skillsRoot,
|
|
26
|
-
apply: o.apply ?? false,
|
|
27
|
-
yes: o.yes ?? false,
|
|
28
|
-
set: o.set,
|
|
29
|
-
minConfidence: o.minConfidence ?? 'high',
|
|
30
|
-
json: o.json ?? false,
|
|
31
|
-
embedding: false,
|
|
32
|
-
catalogHint: false,
|
|
33
|
-
writeFrontmatter: o.writeFrontmatter ?? false,
|
|
34
|
-
forceWriteFrontmatter: o.forceWriteFrontmatter ?? false,
|
|
35
|
-
db: o.db,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function readManifest() {
|
|
39
|
-
return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
40
|
-
}
|
|
41
|
-
function entry(name) {
|
|
42
|
-
return readManifest().installedSkills[name];
|
|
43
|
-
}
|
|
44
|
-
async function seededDb() {
|
|
45
|
-
const dbPath = path.join(tempHome, `cands-${dbCounter++}.db`);
|
|
46
|
-
await seedSkillsDb(dbPath, [
|
|
47
|
-
{ id: 'coll-1', name: FIXTURE_DIRS.collision, repoUrl: 'https://github.com/coll1/repoA' },
|
|
48
|
-
{ id: 'coll-2', name: FIXTURE_DIRS.collision, repoUrl: 'https://github.com/coll2/repoB' },
|
|
49
|
-
]);
|
|
50
|
-
return dbPath;
|
|
51
|
-
}
|
|
52
|
-
async function emptyDb() {
|
|
53
|
-
const dbPath = path.join(tempHome, `empty-${dbCounter++}.db`);
|
|
54
|
-
await seedSkillsDb(dbPath, []);
|
|
55
|
-
return dbPath;
|
|
56
|
-
}
|
|
57
|
-
beforeAll(async () => {
|
|
58
|
-
originalHome = process.env['HOME'];
|
|
59
|
-
tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-apply-home-'));
|
|
60
|
-
process.env['HOME'] = tempHome;
|
|
61
|
-
skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-apply-skills-'));
|
|
62
|
-
manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
|
|
63
|
-
writeSourceFixture(skillsRoot);
|
|
64
|
-
({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
|
|
65
|
-
});
|
|
66
|
-
afterAll(() => {
|
|
67
|
-
if (originalHome === undefined)
|
|
68
|
-
delete process.env['HOME'];
|
|
69
|
-
else
|
|
70
|
-
process.env['HOME'] = originalHome;
|
|
71
|
-
for (const dir of [tempHome, skillsRoot]) {
|
|
72
|
-
if (dir)
|
|
73
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
beforeEach(() => {
|
|
77
|
-
fs.rmSync(manifestPath, { force: true });
|
|
78
|
-
});
|
|
79
|
-
describe('SMI-5407 e2e — collision safety (scenario 3)', () => {
|
|
80
|
-
it('does not auto-write an ambiguous (low) collision, then writes it via --set', async () => {
|
|
81
|
-
const db = await seededDb();
|
|
82
|
-
// Default min high: the low collision match must NOT land in the manifest.
|
|
83
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
84
|
-
expect(entry(FIXTURE_DIRS.collision)).toBeUndefined();
|
|
85
|
-
// git + plugin (exact/high) DID land.
|
|
86
|
-
expect(entry(FIXTURE_DIRS.git)).toBeDefined();
|
|
87
|
-
expect(entry(FIXTURE_DIRS.plugin)).toBeDefined();
|
|
88
|
-
// --set resolves it explicitly at user-specified confidence.
|
|
89
|
-
await runAuditSources(makeOpts({
|
|
90
|
-
db,
|
|
91
|
-
apply: true,
|
|
92
|
-
yes: true,
|
|
93
|
-
set: [`${FIXTURE_DIRS.collision}=picked-owner/picked-repo`],
|
|
94
|
-
}));
|
|
95
|
-
const resolved = entry(FIXTURE_DIRS.collision);
|
|
96
|
-
expect(resolved).toBeDefined();
|
|
97
|
-
expect(resolved.id).toBe(`picked-owner/${FIXTURE_DIRS.collision}`);
|
|
98
|
-
expect(resolved.source).toBe('https://github.com/picked-owner/picked-repo');
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('SMI-5407 e2e — idempotency + never-clobber (scenario 6)', () => {
|
|
102
|
-
it('a second --apply writes nothing and leaves the manifest byte-identical', async () => {
|
|
103
|
-
const db = await emptyDb();
|
|
104
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
105
|
-
const afterFirst = fs.readFileSync(manifestPath, 'utf-8');
|
|
106
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
107
|
-
const afterSecond = fs.readFileSync(manifestPath, 'utf-8');
|
|
108
|
-
expect(afterSecond).toBe(afterFirst);
|
|
109
|
-
});
|
|
110
|
-
it('never clobbers a healthy pre-existing entry whose source differs', async () => {
|
|
111
|
-
const preExisting = {
|
|
112
|
-
version: '1.0.0',
|
|
113
|
-
installedSkills: {
|
|
114
|
-
[FIXTURE_DIRS.git]: {
|
|
115
|
-
id: 'preexisting-id',
|
|
116
|
-
name: FIXTURE_DIRS.git,
|
|
117
|
-
version: '9.9.9',
|
|
118
|
-
source: 'https://github.com/someoneelse/different',
|
|
119
|
-
installPath: path.join(skillsRoot, FIXTURE_DIRS.git),
|
|
120
|
-
installedAt: '2020-01-01T00:00:00.000Z',
|
|
121
|
-
lastUpdated: '2020-01-01T00:00:00.000Z',
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
|
|
126
|
-
fs.writeFileSync(manifestPath, JSON.stringify(preExisting, null, 2));
|
|
127
|
-
await runAuditSources(makeOpts({ db: await emptyDb(), apply: true, yes: true }));
|
|
128
|
-
const git = entry(FIXTURE_DIRS.git);
|
|
129
|
-
expect(git.id).toBe('preexisting-id');
|
|
130
|
-
expect(git.source).toBe('https://github.com/someoneelse/different');
|
|
131
|
-
expect(git.version).toBe('9.9.9');
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
describe('SMI-5407 e2e — --write-frontmatter churn guard (scenario 8)', () => {
|
|
135
|
-
it('writes repository: only into non-git dirs lacking one', async () => {
|
|
136
|
-
// Isolated, mutable fixture (write-frontmatter rewrites SKILL.md).
|
|
137
|
-
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-fm-'));
|
|
138
|
-
writeSourceFixture(root); // provides git-skill (.git) + plugin-skill (plugin.json)
|
|
139
|
-
const nosrc = path.join(root, 'nosrc-skill');
|
|
140
|
-
fs.mkdirSync(nosrc, { recursive: true });
|
|
141
|
-
fs.writeFileSync(path.join(nosrc, 'SKILL.md'), skillMd('nosrc-skill'));
|
|
142
|
-
const hasrepo = path.join(root, 'hasrepo-skill');
|
|
143
|
-
fs.mkdirSync(hasrepo, { recursive: true });
|
|
144
|
-
fs.writeFileSync(path.join(hasrepo, 'SKILL.md'), skillMd('hasrepo-skill', 'repository: https://github.com/existing/existing'));
|
|
145
|
-
const gitBefore = fs.readFileSync(path.join(root, FIXTURE_DIRS.git, 'SKILL.md'), 'utf-8');
|
|
146
|
-
const hasrepoBefore = fs.readFileSync(path.join(hasrepo, 'SKILL.md'), 'utf-8');
|
|
147
|
-
await runAuditSources(makeOpts({
|
|
148
|
-
db: await emptyDb(),
|
|
149
|
-
skillsRoot: root,
|
|
150
|
-
apply: true,
|
|
151
|
-
yes: true,
|
|
152
|
-
writeFrontmatter: true,
|
|
153
|
-
forceWriteFrontmatter: true,
|
|
154
|
-
set: ['nosrc-skill=me/no', 'hasrepo-skill=me/has'],
|
|
155
|
-
}));
|
|
156
|
-
// .git dir: never rewritten.
|
|
157
|
-
expect(fs.readFileSync(path.join(root, FIXTURE_DIRS.git, 'SKILL.md'), 'utf-8')).toBe(gitBefore);
|
|
158
|
-
// Non-git, no existing repository: gets the recovered source written in.
|
|
159
|
-
expect(fs.readFileSync(path.join(root, FIXTURE_DIRS.plugin, 'SKILL.md'), 'utf-8')).toContain('repository: https://github.com/o/r');
|
|
160
|
-
expect(fs.readFileSync(path.join(nosrc, 'SKILL.md'), 'utf-8')).toContain('repository: https://github.com/me/no');
|
|
161
|
-
// Already-present repository: never duplicated / overwritten.
|
|
162
|
-
expect(fs.readFileSync(path.join(hasrepo, 'SKILL.md'), 'utf-8')).toBe(hasrepoBefore);
|
|
163
|
-
fs.rmSync(root, { recursive: true, force: true });
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
//# sourceMappingURL=audit-sources-apply.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-sources-apply.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-apply.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview SMI-5407 end-to-end — `sklx audit sources` recovery (read paths).
|
|
3
|
-
*
|
|
4
|
-
* Real temp filesystem fixture + real temp SQLite (seeded `skills`) + real temp
|
|
5
|
-
* manifest (redirected via $HOME). No value-baked mocks: the only injected edge
|
|
6
|
-
* is network absence (an empty / unseeded candidate DB). Covers:
|
|
7
|
-
* 1. CLI full-path `--json` — per-dir method/confidence/status; no manifest write.
|
|
8
|
-
* 4. ssh-vs-https — both git fixtures normalize to one owner/repo + parse via buildRawUrl.
|
|
9
|
-
* 7. Offline degradation — empty DB: git+plugin resolve, registry/collision unknown, no throw.
|
|
10
|
-
*
|
|
11
|
-
* $HOME is set BEFORE the dynamic import of the action module so its
|
|
12
|
-
* module-level MANIFEST_PATH (utils/manifest.ts) freezes onto the temp home.
|
|
13
|
-
*/
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=audit-sources-recovery.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-sources-recovery.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-recovery.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview SMI-5407 end-to-end — `sklx audit sources` recovery (read paths).
|
|
3
|
-
*
|
|
4
|
-
* Real temp filesystem fixture + real temp SQLite (seeded `skills`) + real temp
|
|
5
|
-
* manifest (redirected via $HOME). No value-baked mocks: the only injected edge
|
|
6
|
-
* is network absence (an empty / unseeded candidate DB). Covers:
|
|
7
|
-
* 1. CLI full-path `--json` — per-dir method/confidence/status; no manifest write.
|
|
8
|
-
* 4. ssh-vs-https — both git fixtures normalize to one owner/repo + parse via buildRawUrl.
|
|
9
|
-
* 7. Offline degradation — empty DB: git+plugin resolve, registry/collision unknown, no throw.
|
|
10
|
-
*
|
|
11
|
-
* $HOME is set BEFORE the dynamic import of the action module so its
|
|
12
|
-
* module-level MANIFEST_PATH (utils/manifest.ts) freezes onto the temp home.
|
|
13
|
-
*/
|
|
14
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach, vi } from 'vitest';
|
|
15
|
-
import * as fs from 'node:fs';
|
|
16
|
-
import * as os from 'node:os';
|
|
17
|
-
import * as path from 'node:path';
|
|
18
|
-
import { writeSourceFixture, seedSkillsDb, buildRawUrl, FIXTURE_DIRS, GIT_OWNER, GIT_REPO, } from './utils/source-recovery-fixture.js';
|
|
19
|
-
let runAuditSources;
|
|
20
|
-
let tempHome = '';
|
|
21
|
-
let skillsRoot = '';
|
|
22
|
-
let manifestPath = '';
|
|
23
|
-
let originalHome;
|
|
24
|
-
let dbCounter = 0;
|
|
25
|
-
function makeOpts(o) {
|
|
26
|
-
return {
|
|
27
|
-
skillsRoot,
|
|
28
|
-
apply: o.apply ?? false,
|
|
29
|
-
yes: o.yes ?? false,
|
|
30
|
-
set: o.set,
|
|
31
|
-
minConfidence: o.minConfidence ?? 'high',
|
|
32
|
-
json: o.json ?? false,
|
|
33
|
-
embedding: false,
|
|
34
|
-
catalogHint: false,
|
|
35
|
-
writeFrontmatter: o.writeFrontmatter ?? false,
|
|
36
|
-
forceWriteFrontmatter: o.forceWriteFrontmatter ?? false,
|
|
37
|
-
db: o.db,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/** Run `audit sources --json` and return the parsed `{ skills, summary }`. */
|
|
41
|
-
async function runJson(dbPath) {
|
|
42
|
-
const chunks = [];
|
|
43
|
-
const spy = vi
|
|
44
|
-
.spyOn(process.stdout, 'write')
|
|
45
|
-
.mockImplementation((chunk) => {
|
|
46
|
-
chunks.push(typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf-8'));
|
|
47
|
-
return true;
|
|
48
|
-
});
|
|
49
|
-
try {
|
|
50
|
-
await runAuditSources(makeOpts({ db: dbPath, json: true }));
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
53
|
-
spy.mockRestore();
|
|
54
|
-
}
|
|
55
|
-
return JSON.parse(chunks.join('').trim());
|
|
56
|
-
}
|
|
57
|
-
function bySkill(skills, name) {
|
|
58
|
-
const found = skills.find((s) => s.skillName === name);
|
|
59
|
-
if (!found)
|
|
60
|
-
throw new Error(`fixture skill not found in report: ${name}`);
|
|
61
|
-
return found;
|
|
62
|
-
}
|
|
63
|
-
/** A fresh seeded candidate DB: registry-skill (1 row) + collision-skill (2 rows). */
|
|
64
|
-
async function seededDb() {
|
|
65
|
-
const dbPath = path.join(tempHome, `cands-${dbCounter++}.db`);
|
|
66
|
-
await seedSkillsDb(dbPath, [
|
|
67
|
-
{
|
|
68
|
-
id: 'reg-uuid-0001',
|
|
69
|
-
name: FIXTURE_DIRS.registry,
|
|
70
|
-
repoUrl: 'https://github.com/regowner/regrepo',
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: 'coll-uuid-0001',
|
|
74
|
-
name: FIXTURE_DIRS.collision,
|
|
75
|
-
repoUrl: 'https://github.com/coll1/repoA',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'coll-uuid-0002',
|
|
79
|
-
name: FIXTURE_DIRS.collision,
|
|
80
|
-
repoUrl: 'https://github.com/coll2/repoB',
|
|
81
|
-
},
|
|
82
|
-
]);
|
|
83
|
-
return dbPath;
|
|
84
|
-
}
|
|
85
|
-
/** A fresh EMPTY candidate DB (no skills rows) — models the offline path. */
|
|
86
|
-
async function emptyDb() {
|
|
87
|
-
const dbPath = path.join(tempHome, `empty-${dbCounter++}.db`);
|
|
88
|
-
await seedSkillsDb(dbPath, []);
|
|
89
|
-
return dbPath;
|
|
90
|
-
}
|
|
91
|
-
beforeAll(async () => {
|
|
92
|
-
originalHome = process.env['HOME'];
|
|
93
|
-
tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-recov-home-'));
|
|
94
|
-
process.env['HOME'] = tempHome;
|
|
95
|
-
skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-recov-skills-'));
|
|
96
|
-
manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
|
|
97
|
-
writeSourceFixture(skillsRoot);
|
|
98
|
-
({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
|
|
99
|
-
});
|
|
100
|
-
afterAll(() => {
|
|
101
|
-
if (originalHome === undefined)
|
|
102
|
-
delete process.env['HOME'];
|
|
103
|
-
else
|
|
104
|
-
process.env['HOME'] = originalHome;
|
|
105
|
-
for (const dir of [tempHome, skillsRoot]) {
|
|
106
|
-
if (dir)
|
|
107
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
beforeEach(() => {
|
|
111
|
-
fs.rmSync(manifestPath, { force: true });
|
|
112
|
-
});
|
|
113
|
-
describe('SMI-5407 e2e — audit sources --json (scenario 1)', () => {
|
|
114
|
-
it('reports the correct method/confidence/status per directory', async () => {
|
|
115
|
-
const { skills, summary } = await runJson(await seededDb());
|
|
116
|
-
const git = bySkill(skills, FIXTURE_DIRS.git);
|
|
117
|
-
expect(git.method).toBe('git-remote');
|
|
118
|
-
expect(git.confidence).toBe('exact');
|
|
119
|
-
expect(git.status).toBe('recovered');
|
|
120
|
-
const plugin = bySkill(skills, FIXTURE_DIRS.plugin);
|
|
121
|
-
expect(plugin.method).toBe('plugin-json');
|
|
122
|
-
expect(plugin.confidence).toBe('high');
|
|
123
|
-
expect(plugin.status).toBe('recovered');
|
|
124
|
-
const registry = bySkill(skills, FIXTURE_DIRS.registry);
|
|
125
|
-
expect(registry.method).toBe('registry-name');
|
|
126
|
-
expect(registry.confidence).toBe('medium');
|
|
127
|
-
expect(registry.registryId).toBe('reg-uuid-0001');
|
|
128
|
-
expect(registry.status).toBe('recovered');
|
|
129
|
-
const collision = bySkill(skills, FIXTURE_DIRS.collision);
|
|
130
|
-
expect(collision.candidates).toHaveLength(2);
|
|
131
|
-
expect(collision.confidence).toBe('low');
|
|
132
|
-
expect(collision.status).toBe('unknown');
|
|
133
|
-
const backup = bySkill(skills, FIXTURE_DIRS.backup);
|
|
134
|
-
expect(backup.status).toBe('skipped_backup');
|
|
135
|
-
const unknown = bySkill(skills, FIXTURE_DIRS.unknown);
|
|
136
|
-
expect(unknown.status).toBe('unknown');
|
|
137
|
-
expect(unknown.confidence).toBe('unknown');
|
|
138
|
-
// Summary echoes the per-dir tally (3 recovered: git + https + plugin).
|
|
139
|
-
expect(summary['skipped_backup']).toBe(1);
|
|
140
|
-
expect(summary['total']).toBe(skills.length);
|
|
141
|
-
});
|
|
142
|
-
it('does not write the manifest on a dry-run (--json)', async () => {
|
|
143
|
-
await runJson(await seededDb());
|
|
144
|
-
expect(fs.existsSync(manifestPath)).toBe(false);
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
describe('SMI-5407 e2e — ssh vs https git remotes (scenario 4)', () => {
|
|
148
|
-
it('normalizes both git fixtures to one owner/repo and a buildRawUrl-parseable source', async () => {
|
|
149
|
-
const { skills } = await runJson(await seededDb());
|
|
150
|
-
const git = bySkill(skills, FIXTURE_DIRS.git);
|
|
151
|
-
const https = bySkill(skills, FIXTURE_DIRS.https);
|
|
152
|
-
for (const result of [git, https]) {
|
|
153
|
-
expect(result.recoveredSource).not.toBeNull();
|
|
154
|
-
expect(result.recoveredSource?.owner).toBe(GIT_OWNER);
|
|
155
|
-
expect(result.recoveredSource?.repo).toBe(GIT_REPO);
|
|
156
|
-
expect(result.recoveredSource?.url).toBe(`https://github.com/${GIT_OWNER}/${GIT_REPO}`);
|
|
157
|
-
expect(buildRawUrl(result.recoveredSource.url)).toBe(`https://raw.githubusercontent.com/${GIT_OWNER}/${GIT_REPO}/main/SKILL.md`);
|
|
158
|
-
}
|
|
159
|
-
expect(git.recoveredSource).toEqual(https.recoveredSource);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
describe('SMI-5407 e2e — offline degradation (scenario 7)', () => {
|
|
163
|
-
it('resolves git+plugin and degrades registry/collision to unknown without throwing', async () => {
|
|
164
|
-
let report;
|
|
165
|
-
await expect((async () => {
|
|
166
|
-
report = await runJson(await emptyDb());
|
|
167
|
-
})()).resolves.toBeUndefined();
|
|
168
|
-
const skills = report.skills;
|
|
169
|
-
expect(bySkill(skills, FIXTURE_DIRS.git).status).toBe('recovered');
|
|
170
|
-
expect(bySkill(skills, FIXTURE_DIRS.https).status).toBe('recovered');
|
|
171
|
-
expect(bySkill(skills, FIXTURE_DIRS.plugin).status).toBe('recovered');
|
|
172
|
-
// With no candidate rows, the name tiers degrade — no throw, no network.
|
|
173
|
-
expect(bySkill(skills, FIXTURE_DIRS.registry).status).toBe('unknown');
|
|
174
|
-
expect(bySkill(skills, FIXTURE_DIRS.registry).confidence).toBe('unknown');
|
|
175
|
-
expect(bySkill(skills, FIXTURE_DIRS.collision).status).toBe('unknown');
|
|
176
|
-
expect(bySkill(skills, FIXTURE_DIRS.collision).candidates).toHaveLength(0);
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
//# sourceMappingURL=audit-sources-recovery.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-sources-recovery.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-recovery.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview SMI-5407 end-to-end — GATE (write half): recover -> backfill.
|
|
3
|
-
*
|
|
4
|
-
* Drives the REAL CLI apply path (`audit sources --apply --yes --min-confidence
|
|
5
|
-
* medium`) into a REAL temp manifest and asserts the load-bearing backfill keys:
|
|
6
|
-
* - a single registry-name match (medium) writes the registry UUID as `id`
|
|
7
|
-
* (the only id form `skill_outdated` can resolve a registry skill by);
|
|
8
|
-
* - a git remote (exact) writes an owner/skill-name `id` (no UUID — the git
|
|
9
|
-
* tier has none);
|
|
10
|
-
* - both write an https `source` that `buildRawUrl` accepts (View-Changes).
|
|
11
|
-
*
|
|
12
|
-
* The READ half — that real `skill_outdated` resolves the UUID id (and NOT the
|
|
13
|
-
* owner/skill-name, owner/repo, or URL decoy forms), while the git owner/skill-
|
|
14
|
-
* name id resolves to `unknown` yet keeps a working View-Changes source — lives
|
|
15
|
-
* in `packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts`.
|
|
16
|
-
* It cannot live here: importing the mcp-server `executeOutdated`/`ToolContext`
|
|
17
|
-
* source across the package boundary is structurally invalid under the CLI
|
|
18
|
-
* tsconfig rootDir (TS6059/TS6307), and those symbols are not part of the
|
|
19
|
-
* mcp-server package's public exports. The shared REG_UUID + manifest shape are
|
|
20
|
-
* the contract linking the two halves.
|
|
21
|
-
*/
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=audit-sources-roundtrip.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-sources-roundtrip.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-roundtrip.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview SMI-5407 end-to-end — GATE (write half): recover -> backfill.
|
|
3
|
-
*
|
|
4
|
-
* Drives the REAL CLI apply path (`audit sources --apply --yes --min-confidence
|
|
5
|
-
* medium`) into a REAL temp manifest and asserts the load-bearing backfill keys:
|
|
6
|
-
* - a single registry-name match (medium) writes the registry UUID as `id`
|
|
7
|
-
* (the only id form `skill_outdated` can resolve a registry skill by);
|
|
8
|
-
* - a git remote (exact) writes an owner/skill-name `id` (no UUID — the git
|
|
9
|
-
* tier has none);
|
|
10
|
-
* - both write an https `source` that `buildRawUrl` accepts (View-Changes).
|
|
11
|
-
*
|
|
12
|
-
* The READ half — that real `skill_outdated` resolves the UUID id (and NOT the
|
|
13
|
-
* owner/skill-name, owner/repo, or URL decoy forms), while the git owner/skill-
|
|
14
|
-
* name id resolves to `unknown` yet keeps a working View-Changes source — lives
|
|
15
|
-
* in `packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts`.
|
|
16
|
-
* It cannot live here: importing the mcp-server `executeOutdated`/`ToolContext`
|
|
17
|
-
* source across the package boundary is structurally invalid under the CLI
|
|
18
|
-
* tsconfig rootDir (TS6059/TS6307), and those symbols are not part of the
|
|
19
|
-
* mcp-server package's public exports. The shared REG_UUID + manifest shape are
|
|
20
|
-
* the contract linking the two halves.
|
|
21
|
-
*/
|
|
22
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
|
|
23
|
-
import * as fs from 'node:fs';
|
|
24
|
-
import * as os from 'node:os';
|
|
25
|
-
import * as path from 'node:path';
|
|
26
|
-
import { writeSourceFixture, seedSkillsDb, buildRawUrl, FIXTURE_DIRS, GIT_OWNER, GIT_REPO, } from './utils/source-recovery-fixture.js';
|
|
27
|
-
let runAuditSources;
|
|
28
|
-
let tempHome = '';
|
|
29
|
-
let skillsRoot = '';
|
|
30
|
-
let manifestPath = '';
|
|
31
|
-
let originalHome;
|
|
32
|
-
let dbCounter = 0;
|
|
33
|
-
// git tier: owner/skill-name id (no registry UUID).
|
|
34
|
-
const GIT_ID = `${GIT_OWNER}/${FIXTURE_DIRS.git}`;
|
|
35
|
-
// git tier canonical recovered source (both git fixtures share owner/repo).
|
|
36
|
-
const GIT_SOURCE = `https://github.com/${GIT_OWNER}/${GIT_REPO}`;
|
|
37
|
-
// SMI-5411: registry UUID a catalog-known git repo enriches its manifest id to.
|
|
38
|
-
const GIT_REG_UUID = 'b2c3d4e5-0000-4000-8000-000000000002';
|
|
39
|
-
// registry tier: a single-name match carrying the UUID.
|
|
40
|
-
const REG_UUID = 'a1b2c3d4-0000-4000-8000-000000000001';
|
|
41
|
-
const REG_OWNER = 'regowner';
|
|
42
|
-
const REG_REPO = 'regrepo';
|
|
43
|
-
const REG_SOURCE = `https://github.com/${REG_OWNER}/${REG_REPO}`;
|
|
44
|
-
function makeOpts(o) {
|
|
45
|
-
return {
|
|
46
|
-
skillsRoot,
|
|
47
|
-
apply: o.apply ?? false,
|
|
48
|
-
yes: o.yes ?? false,
|
|
49
|
-
set: o.set,
|
|
50
|
-
minConfidence: o.minConfidence ?? 'high',
|
|
51
|
-
json: o.json ?? false,
|
|
52
|
-
embedding: false,
|
|
53
|
-
catalogHint: false,
|
|
54
|
-
writeFrontmatter: false,
|
|
55
|
-
forceWriteFrontmatter: false,
|
|
56
|
-
db: o.db,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function entry(name) {
|
|
60
|
-
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
61
|
-
return manifest.installedSkills[name];
|
|
62
|
-
}
|
|
63
|
-
beforeAll(async () => {
|
|
64
|
-
originalHome = process.env['HOME'];
|
|
65
|
-
tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-rt-home-'));
|
|
66
|
-
process.env['HOME'] = tempHome;
|
|
67
|
-
skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-rt-skills-'));
|
|
68
|
-
manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
|
|
69
|
-
writeSourceFixture(skillsRoot);
|
|
70
|
-
({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
|
|
71
|
-
});
|
|
72
|
-
afterAll(() => {
|
|
73
|
-
if (originalHome === undefined)
|
|
74
|
-
delete process.env['HOME'];
|
|
75
|
-
else
|
|
76
|
-
process.env['HOME'] = originalHome;
|
|
77
|
-
for (const dir of [tempHome, skillsRoot]) {
|
|
78
|
-
if (dir)
|
|
79
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
beforeEach(() => {
|
|
83
|
-
fs.rmSync(manifestPath, { force: true });
|
|
84
|
-
});
|
|
85
|
-
describe('SMI-5407 e2e GATE (write) — recover -> backfill (scenario 2)', () => {
|
|
86
|
-
it('writes the registry UUID id (medium) and the git owner/skill-name id (exact)', async () => {
|
|
87
|
-
const db = path.join(tempHome, `rt-${dbCounter++}.db`);
|
|
88
|
-
await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
|
|
89
|
-
// --min-confidence medium so the single registry-name match qualifies
|
|
90
|
-
// (fixed qualifies(): the minConfidence floor IS the gate, no AUTO_QUALIFY).
|
|
91
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true, minConfidence: 'medium' }));
|
|
92
|
-
// registry: the load-bearing UUID id + https owner/repo source.
|
|
93
|
-
const registry = entry(FIXTURE_DIRS.registry);
|
|
94
|
-
expect(registry.id).toBe(REG_UUID);
|
|
95
|
-
expect(registry.source).toBe(REG_SOURCE);
|
|
96
|
-
expect(buildRawUrl(registry.source)).toBe(`https://raw.githubusercontent.com/${REG_OWNER}/${REG_REPO}/main/SKILL.md`);
|
|
97
|
-
// git: exact, owner/skill-name id, buildRawUrl-parseable source.
|
|
98
|
-
const git = entry(FIXTURE_DIRS.git);
|
|
99
|
-
expect(git.id).toBe(GIT_ID);
|
|
100
|
-
expect(git.source).toBe(`https://github.com/${GIT_OWNER}/${GIT_REPO}`);
|
|
101
|
-
expect(buildRawUrl(git.source)).not.toBeNull();
|
|
102
|
-
});
|
|
103
|
-
it('default min-confidence (high) leaves the medium registry match unwritten', async () => {
|
|
104
|
-
const db = path.join(tempHome, `rt-${dbCounter++}.db`);
|
|
105
|
-
await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
|
|
106
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
107
|
-
expect(entry(FIXTURE_DIRS.registry)).toBeUndefined();
|
|
108
|
-
expect(entry(FIXTURE_DIRS.git)).toBeDefined();
|
|
109
|
-
});
|
|
110
|
-
// SMI-5411: when the git skill's recovered repo_url IS in the local catalog,
|
|
111
|
-
// `audit sources --apply` enriches its manifest id from owner/skill-name to the
|
|
112
|
-
// registry UUID (so skill_outdated can resolve it) WITHOUT changing the exact
|
|
113
|
-
// git SOURCE (View-Changes unchanged). The READ half — that real
|
|
114
|
-
// skill_outdated resolves this UUID id and rejects decoy forms — lives in
|
|
115
|
-
// packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts.
|
|
116
|
-
it('enriches a catalog-known git skill id to the registry UUID at default confidence', async () => {
|
|
117
|
-
const db = path.join(tempHome, `rt-${dbCounter++}.db`);
|
|
118
|
-
// Seed a catalog row whose repo_url matches the git fixture's recovered
|
|
119
|
-
// source. `name` is distinct from the git fixture dir so the name-match tier
|
|
120
|
-
// is never reached — the git tier short-circuits and only the id is enriched.
|
|
121
|
-
await seedSkillsDb(db, [{ id: GIT_REG_UUID, name: GIT_REPO, repoUrl: GIT_SOURCE }]);
|
|
122
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
123
|
-
const git = entry(FIXTURE_DIRS.git);
|
|
124
|
-
expect(git.id).toBe(GIT_REG_UUID); // enriched UUID, not owner/skill-name
|
|
125
|
-
expect(git.id).not.toBe(GIT_ID); // the un-enriched decoy form must not win
|
|
126
|
-
expect(git.source).toBe(GIT_SOURCE); // exact git source unchanged
|
|
127
|
-
expect(buildRawUrl(git.source)).toBe(`https://raw.githubusercontent.com/${GIT_OWNER}/${GIT_REPO}/main/SKILL.md`);
|
|
128
|
-
});
|
|
129
|
-
it('leaves the git id as owner/skill-name when the repo is NOT catalog-known (graceful)', async () => {
|
|
130
|
-
const db = path.join(tempHome, `rt-${dbCounter++}.db`);
|
|
131
|
-
// No skills row for the git repo_url -> findRegistryIdByRepoUrl returns null.
|
|
132
|
-
await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
|
|
133
|
-
await runAuditSources(makeOpts({ db, apply: true, yes: true }));
|
|
134
|
-
const git = entry(FIXTURE_DIRS.git);
|
|
135
|
-
expect(git.id).toBe(GIT_ID); // unchanged fallback
|
|
136
|
-
expect(git.source).toBe(GIT_SOURCE);
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
//# sourceMappingURL=audit-sources-roundtrip.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-sources-roundtrip.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-roundtrip.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAC9E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAA;AAI3C,IAAI,eAA0D,CAAA;AAC9D,IAAI,QAAQ,GAAG,EAAE,CAAA;AACjB,IAAI,UAAU,GAAG,EAAE,CAAA;AACnB,IAAI,YAAY,GAAG,EAAE,CAAA;AACrB,IAAI,YAAgC,CAAA;AACpC,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,oDAAoD;AACpD,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,YAAY,CAAC,GAAG,EAAE,CAAA;AACjD,4EAA4E;AAC5E,MAAM,UAAU,GAAG,sBAAsB,SAAS,IAAI,QAAQ,EAAE,CAAA;AAChE,gFAAgF;AAChF,MAAM,YAAY,GAAG,sCAAsC,CAAA;AAC3D,wDAAwD;AACxD,MAAM,QAAQ,GAAG,sCAAsC,CAAA;AACvD,MAAM,SAAS,GAAG,UAAU,CAAA;AAC5B,MAAM,QAAQ,GAAG,SAAS,CAAA;AAC1B,MAAM,UAAU,GAAG,sBAAsB,SAAS,IAAI,QAAQ,EAAE,CAAA;AAEhE,SAAS,QAAQ,CAAC,CAAgD;IAChE,OAAO;QACL,UAAU;QACV,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK;QACvB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK;QACnB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM;QACxC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK;QACrB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,KAAK;QACvB,qBAAqB,EAAE,KAAK;QAC5B,EAAE,EAAE,CAAC,CAAC,EAAE;KACT,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAkB,CAAA;IACpF,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACrE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAA;IAC9B,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACzE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAA;IAClE,kBAAkB,CAAC,UAAU,CAAC,CAC7B;IAAA,CAAC,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAA;AACrF,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,GAAG,EAAE;IACZ,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;;QACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,UAAU,CAAC,GAAG,EAAE;IACd,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,8DAA8D,EAAE,GAAG,EAAE;IAC5E,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,SAAS,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAE5F,sEAAsE;QACtE,6EAA6E;QAC7E,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAExF,gEAAgE;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAE,CAAA;QAC9C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACvC,qCAAqC,SAAS,IAAI,QAAQ,gBAAgB,CAC3E,CAAA;QAED,iEAAiE;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sBAAsB,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAA;QACtE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,SAAS,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAE5F,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAE/D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACpD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,6EAA6E;IAC7E,gFAAgF;IAChF,8EAA8E;IAC9E,iEAAiE;IACjE,0EAA0E;IAC1E,uEAAuE;IACvE,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,SAAS,EAAE,KAAK,CAAC,CAAA;QACtD,wEAAwE;QACxE,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAEnF,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAE/D,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,sCAAsC;QACxE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,0CAA0C;QAC1E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAC,6BAA6B;QACjE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAClC,qCAAqC,SAAS,IAAI,QAAQ,gBAAgB,CAC3E,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,SAAS,EAAE,KAAK,CAAC,CAAA;QACtD,8EAA8E;QAC9E,MAAM,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QAE5F,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAE/D,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,qBAAqB;QACjD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"author.e2e.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/author.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|