@skillsmith/cli 0.3.1 → 0.3.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.
Files changed (103) hide show
  1. package/README.md +57 -0
  2. package/assets/skillsmith-skill/SKILL.md +235 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/commands/index.d.ts +2 -0
  5. package/dist/src/commands/index.d.ts.map +1 -1
  6. package/dist/src/commands/index.js +4 -0
  7. package/dist/src/commands/index.js.map +1 -1
  8. package/dist/src/commands/install-skill.d.ts +13 -0
  9. package/dist/src/commands/install-skill.d.ts.map +1 -0
  10. package/dist/src/commands/install-skill.js +137 -0
  11. package/dist/src/commands/install-skill.js.map +1 -0
  12. package/dist/src/commands/manage.d.ts +4 -1
  13. package/dist/src/commands/manage.d.ts.map +1 -1
  14. package/dist/src/commands/manage.js +60 -10
  15. package/dist/src/commands/manage.js.map +1 -1
  16. package/dist/src/commands/merge.d.ts +17 -0
  17. package/dist/src/commands/merge.d.ts.map +1 -0
  18. package/dist/src/commands/merge.js +160 -0
  19. package/dist/src/commands/merge.js.map +1 -0
  20. package/dist/src/commands/recommend-scoring.d.ts +29 -0
  21. package/dist/src/commands/recommend-scoring.d.ts.map +1 -0
  22. package/dist/src/commands/recommend-scoring.js +141 -0
  23. package/dist/src/commands/recommend-scoring.js.map +1 -0
  24. package/dist/src/commands/recommend.d.ts +1 -4
  25. package/dist/src/commands/recommend.d.ts.map +1 -1
  26. package/dist/src/commands/recommend.helpers.d.ts +40 -0
  27. package/dist/src/commands/recommend.helpers.d.ts.map +1 -0
  28. package/dist/src/commands/recommend.helpers.js +297 -0
  29. package/dist/src/commands/recommend.helpers.js.map +1 -0
  30. package/dist/src/commands/recommend.js +50 -372
  31. package/dist/src/commands/recommend.js.map +1 -1
  32. package/dist/src/commands/recommend.types.d.ts +66 -0
  33. package/dist/src/commands/recommend.types.d.ts.map +1 -0
  34. package/dist/src/commands/recommend.types.js +14 -0
  35. package/dist/src/commands/recommend.types.js.map +1 -0
  36. package/dist/src/commands/search-formatters.d.ts +35 -0
  37. package/dist/src/commands/search-formatters.d.ts.map +1 -0
  38. package/dist/src/commands/search-formatters.js +128 -0
  39. package/dist/src/commands/search-formatters.js.map +1 -0
  40. package/dist/src/commands/search-types.d.ts +46 -0
  41. package/dist/src/commands/search-types.d.ts.map +1 -0
  42. package/dist/src/commands/search-types.js +12 -0
  43. package/dist/src/commands/search-types.js.map +1 -0
  44. package/dist/src/commands/search.d.ts +3 -0
  45. package/dist/src/commands/search.d.ts.map +1 -1
  46. package/dist/src/commands/search.js +99 -89
  47. package/dist/src/commands/search.js.map +1 -1
  48. package/dist/src/config.d.ts +5 -0
  49. package/dist/src/config.d.ts.map +1 -1
  50. package/dist/src/config.js +7 -0
  51. package/dist/src/config.js.map +1 -1
  52. package/dist/src/index.d.ts +1 -0
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +11 -1
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/templates/mcp-server.template.d.ts +2 -17
  57. package/dist/src/templates/mcp-server.template.d.ts.map +1 -1
  58. package/dist/src/templates/mcp-server.template.js +9 -108
  59. package/dist/src/templates/mcp-server.template.js.map +1 -1
  60. package/dist/src/templates/mcp-template-handlers.d.ts +33 -0
  61. package/dist/src/templates/mcp-template-handlers.d.ts.map +1 -0
  62. package/dist/src/templates/mcp-template-handlers.js +106 -0
  63. package/dist/src/templates/mcp-template-handlers.js.map +1 -0
  64. package/dist/src/templates/mcp-template-types.d.ts +48 -0
  65. package/dist/src/templates/mcp-template-types.d.ts.map +1 -0
  66. package/dist/src/templates/mcp-template-types.js +18 -0
  67. package/dist/src/templates/mcp-template-types.js.map +1 -0
  68. package/dist/src/utils/license-types.d.ts +88 -0
  69. package/dist/src/utils/license-types.d.ts.map +1 -0
  70. package/dist/src/utils/license-types.js +60 -0
  71. package/dist/src/utils/license-types.js.map +1 -0
  72. package/dist/src/utils/license-validation.d.ts +61 -0
  73. package/dist/src/utils/license-validation.d.ts.map +1 -0
  74. package/dist/src/utils/license-validation.js +198 -0
  75. package/dist/src/utils/license-validation.js.map +1 -0
  76. package/dist/src/utils/license.d.ts +4 -71
  77. package/dist/src/utils/license.d.ts.map +1 -1
  78. package/dist/src/utils/license.js +7 -241
  79. package/dist/src/utils/license.js.map +1 -1
  80. package/dist/src/utils/license.test.js +6 -1
  81. package/dist/src/utils/license.test.js.map +1 -1
  82. package/dist/src/utils/node-version.d.ts +41 -0
  83. package/dist/src/utils/node-version.d.ts.map +1 -0
  84. package/dist/src/utils/node-version.js +123 -0
  85. package/dist/src/utils/node-version.js.map +1 -0
  86. package/dist/tests/e2e/search.e2e.test.js +62 -6
  87. package/dist/tests/e2e/search.e2e.test.js.map +1 -1
  88. package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +1 -1
  89. package/dist/tests/e2e/utils/hardcoded-detector.js +44 -3
  90. package/dist/tests/e2e/utils/hardcoded-detector.js.map +1 -1
  91. package/dist/tests/install-skill.test.d.ts +8 -0
  92. package/dist/tests/install-skill.test.d.ts.map +1 -0
  93. package/dist/tests/install-skill.test.js +409 -0
  94. package/dist/tests/install-skill.test.js.map +1 -0
  95. package/dist/tests/manage.test.js +284 -8
  96. package/dist/tests/manage.test.js.map +1 -1
  97. package/dist/tests/node-version.test.d.ts +8 -0
  98. package/dist/tests/node-version.test.d.ts.map +1 -0
  99. package/dist/tests/node-version.test.js +200 -0
  100. package/dist/tests/node-version.test.js.map +1 -0
  101. package/dist/tests/recommend.test.js +94 -0
  102. package/dist/tests/recommend.test.js.map +1 -1
  103. package/package.json +9 -8
