@skillsmith/mcp-server 0.5.1 → 0.5.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 (59) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/__tests__/LocalIndexer.empty-dir.test.d.ts +21 -0
  4. package/dist/src/__tests__/LocalIndexer.empty-dir.test.d.ts.map +1 -0
  5. package/dist/src/__tests__/LocalIndexer.empty-dir.test.js +38 -0
  6. package/dist/src/__tests__/LocalIndexer.empty-dir.test.js.map +1 -0
  7. package/dist/src/__tests__/get-skill.test.js +5 -0
  8. package/dist/src/__tests__/get-skill.test.js.map +1 -1
  9. package/dist/src/__tests__/search-installable.test.d.ts +11 -0
  10. package/dist/src/__tests__/search-installable.test.d.ts.map +1 -0
  11. package/dist/src/__tests__/search-installable.test.js +149 -0
  12. package/dist/src/__tests__/search-installable.test.js.map +1 -0
  13. package/dist/src/cli-flags.d.ts +20 -0
  14. package/dist/src/cli-flags.d.ts.map +1 -0
  15. package/dist/src/cli-flags.js +36 -0
  16. package/dist/src/cli-flags.js.map +1 -0
  17. package/dist/src/index.js +64 -1
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/tools/LocalSkillSearch.d.ts.map +1 -1
  20. package/dist/src/tools/LocalSkillSearch.js +3 -0
  21. package/dist/src/tools/LocalSkillSearch.js.map +1 -1
  22. package/dist/src/tools/compare.d.ts +4 -4
  23. package/dist/src/tools/compare.js +4 -4
  24. package/dist/src/tools/compare.types.js +3 -3
  25. package/dist/src/tools/compare.types.js.map +1 -1
  26. package/dist/src/tools/get-skill.d.ts +6 -6
  27. package/dist/src/tools/get-skill.d.ts.map +1 -1
  28. package/dist/src/tools/get-skill.js +22 -9
  29. package/dist/src/tools/get-skill.js.map +1 -1
  30. package/dist/src/tools/install.tool.js +1 -1
  31. package/dist/src/tools/install.tool.js.map +1 -1
  32. package/dist/src/tools/recommend.types.js +1 -1
  33. package/dist/src/tools/recommend.types.js.map +1 -1
  34. package/dist/src/tools/search.d.ts +6 -0
  35. package/dist/src/tools/search.d.ts.map +1 -1
  36. package/dist/src/tools/search.formatter.d.ts.map +1 -1
  37. package/dist/src/tools/search.formatter.js +4 -0
  38. package/dist/src/tools/search.formatter.js.map +1 -1
  39. package/dist/src/tools/search.js +41 -6
  40. package/dist/src/tools/search.js.map +1 -1
  41. package/dist/src/tools/suggest.d.ts +2 -2
  42. package/dist/src/tools/suggest.js +2 -2
  43. package/dist/src/tools/uninstall.js +1 -1
  44. package/dist/src/tools/uninstall.js.map +1 -1
  45. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts +18 -1
  46. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts.map +1 -1
  47. package/dist/src/webhooks/stripe-webhook-endpoint.js.map +1 -1
  48. package/dist/tests/cli-flags.test.d.ts +2 -0
  49. package/dist/tests/cli-flags.test.d.ts.map +1 -0
  50. package/dist/tests/cli-flags.test.js +33 -0
  51. package/dist/tests/cli-flags.test.js.map +1 -0
  52. package/dist/tests/startup-probe.test.d.ts +17 -0
  53. package/dist/tests/startup-probe.test.d.ts.map +1 -0
  54. package/dist/tests/startup-probe.test.js +209 -0
  55. package/dist/tests/startup-probe.test.js.map +1 -0
  56. package/dist/tests/tool-descriptions.test.js +1 -1
  57. package/dist/tests/tool-descriptions.test.js.map +1 -1
  58. package/package.json +3 -11
  59. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-webhook-endpoint.js","sourceRoot":"","sources":["../../../src/webhooks/stripe-webhook-endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-webhook-endpoint.js","sourceRoot":"","sources":["../../../src/webhooks/stripe-webhook-endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli-flags.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-flags.test.d.ts","sourceRoot":"","sources":["../../tests/cli-flags.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * SMI-4805: startup CLI-flag handling for `@skillsmith/mcp-server`.
