@skillsmith/mcp-server 0.2.0 → 0.2.2

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 (89) hide show
  1. package/README.md +32 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/__tests__/test-utils.d.ts +1 -0
  4. package/dist/src/__tests__/test-utils.d.ts.map +1 -1
  5. package/dist/src/__tests__/test-utils.js +5 -1
  6. package/dist/src/__tests__/test-utils.js.map +1 -1
  7. package/dist/src/context.d.ts +40 -5
  8. package/dist/src/context.d.ts.map +1 -1
  9. package/dist/src/context.js +38 -4
  10. package/dist/src/context.js.map +1 -1
  11. package/dist/src/index.js +1 -1
  12. package/dist/src/middleware/degradation.d.ts +7 -1
  13. package/dist/src/middleware/degradation.d.ts.map +1 -1
  14. package/dist/src/middleware/degradation.js +4 -0
  15. package/dist/src/middleware/degradation.js.map +1 -1
  16. package/dist/src/middleware/index.d.ts +2 -1
  17. package/dist/src/middleware/index.d.ts.map +1 -1
  18. package/dist/src/middleware/index.js +2 -0
  19. package/dist/src/middleware/index.js.map +1 -1
  20. package/dist/src/middleware/license.d.ts +10 -2
  21. package/dist/src/middleware/license.d.ts.map +1 -1
  22. package/dist/src/middleware/license.js +13 -2
  23. package/dist/src/middleware/license.js.map +1 -1
  24. package/dist/src/middleware/quota.d.ts +182 -0
  25. package/dist/src/middleware/quota.d.ts.map +1 -0
  26. package/dist/src/middleware/quota.js +309 -0
  27. package/dist/src/middleware/quota.js.map +1 -0
  28. package/dist/src/middleware/toolFeatureMapping.d.ts +2 -2
  29. package/dist/src/middleware/toolFeatureMapping.d.ts.map +1 -1
  30. package/dist/src/middleware/toolFeatureMapping.js +6 -0
  31. package/dist/src/middleware/toolFeatureMapping.js.map +1 -1
  32. package/dist/src/tools/compare.js +2 -2
  33. package/dist/src/tools/compare.js.map +1 -1
  34. package/dist/src/tools/get-skill.d.ts +4 -13
  35. package/dist/src/tools/get-skill.d.ts.map +1 -1
  36. package/dist/src/tools/get-skill.js +55 -19
  37. package/dist/src/tools/get-skill.js.map +1 -1
  38. package/dist/src/tools/install.d.ts.map +1 -1
  39. package/dist/src/tools/install.js +13 -1
  40. package/dist/src/tools/install.js.map +1 -1
  41. package/dist/src/tools/recommend.d.ts +4 -6
  42. package/dist/src/tools/recommend.d.ts.map +1 -1
  43. package/dist/src/tools/recommend.js +73 -41
  44. package/dist/src/tools/recommend.js.map +1 -1
  45. package/dist/src/tools/search.d.ts +5 -12
  46. package/dist/src/tools/search.d.ts.map +1 -1
  47. package/dist/src/tools/search.js +65 -67
  48. package/dist/src/tools/search.js.map +1 -1
  49. package/dist/src/tools/suggest.d.ts +4 -4
  50. package/dist/src/tools/suggest.d.ts.map +1 -1
  51. package/dist/src/tools/suggest.js +1 -33
  52. package/dist/src/tools/suggest.js.map +1 -1
  53. package/dist/src/utils/validation.d.ts +29 -10
  54. package/dist/src/utils/validation.d.ts.map +1 -1
  55. package/dist/src/utils/validation.js +52 -19
  56. package/dist/src/utils/validation.js.map +1 -1
  57. package/dist/tests/e2e/compare.e2e.test.js +11 -1
  58. package/dist/tests/e2e/compare.e2e.test.js.map +1 -1
  59. package/dist/tests/e2e/install-flow.e2e.test.js +22 -2
  60. package/dist/tests/e2e/install-flow.e2e.test.js.map +1 -1
  61. package/dist/tests/e2e/recommend.e2e.test.js +12 -2
  62. package/dist/tests/e2e/recommend.e2e.test.js.map +1 -1
  63. package/dist/tests/e2e/skill-flow.e2e.test.js +35 -4
  64. package/dist/tests/e2e/skill-flow.e2e.test.js.map +1 -1
  65. package/dist/tests/e2e/suggest.e2e.test.js +22 -2
  66. package/dist/tests/e2e/suggest.e2e.test.js.map +1 -1
  67. package/dist/tests/integration/recommend.integration.test.js +2 -0
  68. package/dist/tests/integration/recommend.integration.test.js.map +1 -1
  69. package/dist/tests/integration/setup.d.ts +4 -1
  70. package/dist/tests/integration/setup.d.ts.map +1 -1
  71. package/dist/tests/integration/setup.js +8 -1
  72. package/dist/tests/integration/setup.js.map +1 -1
  73. package/dist/tests/performance/search-performance.test.js +6 -2
  74. package/dist/tests/performance/search-performance.test.js.map +1 -1
  75. package/dist/tests/recommend.test.js +2 -0
  76. package/dist/tests/recommend.test.js.map +1 -1
  77. package/package.json +8 -8
  78. package/dist/src/__tests__/compare.test.d.ts +0 -5
  79. package/dist/src/__tests__/compare.test.d.ts.map +0 -1
  80. package/dist/src/__tests__/compare.test.js +0 -254
  81. package/dist/src/__tests__/compare.test.js.map +0 -1
  82. package/dist/src/__tests__/recommend.test.d.ts +0 -5
  83. package/dist/src/__tests__/recommend.test.d.ts.map +0 -1
  84. package/dist/src/__tests__/recommend.test.js +0 -181
  85. package/dist/src/__tests__/recommend.test.js.map +0 -1
  86. package/dist/src/__tests__/validate.test.d.ts +0 -5
  87. package/dist/src/__tests__/validate.test.d.ts.map +0 -1
  88. package/dist/src/__tests__/validate.test.js +0 -303
  89. package/dist/src/__tests__/validate.test.js.map +0 -1