package/dist/src/index.js CHANGED
@@ -15,16 +15,24 @@
15
15
  * - author subagent: Generate companion subagent for a skill (SMI-1389)
16
16
  * - author transform: Upgrade existing skill with subagent (SMI-1390)
17
17
  * - author mcp-init: Scaffold a new MCP server project (SMI-1433)
18
+ * - install-skill: Install skillsmith skill for /skillsmith slash command (SMI-824)
18
19
  */
19
20
  import { Command } from 'commander';
20
21
  import { importSkills } from './import.js';
21
- import { createSearchCommand, createListCommand, createUpdateCommand, createRemoveCommand, createInitCommand, createValidateCommand, createPublishCommand, createSubagentCommand, createTransformCommand, createMcpInitCommand, createAnalyzeCommand, createRecommendCommand, createSyncCommand, } from './commands/index.js';
22
+ import { createSearchCommand, createListCommand, createUpdateCommand, createRemoveCommand, createInitCommand, createValidateCommand, createPublishCommand, createSubagentCommand, createTransformCommand, createMcpInitCommand, createAnalyzeCommand, createRecommendCommand, createSyncCommand, createInstallSkillCommand, } from './commands/index.js';
22
23
  import { DEFAULT_DB_PATH } from './config.js';
23
24
  import { sanitizeError } from './utils/sanitize.js';
24
25
  import { displayStartupHeader } from './utils/license.js';
26
+ import { checkNodeVersion } from './utils/node-version.js';
25
27
  import { readFileSync } from 'fs';
26
28
  import { dirname, join } from 'path';
27
29
  import { fileURLToPath } from 'url';
30
+ // SMI-1629: Check Node.js version before anything else
31
+ const versionError = checkNodeVersion();
32
+ if (versionError) {
33
+ console.error(versionError);
34
+ process.exit(1);
35
+ }
28
36
  // Read version from package.json dynamically