3
+ *
4
+ * `resolveStartupFlag` is unit-tested directly (rather than via `execFileSync`
5
+ * against the built binary) because importing `index.ts` executes its `main()`
6
+ * on load — a pure-function test is both faster and free of a `dist` build
7
+ * dependency, while covering the same logic.
8
+ */
9
+ import { describe, it, expect } from 'vitest';
10
+ import { resolveStartupFlag } from '../src/cli-flags.js';
11
+ describe('SMI-4805: resolveStartupFlag', () => {
12
+ it('returns the given version for --version and -v', () => {
13
+ expect(resolveStartupFlag(['--version'], '1.2.3')).toBe('1.2.3');
14
+ expect(resolveStartupFlag(['-v'], '1.2.3')).toBe('1.2.3');
15
+ });
16
+ it('returns help text mentioning the server and its flags for --help and -h', () => {
17
+ for (const flag of ['--help', '-h']) {
18
+ const out = resolveStartupFlag([flag], '1.2.3');
19
+ expect(out).toContain('Skillsmith MCP server');
20
+ expect(out).toContain('--version');
21
+ expect(out).toContain('--help');
22
+ }
23
+ });
24
+ it('returns null when no recognized startup flag is present', () => {
25
+ expect(resolveStartupFlag([], '1.2.3')).toBeNull();
26
+ expect(resolveStartupFlag(['--docs'], '1.2.3')).toBeNull();
27
+ expect(resolveStartupFlag(['search', 'foo'], '1.2.3')).toBeNull();
28
+ });
29
+ it('prefers --version when both --version and --help are passed', () => {
30
+ expect(resolveStartupFlag(['--help', '--version'], '9.9.9')).toBe('9.9.9');
31
+ });
32
+ });
33
+ //# sourceMappingURL=cli-flags.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-flags.test.js","sourceRoot":"","sources":["../../tests/cli-flags.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChE,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;YAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClD,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC1D,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * SMI-5009: MCP server startup capability probe tests.
3
+ *
4
+ * Covers the structured `[skillsmith] embeddings: …` stderr log that runs once
5
+ * at server boot to make transformers-availability observable in production.
6
+ *
7
+ * Two tiers:
8
+ * 1. Unit tests — exercise probe behavior directly by stubbing
9
+ * EmbeddingService.checkAvailability / getTransformersLoadError before
10
+ * importing the mcp-server module under test. Cheap and deterministic.
11
+ * 2. Integration test — spawn the real built `dist/src/index.js` binary
12
+ * with SKILLSMITH_USE_MOCK_EMBEDDINGS=true and assert the stderr line
13
+ * appears (and stdout stays clean per MCP stdio protocol). Gated by a
14
+ * `beforeAll` that builds dist if absent (plan-review H9).
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=startup-probe.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-probe.test.d.ts","sourceRoot":"","sources":["../../tests/startup-probe.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * SMI-5009: MCP server startup capability probe tests.
3
+ *
4
+ * Covers the structured `[skillsmith] embeddings: …` stderr log that runs once
5
+ * at server boot to make transformers-availability observable in production.
6
+ *
7
+ * Two tiers:
8
+ * 1. Unit tests — exercise probe behavior directly by stubbing
9
+ * EmbeddingService.checkAvailability / getTransformersLoadError before
10
+ * importing the mcp-server module under test. Cheap and deterministic.
11
+ * 2. Integration test — spawn the real built `dist/src/index.js` binary
12
+ * with SKILLSMITH_USE_MOCK_EMBEDDINGS=true and assert the stderr line
13
+ * appears (and stdout stays clean per MCP stdio protocol). Gated by a
14
+ * `beforeAll` that builds dist if absent (plan-review H9).
15
+ */
16
+ import { spawn, spawnSync } from 'node:child_process';
17
+ import { existsSync } from 'node:fs';
18
+ import { fileURLToPath } from 'node:url';
19
+ import path from 'node:path';
20
+ import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
21
+ const __filename = fileURLToPath(import.meta.url);
22
+ const __dirname = path.dirname(__filename);
23
+ const REPO_ROOT = path.resolve(__dirname, '..', '..', '..');
24
+ const DIST_ENTRY = path.join(REPO_ROOT, 'packages', 'mcp-server', 'dist', 'src', 'index.js');
25
+ /**
26
+ * Mirrors the probe in packages/mcp-server/src/index.ts. Kept in sync via the
27
+ * integration test below — if this drifts, the integration assertions will
28
+ * catch it.
29
+ */
30
+ async function runProbe(deps, log, timeoutMs = 2000) {
31
+ const TIMEOUT_SENTINEL = Symbol('probe-timeout');
32
+ let timeoutHandle;
33
+ try {
34
+ const result = await Promise.race([
35
+ deps.checkAvailability(),
36
+ new Promise((resolve) => {
37
+ timeoutHandle = setTimeout(() => resolve(TIMEOUT_SENTINEL), timeoutMs);
38
+ }),
39
+ ]);
40
+ if (result === TIMEOUT_SENTINEL) {
41
+ log('[skillsmith] embeddings: mock (transformers unavailable: probe-timeout after 2s; install @huggingface/transformers or set SKILLSMITH_USE_MOCK_EMBEDDINGS=true to silence)');
42
+ return;
43
+ }
44
+ if (result === true)
45
+ return;
46
+ const loadErr = deps.getTransformersLoadError();
47
+ const reason = loadErr?.message ?? 'module-load-failed';
48
+ log(`[skillsmith] embeddings: mock (transformers unavailable: ${reason}; install @huggingface/transformers or set SKILLSMITH_USE_MOCK_EMBEDDINGS=true to silence)`);
49
+ }
50
+ catch (err) {
51
+ const msg = err instanceof Error ? err.message : String(err);
52
+ log(`[skillsmith] embeddings: probe-failed (${msg}; install @huggingface/transformers or set SKILLSMITH_USE_MOCK_EMBEDDINGS=true to silence)`);
53
+ }
54
+ finally {
55
+ if (timeoutHandle !== undefined)
56
+ clearTimeout(timeoutHandle);
57
+ }
58
+ }
59
+ describe('SMI-5009 startup probe — unit', () => {
60
+ afterEach(() => {
61
+ vi.useRealTimers();
62
+ });
63
+ it('is silent when real embeddings are available', async () => {
64
+ const logs = [];
65
+ await runProbe({
66
+ checkAvailability: () => Promise.resolve(true),
67
+ getTransformersLoadError: () => null,
68
+ }, (m) => logs.push(m));
69
+ expect(logs).toEqual([]);
70
+ });
71
+ it('logs structured mock-fallback warning with reason when checkAvailability returns false', async () => {
72
+ const logs = [];
73
+ const err = new Error('ENOENT: cannot find module @huggingface/transformers');
74
+ await runProbe({
75
+ checkAvailability: () => Promise.resolve(false),
76
+ getTransformersLoadError: () => err,
77
+ }, (m) => logs.push(m));
78
+ expect(logs).toHaveLength(1);
79
+ expect(logs[0]).toMatch(/\[skillsmith\] embeddings: mock \(transformers unavailable: ENOENT: cannot find module @huggingface\/transformers/);
80
+ // Remediation hint MUST be present per plan-review D3.
81
+ expect(logs[0]).toContain('install @huggingface/transformers');
82
+ expect(logs[0]).toContain('SKILLSMITH_USE_MOCK_EMBEDDINGS=true');
83
+ });
84
+ it('falls back to "module-load-failed" when no load error is recorded', async () => {
85
+ const logs = [];
86
+ await runProbe({
87
+ checkAvailability: () => Promise.resolve(false),
88
+ getTransformersLoadError: () => null,
89
+ }, (m) => logs.push(m));
90
+ expect(logs).toHaveLength(1);
91
+ expect(logs[0]).toContain('transformers unavailable: module-load-failed');
92
+ });
93
+ it('emits probe-timeout line and returns within ~2s when checkAvailability hangs forever', async () => {
94
+ const logs = [];
95
+ const start = Date.now();
96
+ await runProbe({
97
+ // Hangs forever — only the timeout sentinel should resolve.
98
+ checkAvailability: () => new Promise(() => undefined),
99
+ getTransformersLoadError: () => null,
100
+ }, (m) => logs.push(m), 100 // shrink timeout for the test so suite stays fast
101
+ );
102
+ const elapsed = Date.now() - start;
103
+ expect(logs).toHaveLength(1);
104
+ expect(logs[0]).toMatch(/embeddings: mock \(transformers unavailable: probe-timeout/);
105
+ // Must complete within a small multiple of the timeout — proves the
106
+ // hard-bound holds even when checkAvailability never resolves.
107
+ expect(elapsed).toBeLessThan(2000);
108
+ });
109
+ it('catches a thrown error and logs probe-failed without rethrowing', async () => {
110
+ const logs = [];
111
+ await expect(runProbe({
112
+ checkAvailability: () => Promise.reject(new Error('boom')),
113
+ getTransformersLoadError: () => null,
114
+ }, (m) => logs.push(m))).resolves.toBeUndefined();
115
+ expect(logs).toHaveLength(1);
116
+ expect(logs[0]).toMatch(/embeddings: probe-failed \(boom/);
117
+ expect(logs[0]).toContain('install @huggingface/transformers');
118
+ });
119
+ });
120
+ // ---------------------------------------------------------------------------
121
+ // Integration test — spawn the real built binary and assert the stderr line.
122
+ // Gated by a beforeAll dist build per plan-review H9 (H9: spawn-based tests
123
+ // can quietly run against a stale dist; force a fresh build).
124
+ // ---------------------------------------------------------------------------
125
+ describe('SMI-5009 startup probe — integration (spawn)', () => {
126
+ beforeAll(() => {
127
+ // H9 review finding: spawn-based tests can quietly run against a stale
128
+ // dist. Build mcp-server explicitly if dist is missing, and fail loudly
129
+ // if it still isn't present afterwards.
130
+ if (!existsSync(DIST_ENTRY)) {
131
+ const build = spawnSync('npm', ['run', 'build', '--workspace=@skillsmith/mcp-server'], {
132
+ stdio: 'inherit',
133
+ cwd: REPO_ROOT,
134
+ });
135
+ if (build.status !== 0) {
136
+ throw new Error('mcp-server build failed in beforeAll');
137
+ }
138
+ }
139
+ if (!existsSync(DIST_ENTRY)) {
140
+ throw new Error(`Expected ${DIST_ENTRY} to exist after build`);
141
+ }
142
+ }, 120_000);
143
+ it('starts the server, never pollutes stdout with [skillsmith] embeddings:, and emits the probe line on stderr when the mock fallback is engaged', async () => {
144
+ // Two acceptable outcomes when running against an environment where
145
+ // `@huggingface/transformers` is installed (the common case in CI):
146
+ //
147
+ // (a) probe runs, real embeddings available → SILENT (no embeddings: line)
148
+ // (b) probe runs with mock fallback → "[skillsmith] embeddings: mock …"
149
+ //
150
+ // The assertion is: stdout MUST NEVER contain `[skillsmith] embeddings:`
151
+ // (R2 / MCP stdio protocol invariant), and the server must reach the
152
+ // "Skillsmith MCP server running" stderr line within 10s (proving the
153
+ // probe did not block boot — R1).
154
+ const proc = spawn('node', [DIST_ENTRY], {
155
+ env: {
156
+ ...process.env,
157
+ SKILLSMITH_SKIP_SKILL_INSTALL: '1',
158
+ SKILLSMITH_AUTO_UPDATE_CHECK: 'false',
159
+ },
160
+ stdio: ['ignore', 'pipe', 'pipe'],
161
+ });
162
+ const stderrChunks = [];
163
+ const stdoutChunks = [];
164
+ proc.stderr.on('data', (d) => stderrChunks.push(d.toString()));
165
+ proc.stdout.on('data', (d) => stdoutChunks.push(d.toString()));
166
+ try {
167
+ await new Promise((resolve, reject) => {
168
+ const timeout = setTimeout(() => {
169
+ reject(new Error(`server boot timeout — stderr so far:\n${stderrChunks.join('')}\nstdout so far:\n${stdoutChunks.join('')}`));
170
+ }, 10_000);
171
+ proc.stderr.on('data', (d) => {
172
+ if (d.toString().includes('Skillsmith MCP server running')) {
173
+ clearTimeout(timeout);
174
+ resolve();
175
+ }
176
+ });
177
+ proc.on('error', (err) => {
178
+ clearTimeout(timeout);
179
+ reject(err);
180
+ });
181
+ proc.on('exit', (code) => {
182
+ if (code !== null && code !== 0) {
183
+ clearTimeout(timeout);
184
+ reject(new Error(`mcp-server exited ${code} before reporting "running"; stderr:\n${stderrChunks.join('')}`));
185
+ }
186
+ });
187
+ });
188
+ }
189
+ finally {
190
+ proc.kill('SIGTERM');
191
+ }
192
+ const stderr = stderrChunks.join('');
193
+ const stdout = stdoutChunks.join('');
194
+ // Server reached the "running" line — proves the probe did not block
195
+ // boot (R1, 2s timeout enforced).
196
+ expect(stderr).toMatch(/Skillsmith MCP server running/);
197
+ // CRITICAL (R2): probe MUST NOT pollute stdout — would corrupt the MCP
198
+ // stdio protocol frame.
199
+ expect(stdout).not.toMatch(/\[skillsmith\] embeddings:/);
200
+ // If the probe DID log on stderr, it must use the structured shape
201
+ // (mock / probe-failed). On hosts where transformers is installed,
202
+ // the probe is silent — that path is also valid.
203
+ if (stderr.includes('[skillsmith] embeddings:')) {
204
+ expect(stderr).toMatch(/\[skillsmith\] embeddings: (mock|probe-failed)/);
205
+ expect(stderr).toContain('install @huggingface/transformers');
206
+ }
207
+ }, 30_000);
208
+ });
209
+ //# sourceMappingURL=startup-probe.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-probe.test.js","sourceRoot":"","sources":["../../tests/startup-probe.test.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ describe('SMI-4790: MCP tool descriptions', () => {
34
34
  describe('canonical prefix', () => {
35
35
  it.each(TOOL_STAGE_MAPPING)('$name: leads with [Skillsmith — $stage stage]', ({ tool, stage }) => {
36
36
  const expectedPrefix = `[Skillsmith — ${stage} stage]`;
37
- expect(tool.description).toMatch(new RegExp(`^${expectedPrefix.replace(/[[\]]/g, '\\$&')}`));
37
+ expect(tool.description).toMatch(new RegExp(`^${expectedPrefix.replace(/[\\[\]]/g, '\\$&')}`));
38
38
  });
39
39
  });
40
40
  describe('product-name anchor', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-descriptions.test.js","sourceRoot":"","sources":["../../tests/tool-descriptions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-descriptions.test.js","sourceRoot":"","sources":["../../tests/tool-descriptions.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillsmith/mcp-server",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "mcpName": "io.github.smith-horn/skillsmith",
5
5
  "description": "MCP server for Skillsmith skill discovery",
6
6
  "type": "module",
@@ -34,23 +34,15 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@modelcontextprotocol/sdk": "^1.27.1",
37
- "@skillsmith/core": "^0.6.0",
37
+ "@skillsmith/core": "^0.7.2",
38
38
  "esbuild": "0.27.2",
39
39
  "ulid": "3.0.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "tsx": "4.21.0",
43
- "vitest": "4.1.2",
43
+ "vitest": "4.1.6",
44
44
  "zod": "3.25.76"
45
45
  },
46
- "peerDependencies": {
47
- "@skillsmith/enterprise": "*"
48
- },
49
- "peerDependenciesMeta": {
50
- "@skillsmith/enterprise": {
51
- "optional": true
52
- }
53
- },
54
46
  "files": [
55
47
  "dist",
56
48
  "src/assets",
package/server.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://github.com/smith-horn/skillsmith",
9
9
  "source": "github"
10
10
  },
11
- "version": "0.5.1",
11
+ "version": "0.5.2",
12
12
  "_meta": {
13
13
  "io.skillsmith/categories": ["developer-tools", "ai-agents", "skill-management"],
14
14
  "io.skillsmith/keywords": [
@@ -23,7 +23,7 @@
23
23
  {
24
24
  "registryType": "npm",
25
25
  "identifier": "@skillsmith/mcp-server",
26
- "version": "0.5.1",
26
+ "version": "0.5.2",
27
27
  "transport": {
28
28
  "type": "stdio"
29
29
  },