@@ -7,7 +7,7 @@
7
7
  * Provides skill search functionality with support for:
8
8
  * - Full-text search across skill names, descriptions, and authors
9
9
  * - Category filtering (development, testing, devops, etc.)
10
- * - Trust tier filtering (verified, community, standard, unverified)
10
+ * - Trust tier filtering (verified, community, experimental, unknown)
11
11
  * - Minimum quality score filtering
12
12
  *
13
13
  * @example
@@ -23,40 +23,8 @@
23
23
  * min_score: 80
24
24
  * }, context);
25
25
  */
26
- import { SkillsmithError, ErrorCodes, } from '@skillsmith/core';
27
- import { extractCategoryFromTags } from '../utils/validation.js';
28
- /**
29
- * Map MCP trust tier to database trust tier
30
- * MCP: verified, community, standard, unverified
31
- * DB: verified, community, experimental, unknown
32
- */
33
- function mapTrustTierToDb(mcpTier) {
34
- switch (mcpTier) {
35
- case 'verified':
36
- return 'verified';
37
- case 'community':
38
- return 'community';
39
- case 'standard':
40
- return 'experimental';
41
- case 'unverified':
42
- return 'unknown';
43
- }
44
- }
45
- /**
46
- * Map database trust tier to MCP trust tier
47
- */
48
- function mapTrustTierFromDb(dbTier) {
49
- switch (dbTier) {
50
- case 'verified':
51
- return 'verified';
52
- case 'community':
53
- return 'community';
54
- case 'experimental':
55
- return 'standard';
56
- case 'unknown':
57
- return 'unverified';
58
- }
59
- }
26
+ import { SkillsmithError, ErrorCodes, trackSkillSearch, } from '@skillsmith/core';
27
+ import { extractCategoryFromTags, mapTrustTierToDb, mapTrustTierFromDb, getTrustBadge, } from '../utils/validation.js';
60
28
  /**
61
29
  * Search tool schema for MCP
62
30
  */
