@skillsmith/mcp-server 0.3.4 → 0.3.6
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/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/__tests__/LocalIndexer.test.d.ts +5 -0
- package/dist/src/__tests__/LocalIndexer.test.d.ts.map +1 -0
- package/dist/src/__tests__/LocalIndexer.test.js +396 -0
- package/dist/src/__tests__/LocalIndexer.test.js.map +1 -0
- package/dist/src/__tests__/get-skill.test.js +195 -0
- package/dist/src/__tests__/get-skill.test.js.map +1 -1
- package/dist/src/__tests__/index-local.test.d.ts +5 -0
- package/dist/src/__tests__/index-local.test.d.ts.map +1 -0
- package/dist/src/__tests__/index-local.test.js +203 -0
- package/dist/src/__tests__/index-local.test.js.map +1 -0
- package/dist/src/__tests__/recommend.test.d.ts +7 -0
- package/dist/src/__tests__/recommend.test.d.ts.map +1 -0
- package/dist/src/__tests__/recommend.test.js +277 -0
- package/dist/src/__tests__/recommend.test.js.map +1 -0
- package/dist/src/__tests__/search.test.js +138 -0
- package/dist/src/__tests__/search.test.js.map +1 -1
- package/dist/src/context.d.ts +6 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +7 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/FrontmatterParser.d.ts +30 -0
- package/dist/src/indexer/FrontmatterParser.d.ts.map +1 -0
- package/dist/src/indexer/FrontmatterParser.js +109 -0
- package/dist/src/indexer/FrontmatterParser.js.map +1 -0
- package/dist/src/indexer/LocalIndexer.d.ts +136 -0
- package/dist/src/indexer/LocalIndexer.d.ts.map +1 -0
- package/dist/src/indexer/LocalIndexer.js +271 -0
- package/dist/src/indexer/LocalIndexer.js.map +1 -0
- package/dist/src/indexer/index.d.ts +8 -0
- package/dist/src/indexer/index.d.ts.map +1 -0
- package/dist/src/indexer/index.js +8 -0
- package/dist/src/indexer/index.js.map +1 -0
- package/dist/src/llm/failover.d.ts +11 -1
- package/dist/src/llm/failover.d.ts.map +1 -1
- package/dist/src/llm/failover.js.map +1 -1
- package/dist/src/middleware/errorFormatter.d.ts +27 -0
- package/dist/src/middleware/errorFormatter.d.ts.map +1 -1
- package/dist/src/middleware/errorFormatter.js +95 -0
- package/dist/src/middleware/errorFormatter.js.map +1 -1
- package/dist/src/middleware/index.d.ts +1 -1
- package/dist/src/middleware/index.d.ts.map +1 -1
- package/dist/src/middleware/index.js.map +1 -1
- package/dist/src/middleware/quota-helpers.d.ts +40 -0
- package/dist/src/middleware/quota-helpers.d.ts.map +1 -0
- package/dist/src/middleware/quota-helpers.js +90 -0
- package/dist/src/middleware/quota-helpers.js.map +1 -0
- package/dist/src/middleware/quota-types.d.ts +105 -0
- package/dist/src/middleware/quota-types.d.ts.map +1 -0
- package/dist/src/middleware/quota-types.js +4 -0
- package/dist/src/middleware/quota-types.js.map +1 -0
- package/dist/src/middleware/quota.d.ts +3 -97
- package/dist/src/middleware/quota.d.ts.map +1 -1
- package/dist/src/middleware/quota.js +2 -87
- package/dist/src/middleware/quota.js.map +1 -1
- package/dist/src/tools/LocalSkillSearch.d.ts +32 -0
- package/dist/src/tools/LocalSkillSearch.d.ts.map +1 -0
- package/dist/src/tools/LocalSkillSearch.js +74 -0
- package/dist/src/tools/LocalSkillSearch.js.map +1 -0
- package/dist/src/tools/compare.helpers.js.map +1 -1
- package/dist/src/tools/compare.types.d.ts +1 -0
- package/dist/src/tools/compare.types.d.ts.map +1 -1
- package/dist/src/tools/compare.types.js +2 -0
- package/dist/src/tools/compare.types.js.map +1 -1
- package/dist/src/tools/get-skill.js +3 -0
- package/dist/src/tools/get-skill.js.map +1 -1
- package/dist/src/tools/index-local.d.ts +117 -0
- package/dist/src/tools/index-local.d.ts.map +1 -0
- package/dist/src/tools/index-local.js +126 -0
- package/dist/src/tools/index-local.js.map +1 -0
- package/dist/src/tools/index.d.ts +2 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +2 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/install.conflict-helpers.d.ts +64 -0
- package/dist/src/tools/install.conflict-helpers.d.ts.map +1 -0
- package/dist/src/tools/install.conflict-helpers.js +165 -0
- package/dist/src/tools/install.conflict-helpers.js.map +1 -0
- package/dist/src/tools/install.conflict-helpers.test.d.ts +15 -0
- package/dist/src/tools/install.conflict-helpers.test.d.ts.map +1 -0
- package/dist/src/tools/install.conflict-helpers.test.js +243 -0
- package/dist/src/tools/install.conflict-helpers.test.js.map +1 -0
- package/dist/src/tools/install.conflict.d.ts +58 -0
- package/dist/src/tools/install.conflict.d.ts.map +1 -0
- package/dist/src/tools/install.conflict.js +160 -0
- package/dist/src/tools/install.conflict.js.map +1 -0
- package/dist/src/tools/install.conflict.test.d.ts +15 -0
- package/dist/src/tools/install.conflict.test.d.ts.map +1 -0
- package/dist/src/tools/install.conflict.test.js +354 -0
- package/dist/src/tools/install.conflict.test.js.map +1 -0
- package/dist/src/tools/install.d.ts +5 -0
- package/dist/src/tools/install.d.ts.map +1 -1
- package/dist/src/tools/install.helpers.d.ts +5 -4
- package/dist/src/tools/install.helpers.d.ts.map +1 -1
- package/dist/src/tools/install.helpers.js +13 -4
- package/dist/src/tools/install.helpers.js.map +1 -1
- package/dist/src/tools/install.js +96 -17
- package/dist/src/tools/install.js.map +1 -1
- package/dist/src/tools/install.types.d.ts +75 -11
- package/dist/src/tools/install.types.d.ts.map +1 -1
- package/dist/src/tools/install.types.js +15 -1
- package/dist/src/tools/install.types.js.map +1 -1
- package/dist/src/tools/merge.d.ts +53 -0
- package/dist/src/tools/merge.d.ts.map +1 -0
- package/dist/src/tools/merge.js +276 -0
- package/dist/src/tools/merge.js.map +1 -0
- package/dist/src/tools/merge.test.d.ts +11 -0
- package/dist/src/tools/merge.test.d.ts.map +1 -0
- package/dist/src/tools/merge.test.js +224 -0
- package/dist/src/tools/merge.test.js.map +1 -0
- package/dist/src/tools/recommend.d.ts +1 -0
- package/dist/src/tools/recommend.d.ts.map +1 -1
- package/dist/src/tools/recommend.js +165 -38
- package/dist/src/tools/recommend.js.map +1 -1
- package/dist/src/tools/search.d.ts.map +1 -1
- package/dist/src/tools/search.js +31 -4
- package/dist/src/tools/search.js.map +1 -1
- package/dist/src/utils/validation.d.ts +6 -2
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/validation.js +11 -2
- package/dist/src/utils/validation.js.map +1 -1
- package/dist/src/webhooks/webhook-endpoint.d.ts +4 -49
- package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -1
- package/dist/src/webhooks/webhook-endpoint.js +3 -125
- package/dist/src/webhooks/webhook-endpoint.js.map +1 -1
- package/dist/src/webhooks/webhook-helpers.d.ts +69 -0
- package/dist/src/webhooks/webhook-helpers.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-helpers.js +146 -0
- package/dist/src/webhooks/webhook-helpers.js.map +1 -0
- package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts +12 -0
- package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/conflict-resolution.e2e.test.js +343 -0
- package/dist/tests/e2e/conflict-resolution.e2e.test.js.map +1 -0
- package/dist/tests/integration/fixtures/development-skills.d.ts +22 -0
- package/dist/tests/integration/fixtures/development-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/development-skills.js +165 -0
- package/dist/tests/integration/fixtures/development-skills.js.map +1 -0
- package/dist/tests/integration/fixtures/devops-skills.d.ts +10 -0
- package/dist/tests/integration/fixtures/devops-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/devops-skills.js +70 -0
- package/dist/tests/integration/fixtures/devops-skills.js.map +1 -0
- package/dist/tests/integration/fixtures/experimental-skills.d.ts +14 -0
- package/dist/tests/integration/fixtures/experimental-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/experimental-skills.js +255 -0
- package/dist/tests/integration/fixtures/experimental-skills.js.map +1 -0
- package/dist/tests/integration/fixtures/skill-types.d.ts +18 -0
- package/dist/tests/integration/fixtures/skill-types.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/skill-types.js +6 -0
- package/dist/tests/integration/fixtures/skill-types.js.map +1 -0
- package/dist/tests/integration/fixtures/test-skills.d.ts +10 -14
- package/dist/tests/integration/fixtures/test-skills.d.ts.map +1 -1
- package/dist/tests/integration/fixtures/test-skills.js +23 -590
- package/dist/tests/integration/fixtures/test-skills.js.map +1 -1
- package/dist/tests/integration/fixtures/testing-skills.d.ts +10 -0
- package/dist/tests/integration/fixtures/testing-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/testing-skills.js +70 -0
- package/dist/tests/integration/fixtures/testing-skills.js.map +1 -0
- package/dist/tests/integration/fixtures/verified-skills.d.ts +11 -0
- package/dist/tests/integration/fixtures/verified-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/verified-skills.js +91 -0
- package/dist/tests/integration/fixtures/verified-skills.js.map +1 -0
- package/dist/tests/integration/install-conflict.integration.test.d.ts +8 -0
- package/dist/tests/integration/install-conflict.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/install-conflict.integration.test.js +384 -0
- package/dist/tests/integration/install-conflict.integration.test.js.map +1 -0
- package/dist/tests/integration/install-trust-parsing.integration.test.d.ts +13 -0
- package/dist/tests/integration/install-trust-parsing.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/install-trust-parsing.integration.test.js +290 -0
- package/dist/tests/integration/install-trust-parsing.integration.test.js.map +1 -0
- package/dist/tests/integration/install.integration.test.js +3 -0
- package/dist/tests/integration/install.integration.test.js.map +1 -1
- package/package.json +7 -6
|
@@ -84,4 +84,142 @@ describe('Search Tool', () => {
|
|
|
84
84
|
});
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
+
/**
|
|
88
|
+
* SMI-1785: Additional tests for search.ts branch coverage
|
|
89
|
+
* Covers validation errors, filter combinations, and edge cases
|
|
90
|
+
*/
|
|
91
|
+
describe('Search Tool branch coverage', () => {
|
|
92
|
+
let branchContext;
|
|
93
|
+
beforeAll(() => {
|
|
94
|
+
branchContext = createSeededTestContext();
|
|
95
|
+
});
|
|
96
|
+
afterAll(() => {
|
|
97
|
+
branchContext.db.close();
|
|
98
|
+
});
|
|
99
|
+
describe('validation errors', () => {
|
|
100
|
+
it('should throw error for negative min_score', async () => {
|
|
101
|
+
await expect(executeSearch({ query: 'test', min_score: -10 }, branchContext)).rejects.toThrow(SkillsmithError);
|
|
102
|
+
});
|
|
103
|
+
it('should throw error for invalid trust_tier', async () => {
|
|
104
|
+
try {
|
|
105
|
+
await executeSearch({ query: 'test', trust_tier: 'invalid_tier' }, branchContext);
|
|
106
|
+
expect.fail('Should have thrown an error');
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
expect(error).toBeInstanceOf(SkillsmithError);
|
|
110
|
+
expect(error.message).toContain('Invalid trust_tier');
|
|
111
|
+
expect(error.message).toContain('invalid_tier');
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
it('should throw error for negative max_risk', async () => {
|
|
115
|
+
try {
|
|
116
|
+
await executeSearch({ query: 'test', max_risk: -5 }, branchContext);
|
|
117
|
+
expect.fail('Should have thrown an error');
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
expect(error).toBeInstanceOf(SkillsmithError);
|
|
121
|
+
expect(error.message).toContain('max_risk must be between 0 and 100');
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
it('should throw error for max_risk over 100', async () => {
|
|
125
|
+
try {
|
|
126
|
+
await executeSearch({ query: 'test', max_risk: 150 }, branchContext);
|
|
127
|
+
expect.fail('Should have thrown an error');
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
expect(error).toBeInstanceOf(SkillsmithError);
|
|
131
|
+
expect(error.message).toContain('max_risk must be between 0 and 100');
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe('security filters', () => {
|
|
136
|
+
it('should accept safe_only filter', async () => {
|
|
137
|
+
const result = await executeSearch({
|
|
138
|
+
query: 'commit',
|
|
139
|
+
safe_only: true,
|
|
140
|
+
}, branchContext);
|
|
141
|
+
expect(result.results).toBeDefined();
|
|
142
|
+
expect(result.filters.safeOnly).toBe(true);
|
|
143
|
+
});
|
|
144
|
+
it('should accept max_risk filter', async () => {
|
|
145
|
+
const result = await executeSearch({
|
|
146
|
+
query: 'commit',
|
|
147
|
+
max_risk: 50,
|
|
148
|
+
}, branchContext);
|
|
149
|
+
expect(result.results).toBeDefined();
|
|
150
|
+
expect(result.filters.maxRiskScore).toBe(50);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
describe('filter-only search (no query)', () => {
|
|
154
|
+
it('should allow search with only category filter', async () => {
|
|
155
|
+
const result = await executeSearch({
|
|
156
|
+
category: 'testing',
|
|
157
|
+
}, branchContext);
|
|
158
|
+
expect(result.results).toBeDefined();
|
|
159
|
+
expect(result.query).toBe('');
|
|
160
|
+
expect(result.filters.category).toBe('testing');
|
|
161
|
+
});
|
|
162
|
+
it('should allow search with only trust_tier filter', async () => {
|
|
163
|
+
const result = await executeSearch({
|
|
164
|
+
trust_tier: 'verified',
|
|
165
|
+
}, branchContext);
|
|
166
|
+
expect(result.results).toBeDefined();
|
|
167
|
+
expect(result.query).toBe('');
|
|
168
|
+
expect(result.filters.trustTier).toBe('verified');
|
|
169
|
+
});
|
|
170
|
+
it('should allow search with only min_score filter', async () => {
|
|
171
|
+
const result = await executeSearch({
|
|
172
|
+
min_score: 90,
|
|
173
|
+
}, branchContext);
|
|
174
|
+
expect(result.results).toBeDefined();
|
|
175
|
+
expect(result.query).toBe('');
|
|
176
|
+
});
|
|
177
|
+
it('should allow search with only safe_only filter', async () => {
|
|
178
|
+
const result = await executeSearch({
|
|
179
|
+
safe_only: true,
|
|
180
|
+
}, branchContext);
|
|
181
|
+
expect(result.results).toBeDefined();
|
|
182
|
+
expect(result.query).toBe('');
|
|
183
|
+
expect(result.filters.safeOnly).toBe(true);
|
|
184
|
+
});
|
|
185
|
+
it('should allow search with only max_risk filter', async () => {
|
|
186
|
+
const result = await executeSearch({
|
|
187
|
+
max_risk: 30,
|
|
188
|
+
}, branchContext);
|
|
189
|
+
expect(result.results).toBeDefined();
|
|
190
|
+
expect(result.query).toBe('');
|
|
191
|
+
expect(result.filters.maxRiskScore).toBe(30);
|
|
192
|
+
});
|
|
193
|
+
it('should allow search with multiple filters (no query)', async () => {
|
|
194
|
+
const result = await executeSearch({
|
|
195
|
+
category: 'testing',
|
|
196
|
+
trust_tier: 'community',
|
|
197
|
+
min_score: 70,
|
|
198
|
+
safe_only: true,
|
|
199
|
+
}, branchContext);
|
|
200
|
+
expect(result.results).toBeDefined();
|
|
201
|
+
expect(result.query).toBe('');
|
|
202
|
+
expect(result.filters.category).toBe('testing');
|
|
203
|
+
expect(result.filters.trustTier).toBe('community');
|
|
204
|
+
expect(result.filters.safeOnly).toBe(true);
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
describe('combined query and filters', () => {
|
|
208
|
+
it('should accept all filters together', async () => {
|
|
209
|
+
const result = await executeSearch({
|
|
210
|
+
query: 'test',
|
|
211
|
+
category: 'testing',
|
|
212
|
+
trust_tier: 'community',
|
|
213
|
+
min_score: 70,
|
|
214
|
+
safe_only: true,
|
|
215
|
+
max_risk: 40,
|
|
216
|
+
}, branchContext);
|
|
217
|
+
expect(result.results).toBeDefined();
|
|
218
|
+
expect(result.filters.category).toBe('testing');
|
|
219
|
+
expect(result.filters.trustTier).toBe('community');
|
|
220
|
+
expect(result.filters.safeOnly).toBe(true);
|
|
221
|
+
expect(result.filters.maxRiskScore).toBe(40);
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
});
|
|
87
225
|
//# sourceMappingURL=search.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../../src/__tests__/search.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../../src/__tests__/search.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/context.d.ts
CHANGED
|
@@ -92,6 +92,12 @@ export interface ToolContextOptions {
|
|
|
92
92
|
searchCacheTtl?: number;
|
|
93
93
|
/** API client configuration (SMI-1183) */
|
|
94
94
|
apiClientConfig?: ApiClientConfig;
|
|
95
|
+
/**
|
|
96
|
+
* API key for authenticated requests
|
|
97
|
+
* Can also be set via SKILLSMITH_API_KEY env var
|
|
98
|
+
* SMI-XXXX: API Key Authentication
|
|
99
|
+
*/
|
|
100
|
+
apiKey?: string;
|
|
95
101
|
/**
|
|
96
102
|
* Telemetry configuration (SMI-1184)
|
|
97
103
|
* Privacy-first: telemetry is OPT-IN and disabled by default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAGL,aAAa,EACb,eAAe,EAEf,mBAAmB,EAOnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAGL,aAAa,EACb,eAAe,EAEf,mBAAmB,EAOnB,qBAAqB,EAErB,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,EAAE,EAAE,YAAY,CAAA;IAChB,+CAA+C;IAC/C,aAAa,EAAE,aAAa,CAAA;IAC5B,sDAAsD;IACtD,eAAe,EAAE,eAAe,CAAA;IAChC,iDAAiD;IACjD,SAAS,EAAE,mBAAmB,CAAA;IAC9B,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,oEAAoE;IACpE,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAqBzC;AAeD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CA+K/E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1E;AAKD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAUxE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD"}
|
package/dist/src/context.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import { homedir } from 'os';
|
|
21
21
|
import { join, dirname } from 'path';
|
|
22
22
|
import { mkdirSync, existsSync } from 'fs';
|
|
23
|
-
import { createDatabase, openDatabase, SearchService, SkillRepository, validateDbPath, SkillsmithApiClient, initializePostHog, shutdownPostHog, generateAnonymousId, SyncConfigRepository, SyncHistoryRepository, SyncEngine, BackgroundSyncService, } from '@skillsmith/core';
|
|
23
|
+
import { createDatabase, openDatabase, SearchService, SkillRepository, validateDbPath, SkillsmithApiClient, initializePostHog, shutdownPostHog, generateAnonymousId, SyncConfigRepository, SyncHistoryRepository, SyncEngine, BackgroundSyncService, getApiKey, } from '@skillsmith/core';
|
|
24
24
|
import { LLMFailoverChain } from './llm/failover.js';
|
|
25
25
|
/**
|
|
26
26
|
* Get the default database path
|
|
@@ -58,6 +58,8 @@ function ensureDbDirectory(dbPath) {
|
|
|
58
58
|
mkdirSync(dir, { recursive: true });
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
+
// SMI-1851: API key loading moved to @skillsmith/core/config
|
|
62
|
+
// Use getApiKey() which handles env var > config file precedence
|
|
61
63
|
/**
|
|
62
64
|
* Create the shared tool context with database and services
|
|
63
65
|
*
|
|
@@ -117,11 +119,15 @@ export function createToolContext(options = {}) {
|
|
|
117
119
|
cacheTtl: options.searchCacheTtl ?? 300,
|
|
118
120
|
});
|
|
119
121
|
const skillRepository = new SkillRepository(db);
|
|
122
|
+
// SMI-XXXX: Get API key from options, env, or config file
|
|
123
|
+
// SMI-1851: Use shared config module (handles env var > config file precedence)
|
|
124
|
+
const apiKey = options.apiKey || getApiKey();
|
|
120
125
|
// SMI-1183: Initialize API client with configuration
|
|
121
126
|
// API is primary data source; local DB is fallback
|
|
122
127
|
const apiClient = new SkillsmithApiClient({
|
|
123
128
|
baseUrl: options.apiClientConfig?.baseUrl,
|
|
124
129
|
anonKey: options.apiClientConfig?.anonKey,
|
|
130
|
+
apiKey,
|
|
125
131
|
timeout: options.apiClientConfig?.timeout ?? 10000, // 10s default
|
|
126
132
|
maxRetries: options.apiClientConfig?.maxRetries ?? 3,
|
|
127
133
|
debug: options.apiClientConfig?.debug,
|
package/dist/src/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAE1C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { recommendToolSchema, recommendInputSchema, executeRecommend } from './t
|
|
|
19
19
|
import { validateToolSchema, validateInputSchema, executeValidate } from './tools/validate.js';
|
|
20
20
|
import { compareToolSchema, compareInputSchema, executeCompare } from './tools/compare.js';
|
|
21
21
|
import { suggestToolSchema, suggestInputSchema, executeSuggest } from './tools/suggest.js';
|
|
22
|
+
import { indexLocalToolSchema, indexLocalInputSchema, executeIndexLocal, } from './tools/index-local.js';
|
|
22
23
|
import { isFirstRun, markFirstRunComplete, getWelcomeMessage, TIER1_SKILLS, } from './onboarding/first-run.js';
|
|
23
24
|
import { installBundledSkills, installUserDocs, getUserGuidePath, } from './onboarding/install-assets.js';
|
|
24
25
|
// Initialize tool context with database connection
|
|
@@ -33,6 +34,7 @@ const toolDefinitions = [
|
|
|
33
34
|
validateToolSchema,
|
|
34
35
|
compareToolSchema,
|
|
35
36
|
suggestToolSchema,
|
|
37
|
+
indexLocalToolSchema,
|
|
36
38
|
];
|
|
37
39
|
// Create server
|
|
38
40
|
const server = new Server({
|
|
@@ -154,6 +156,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
154
156
|
],
|
|
155
157
|
};
|
|
156
158
|
}
|
|
159
|
+
case 'index_local': {
|
|
160
|
+
const input = indexLocalInputSchema.parse(args);
|
|
161
|
+
const result = await executeIndexLocal(input, toolContext);
|
|
162
|
+
return {
|
|
163
|
+
content: [
|
|
164
|
+
{
|
|
165
|
+
type: 'text',
|
|
166
|
+
text: JSON.stringify(result, null, 2),
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
};
|
|
170
|
+
}
|
|
157
171
|
default:
|
|
158
172
|
throw new Error('Unknown tool: ' + name);
|
|
159
173
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAElG,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAsB,MAAM,sBAAsB,CAAA;AAC9F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC1F,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClG,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC9F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AAEvC,mDAAmD;AACnD,IAAI,WAAwB,CAAA;AAE5B,2BAA2B;AAC3B,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FrontmatterParser - YAML frontmatter parsing for SKILL.md files
|
|
3
|
+
* @module @skillsmith/mcp-server/indexer/FrontmatterParser
|
|
4
|
+
* @see SMI-1829: Split LocalIndexer.ts to comply with 500-line governance limit
|
|
5
|
+
*
|
|
6
|
+
* Provides YAML frontmatter parsing functionality extracted from LocalIndexer
|
|
7
|
+
* for better modularity and governance compliance.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Parsed SKILL.md frontmatter fields
|
|
11
|
+
*/
|
|
12
|
+
export interface SkillFrontmatter {
|
|
13
|
+
name: string | null;
|
|
14
|
+
description: string | null;
|
|
15
|
+
author: string | null;
|
|
16
|
+
tags: string[];
|
|
17
|
+
version: string | null;
|
|
18
|
+
triggers: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse SKILL.md frontmatter to extract metadata.
|
|
22
|
+
*
|
|
23
|
+
* Supports YAML frontmatter delimited by `---` lines.
|
|
24
|
+
* Extracts name, description, author, tags, version, and triggers.
|
|
25
|
+
*
|
|
26
|
+
* @param content - Content of the SKILL.md file
|
|
27
|
+
* @returns Parsed frontmatter fields
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseFrontmatter(content: string): SkillFrontmatter;
|
|
30
|
+
//# sourceMappingURL=FrontmatterParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrontmatterParser.d.ts","sourceRoot":"","sources":["../../../src/indexer/FrontmatterParser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAsGlE"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FrontmatterParser - YAML frontmatter parsing for SKILL.md files
|
|
3
|
+
* @module @skillsmith/mcp-server/indexer/FrontmatterParser
|
|
4
|
+
* @see SMI-1829: Split LocalIndexer.ts to comply with 500-line governance limit
|
|
5
|
+
*
|
|
6
|
+
* Provides YAML frontmatter parsing functionality extracted from LocalIndexer
|
|
7
|
+
* for better modularity and governance compliance.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Parse SKILL.md frontmatter to extract metadata.
|
|
11
|
+
*
|
|
12
|
+
* Supports YAML frontmatter delimited by `---` lines.
|
|
13
|
+
* Extracts name, description, author, tags, version, and triggers.
|
|
14
|
+
*
|
|
15
|
+
* @param content - Content of the SKILL.md file
|
|
16
|
+
* @returns Parsed frontmatter fields
|
|
17
|
+
*/
|
|
18
|
+
export function parseFrontmatter(content) {
|
|
19
|
+
const result = {
|
|
20
|
+
name: null,
|
|
21
|
+
description: null,
|
|
22
|
+
author: null,
|
|
23
|
+
tags: [],
|
|
24
|
+
version: null,
|
|
25
|
+
triggers: [],
|
|
26
|
+
};
|
|
27
|
+
// Check for frontmatter (starts with ---)
|
|
28
|
+
if (!content.startsWith('---')) {
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
// Find the closing --- delimiter
|
|
32
|
+
const secondDelimiterIndex = content.indexOf('---', 3);
|
|
33
|
+
if (secondDelimiterIndex === -1) {
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
// Extract frontmatter content
|
|
37
|
+
const frontmatter = content.substring(3, secondDelimiterIndex).trim();
|
|
38
|
+
// Parse YAML-like frontmatter (simple key: value parsing)
|
|
39
|
+
const lines = frontmatter.split('\n');
|
|
40
|
+
let currentKey = null;
|
|
41
|
+
let inArray = false;
|
|
42
|
+
for (const line of lines) {
|
|
43
|
+
const trimmedLine = line.trim();
|
|
44
|
+
// Skip empty lines
|
|
45
|
+
if (!trimmedLine)
|
|
46
|
+
continue;
|
|
47
|
+
// Check for array item (starts with -)
|
|
48
|
+
if (trimmedLine.startsWith('- ') && currentKey && inArray) {
|
|
49
|
+
const value = trimmedLine
|
|
50
|
+
.substring(2)
|
|
51
|
+
.trim()
|
|
52
|
+
.replace(/^["']|["']$/g, '');
|
|
53
|
+
if (currentKey === 'tags' && value) {
|
|
54
|
+
result.tags.push(value);
|
|
55
|
+
}
|
|
56
|
+
else if (currentKey === 'triggers' && value) {
|
|
57
|
+
result.triggers.push(value);
|
|
58
|
+
}
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
// Check for key: value pair
|
|
62
|
+
const colonIndex = trimmedLine.indexOf(':');
|
|
63
|
+
if (colonIndex === -1)
|
|
64
|
+
continue;
|
|
65
|
+
const key = trimmedLine.substring(0, colonIndex).trim().toLowerCase();
|
|
66
|
+
const value = trimmedLine.substring(colonIndex + 1).trim();
|
|
67
|
+
// Handle empty value (might be start of array)
|
|
68
|
+
if (!value) {
|
|
69
|
+
currentKey = key;
|
|
70
|
+
inArray = true;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// Parse inline arrays: tags: [testing, development]
|
|
74
|
+
if (value.startsWith('[') && value.endsWith(']')) {
|
|
75
|
+
const arrayContent = value.slice(1, -1);
|
|
76
|
+
const items = arrayContent.split(',').map((item) => item.trim().replace(/^["']|["']$/g, ''));
|
|
77
|
+
if (key === 'tags') {
|
|
78
|
+
result.tags = items.filter(Boolean);
|
|
79
|
+
}
|
|
80
|
+
else if (key === 'triggers') {
|
|
81
|
+
result.triggers = items.filter(Boolean);
|
|
82
|
+
}
|
|
83
|
+
currentKey = null;
|
|
84
|
+
inArray = false;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
// Clean quoted values
|
|
88
|
+
const cleanValue = value.replace(/^["']|["']$/g, '');
|
|
89
|
+
// Assign to appropriate field
|
|
90
|
+
switch (key) {
|
|
91
|
+
case 'name':
|
|
92
|
+
result.name = cleanValue;
|
|
93
|
+
break;
|
|
94
|
+
case 'description':
|
|
95
|
+
result.description = cleanValue;
|
|
96
|
+
break;
|
|
97
|
+
case 'author':
|
|
98
|
+
result.author = cleanValue;
|
|
99
|
+
break;
|
|
100
|
+
case 'version':
|
|
101
|
+
result.version = cleanValue;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
currentKey = key;
|
|
105
|
+
inArray = false;
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=FrontmatterParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrontmatterParser.js","sourceRoot":"","sources":["../../../src/indexer/FrontmatterParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LocalIndexer - Scans and indexes skills from ~/.claude/skills/
|
|
3
|
+
* @module @skillsmith/mcp-server/indexer/LocalIndexer
|
|
4
|
+
* @see SMI-1809: Local skill indexing for MCP server
|
|
5
|
+
*
|
|
6
|
+
* Provides local skill discovery by scanning the user's skills directory,
|
|
7
|
+
* parsing SKILL.md files for metadata, and returning searchable skill objects.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const indexer = new LocalIndexer();
|
|
11
|
+
* const skills = await indexer.index();
|
|
12
|
+
* console.log(`Indexed ${skills.length} local skills`);
|
|
13
|
+
*/
|
|
14
|
+
import { type SkillFrontmatter } from './FrontmatterParser.js';
|
|
15
|
+
/**
|
|
16
|
+
* Local skill metadata extracted from SKILL.md
|
|
17
|
+
*/
|
|
18
|
+
export interface LocalSkill {
|
|
19
|
+
/** Unique ID: local/{name} */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Skill name from frontmatter or directory name */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Description from frontmatter */
|
|
24
|
+
description: string | null;
|
|
25
|
+
/** Author from frontmatter (defaults to "local") */
|
|
26
|
+
author: string;
|
|
27
|
+
/** Tags from frontmatter */
|
|
28
|
+
tags: string[];
|
|
29
|
+
/** Calculated quality score (0-100) */
|
|
30
|
+
qualityScore: number;
|
|
31
|
+
/** Trust tier is always "local" for local skills */
|
|
32
|
+
trustTier: 'local';
|
|
33
|
+
/** Source identifier */
|
|
34
|
+
source: 'local';
|
|
35
|
+
/** Full path to the skill directory */
|
|
36
|
+
path: string;
|
|
37
|
+
/** Whether SKILL.md was found */
|
|
38
|
+
hasSkillMd: boolean;
|
|
39
|
+
/** Last modified timestamp */
|
|
40
|
+
lastModified: string | null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* LocalIndexer class for scanning and indexing local skills
|
|
44
|
+
*/
|
|
45
|
+
export declare class LocalIndexer {
|
|
46
|
+
private skillsDir;
|
|
47
|
+
private cachedSkills;
|
|
48
|
+
private lastIndexTime;
|
|
49
|
+
private cacheTtl;
|
|
50
|
+
/**
|
|
51
|
+
* Create a new LocalIndexer
|
|
52
|
+
* @param skillsDir - Custom skills directory (defaults to ~/.claude/skills/)
|
|
53
|
+
* @param cacheTtl - Cache TTL in milliseconds (defaults to 60000 = 1 minute)
|
|
54
|
+
*/
|
|
55
|
+
constructor(skillsDir?: string, cacheTtl?: number);
|
|
56
|
+
/**
|
|
57
|
+
* Calculate quality score for a local skill.
|
|
58
|
+
*
|
|
59
|
+
* Scoring is based on:
|
|
60
|
+
* - Presence of SKILL.md file (20 points)
|
|
61
|
+
* - Has name in frontmatter (10 points)
|
|
62
|
+
* - Has description (20 points)
|
|
63
|
+
* - Description length up to 200 chars (15 points)
|
|
64
|
+
* - Has tags (15 points)
|
|
65
|
+
* - Tag count up to 5 (15 points)
|
|
66
|
+
* - Has author (5 points)
|
|
67
|
+
*
|
|
68
|
+
* @param frontmatter - Parsed frontmatter
|
|
69
|
+
* @param hasSkillMd - Whether SKILL.md exists
|
|
70
|
+
* @returns Quality score from 0-100
|
|
71
|
+
*/
|
|
72
|
+
calculateQualityScore(frontmatter: SkillFrontmatter, hasSkillMd: boolean): number;
|
|
73
|
+
/**
|
|
74
|
+
* Index a single skill directory.
|
|
75
|
+
*
|
|
76
|
+
* @param skillDir - Path to the skill directory
|
|
77
|
+
* @param dirName - Name of the directory
|
|
78
|
+
* @returns LocalSkill object or null if directory should be skipped
|
|
79
|
+
*/
|
|
80
|
+
indexSkillDir(skillDir: string, dirName: string): LocalSkill | null;
|
|
81
|
+
/**
|
|
82
|
+
* Internal method that performs the actual indexing.
|
|
83
|
+
* Called by both index() and indexSync() to avoid code duplication.
|
|
84
|
+
*
|
|
85
|
+
* @param force - Force re-index even if cache is valid
|
|
86
|
+
* @returns Array of LocalSkill objects
|
|
87
|
+
* @see SMI-1834: Refactor to reduce code duplication
|
|
88
|
+
*/
|
|
89
|
+
private _performIndex;
|
|
90
|
+
/**
|
|
91
|
+
* Index all skills in the skills directory.
|
|
92
|
+
*
|
|
93
|
+
* Scans ~/.claude/skills/ for subdirectories, parses SKILL.md files,
|
|
94
|
+
* and returns an array of LocalSkill objects.
|
|
95
|
+
*
|
|
96
|
+
* @param force - Force re-index even if cache is valid
|
|
97
|
+
* @returns Promise resolving to array of LocalSkill objects
|
|
98
|
+
*/
|
|
99
|
+
index(force?: boolean): Promise<LocalSkill[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Synchronous version of index for use in non-async contexts.
|
|
102
|
+
*
|
|
103
|
+
* @param force - Force re-index even if cache is valid
|
|
104
|
+
* @returns Array of LocalSkill objects
|
|
105
|
+
*/
|
|
106
|
+
indexSync(force?: boolean): LocalSkill[];
|
|
107
|
+
/**
|
|
108
|
+
* Clear the internal cache.
|
|
109
|
+
* Forces re-indexing on next call to index().
|
|
110
|
+
*/
|
|
111
|
+
clearCache(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Get the skills directory path.
|
|
114
|
+
*/
|
|
115
|
+
getSkillsDir(): string;
|
|
116
|
+
/**
|
|
117
|
+
* Search local skills by query.
|
|
118
|
+
*
|
|
119
|
+
* Performs case-insensitive search across name, description, and tags.
|
|
120
|
+
*
|
|
121
|
+
* @param query - Search query string
|
|
122
|
+
* @param skills - Array of skills to search (optional, uses cached if not provided)
|
|
123
|
+
* @returns Filtered array of matching skills
|
|
124
|
+
*/
|
|
125
|
+
search(query: string, skills?: LocalSkill[]): LocalSkill[];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get the default LocalIndexer instance.
|
|
129
|
+
* Creates one if it doesn't exist.
|
|
130
|
+
*/
|
|
131
|
+
export declare function getLocalIndexer(): LocalIndexer;
|
|
132
|
+
/**
|
|
133
|
+
* Reset the default LocalIndexer instance (for testing).
|
|
134
|
+
*/
|
|
135
|
+
export declare function resetLocalIndexer(): void;
|
|
136
|
+
//# sourceMappingURL=LocalIndexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalIndexer.d.ts","sourceRoot":"","sources":["../../../src/indexer/LocalIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,mCAAmC;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAA;IAClB,wBAAwB;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,UAAU,EAAE,OAAO,CAAA;IACnB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAeD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAQ;IAExB;;;;OAIG;gBACS,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAc;IAKxD;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM;IAqCjF;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAkDnE;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAkDrB;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI1D;;;;;OAKG;IACH,SAAS,CAAC,KAAK,GAAE,OAAe,GAAG,UAAU,EAAE;IAI/C;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;CA4B3D;AAKD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|