@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,223 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linear Issue Reporter for E2E Test Failures
|
|
3
|
-
*
|
|
4
|
-
* Automatically creates Linear issues when E2E tests detect problems.
|
|
5
|
-
* Issues include detailed evidence for specialist agents to resolve.
|
|
6
|
-
*
|
|
7
|
-
* @see docs/testing/e2e-testing-plan.md
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Format hardcoded issue for Linear description
|
|
11
|
-
*/
|
|
12
|
-
function formatHardcodedEvidence(issues) {
|
|
13
|
-
if (issues.length === 0)
|
|
14
|
-
return '';
|
|
15
|
-
const lines = [
|
|
16
|
-
'## Hardcoded Values Detected',
|
|
17
|
-
'',
|
|
18
|
-
'| Type | Pattern | Value | Source |',
|
|
19
|
-
'|------|---------|-------|--------|',
|
|
20
|
-
];
|
|
21
|
-
for (const issue of issues) {
|
|
22
|
-
lines.push(`| ${issue.type} | ${issue.pattern} | \`${issue.value}\` | ${issue.location.source} |`);
|
|
23
|
-
}
|
|
24
|
-
lines.push('');
|
|
25
|
-
return lines.join('\n');
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Create Linear issue description from test failure
|
|
29
|
-
*/
|
|
30
|
-
export function createIssueDescription(failure) {
|
|
31
|
-
const sections = [];
|
|
32
|
-
// Problem definition
|
|
33
|
-
sections.push('## Problem Definition');
|
|
34
|
-
sections.push('');
|
|
35
|
-
sections.push(`E2E test **${failure.testName}** failed during automated testing.`);
|
|
36
|
-
sections.push('');
|
|
37
|
-
sections.push(`**Test File**: \`${failure.testFile}\``);
|
|
38
|
-
sections.push(`**Command**: \`${failure.command}\``);
|
|
39
|
-
sections.push(`**Timestamp**: ${failure.timestamp}`);
|
|
40
|
-
if (failure.duration) {
|
|
41
|
-
sections.push(`**Duration**: ${failure.duration}ms`);
|
|
42
|
-
}
|
|
43
|
-
sections.push('');
|
|
44
|
-
// Error details
|
|
45
|
-
sections.push('## Error Details');
|
|
46
|
-
sections.push('');
|
|
47
|
-
sections.push('```');
|
|
48
|
-
sections.push(failure.error);
|
|
49
|
-
sections.push('```');
|
|
50
|
-
sections.push('');
|
|
51
|
-
// Hardcoded issues if present
|
|
52
|
-
if (failure.hardcodedIssues && failure.hardcodedIssues.length > 0) {
|
|
53
|
-
sections.push(formatHardcodedEvidence(failure.hardcodedIssues));
|
|
54
|
-
}
|
|
55
|
-
// Output evidence (truncated)
|
|
56
|
-
if (failure.stdout || failure.stderr) {
|
|
57
|
-
sections.push('## Command Output');
|
|
58
|
-
sections.push('');
|
|
59
|
-
if (failure.stdout) {
|
|
60
|
-
const truncatedStdout = failure.stdout.length > 1000
|
|
61
|
-
? failure.stdout.substring(0, 1000) + '\n... (truncated)'
|
|
62
|
-
: failure.stdout;
|
|
63
|
-
sections.push('<details>');
|
|
64
|
-
sections.push('<summary>stdout</summary>');
|
|
65
|
-
sections.push('');
|
|
66
|
-
sections.push('```');
|
|
67
|
-
sections.push(truncatedStdout);
|
|
68
|
-
sections.push('```');
|
|
69
|
-
sections.push('</details>');
|
|
70
|
-
sections.push('');
|
|
71
|
-
}
|
|
72
|
-
if (failure.stderr) {
|
|
73
|
-
const truncatedStderr = failure.stderr.length > 1000
|
|
74
|
-
? failure.stderr.substring(0, 1000) + '\n... (truncated)'
|
|
75
|
-
: failure.stderr;
|
|
76
|
-
sections.push('<details>');
|
|
77
|
-
sections.push('<summary>stderr</summary>');
|
|
78
|
-
sections.push('');
|
|
79
|
-
sections.push('```');
|
|
80
|
-
sections.push(truncatedStderr);
|
|
81
|
-
sections.push('```');
|
|
82
|
-
sections.push('</details>');
|
|
83
|
-
sections.push('');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Recommended actions
|
|
87
|
-
sections.push('## Recommended Actions');
|
|
88
|
-
sections.push('');
|
|
89
|
-
if (failure.hardcodedIssues && failure.hardcodedIssues.length > 0) {
|
|
90
|
-
sections.push('1. Review hardcoded values detected above');
|
|
91
|
-
sections.push('2. Replace with environment variables or user-configurable options');
|
|
92
|
-
sections.push('3. Use platform-agnostic path resolution (os.homedir(), path.join())');
|
|
93
|
-
sections.push('4. Re-run E2E tests in Codespace to verify fix');
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
sections.push('1. Review error message and stack trace');
|
|
97
|
-
sections.push('2. Check test assumptions about environment');
|
|
98
|
-
sections.push('3. Verify command works in clean Codespace environment');
|
|
99
|
-
sections.push('4. Re-run E2E tests to verify fix');
|
|
100
|
-
}
|
|
101
|
-
sections.push('');
|
|
102
|
-
// Environment info
|
|
103
|
-
sections.push('## Test Environment');
|
|
104
|
-
sections.push('');
|
|
105
|
-
sections.push('- **Type**: GitHub Codespaces');
|
|
106
|
-
sections.push('- **Node Version**: 20.x');
|
|
107
|
-
sections.push('- **Test Repository**: 021-school-platform');
|
|
108
|
-
sections.push('');
|
|
109
|
-
return sections.join('\n');
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Create Linear issue title from test failure
|
|
113
|
-
*/
|
|
114
|
-
export function createIssueTitle(failure) {
|
|
115
|
-
if (failure.hardcodedIssues && failure.hardcodedIssues.length > 0) {
|
|
116
|
-
const types = [...new Set(failure.hardcodedIssues.map((i) => i.type))];
|
|
117
|
-
return `[E2E] Hardcoded ${types.join(', ')} in ${failure.command}`;
|
|
118
|
-
}
|
|
119
|
-
return `[E2E] ${failure.testName} failed`;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create Linear issue via API
|
|
123
|
-
*/
|
|
124
|
-
export async function createLinearIssue(failure) {
|
|
125
|
-
const apiKey = process.env['LINEAR_API_KEY'];
|
|
126
|
-
if (!apiKey) {
|
|
127
|
-
console.warn('LINEAR_API_KEY not set, skipping issue creation');
|
|
128
|
-
return {
|
|
129
|
-
success: false,
|
|
130
|
-
error: 'LINEAR_API_KEY environment variable not set',
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
const title = createIssueTitle(failure);
|
|
134
|
-
const description = createIssueDescription(failure);
|
|
135
|
-
// GraphQL mutation for creating issue
|
|
136
|
-
const mutation = `
|
|
137
|
-
mutation CreateIssue($input: IssueCreateInput!) {
|
|
138
|
-
issueCreate(input: $input) {
|
|
139
|
-
success
|
|
140
|
-
issue {
|
|
141
|
-
id
|
|
142
|
-
identifier
|
|
143
|
-
url
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
`;
|
|
148
|
-
const variables = {
|
|
149
|
-
input: {
|
|
150
|
-
title,
|
|
151
|
-
description,
|
|
152
|
-
// Labels: bug, e2e, hardcoded (if applicable)
|
|
153
|
-
labelIds: failure.hardcodedIssues?.length ? ['bug', 'e2e', 'hardcoded'] : ['bug', 'e2e'],
|
|
154
|
-
priority: failure.hardcodedIssues?.some((i) => i.severity === 'error') ? 1 : 2,
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
try {
|
|
158
|
-
const response = await fetch('https://api.linear.app/graphql', {
|
|
159
|
-
method: 'POST',
|
|
160
|
-
headers: {
|
|
161
|
-
'Content-Type': 'application/json',
|
|
162
|
-
Authorization: apiKey,
|
|
163
|
-
},
|
|
164
|
-
body: JSON.stringify({ query: mutation, variables }),
|
|
165
|
-
});
|
|
166
|
-
if (!response.ok) {
|
|
167
|
-
throw new Error(`Linear API error: ${response.status} ${response.statusText}`);
|
|
168
|
-
}
|
|
169
|
-
const result = (await response.json());
|
|
170
|
-
if (result.errors) {
|
|
171
|
-
throw new Error(`GraphQL errors: ${JSON.stringify(result.errors)}`);
|
|
172
|
-
}
|
|
173
|
-
const issueData = result.data?.issueCreate;
|
|
174
|
-
if (issueData?.success) {
|
|
175
|
-
return {
|
|
176
|
-
success: true,
|
|
177
|
-
issueId: issueData.issue.identifier,
|
|
178
|
-
issueUrl: issueData.issue.url,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
return {
|
|
182
|
-
success: false,
|
|
183
|
-
error: 'Issue creation returned unsuccessful',
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
return {
|
|
188
|
-
success: false,
|
|
189
|
-
error: error instanceof Error ? error.message : String(error),
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Queue issue for batch creation (used when rate-limited)
|
|
195
|
-
*/
|
|
196
|
-
const issueQueue = [];
|
|
197
|
-
export function queueIssue(failure) {
|
|
198
|
-
issueQueue.push(failure);
|
|
199
|
-
}
|
|
200
|
-
export function getQueuedIssues() {
|
|
201
|
-
return [...issueQueue];
|
|
202
|
-
}
|
|
203
|
-
export async function flushIssueQueue() {
|
|
204
|
-
const results = [];
|
|
205
|
-
for (const failure of issueQueue) {
|
|
206
|
-
const result = await createLinearIssue(failure);
|
|
207
|
-
results.push(result);
|
|
208
|
-
// Rate limit: wait 500ms between requests
|
|
209
|
-
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
210
|
-
}
|
|
211
|
-
// Clear queue
|
|
212
|
-
issueQueue.length = 0;
|
|
213
|
-
return results;
|
|
214
|
-
}
|
|
215
|
-
export default {
|
|
216
|
-
createIssueDescription,
|
|
217
|
-
createIssueTitle,
|
|
218
|
-
createLinearIssue,
|
|
219
|
-
queueIssue,
|
|
220
|
-
getQueuedIssues,
|
|
221
|
-
flushIssueQueue,
|
|
222
|
-
};
|
|
223
|
-
//# sourceMappingURL=linear-reporter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linear-reporter.js","sourceRoot":"","sources":["../../../../tests/e2e/utils/linear-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-1474: GitHub API mock utilities for E2E tests
|
|
3
|
-
*
|
|
4
|
-
* Provides mock responses for GitHub API calls without real API access.
|
|
5
|
-
*/
|
|
6
|
-
export interface MockGitHubSkill {
|
|
7
|
-
name: string;
|
|
8
|
-
full_name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
html_url: string;
|
|
11
|
-
topics: string[];
|
|
12
|
-
stargazers_count: number;
|
|
13
|
-
}
|
|
14
|
-
export declare const MOCK_SKILLS: MockGitHubSkill[];
|
|
15
|
-
/**
|
|
16
|
-
* Setup mock GitHub API responses
|
|
17
|
-
*/
|
|
18
|
-
export declare function setupMockGitHub(customSkills?: MockGitHubSkill[]): void;
|
|
19
|
-
/**
|
|
20
|
-
* Clear GitHub API mocks
|
|
21
|
-
*/
|
|
22
|
-
export declare function clearMockGitHub(): void;
|
|
23
|
-
//# sourceMappingURL=mock-github.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-github.d.ts","sourceRoot":"","sources":["../../../../tests/e2e/utils/mock-github.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,WAAW,EAAE,eAAe,EAiBxC,CAAA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,eAAe,EAAE,QA0B/D;AAED;;GAEG;AACH,wBAAgB,eAAe,SAE9B"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-1474: GitHub API mock utilities for E2E tests
|
|
3
|
-
*
|
|
4
|
-
* Provides mock responses for GitHub API calls without real API access.
|
|
5
|
-
*/
|
|
6
|
-
import { vi } from 'vitest';
|
|
7
|
-
export const MOCK_SKILLS = [
|
|
8
|
-
{
|
|
9
|
-
name: 'commit-skill',
|
|
10
|
-
full_name: 'anthropics/commit-skill',
|
|
11
|
-
description: 'A skill for git commits',
|
|
12
|
-
html_url: 'https://github.com/anthropics/commit-skill',
|
|
13
|
-
topics: ['claude-skill', 'git', 'commit'],
|
|
14
|
-
stargazers_count: 100,
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: 'test-helper',
|
|
18
|
-
full_name: 'community/test-helper',
|
|
19
|
-
description: 'Testing utilities skill',
|
|
20
|
-
html_url: 'https://github.com/community/test-helper',
|
|
21
|
-
topics: ['claude-skill', 'testing'],
|
|
22
|
-
stargazers_count: 50,
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
/**
|
|
26
|
-
* Setup mock GitHub API responses
|
|
27
|
-
*/
|
|
28
|
-
export function setupMockGitHub(customSkills) {
|
|
29
|
-
const skills = customSkills || MOCK_SKILLS;
|
|
30
|
-
// Mock global fetch for GitHub API calls
|
|
31
|
-
const originalFetch = global.fetch;
|
|
32
|
-
global.fetch = vi.fn().mockImplementation(async (url) => {
|
|
33
|
-
if (url.includes('api.github.com/search/repositories')) {
|
|
34
|
-
return {
|
|
35
|
-
ok: true,
|
|
36
|
-
json: async () => ({
|
|
37
|
-
total_count: skills.length,
|
|
38
|
-
items: skills,
|
|
39
|
-
}),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
if (url.includes('api.github.com/repos/')) {
|
|
43
|
-
const repoName = url.split('/repos/')[1]?.split('/')[1];
|
|
44
|
-
const skill = skills.find((s) => s.name === repoName);
|
|
45
|
-
return {
|
|
46
|
-
ok: !!skill,
|
|
47
|
-
json: async () => skill || { message: 'Not Found' },
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// Fall back to original fetch for non-GitHub URLs
|
|
51
|
-
return originalFetch(url);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Clear GitHub API mocks
|
|
56
|
-
*/
|
|
57
|
-
export function clearMockGitHub() {
|
|
58
|
-
vi.restoreAllMocks();
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=mock-github.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-github.js","sourceRoot":"","sources":["../../../../tests/e2e/utils/mock-github.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAW3B,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,yBAAyB;QACpC,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,4CAA4C;QACtD,MAAM,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC;QACzC,gBAAgB,EAAE,GAAG;KACtB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,0CAA0C;QACpD,MAAM,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;QACnC,gBAAgB,EAAE,EAAE;KACrB;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,MAAM,MAAM,GAAG,YAAY,IAAI,WAAW,CAAA;IAE1C,yCAAyC;IACzC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAA;IAClC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC9D,IAAI,GAAG,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE,CAAC;YACvD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,WAAW,EAAE,MAAM,CAAC,MAAM;oBAC1B,KAAK,EAAE,MAAM;iBACd,CAAC;aACH,CAAA;QACH,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACrD,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,KAAK;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE;aACpD,CAAA;QACH,CAAC;QACD,kDAAkD;QAClD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,EAAE,CAAC,eAAe,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-1473: Mock prompt utilities for E2E tests
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities to mock @inquirer/prompts for non-interactive testing.
|
|
5
|
-
*/
|
|
6
|
-
export interface MockPromptResponses {
|
|
7
|
-
input?: Record<string, string>;
|
|
8
|
-
confirm?: Record<string, boolean>;
|
|
9
|
-
select?: Record<string, string>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Setup mock responses for inquirer prompts
|
|
13
|
-
*/
|
|
14
|
-
export declare function setupMockPrompts(responses: MockPromptResponses): void;
|
|
15
|
-
/**
|
|
16
|
-
* Clear all mock prompts
|
|
17
|
-
*/
|
|
18
|
-
export declare function clearMockPrompts(): void;
|
|
19
|
-
//# sourceMappingURL=mock-prompts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-prompts.d.ts","sourceRoot":"","sources":["../../../../tests/e2e/utils/mock-prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,QA+B9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,SAE/B"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-1473: Mock prompt utilities for E2E tests
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities to mock @inquirer/prompts for non-interactive testing.
|
|
5
|
-
*/
|
|
6
|
-
import { vi } from 'vitest';
|
|
7
|
-
/**
|
|
8
|
-
* Setup mock responses for inquirer prompts
|
|
9
|
-
*/
|
|
10
|
-
export function setupMockPrompts(responses) {
|
|
11
|
-
// Mock the @inquirer/prompts module
|
|
12
|
-
vi.mock('@inquirer/prompts', () => ({
|
|
13
|
-
input: vi.fn().mockImplementation(async (opts) => {
|
|
14
|
-
const key = opts.message.toLowerCase();
|
|
15
|
-
for (const [pattern, value] of Object.entries(responses.input || {})) {
|
|
16
|
-
if (key.includes(pattern.toLowerCase())) {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return 'test-value';
|
|
21
|
-
}),
|
|
22
|
-
confirm: vi.fn().mockImplementation(async (opts) => {
|
|
23
|
-
const key = opts.message.toLowerCase();
|
|
24
|
-
for (const [pattern, value] of Object.entries(responses.confirm || {})) {
|
|
25
|
-
if (key.includes(pattern.toLowerCase())) {
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}),
|
|
31
|
-
select: vi.fn().mockImplementation(async (opts) => {
|
|
32
|
-
const key = opts.message.toLowerCase();
|
|
33
|
-
for (const [pattern, value] of Object.entries(responses.select || {})) {
|
|
34
|
-
if (key.includes(pattern.toLowerCase())) {
|
|
35
|
-
return value;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return 'development';
|
|
39
|
-
}),
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Clear all mock prompts
|
|
44
|
-
*/
|
|
45
|
-
export function clearMockPrompts() {
|
|
46
|
-
vi.clearAllMocks();
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=mock-prompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-prompts.js","sourceRoot":"","sources":["../../../../tests/e2e/utils/mock-prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAQ3B;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA8B;IAC7D,oCAAoC;IACpC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,YAAY,CAAA;QACrB,CAAC,CAAC;QACF,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBACvE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;QACF,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtE,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,aAAa,CAAA;QACtB,CAAC,CAAC;KACH,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,EAAE,CAAC,aAAa,EAAE,CAAA;AACpB,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Shared real-filesystem fixture for the SMI-5407 source-recovery
|
|
3
|
-
* end-to-end / integration suite.
|
|
4
|
-
* @see SMI-5407
|
|
5
|
-
*
|
|
6
|
-
* NOT a `*.test.ts` file, so vitest never executes it as a test. It only
|
|
7
|
-
* touches `fs` / `path` and the `@skillsmith/core` DB factory; it computes no
|
|
8
|
-
* homedir-derived state, so it is safe to import statically (the homedir-frozen
|
|
9
|
-
* manifest modules are imported dynamically by the test files themselves).
|
|
10
|
-
*/
|
|
11
|
-
/** A minimal but parser-valid SKILL.md body. `extra` lands inside frontmatter. */
|
|
12
|
-
export declare function skillMd(name: string, extra?: string): string;
|
|
13
|
-
/** Directory basenames produced by {@link writeSourceFixture}. */
|
|
14
|
-
export declare const FIXTURE_DIRS: {
|
|
15
|
-
readonly git: "git-skill";
|
|
16
|
-
readonly https: "https-skill";
|
|
17
|
-
readonly plugin: "plugin-skill";
|
|
18
|
-
readonly registry: "registry-skill";
|
|
19
|
-
readonly collision: "collision-skill";
|
|
20
|
-
readonly backup: "something.backup-20260101-120000";
|
|
21
|
-
readonly unknown: "unknown-skill";
|
|
22
|
-
};
|
|
23
|
-
/** Canonical GitHub owner/repo carried by both git fixtures (ssh + https). */
|
|
24
|
-
export declare const GIT_OWNER = "wrsmith108";
|
|
25
|
-
export declare const GIT_REPO = "linear-claude-skill";
|
|
26
|
-
/**
|
|
27
|
-
* Materialize the canonical fixture tree under `root`. Returns the absolute
|
|
28
|
-
* directory paths keyed by {@link FIXTURE_DIRS} key.
|
|
29
|
-
*/
|
|
30
|
-
export declare function writeSourceFixture(root: string): Record<keyof typeof FIXTURE_DIRS, string>;
|
|
31
|
-
/** A skills-row seed spec for the CLI candidate-lookup database. */
|
|
32
|
-
export interface SkillSeedRow {
|
|
33
|
-
id: string;
|
|
34
|
-
name: string;
|
|
35
|
-
repoUrl: string;
|
|
36
|
-
qualityScore?: number;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Create a file-backed skills DB at `dbPath` and insert `rows` into `skills`.
|
|
40
|
-
* Opened and closed synchronously so the CLI can re-open the same file.
|
|
41
|
-
*/
|
|
42
|
-
export declare function seedSkillsDb(dbPath: string, rows: SkillSeedRow[]): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Replica of `diff.ts:buildRawUrl` (SMI-5406) — used to assert a backfilled
|
|
45
|
-
* `source` is in the exact form View-Changes accepts. Kept byte-identical to
|
|
46
|
-
* the production regex so the assertion stays load-bearing.
|
|
47
|
-
*/
|
|
48
|
-
export declare function buildRawUrl(source: string): string | null;
|
|
49
|
-
//# sourceMappingURL=source-recovery-fixture.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-recovery-fixture.d.ts","sourceRoot":"","sources":["../../../../tests/e2e/utils/source-recovery-fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,kFAAkF;AAClF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5D;AAiBD,kEAAkE;AAClE,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAA;AAEV,8EAA8E;AAC9E,eAAO,MAAM,SAAS,eAAe,CAAA;AACrC,eAAO,MAAM,QAAQ,wBAAwB,CAAA;AAE7C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,OAAO,YAAY,EAAE,MAAM,CAAC,CA8B1F;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Shared real-filesystem fixture for the SMI-5407 source-recovery
|
|
3
|
-
* end-to-end / integration suite.
|
|
4
|
-
* @see SMI-5407
|
|
5
|
-
*
|
|
6
|
-
* NOT a `*.test.ts` file, so vitest never executes it as a test. It only
|
|
7
|
-
* touches `fs` / `path` and the `@skillsmith/core` DB factory; it computes no
|
|
8
|
-
* homedir-derived state, so it is safe to import statically (the homedir-frozen
|
|
9
|
-
* manifest modules are imported dynamically by the test files themselves).
|
|
10
|
-
*/
|
|
11
|
-
import * as fs from 'node:fs';
|
|
12
|
-
import * as path from 'node:path';
|
|
13
|
-
import { createDatabaseAsync, initializeSchema } from '@skillsmith/core';
|
|
14
|
-
/** A minimal but parser-valid SKILL.md body. `extra` lands inside frontmatter. */
|
|
15
|
-
export function skillMd(name, extra) {
|
|
16
|
-
const extraLine = extra ? `\n${extra}` : '';
|
|
17
|
-
return (`---\n` +
|
|
18
|
-
`name: ${name}\n` +
|
|
19
|
-
`description: ${name} fixture for source recovery\n` +
|
|
20
|
-
`author: fixtureowner${extraLine}\n` +
|
|
21
|
-
`---\n\n` +
|
|
22
|
-
`# ${name}\n\n` +
|
|
23
|
-
`Body content for ${name}.\n`);
|
|
24
|
-
}
|
|
25
|
-
function writeSkillDir(root, name, body) {
|
|
26
|
-
const dir = path.join(root, name);
|
|
27
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
28
|
-
fs.writeFileSync(path.join(dir, 'SKILL.md'), body);
|
|
29
|
-
return dir;
|
|
30
|
-
}
|
|
31
|
-
function writeGitConfig(dir, originUrl) {
|
|
32
|
-
const config = `[core]\n\trepositoryformatversion = 0\n` +
|
|
33
|
-
`[remote "origin"]\n\turl = ${originUrl}\n\tfetch = +refs/heads/*:refs/remotes/origin/*\n`;
|
|
34
|
-
fs.mkdirSync(path.join(dir, '.git'), { recursive: true });
|
|
35
|
-
fs.writeFileSync(path.join(dir, '.git', 'config'), config);
|
|
36
|
-
}
|
|
37
|
-
/** Directory basenames produced by {@link writeSourceFixture}. */
|
|
38
|
-
export const FIXTURE_DIRS = {
|
|
39
|
-
git: 'git-skill',
|
|
40
|
-
https: 'https-skill',
|
|
41
|
-
plugin: 'plugin-skill',
|
|
42
|
-
registry: 'registry-skill',
|
|
43
|
-
collision: 'collision-skill',
|
|
44
|
-
backup: 'something.backup-20260101-120000',
|
|
45
|
-
unknown: 'unknown-skill',
|
|
46
|
-
};
|
|
47
|
-
/** Canonical GitHub owner/repo carried by both git fixtures (ssh + https). */
|
|
48
|
-
export const GIT_OWNER = 'wrsmith108';
|
|
49
|
-
export const GIT_REPO = 'linear-claude-skill';
|
|
50
|
-
/**
|
|
51
|
-
* Materialize the canonical fixture tree under `root`. Returns the absolute
|
|
52
|
-
* directory paths keyed by {@link FIXTURE_DIRS} key.
|
|
53
|
-
*/
|
|
54
|
-
export function writeSourceFixture(root) {
|
|
55
|
-
fs.mkdirSync(root, { recursive: true });
|
|
56
|
-
// (a) git remote — scp/ssh form.
|
|
57
|
-
const git = writeSkillDir(root, FIXTURE_DIRS.git, skillMd(FIXTURE_DIRS.git));
|
|
58
|
-
writeGitConfig(git, `git@github.com:${GIT_OWNER}/${GIT_REPO}.git`);
|
|
59
|
-
// git remote — https form (same owner/repo as the ssh fixture).
|
|
60
|
-
const https = writeSkillDir(root, FIXTURE_DIRS.https, skillMd(FIXTURE_DIRS.https));
|
|
61
|
-
writeGitConfig(https, `https://github.com/${GIT_OWNER}/${GIT_REPO}.git`);
|
|
62
|
-
// (b) plugin manifest.
|
|
63
|
-
const plugin = writeSkillDir(root, FIXTURE_DIRS.plugin, skillMd(FIXTURE_DIRS.plugin));
|
|
64
|
-
fs.mkdirSync(path.join(plugin, '.claude-plugin'), { recursive: true });
|
|
65
|
-
fs.writeFileSync(path.join(plugin, '.claude-plugin', 'plugin.json'), JSON.stringify({ repository: 'https://github.com/o/r' }, null, 2));
|
|
66
|
-
// (c) registry single-name match; (d) collision two-name match.
|
|
67
|
-
const registry = writeSkillDir(root, FIXTURE_DIRS.registry, skillMd(FIXTURE_DIRS.registry));
|
|
68
|
-
const collision = writeSkillDir(root, FIXTURE_DIRS.collision, skillMd(FIXTURE_DIRS.collision));
|
|
69
|
-
// (e) backup snapshot dir — listed, never scanned.
|
|
70
|
-
const backup = writeSkillDir(root, FIXTURE_DIRS.backup, skillMd('something'));
|
|
71
|
-
// (f) no .git, no plugin, no registry row.
|
|
72
|
-
const unknown = writeSkillDir(root, FIXTURE_DIRS.unknown, skillMd(FIXTURE_DIRS.unknown));
|
|
73
|
-
return { git, https, plugin, registry, collision, backup, unknown };
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Create a file-backed skills DB at `dbPath` and insert `rows` into `skills`.
|
|
77
|
-
* Opened and closed synchronously so the CLI can re-open the same file.
|
|
78
|
-
*/
|
|
79
|
-
export async function seedSkillsDb(dbPath, rows) {
|
|
80
|
-
const db = await createDatabaseAsync(dbPath);
|
|
81
|
-
try {
|
|
82
|
-
initializeSchema(db);
|
|
83
|
-
const insert = db.prepare('INSERT INTO skills (id, name, repo_url, quality_score) VALUES (?, ?, ?, ?)');
|
|
84
|
-
for (const row of rows) {
|
|
85
|
-
insert.run(row.id, row.name, row.repoUrl, row.qualityScore ?? 0.5);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
finally {
|
|
89
|
-
db.close();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Replica of `diff.ts:buildRawUrl` (SMI-5406) — used to assert a backfilled
|
|
94
|
-
* `source` is in the exact form View-Changes accepts. Kept byte-identical to
|
|
95
|
-
* the production regex so the assertion stays load-bearing.
|
|
96
|
-
*/
|
|
97
|
-
export function buildRawUrl(source) {
|
|
98
|
-
if (source.startsWith('https://raw.githubusercontent.com/'))
|
|
99
|
-
return source;
|
|
100
|
-
const m = /^https:\/\/github\.com\/([^/]+)\/([^/]+)(?:\/tree\/([^/]+))?/.exec(source);
|
|
101
|
-
if (!m)
|
|
102
|
-
return null;
|
|
103
|
-
const [, owner, repo, ref = 'main'] = m;
|
|
104
|
-
return `https://raw.githubusercontent.com/${owner}/${repo}/${ref}/SKILL.md`;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=source-recovery-fixture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-recovery-fixture.js","sourceRoot":"","sources":["../../../../tests/e2e/utils/source-recovery-fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-5039: Stdout-pollution test for `@skillsmith/cli` — pins the same
|
|
3
|
-
* "probe never writes to stdout" invariant exercised by the mcp-server and
|
|
4
|
-
* doc-retrieval-mcp packages.
|
|
5
|
-
*
|
|
6
|
-
* CLI's `search` command emits structured table output to stdout for
|
|
7
|
-
* downstream piping. A regression that lets the embedding probe leak to
|
|
8
|
-
* stdout would garble that pipe — we catch it here before it lands in CI.
|
|
9
|
-
*/
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=embedding-probe-stdio.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-probe-stdio.test.d.ts","sourceRoot":"","sources":["../../tests/embedding-probe-stdio.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SMI-5039: Stdout-pollution test for `@skillsmith/cli` — pins the same
|
|
3
|
-
* "probe never writes to stdout" invariant exercised by the mcp-server and
|
|
4
|
-
* doc-retrieval-mcp packages.
|
|
5
|
-
*
|
|
6
|
-
* CLI's `search` command emits structured table output to stdout for
|
|
7
|
-
* downstream piping. A regression that lets the embedding probe leak to
|
|
8
|
-
* stdout would garble that pipe — we catch it here before it lands in CI.
|
|
9
|
-
*/
|
|
10
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
11
|
-
import { EmbeddingService } from '@skillsmith/core/embeddings';
|
|
12
|
-
import { probeEmbeddingCapability } from '@skillsmith/core/embeddings/probe';
|
|
13
|
-
describe('SMI-5039 cli embedding probe — stdout-clean invariant', () => {
|
|
14
|
-
let stdoutWrite;
|
|
15
|
-
let checkSpy;
|
|
16
|
-
let getErrSpy;
|
|
17
|
-
beforeEach(() => {
|
|
18
|
-
stdoutWrite = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
19
|
-
checkSpy = vi.spyOn(EmbeddingService, 'checkAvailability');
|
|
20
|
-
getErrSpy = vi.spyOn(EmbeddingService, 'getTransformersLoadError');
|
|
21
|
-
delete process.env['SKILLSMITH_QUIET'];
|
|
22
|
-
});
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
vi.restoreAllMocks();
|
|
25
|
-
delete process.env['SKILLSMITH_QUIET'];
|
|
26
|
-
});
|
|
27
|
-
it('never writes to stdout on mock fallback (CLI pipe-safety invariant)', async () => {
|
|
28
|
-
checkSpy.mockResolvedValue(false);
|
|
29
|
-
getErrSpy.mockReturnValue(new Error('transformers absent'));
|
|
30
|
-
const stderrChunks = [];
|
|
31
|
-
await probeEmbeddingCapability({ logger: (m) => stderrChunks.push(m) });
|
|
32
|
-
expect(stderrChunks).toHaveLength(1);
|
|
33
|
-
expect(stderrChunks[0]).toContain('[skillsmith] embeddings: mock');
|
|
34
|
-
expect(stdoutWrite).not.toHaveBeenCalled();
|
|
35
|
-
});
|
|
36
|
-
it('SKILLSMITH_QUIET=true suppresses the warning AND keeps stdout clean', async () => {
|
|
37
|
-
process.env['SKILLSMITH_QUIET'] = 'true';
|
|
38
|
-
checkSpy.mockResolvedValue(false);
|
|
39
|
-
getErrSpy.mockReturnValue(new Error('transformers absent'));
|
|
40
|
-
const stderrChunks = [];
|
|
41
|
-
await probeEmbeddingCapability({ logger: (m) => stderrChunks.push(m) });
|
|
42
|
-
expect(stderrChunks).toEqual([]);
|
|
43
|
-
expect(stdoutWrite).not.toHaveBeenCalled();
|
|
44
|
-
});
|
|
45
|
-
it('default logger (console.error) does not touch stdout', async () => {
|
|
46
|
-
checkSpy.mockResolvedValue(false);
|
|
47
|
-
getErrSpy.mockReturnValue(new Error('default-logger path'));
|
|
48
|
-
await probeEmbeddingCapability();
|
|
49
|
-
expect(stdoutWrite).not.toHaveBeenCalled();
|
|
50
|
-
});
|
|
51
|
-
it('never throws — probe failure must not abort the CLI command', async () => {
|
|
52
|
-
checkSpy.mockRejectedValue(new Error('catastrophic'));
|
|
53
|
-
getErrSpy.mockReturnValue(null);
|
|
54
|
-
await expect(probeEmbeddingCapability()).resolves.toBeUndefined();
|
|
55
|
-
expect(stdoutWrite).not.toHaveBeenCalled();
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=embedding-probe-stdio.test.js.map
|