29
37
  const __dirname = dirname(fileURLToPath(import.meta.url));
30
38
  const packageJsonPath = join(__dirname, '..', '..', 'package.json');
@@ -92,5 +100,7 @@ program.addCommand(createAnalyzeCommand());
92
100
  program.addCommand(createRecommendCommand());
93
101
  // Registry Sync
94
102
  program.addCommand(createSyncCommand());
103
+ // SMI-824: Install skillsmith skill for /skillsmith slash command
104
+ program.addCommand(createInstallSkillCommand());
95
105
  program.parse();
96
106
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,6CAA6C;AAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AACtE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAA;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,0DAA0D;AAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAA;AAE7E,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvB,qEAAqE;AACrE,qDAAqD;AACrD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;IACnC,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA;AAEF,0BAA0B;AAC1B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,CAAC;KACvE,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,CAAC;KAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAsE,EAAE,EAAE;IACvF,IAAI,CAAC;QACH,MAAM,YAAY,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,gDAAgD;AAChD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AAEzC,qCAAqC;AACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AAEzC,2DAA2D;AAC3D,0CAA0C;AAC1C,mCAAmC;AACnC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,4DAA4D,CAAC;KACzE,UAAU,CAAC,iBAAiB,EAAE,CAAC;KAC/B,UAAU,CAAC,qBAAqB,EAAE,CAAC;KACnC,UAAU,CAAC,oBAAoB,EAAE,CAAC;KAClC,UAAU,CAAC,qBAAqB,EAAE,CAAC;KACnC,UAAU,CAAC,sBAAsB,EAAE,CAAC;KACpC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAErC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AAEjC,8DAA8D;AAC9D,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AAC5D,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAE1D,8BAA8B;AAC9B,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAE1C,4BAA4B;AAC5B,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAA;AAE5C,gBAAgB;AAChB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAEvC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,uDAAuD;AACvD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAA;AACvC,IAAI,YAAY,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,6CAA6C;AAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AACtE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAA;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,0DAA0D;AAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAA;AAE7E,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvB,qEAAqE;AACrE,qDAAqD;AACrD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;IACnC,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA;AAEF,0BAA0B;AAC1B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,CAAC;KACvE,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,CAAC;KAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAsE,EAAE,EAAE;IACvF,IAAI,CAAC;QACH,MAAM,YAAY,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,gDAAgD;AAChD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AAEzC,qCAAqC;AACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;AAEzC,2DAA2D;AAC3D,0CAA0C;AAC1C,mCAAmC;AACnC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,4DAA4D,CAAC;KACzE,UAAU,CAAC,iBAAiB,EAAE,CAAC;KAC/B,UAAU,CAAC,qBAAqB,EAAE,CAAC;KACnC,UAAU,CAAC,oBAAoB,EAAE,CAAC;KAClC,UAAU,CAAC,qBAAqB,EAAE,CAAC;KACnC,UAAU,CAAC,sBAAsB,EAAE,CAAC;KACpC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAErC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AAEjC,8DAA8D;AAC9D,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AAC5D,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAE1D,8BAA8B;AAC9B,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAE1C,4BAA4B;AAC5B,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAA;AAE5C,gBAAgB;AAChB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAEvC,kEAAkE;AAClE,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAA;AAE/C,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -41,23 +41,8 @@
41
41
  *
42
42
  * @module mcp-server-template
43
43
  */
44
- export interface McpServerTemplateData {
45
- name: string;
46
- description: string;
47
- tools: McpToolDefinition[];
48
- author: string;
49
- }
50
- export interface McpToolDefinition {
51
- name: string;
52
- description: string;
53
- parameters?: McpParameterDefinition[];
54
- }
55
- export interface McpParameterDefinition {
56
- name: string;
57
- type: 'string' | 'number' | 'boolean' | 'array' | 'object';
58
- description: string;
59
- required?: boolean;
60
- }
44
+ export type { McpServerTemplateData, McpToolDefinition, McpParameterDefinition, } from './mcp-template-types.js';
45
+ import type { McpServerTemplateData } from './mcp-template-types.js';
61
46
  /**
62
47
  * package.json template for MCP server
63
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.template.d.ts","sourceRoot":"","sources":["../../../src/templates/mcp-server.template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAaD;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAoCjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,4gBAmBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,0YAmB7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,wnDAoE9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,0iBA6BnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,wsBA+BpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,2nBAsD/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,oPA2BlC,CAAA;AAoHD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoFzF"}
1
+ {"version":3,"file":"mcp-server.template.d.ts","sourceRoot":"","sources":["../../../src/templates/mcp-server.template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAgBpE;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAoCjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,4gBAmBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,0YAmB7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,wnDAoE9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,0iBA6BnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,wsBA+BpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,2nBAsD/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,oPA2BlC,CAAA;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoFzF"}
@@ -41,16 +41,12 @@
41
41
  *
42
42
  * @module mcp-server-template
43
43
  */