@@ -89,7 +57,7 @@ export const searchToolSchema = {
89
57
  trust_tier: {
90
58
  type: 'string',
91
59
  description: 'Filter by trust tier level',
92
- enum: ['verified', 'community', 'standard', 'unverified'],
60
+ enum: ['verified', 'community', 'experimental', 'unknown'],
93
61
  },
94
62
  min_score: {
95
63
  type: 'number',
@@ -104,11 +72,12 @@ export const searchToolSchema = {
104
72
  /**
105
73
  * Execute a search for Claude Code skills with optional filters.
106
74
  *
107
- * Uses SearchService with FTS5/BM25 ranking for relevance-based results.
108
- * Results are sorted by BM25 rank and limited to specified count.
75
+ * SMI-1183: Uses API as primary source with local DB fallback.
76
+ * - Tries live API first (api.skillsmith.app)
77
+ * - Falls back to local SearchService if API is offline or fails
109
78
  *
110
79
  * @param input - Search parameters including query and optional filters
111
- * @param context - Tool context with database and services
80
+ * @param context - Tool context with API client and local services
112
81
  * @returns Promise resolving to search response with results and timing
113
82
  * @throws {SkillsmithError} When query is empty or less than 2 characters
114
83
  * @throws {SkillsmithError} When min_score is outside 0-100 range
@@ -117,14 +86,6 @@ export const searchToolSchema = {
117
86
  * // Search for commit-related skills
118
87
  * const response = await executeSearch({ query: 'commit' }, context);
119
88
  * console.log(`Found ${response.total} skills in ${response.timing.totalMs}ms`);
120
- *
121
- * @example
122
- * // Search with multiple filters
123
- * const response = await executeSearch({
124
- * query: 'react',
125
- * category: 'testing',
126
- * min_score: 85
127
- * }, context);
128
89
  */
129
90
  export async function executeSearch(input, context) {
130
91
  const startTime = performance.now();
@@ -149,9 +110,55 @@ export async function executeSearch(input, context) {
149
110
  filters.minScore = input.min_score / 100; // Convert to 0-1 scale for DB
150
111
  }
151
112
  const searchStart = performance.now();
152
- // Map MCP trust tier to DB trust tier if provided
113
+ // SMI-1183: Try API first, fall back to local DB
114
+ if (!context.apiClient.isOffline()) {
115
+ try {
116
+ const apiResponse = await context.apiClient.search({
117
+ query: input.query.trim(),
118
+ limit: 10,
119
+ offset: 0,
120
+ trustTier: filters.trustTier ? mapTrustTierToDb(filters.trustTier) : undefined,
121
+ minQualityScore: filters.minScore,
122
+ category: filters.category,
123
+ });
124
+ const searchEnd = performance.now();
125
+ // Convert API results to SkillSearchResult format
126
+ const results = apiResponse.data.map((item) => ({
127
+ id: item.id,
128
+ name: item.name,
129
+ description: item.description || '',
130
+ author: item.author || 'unknown',
131
+ category: extractCategoryFromTags(item.tags),
132
+ trustTier: mapTrustTierFromDb(item.trust_tier),
133
+ score: Math.round((item.quality_score ?? 0) * 100),
134
+ }));
135
+ const endTime = performance.now();
136
+ const response = {
137
+ results,
138
+ total: apiResponse.meta?.total ?? results.length,
139
+ query: input.query,
140
+ filters,
141
+ timing: {
142
+ searchMs: Math.round(searchEnd - searchStart),
143
+ totalMs: Math.round(endTime - startTime),
144
+ },
145
+ };
146
+ // SMI-1184: Track search event (silent on failure)
147
+ if (context.distinctId) {
148
+ trackSkillSearch(context.distinctId, input.query, response.total, response.timing.totalMs, {
149
+ trustTier: filters.trustTier,
150
+ category: filters.category,
151
+ });
152
+ }
153
+ return response;
154
+ }
155
+ catch (error) {
156
+ // Log and fall through to local search
157
+ console.warn('[skillsmith] API search failed, using local database:', error.message);
158
+ }
159
+ }
160
+ // Fallback: Use local SearchService for FTS5 search with BM25 ranking
153
161
  const dbTrustTier = filters.trustTier ? mapTrustTierToDb(filters.trustTier) : undefined;
154
- // Use SearchService for FTS5 search with BM25 ranking
155
162
  const searchResults = context.searchService.search({
156
163
  query: input.query.trim(),
157
164
  limit: 10,
@@ -172,7 +179,7 @@ export async function executeSearch(input, context) {
172
179
  score: Math.round((item.skill.qualityScore ?? 0) * 100), // Convert 0-1 to 0-100
173
180
  }));
174
181
  const endTime = performance.now();
175
- return {
182
+ const response = {
176
183
  results,
177
184
  total: searchResults.total,
178
185
  query: input.query,
@@ -182,6 +189,14 @@ export async function executeSearch(input, context) {
182
189
  totalMs: Math.round(endTime - startTime),
183
190
  },
184
191
  };
192
+ // SMI-1184: Track search event (silent on failure)
193
+ if (context.distinctId) {
194
+ trackSkillSearch(context.distinctId, input.query, response.total, response.timing.totalMs, {
195
+ trustTier: filters.trustTier,
196
+ category: filters.category,
197
+ });
198
+ }
199
+ return response;
185
200
  }
186
201
  /**
187
202
  * Format search results for terminal/CLI display.
@@ -229,21 +244,4 @@ export function formatSearchResults(response) {
229
244
  lines.push('Search: ' + response.timing.searchMs + 'ms | Total: ' + response.timing.totalMs + 'ms');
230
245
  return lines.join('\n');
231
246
  }
232
- /**
233
- * Get trust badge for display
234
- */
235
- function getTrustBadge(tier) {
236
- switch (tier) {
237
- case 'verified':
238
- return '[VERIFIED]';
239
- case 'community':
240
- return '[COMMUNITY]';
241
- case 'standard':
242
- return '[STANDARD]';
243
- case 'unverified':
244
- return '[UNVERIFIED]';
245
- default:
246
- return '[UNKNOWN]';
247
- }
248
- }
249
247
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAOL,eAAe,EACf,UAAU,GACX,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAkB;IAC1C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,CAAA;QACpB,KAAK,UAAU;YACb,OAAO,cAAc,CAAA;QACvB,KAAK,YAAY;YACf,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,CAAA;QACpB,KAAK,cAAc;YACjB,OAAO,UAAU,CAAA;QACnB,KAAK,SAAS;YACZ,OAAO,YAAY,CAAA;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8DAA8D;IAC3E,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,IAAI,EAAE;oBACJ,aAAa;oBACb,SAAS;oBACT,eAAe;oBACf,QAAQ;oBACR,UAAU;oBACV,UAAU;oBACV,cAAc;oBACd,aAAa;oBACb,OAAO;oBACP,OAAO;iBACR;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;gBACzC,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;aAC1D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;gBAC5C,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;aACb;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAA;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAkB,EAClB,OAAoB;IAEpB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEnC,iBAAiB;IACjB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,kBAAkB,EAC7B,4CAA4C,CAC7C,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,wBAAwB;IACxB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAyB,CAAA;IACpD,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,UAAuB,CAAA;IACnD,CAAC;IAED,iEAAiE;IACjE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YACjD,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,uBAAuB,EAClC,qCAAqC,EACrC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAC5C,CAAA;QACH,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,CAAA,CAAC,8BAA8B;IACzE,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAErC,kDAAkD;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEvF,sDAAsD;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,WAAW;QACtB,eAAe,EAAE,OAAO,CAAC,QAAQ;QACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEnC,mDAAmD;IACnD,MAAM,OAAO,GAAwB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;QACrB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE;QACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS;QACtC,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClD,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,uBAAuB;KACjF,CAAC,CAAC,CAAA;IAEH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEjC,OAAO;QACL,OAAO;QACP,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO;QACP,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;SACzC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,CAAA;IAErE,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,CAAA;QAEtD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACjD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,CAAA;YAC5D,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;YAC9E,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAA;YACrC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CACR,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CACxF,CAAA;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAe;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,YAAY,CAAA;QACrB,KAAK,WAAW;YACd,OAAO,aAAa,CAAA;QACtB,KAAK,UAAU;YACb,OAAO,YAAY,CAAA;QACrB,KAAK,YAAY;YACf,OAAO,cAAc,CAAA;QACvB;YACE,OAAO,WAAW,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -46,20 +46,20 @@ export declare const suggestInputSchema: z.ZodObject<{
46
46
  /** Session ID for rate limiting */
47
47
  session_id: z.ZodDefault<z.ZodString>;
48
48
  }, "strip", z.ZodTypeAny, {
49
- project_path: string;
50
- recent_commands: string[];
51
49
  installed_skills: string[];
52
50
  limit: number;
51
+ project_path: string;
52
+ recent_commands: string[];
53
53
  session_id: string;
54
54
  current_file?: string | undefined;
55
55
  error_message?: string | undefined;
56
56
  }, {
57
57
  project_path: string;
58
+ installed_skills?: string[] | undefined;
59
+ limit?: number | undefined;
58
60
  current_file?: string | undefined;
59
61
  recent_commands?: string[] | undefined;
60
62
  error_message?: string | undefined;
61
- installed_skills?: string[] | undefined;
62
- limit?: number | undefined;
63
63
  session_id?: string | undefined;
64
64
  }>;
65
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../../src/tools/suggest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,+BAA+B;;IAE/B,2CAA2C;;IAE3C,wCAAwC;;IAExC,kCAAkC;;IAElC,oCAAoC;;IAEpC,gDAAgD;;IAEhD,mCAAmC;;;;;;;;;;;;;;;;;;EAEnC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iBAAiB;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,oBAAoB;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAA;IACrB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,2BAA2B;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,yBAAyB;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C7B,CAAA;AA2GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAuI1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAuCnE"}
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../../src/tools/suggest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjE;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,+BAA+B;;IAE/B,2CAA2C;;IAE3C,wCAAwC;;IAExC,kCAAkC;;IAElC,oCAAoC;;IAEpC,gDAAgD;;IAEhD,mCAAmC;;;;;;;;;;;;;;;;;;EAEnC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iBAAiB;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,oBAAoB;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAA;IACrB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,2BAA2B;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,yBAAyB;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C7B,CAAA;AA0FD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CAuI1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAuCnE"}
@@ -29,6 +29,7 @@ import { TriggerDetector, ContextScorer } from '@skillsmith/core';
29
29
  import { CodebaseAnalyzer } from '@skillsmith/core';
30
30
  import { SkillMatcher } from '@skillsmith/core';
31
31
  import { RateLimiter } from '@skillsmith/core';
32
+ import { mapTrustTierFromDb, getTrustBadge } from '../utils/validation.js';
32
33
  /**
33
34
  * Zod schema for suggest tool input validation
34
35
  */
@@ -95,22 +96,6 @@ export const suggestToolSchema = {
95
96
  required: ['project_path'],
96
97
  },
97
98
  };
98
- /**
99
- * Map database trust tier to MCP trust tier
100
- */
101
- function mapTrustTierFromDb(dbTier) {
102
- switch (dbTier) {
103
- case 'verified':
104
- return 'verified';
105
- case 'community':
106
- return 'community';
107
- case 'experimental':
108
- return 'standard';
109
- case 'unknown':
110
- default:
111
- return 'unverified';
112
- }
113
- }
114
99
  /**
115
100
  * Transform a database skill to SkillData format for matching
116
101
  */
@@ -322,21 +307,4 @@ export function formatSuggestions(response) {
322
307
  lines.push(`Completed in ${response.timing.totalMs}ms`);
323
308
  return lines.join('\n');
324
309
  }
325
- /**
326
- * Get trust badge for display
327
- */
328
- function getTrustBadge(tier) {
329
- switch (tier) {
330
- case 'verified':
331
- return '[VERIFIED]';
332
- case 'community':
333
- return '[COMMUNITY]';
334
- case 'standard':
335
- return '[STANDARD]';
336
- case 'unverified':
337
- return '[UNVERIFIED]';
338
- default:
339
- return '[UNKNOWN]';
340
- }
341
- }
342
310
  //# sourceMappingURL=suggest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../../src/tools/suggest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,+BAA+B;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,2CAA2C;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,wCAAwC;IACxC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,kCAAkC;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,oCAAoC;IACpC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,mCAAmC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;CAC1C,CAAC,CAAA;AAiDF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,6JAA6J;IAC/J,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,qEAAqE;aACnF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;aAC3C;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,+CAA+C;aAC7D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;gBAChE,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,CAAC;aACX;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;gBAChE,OAAO,EAAE,SAAS;aACnB;SACF;QACD,QAAQ,EAAE,CAAC,cAAc,CAAC;KAC3B;CACF,CAAA;AAyBD;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,CAAA;QACpB,KAAK,cAAc;YACjB,OAAO,UAAU,CAAA;QACnB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,YAAY,CAAA;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,KAOlC;IACC,wDAAwD;IACxD,MAAM,cAAc,GAAG;QACrB,KAAK,CAAC,IAAI;QACV,OAAO,KAAK,CAAC,IAAI,EAAE;QACnB,GAAG,KAAK,CAAC,IAAI,OAAO;QACpB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;KAC/D,CAAA;IAED,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,cAAc;QACd,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QAC3D,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9C,uCAAuC;QACvC,UAAU,EAAE,KAAK,CAAC,IAAI;KACvB,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAoB,EACpB,QAAgB,GAAG;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACxD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACpD,CAAC;AAED,oCAAoC;AACpC,IAAI,WAAW,GAAuB,IAAI,CAAA;AAE1C;;GAEG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,+DAA+D;QAC/D,2EAA2E;QAC3E,WAAW,GAAG,IAAI,WAAW,CAAC;YAC5B,SAAS,EAAE,CAAC,EAAE,8BAA8B;YAC5C,UAAU,EAAE,CAAC,GAAG,GAAG,EAAE,sCAAsC;YAC3D,QAAQ,EAAE,MAAM,EAAE,kBAAkB;YACpC,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,MAAM,EAAE,yCAAyC;SAC5D,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAmB,EACnB,OAAoB;IAEpB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEnC,iBAAiB;IACjB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,KAAK,EACL,UAAU,GACX,GAAG,SAAS,CAAA;IAEb,mBAAmB;IACnB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;IAChC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAE5D,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO;YACL,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,IAAI;YAClB,kBAAkB,EAAE,eAAe,CAAC,OAAO;YAC3C,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;aACnD;SACF,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEvC,8CAA8C;IAC9C,IAAI,eAAe,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;QACvC,eAAe,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE;YACrD,QAAQ,EAAE,GAAG;YACb,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gDAAgD;QAChD,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAA;IAEhE,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAA;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE;QACxD,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,eAAe;QAC/B,YAAY,EAAE,aAAa;QAC3B,aAAa,EAAE,GAAG;KACnB,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IAEnE,6BAA6B;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,YAAY,CAAC,KAAK;YACjC,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,YAAY,CAAC,QAAQ;YACrC,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAClD,UAAU;aACX;SACF,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEvC,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAEhE,uCAAuC;IACvC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;IACtE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACrD,gCAAgC;QAChC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/E,OAAO,KAAK,CAAA;QACd,CAAC;QAED,+CAA+C;QAC/C,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,wCAAwC;IACxC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;QAC/B,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,GAAG;QAClB,aAAa,EAAE,GAAG;KACnB,CAAC,CAAA;IAEF,wCAAwC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;IAEnF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAA;IAEhE,+BAA+B;IAC/B,MAAM,WAAW,GAAsB,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAkB,CAAA;QACvC,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,EAAE;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,aAAa,EAAE,YAAY,CAAC,QAAQ;YACpC,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,aAAa,EAAE,KAAK,CAAC,YAAY;SAClC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,KAAK,EAAE,CAAA;IAEf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAA;IAEzD,OAAO;QACL,WAAW;QACX,aAAa,EAAE,YAAY,CAAC,KAAK;QACjC,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,YAAY,CAAC,QAAQ;QACrC,MAAM,EAAE;YACN,OAAO;YACP,UAAU;YACV,UAAU;SACX;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAE3C,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;QAC3E,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,iCAAiC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACzE,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAA;QACvE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,WAAW,CAAC,MAAM,mBAAmB,CAAC,CAAA;IAEnE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1D,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnE,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;IAEvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAe;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,YAAY,CAAA;QACrB,KAAK,WAAW;YACd,OAAO,aAAa,CAAA;QACtB,KAAK,UAAU;YACb,OAAO,YAAY,CAAA;QACrB,KAAK,YAAY;YACf,OAAO,cAAc,CAAA;QACvB;YACE,OAAO,WAAW,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../../src/tools/suggest.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,9 @@ import type { TrustTier as DBTrustTier, MCPTrustTier, SkillCategory } from '@ski
12
12
  /**
13
13
  * Validate skill ID format.
14
14
  *
15
- * Accepts two formats:
15
+ * Accepts three formats:
16
16
  * - Author/name format: `anthropic/commit`, `community/jest-helper`
17
+ * - Source/author/name format: `github/cyanheads/git-mcp-server`, `claude-plugins/author/skill`
17
18
  * - UUID format: `550e8400-e29b-41d4-a716-446655440000`
18
19
  *
19
20
  * @param id - Skill ID to validate
@@ -21,28 +22,32 @@ import type { TrustTier as DBTrustTier, MCPTrustTier, SkillCategory } from '@ski
21
22
  *
22
23
  * @example
23
24
  * isValidSkillId('anthropic/commit') // true
25
+ * isValidSkillId('github/cyanheads/git-mcp-server') // true
24
26
  * isValidSkillId('invalid-format') // false
25
27
  */
26
28
  export declare function isValidSkillId(id: string): boolean;
27
29
  /**
28
- * Parse a skill ID into author and name components.
30
+ * Parse a skill ID into source, author, and name components.
29
31
  *
30
- * @param id - Skill ID in author/name format
31
- * @returns Object with author and name, or null if invalid format
32
+ * Handles both 2-part (author/name) and 3-part (source/author/name) formats.
33
+ *
34
+ * @param id - Skill ID in author/name or source/author/name format
35
+ * @returns Object with source (optional), author, and name, or null if invalid format
32
36
  *
33
37
  * @example
34
38
  * parseSkillId('anthropic/commit') // { author: 'anthropic', name: 'commit' }
39
+ * parseSkillId('github/cyanheads/git-mcp-server') // { source: 'github', author: 'cyanheads', name: 'git-mcp-server' }
35
40
  * parseSkillId('invalid') // null
36
41
  */
37
42
  export declare function parseSkillId(id: string): {
43
+ source?: string;
38
44
  author: string;
39
45
  name: string;
40
46
  } | null;
41
47
  /**
42
48
  * Map MCP trust tier to database trust tier.
43
49
  *
44
- * MCP types: verified, community, standard, unverified
45
- * DB types: verified, community, experimental, unknown
50
+ * Types are now unified: verified, community, experimental, unknown
46
51
  *
47
52
  * @param mcpTier - MCP trust tier
48
53
  * @returns Database trust tier
@@ -51,13 +56,13 @@ export declare function mapTrustTierToDb(mcpTier: MCPTrustTier): DBTrustTier;
51
56
  /**
52
57
  * Map database trust tier to MCP trust tier.
53
58
  *
54
- * DB types: verified, community, experimental, unknown
55
- * MCP types: verified, community, standard, unverified
59
+ * Accepts string input and validates, returning 'unknown' for invalid values.
60
+ * Types are unified: verified, community, experimental, unknown
56
61
  *
57
- * @param dbTier - Database trust tier
62
+ * @param dbTier - Database trust tier (string or typed)
58
63
  * @returns MCP trust tier
59
64
  */
60
- export declare function mapTrustTierFromDb(dbTier: DBTrustTier): MCPTrustTier;
65
+ export declare function mapTrustTierFromDb(dbTier: DBTrustTier | string): MCPTrustTier;
61
66
  /**
62
67
  * Extract skill category from tags array.
63
68
  *
@@ -73,4 +78,18 @@ export declare function mapTrustTierFromDb(dbTier: DBTrustTier): MCPTrustTier;
73
78
  * extractCategoryFromTags(['random', 'tags']) // 'other'
74
79
  */
75
80
  export declare function extractCategoryFromTags(tags: string[] | undefined | null): SkillCategory;
81
+ /**
82
+ * Get trust badge string for display.
83
+ *
84
+ * Returns a formatted badge string for terminal/CLI display
85
+ * based on the skill's trust tier.
86
+ *
87
+ * @param tier - Trust tier value
88
+ * @returns Formatted badge string (e.g., '[VERIFIED]')
89
+ *
90
+ * @example
91
+ * getTrustBadge('verified') // '[VERIFIED]'
92
+ * getTrustBadge('community') // '[COMMUNITY]'
93
+ */
94
+ export declare function getTrustBadge(tier: MCPTrustTier): string;
76
95
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAkB7F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAWpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,CAsCxF"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAkB7F;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CASlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASjG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,YAAY,CAY7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,CAsCxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAQxD"}
@@ -26,8 +26,9 @@ const VALID_CATEGORIES = [
26
26
  /**
27
27
  * Validate skill ID format.
28
28
  *
29
- * Accepts two formats:
29
+ * Accepts three formats:
30
30
  * - Author/name format: `anthropic/commit`, `community/jest-helper`
31
+ * - Source/author/name format: `github/cyanheads/git-mcp-server`, `claude-plugins/author/skill`
31
32
  * - UUID format: `550e8400-e29b-41d4-a716-446655440000`
32
33
  *
33
34
  * @param id - Skill ID to validate
@@ -35,36 +36,45 @@ const VALID_CATEGORIES = [
35
36
  *
36
37
  * @example
37
38
  * isValidSkillId('anthropic/commit') // true
39
+ * isValidSkillId('github/cyanheads/git-mcp-server') // true
38
40
  * isValidSkillId('invalid-format') // false
39
41
  */
40
42
  export function isValidSkillId(id) {
41
- // Format: author/skill-name or UUID
42
- const authorSlashName = /^[a-z0-9-]+\/[a-z0-9-]+$/i;
43
+ // Format: author/skill-name (2 parts)
44
+ const authorSlashName = /^[a-z0-9_-]+\/[a-z0-9_-]+$/i;
45
+ // Format: source/author/skill-name (3 parts, e.g., github/author/repo)
46
+ const sourceAuthorName = /^[a-z0-9_-]+\/[a-z0-9_-]+\/[a-z0-9_.-]+$/i;
47
+ // UUID format
43
48
  const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
44
- return authorSlashName.test(id) || uuid.test(id);
49
+ return authorSlashName.test(id) || sourceAuthorName.test(id) || uuid.test(id);
45
50
  }
46
51
  /**
47
- * Parse a skill ID into author and name components.
52
+ * Parse a skill ID into source, author, and name components.
48
53
  *
49
- * @param id - Skill ID in author/name format
50
- * @returns Object with author and name, or null if invalid format
54
+ * Handles both 2-part (author/name) and 3-part (source/author/name) formats.
55
+ *
56
+ * @param id - Skill ID in author/name or source/author/name format
57
+ * @returns Object with source (optional), author, and name, or null if invalid format
51
58
  *
52
59
  * @example
53
60
  * parseSkillId('anthropic/commit') // { author: 'anthropic', name: 'commit' }
61
+ * parseSkillId('github/cyanheads/git-mcp-server') // { source: 'github', author: 'cyanheads', name: 'git-mcp-server' }
54
62
  * parseSkillId('invalid') // null
55
63
  */
56
64
  export function parseSkillId(id) {
57
65
  const parts = id.split('/');
58
- if (parts.length !== 2) {
59
- return null;
66
+ if (parts.length === 2) {
67
+ return { author: parts[0], name: parts[1] };
68
+ }
69
+ if (parts.length === 3) {
70
+ return { source: parts[0], author: parts[1], name: parts[2] };
60
71
  }
61
- return { author: parts[0], name: parts[1] };
72
+ return null;
62
73
  }
63
74
  /**
64
75
  * Map MCP trust tier to database trust tier.
65
76
  *
66
- * MCP types: verified, community, standard, unverified
67
- * DB types: verified, community, experimental, unknown
77
+ * Types are now unified: verified, community, experimental, unknown
68
78
  *
69
79
  * @param mcpTier - MCP trust tier
70
80
  * @returns Database trust tier
@@ -75,19 +85,19 @@ export function mapTrustTierToDb(mcpTier) {
75
85
  return 'verified';
76
86
  case 'community':
77
87
  return 'community';
78
- case 'standard':
88
+ case 'experimental':
79
89
  return 'experimental';
80
- case 'unverified':
90
+ case 'unknown':
81
91
  return 'unknown';
82
92
  }
83
93
  }
84
94
  /**
85
95
  * Map database trust tier to MCP trust tier.
86
96
  *
87
- * DB types: verified, community, experimental, unknown
88
- * MCP types: verified, community, standard, unverified
97
+ * Accepts string input and validates, returning 'unknown' for invalid values.
98
+ * Types are unified: verified, community, experimental, unknown
89
99
  *
90
- * @param dbTier - Database trust tier
100
+ * @param dbTier - Database trust tier (string or typed)
91
101
  * @returns MCP trust tier
92
102
  */
93
103
  export function mapTrustTierFromDb(dbTier) {
@@ -97,9 +107,10 @@ export function mapTrustTierFromDb(dbTier) {
97
107
  case 'community':
98
108
  return 'community';
99
109
  case 'experimental':
100
- return 'standard';
110
+ return 'experimental';
101
111
  case 'unknown':
102
- return 'unverified';
112
+ default:
113
+ return 'unknown';
103
114
  }
104
115
  }
105
116
  /**
@@ -150,4 +161,26 @@ export function extractCategoryFromTags(tags) {
150
161
  }
151
162
  return 'other';
152
163
  }
164
+ /**
165
+ * Get trust badge string for display.
166
+ *
167
+ * Returns a formatted badge string for terminal/CLI display
168
+ * based on the skill's trust tier.
169
+ *
170
+ * @param tier - Trust tier value
171
+ * @returns Formatted badge string (e.g., '[VERIFIED]')
172
+ *
173
+ * @example
174
+ * getTrustBadge('verified') // '[VERIFIED]'
175
+ * getTrustBadge('community') // '[COMMUNITY]'
176
+ */
177
+ export function getTrustBadge(tier) {
178
+ const badges = {
179
+ verified: '[VERIFIED]',
180
+ community: '[COMMUNITY]',
181
+ experimental: '[EXPERIMENTAL]',
182
+ unknown: '[UNKNOWN]',
183
+ };
184
+ return badges[tier] ?? '[UNKNOWN]';
185
+ }
153
186
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,16 @@ const SEED_SKILLS = [
70
70
  trustTier: 'experimental',
71
71
  tags: ['git', 'ai', 'commit'],
72
72
  },
73
+ {
74
+ id: 'unknown/untested-tool',
75
+ name: 'untested-tool',
76
+ description: 'A newly submitted skill not yet reviewed or assessed',
77
+ author: 'unknown-contributor',
78
+ repoUrl: 'https://github.com/unknown-contributor/untested-tool',
79
+ qualityScore: 0.45,
80
+ trustTier: 'unknown',
81
+ tags: ['development', 'utility', 'unverified'],
82
+ },
73
83
  ];
74
84
  describe('E2E: skill_compare tool', () => {
75
85
  let db;
@@ -87,7 +97,7 @@ describe('E2E: skill_compare tool', () => {
87
97
  for (const skill of SEED_SKILLS) {
88
98
  skillRepo.create(skill);
89
99
  }
90
- context = createToolContext({ dbPath: TEST_DB_PATH });
100
+ context = createToolContext({ dbPath: TEST_DB_PATH, apiClientConfig: { offlineMode: true } });
91
101
  });
92
102
  afterAll(() => {
93
103
  db?.close();