44
- /**
45
- * Dependency version constants for easier maintenance
46
- */
47
- const VERSIONS = {
48
- MCP_SDK: '^1.0.0',
49
- TYPES_NODE: '^20.0.0',
50
- TSX: '^4.0.0',
51
- TYPESCRIPT: '^5.0.0',
52
- NODE_ENGINE: '>=18.0.0',
53
- };
44
+ import { VERSIONS } from './mcp-template-types.js';
45
+ // Import handlers
46
+ import { generateToolDefinition, generateToolCase, generateToolImport, generateToolImplementation, generateToolDocs, } from './mcp-template-handlers.js';
47
+ // ============================================================================
48
+ // Template Constants
49
+ // ============================================================================
54
50
  /**
55
51
  * package.json template for MCP server
56
52
  */
@@ -366,104 +362,9 @@ npm-debug.log*
366
362
  # Test coverage
367
363
  coverage/
368
364
  `;
369
- /**
370
- * Escape single quotes in strings for safe template interpolation
371
- */
372
- function escapeQuotes(str) {
373
- return str.replace(/'/g, "\\'");
374
- }
375
- /**
376
- * Generate tool definition code for a single tool
377
- */
378
- function generateToolDefinition(tool, indent = ' ') {
379
- const properties = [];
380
- const required = [];
381
- for (const param of tool.parameters || []) {
382
- properties.push(`${indent} ${param.name}: {
383
- ${indent} type: '${param.type}',
384
- ${indent} description: '${escapeQuotes(param.description)}',
385
- ${indent} },`);
386
- if (param.required) {
387
- required.push(`'${param.name}'`);
388
- }
389
- }
390
- const propertiesStr = properties.length > 0 ? properties.join('\n') : '';
391
- const requiredStr = required.length > 0 ? `\n${indent} required: [${required.join(', ')}],` : '';
392
- return `${indent}{
393
- ${indent} name: '${escapeQuotes(tool.name)}',
394
- ${indent} description: '${escapeQuotes(tool.description)}',
395
- ${indent} inputSchema: {
396
- ${indent} type: 'object',
397
- ${indent} properties: {
398
- ${propertiesStr}
399
- ${indent} },${requiredStr}
400
- ${indent} },
401
- ${indent}},`;
402
- }
403
- /**
404
- * Generate tool handler case for switch statement
405
- */
406
- function generateToolCase(tool) {
407
- const handlerName = `handle${tool.name.charAt(0).toUpperCase()}${tool.name.slice(1).replace(/-/g, '')}Tool`;
408
- const argsType = `${tool.name.charAt(0).toUpperCase()}${tool.name.slice(1).replace(/-/g, '')}ToolArgs`;
409
- return ` case '${tool.name}':
410
- return ${handlerName}(args as unknown as ${argsType})`;
411
- }
412
- /**
413
- * Generate tool import statement
414
- */
415
- function generateToolImport(tool) {
416
- const baseName = tool.name.charAt(0).toUpperCase() + tool.name.slice(1).replace(/-/g, '');
417
- return `import { handle${baseName}Tool, type ${baseName}ToolArgs } from './${tool.name}.js'`;
418
- }
419
- /**
420
- * Generate a stub implementation file for a custom tool
421
- */
422
- function generateToolImplementation(tool) {
423
- const baseName = tool.name.charAt(0).toUpperCase() + tool.name.slice(1).replace(/-/g, '');
424
- const params = tool.parameters || [];
425
- // Generate TypeScript interface properties
426
- const interfaceProps = params
427
- .map((p) => {
428
- const tsType = p.type === 'array' ? 'unknown[]' : p.type === 'object' ? 'Record<string, unknown>' : p.type;
429
- return ` ${p.name}${p.required ? '' : '?'}: ${tsType}`;
430
- })
431
- .join('\n');
432
- // Generate implementation placeholder
433
- const returnPlaceholder = params.length > 0
434
- ? `\`${tool.name} called with: \${JSON.stringify({ ${params.map((p) => `${p.name}: args.${p.name}`).join(', ')} })}\``
435
- : `'${tool.name} called'`;
436
- return `/**
437
- * ${baseName} Tool Implementation
438
- *
439
- * ${escapeQuotes(tool.description)}
440
- * TODO: Implement your tool logic here.
441
- */
442
-
443
- export interface ${baseName}ToolArgs {
444
- ${interfaceProps || ' // No parameters'}
445
- }
446
-
447
- export async function handle${baseName}Tool(args: ${baseName}ToolArgs): Promise<string> {
448
- // TODO: Implement ${tool.name} logic
449
- return ${returnPlaceholder}
450
- }
451
- `;
452
- }
453
- /**
454
- * Generate tool documentation for README
455
- */
456
- function generateToolDocs(tools) {
457
- if (tools.length === 0) {
458
- return '- `example` - An example tool that echoes input';
459
- }
460
- return tools
461
- .map((tool) => {
462
- const params = tool.parameters?.map((p) => `\`${p.name}\``).join(', ') || 'none';
463
- return `- \`${tool.name}\` - ${tool.description}\n - Parameters: ${params}`;
464
- })
465
- .join('\n');
466
- }
365
+ // ============================================================================
366
+ // Main Render Function
367
+ // ============================================================================
467
368
  /**
468
369
  * Render MCP server templates
469
370
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.template.js","sourceRoot":"","sources":["../../../src/templates/mcp-server.template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.template.js","sourceRoot":"","sources":["../../../src/templates/mcp-server.template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * SMI-1433: MCP Server Template Handlers
3
+ *
4
+ * Code generation helpers for MCP server scaffolding.
5
+ *
6
+ * @module mcp-template-handlers
7
+ */
8
+ import type { McpToolDefinition } from './mcp-template-types.js';
9
+ /**
10
+ * Escape single quotes in strings for safe template interpolation
11
+ */
12
+ export declare function escapeQuotes(str: string): string;
13
+ /**
14
+ * Generate tool definition code for a single tool
15
+ */
16
+ export declare function generateToolDefinition(tool: McpToolDefinition, indent?: string): string;
17
+ /**
18
+ * Generate tool handler case for switch statement
19
+ */
20
+ export declare function generateToolCase(tool: McpToolDefinition): string;
21
+ /**
22
+ * Generate tool import statement
23
+ */
24
+ export declare function generateToolImport(tool: McpToolDefinition): string;
25
+ /**
26
+ * Generate a stub implementation file for a custom tool
27
+ */
28
+ export declare function generateToolImplementation(tool: McpToolDefinition): string;
29
+ /**
30
+ * Generate tool documentation for README
31
+ */
32
+ export declare function generateToolDocs(tools: McpToolDefinition[]): string;
33
+ //# sourceMappingURL=mcp-template-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-template-handlers.d.ts","sourceRoot":"","sources":["../../../src/templates/mcp-template-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CA4B7F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAKhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAGlE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAmC1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAWnE"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * SMI-1433: MCP Server Template Handlers
3
+ *
4
+ * Code generation helpers for MCP server scaffolding.
5
+ *
6
+ * @module mcp-template-handlers
7
+ */
8
+ /**
9
+ * Escape single quotes in strings for safe template interpolation
10
+ */
11
+ export function escapeQuotes(str) {
12
+ return str.replace(/'/g, "\\'");
13
+ }
14
+ /**
15
+ * Generate tool definition code for a single tool
16
+ */
17
+ export function generateToolDefinition(tool, indent = ' ') {
18
+ const properties = [];
19
+ const required = [];
20
+ for (const param of tool.parameters || []) {
21
+ properties.push(`${indent} ${param.name}: {
22
+ ${indent} type: '${param.type}',
23
+ ${indent} description: '${escapeQuotes(param.description)}',
24
+ ${indent} },`);
25
+ if (param.required) {
26
+ required.push(`'${param.name}'`);
27
+ }
28
+ }
29
+ const propertiesStr = properties.length > 0 ? properties.join('\n') : '';
30
+ const requiredStr = required.length > 0 ? `\n${indent} required: [${required.join(', ')}],` : '';
31
+ return `${indent}{
32
+ ${indent} name: '${escapeQuotes(tool.name)}',
33
+ ${indent} description: '${escapeQuotes(tool.description)}',
34
+ ${indent} inputSchema: {
35
+ ${indent} type: 'object',
36
+ ${indent} properties: {
37
+ ${propertiesStr}
38
+ ${indent} },${requiredStr}
39
+ ${indent} },
40
+ ${indent}},`;
41
+ }
42
+ /**
43
+ * Generate tool handler case for switch statement
44
+ */
45
+ export function generateToolCase(tool) {
46
+ const handlerName = `handle${tool.name.charAt(0).toUpperCase()}${tool.name.slice(1).replace(/-/g, '')}Tool`;
47
+ const argsType = `${tool.name.charAt(0).toUpperCase()}${tool.name.slice(1).replace(/-/g, '')}ToolArgs`;
48
+ return ` case '${tool.name}':
49
+ return ${handlerName}(args as unknown as ${argsType})`;
50
+ }
51
+ /**
52
+ * Generate tool import statement
53
+ */
54
+ export function generateToolImport(tool) {
55
+ const baseName = tool.name.charAt(0).toUpperCase() + tool.name.slice(1).replace(/-/g, '');
56
+ return `import { handle${baseName}Tool, type ${baseName}ToolArgs } from './${tool.name}.js'`;
57
+ }
58
+ /**
59
+ * Generate a stub implementation file for a custom tool
60
+ */
61
+ export function generateToolImplementation(tool) {
62
+ const baseName = tool.name.charAt(0).toUpperCase() + tool.name.slice(1).replace(/-/g, '');
63
+ const params = tool.parameters || [];
64
+ // Generate TypeScript interface properties
65
+ const interfaceProps = params
66
+ .map((p) => {
67
+ const tsType = p.type === 'array' ? 'unknown[]' : p.type === 'object' ? 'Record<string, unknown>' : p.type;
68
+ return ` ${p.name}${p.required ? '' : '?'}: ${tsType}`;
69
+ })
70
+ .join('\n');
71
+ // Generate implementation placeholder
72
+ const returnPlaceholder = params.length > 0
73
+ ? `\`${tool.name} called with: \${JSON.stringify({ ${params.map((p) => `${p.name}: args.${p.name}`).join(', ')} })}\``
74
+ : `'${tool.name} called'`;
75
+ return `/**
76
+ * ${baseName} Tool Implementation
77
+ *
78
+ * ${escapeQuotes(tool.description)}
79
+ * TODO: Implement your tool logic here.
80
+ */
81
+
82
+ export interface ${baseName}ToolArgs {
83
+ ${interfaceProps || ' // No parameters'}
84
+ }
85
+
86
+ export async function handle${baseName}Tool(args: ${baseName}ToolArgs): Promise<string> {
87
+ // TODO: Implement ${tool.name} logic
88
+ return ${returnPlaceholder}
89
+ }
90
+ `;
91
+ }
92
+ /**
93
+ * Generate tool documentation for README
94
+ */
95
+ export function generateToolDocs(tools) {
96
+ if (tools.length === 0) {
97
+ return '- `example` - An example tool that echoes input';
98
+ }
99
+ return tools
100
+ .map((tool) => {
101
+ const params = tool.parameters?.map((p) => `\`${p.name}\``).join(', ') || 'none';
102
+ return `- \`${tool.name}\` - ${tool.description}\n - Parameters: ${params}`;
103
+ })
104
+ .join('\n');
105
+ }
106
+ //# sourceMappingURL=mcp-template-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-template-handlers.js","sourceRoot":"","sources":["../../../src/templates/mcp-template-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * SMI-1433: MCP Server Template Types
3
+ *
4
+ * Type definitions for MCP server scaffolding.
5
+ *
6
+ * @module mcp-template-types
7
+ */
8
+ /**
9
+ * Input data for rendering MCP server templates
10
+ */
11
+ export interface McpServerTemplateData {
12
+ name: string;
13
+ description: string;
14
+ tools: McpToolDefinition[];
15
+ author: string;
16
+ }
17
+ /**
18
+ * Tool definition for MCP server
19
+ */
20
+ export interface McpToolDefinition {
21
+ name: string;
22
+ description: string;
23
+ parameters?: McpParameterDefinition[];
24
+ }
25
+ /**
26
+ * Parameter definition for MCP tool
27
+ */
28
+ export interface McpParameterDefinition {
29
+ name: string;
30
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
31
+ description: string;
32
+ required?: boolean;
33
+ }
34
+ /**
35
+ * Dependency version constants for easier maintenance
36
+ */
37
+ export declare const VERSIONS: {
38
+ readonly MCP_SDK: "^1.0.0";
39
+ readonly TYPES_NODE: "^20.0.0";
40
+ readonly TSX: "^4.0.0";
41
+ readonly TYPESCRIPT: "^5.0.0";
42
+ readonly NODE_ENGINE: ">=18.0.0";
43
+ };
44
+ /**
45
+ * Type for version keys
46
+ */
47
+ export type VersionKey = keyof typeof VERSIONS;
48
+ //# sourceMappingURL=mcp-template-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-template-types.d.ts","sourceRoot":"","sources":["../../../src/templates/mcp-template-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SMI-1433: MCP Server Template Types
3
+ *
4
+ * Type definitions for MCP server scaffolding.
5
+ *
6
+ * @module mcp-template-types
7
+ */
8
+ /**
9
+ * Dependency version constants for easier maintenance
10
+ */
11
+ export const VERSIONS = {
12
+ MCP_SDK: '^1.0.0',
13
+ TYPES_NODE: '^20.0.0',
14
+ TSX: '^4.0.0',
15
+ TYPESCRIPT: '^5.0.0',
16
+ NODE_ENGINE: '>=18.0.0',
17
+ };
18
+ //# sourceMappingURL=mcp-template-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-template-types.js","sourceRoot":"","sources":["../../../src/templates/mcp-template-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+BH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,SAAS;IACrB,GAAG,EAAE,QAAQ;IACb,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,UAAU;CACf,CAAA"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * License Types for Skillsmith CLI
3
+ *
4
+ * Type definitions for license validation and display.
5
+ *
6
+ * @module @skillsmith/cli/utils/license-types
7
+ */
8
+ /**
9
+ * Available license tiers
10
+ * - community: Free tier (1,000 API calls/month)
11
+ * - individual: Solo developers ($9.99/mo, 10,000 API calls/month)
12
+ * - team: Teams ($25/user/mo, 100,000 API calls/month)
13
+ * - enterprise: Full enterprise ($55/user/mo, unlimited)
14
+ */
15
+ export type LicenseTier = 'community' | 'individual' | 'team' | 'enterprise';
16
+ /**
17
+ * Quota information for display
18
+ */
19
+ export interface QuotaInfo {
20
+ /** API calls used this period */
21
+ used: number;
22
+ /** API call limit (-1 for unlimited) */
23
+ limit: number;
24
+ /** Percentage used */
25
+ percentUsed: number;
26
+ /** When the quota resets */
27
+ resetAt: Date;
28
+ }
29
+ /**
30
+ * License status information returned by license check
31
+ */
32
+ export interface LicenseStatus {
33
+ /** Whether the license is valid */
34
+ valid: boolean;
35
+ /** License tier level */
36
+ tier: LicenseTier;
37
+ /** Expiration date for paid tiers */
38
+ expiresAt?: Date;
39
+ /** List of enabled features for this tier */
40
+ features: string[];
41
+ /** Error message if license validation failed */
42
+ error?: string;
43
+ /** Optional quota information */
44
+ quota?: QuotaInfo;
45
+ }
46
+ /**
47
+ * License key payload structure (decoded from license key)
48
+ * @deprecated Used only for fallback when enterprise package unavailable
49
+ */
50
+ export interface LicensePayload {
51
+ tier: LicenseTier;
52
+ expiresAt: string;
53
+ features: string[];
54
+ }
55
+ /**
56
+ * Interface for enterprise LicenseValidator
57
+ * @see packages/enterprise/src/license/LicenseValidator.ts
58
+ */
59
+ export interface EnterpriseLicenseValidator {
60
+ validate(key: string): Promise<{
61
+ valid: boolean;
62
+ license?: {
63
+ tier: LicenseTier;
64
+ features: string[];
65
+ expiresAt: Date;
66
+ };
67
+ error?: {
68
+ code: string;
69
+ message: string;
70
+ };
71
+ }>;
72
+ }
73
+ /**
74
+ * Default features by tier
75
+ *
76
+ * Note: Community tier uses CLI-specific display names for UI purposes.
77
+ * Individual, Team and Enterprise tiers use canonical feature names from @skillsmith/enterprise.
78
+ *
79
+ * @see packages/enterprise/src/license/types.ts for canonical feature definitions
80
+ */
81
+ export declare const TIER_FEATURES: Record<LicenseTier, string[]>;
82
+ /**
83
+ * API call limits per tier (per month)
84
+ * Note: These are reference values matching the enterprise package quotas.
85
+ * Actual quota enforcement happens in the MCP server via QuotaEnforcementService.
86
+ */
87
+ export declare const TIER_QUOTAS: Record<LicenseTier, number>;
88
+ //# sourceMappingURL=license-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-types.d.ts","sourceRoot":"","sources":["../../../src/utils/license-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,YAAY,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,OAAO,EAAE,IAAI,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAA;IACjB,qCAAqC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B,KAAK,EAAE,OAAO,CAAA;QACd,OAAO,CAAC,EAAE;YACR,IAAI,EAAE,WAAW,CAAA;YACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;YAClB,SAAS,EAAE,IAAI,CAAA;SAChB,CAAA;QACD,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;KACF,CAAC,CAAA;CACH;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAgCvD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKnD,CAAA"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * License Types for Skillsmith CLI
3
+ *
4
+ * Type definitions for license validation and display.
5
+ *
6
+ * @module @skillsmith/cli/utils/license-types
7
+ */
8
+ /**
9
+ * Default features by tier
10
+ *
11
+ * Note: Community tier uses CLI-specific display names for UI purposes.
12
+ * Individual, Team and Enterprise tiers use canonical feature names from @skillsmith/enterprise.
13
+ *
14
+ * @see packages/enterprise/src/license/types.ts for canonical feature definitions
15
+ */
16
+ export const TIER_FEATURES = {
17
+ community: ['basic_search', 'skill_install', 'local_validation'],
18
+ individual: ['basic_analytics', 'email_support'],
19
+ team: [
20
+ // Individual features (inherited)
21
+ 'basic_analytics',
22
+ 'email_support',
23
+ // Team features
24
+ 'team_workspaces',
25
+ 'private_skills',
26
+ 'usage_analytics',
27
+ 'priority_support',
28
+ ],
29
+ enterprise: [
30
+ // Individual features (inherited)
31
+ 'basic_analytics',
32
+ 'email_support',
33
+ // Team features (inherited)
34
+ 'team_workspaces',
35
+ 'private_skills',
36
+ 'usage_analytics',
37
+ 'priority_support',
38
+ // Enterprise-only features (canonical names from enterprise package)
39
+ 'sso_saml',
40
+ 'rbac',
41
+ 'audit_logging',
42
+ 'siem_export',
43
+ 'compliance_reports',
44
+ 'private_registry',
45
+ 'custom_integrations',
46
+ 'advanced_analytics',
47
+ ],
48
+ };
49
+ /**
50
+ * API call limits per tier (per month)
51
+ * Note: These are reference values matching the enterprise package quotas.
52
+ * Actual quota enforcement happens in the MCP server via QuotaEnforcementService.
53
+ */
54
+ export const TIER_QUOTAS = {
55
+ community: 1_000,
56
+ individual: 10_000,
57
+ team: 100_000,
58
+ enterprise: -1, // Unlimited
59
+ };
60
+ //# sourceMappingURL=license-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-types.js","sourceRoot":"","sources":["../../../src/utils/license-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,CAAC;IAChE,UAAU,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAChD,IAAI,EAAE;QACJ,kCAAkC;QAClC,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;KACnB;IACD,UAAU,EAAE;QACV,kCAAkC;QAClC,iBAAiB;QACjB,eAAe;QACf,4BAA4B;QAC5B,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,qEAAqE;QACrE,UAAU;QACV,MAAM;QACN,eAAe;QACf,aAAa;QACb,oBAAoB;QACpB,kBAAkB;QAClB,qBAAqB;QACrB,oBAAoB;KACrB;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgC;IACtD,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,CAAC,CAAC,EAAE,YAAY;CAC7B,CAAA"}