@kya-os/create-mcpi-app 1.7.37 → 1.7.38-canary.1
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/ARCHITECTURE_ANALYSIS.md +392 -0
- package/DEPRECATION_WARNINGS_ANALYSIS.md +192 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/helpers/config-builder.d.ts +1 -1
- package/dist/helpers/config-builder.d.ts.map +1 -1
- package/dist/helpers/config-builder.js +1 -1
- package/dist/helpers/config-builder.js.map +1 -1
- package/dist/helpers/create.d.ts +1 -1
- package/dist/helpers/create.d.ts.map +1 -1
- package/dist/helpers/generate-config.d.ts.map +1 -1
- package/dist/helpers/generate-config.js.map +1 -1
- package/dist/utils/fetch-remote-config.d.ts +74 -0
- package/dist/utils/fetch-remote-config.d.ts.map +1 -0
- package/dist/utils/fetch-remote-config.js +109 -0
- package/dist/utils/fetch-remote-config.js.map +1 -0
- package/package.json +9 -10
- package/src/helpers/config-builder.ts +1 -1
- package/src/helpers/create.ts +1 -1
- package/src/helpers/generate-config.ts +0 -1
- package/src/utils/__tests__/fetch-remote-config.test.ts +271 -0
- package/src/utils/fetch-remote-config.ts +179 -0
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test$colon$coverage.log +0 -168
- package/.turbo/turbo-test.log +0 -306
- package/dist/helpers/__tests__/config-builder.spec.d.ts +0 -8
- package/dist/helpers/__tests__/config-builder.spec.d.ts.map +0 -1
- package/dist/helpers/__tests__/config-builder.spec.js +0 -182
- package/dist/helpers/__tests__/config-builder.spec.js.map +0 -1
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
# Deep Architecture Analysis: create-mcpi-app
|
|
2
|
+
|
|
3
|
+
## Executive Summary
|
|
4
|
+
|
|
5
|
+
After thorough analysis of `create-mcpi-app`, I've identified **significant architectural inefficiencies** that can be improved. The package currently has:
|
|
6
|
+
- **7 unused dependencies** (~15MB+ of unnecessary code)
|
|
7
|
+
- **Heavy runtime dependencies** used only for TypeScript types
|
|
8
|
+
- **Redundant HTTP/crypto libraries** when native APIs are available
|
|
9
|
+
- **Architectural patterns** that don't align with modern CLI tooling best practices
|
|
10
|
+
|
|
11
|
+
## Current Dependency Analysis
|
|
12
|
+
|
|
13
|
+
### ✅ Actually Used Dependencies
|
|
14
|
+
|
|
15
|
+
| Dependency | Purpose | Can Optimize? |
|
|
16
|
+
|------------|---------|---------------|
|
|
17
|
+
| `fs-extra` | File operations | ✅ Use native `fs/promises` |
|
|
18
|
+
| `chalk` | Terminal colors | ❌ Keep (essential) |
|
|
19
|
+
| `commander` | CLI parsing | ❌ Keep (essential) |
|
|
20
|
+
| `inquirer` | Interactive prompts | ❌ Keep (essential) |
|
|
21
|
+
| `ora` | Loading spinners | ❌ Keep (essential) |
|
|
22
|
+
| `base-x` | Base58 encoding | ❌ Keep (used in generate-identity) |
|
|
23
|
+
| `zod` | Schema validation | ❌ Keep (used in config-builder) |
|
|
24
|
+
| `@kya-os/contracts` | Type definitions | ⚠️ Only types needed |
|
|
25
|
+
| `@kya-os/cli-effects` | UI effects | ❌ Keep (used) |
|
|
26
|
+
| `@kya-os/mcp-i-core` | Types + `fetchRemoteConfig` | ⚠️ Only types + 1 function |
|
|
27
|
+
| `@kya-os/mcp-i` | **ONLY FOR TYPES** | ❌❌❌ **MAJOR ISSUE** |
|
|
28
|
+
|
|
29
|
+
### ❌ Unused Dependencies (Can Remove)
|
|
30
|
+
|
|
31
|
+
1. **`axios`** (~500KB) - Not imported anywhere
|
|
32
|
+
2. **`node-fetch`** (~200KB) - Node 20+ has native `fetch`
|
|
33
|
+
3. **`jose`** (~300KB) - Not used (used in `@kya-os/cli` but not here)
|
|
34
|
+
4. **`dotenv-cli`** (~100KB) - Not used
|
|
35
|
+
5. **`swc-loader`** (~2MB) - Only in generated templates, not scaffolder
|
|
36
|
+
6. **`tsx`** (~5MB) - Only in generated templates, not scaffolder
|
|
37
|
+
7. **`@noble/ed25519`** (~100KB) - Not used (using `webcrypto` instead)
|
|
38
|
+
|
|
39
|
+
**Total wasted: ~8MB+ of dependencies**
|
|
40
|
+
|
|
41
|
+
### ⚠️ Problematic Dependencies
|
|
42
|
+
|
|
43
|
+
#### 1. `@kya-os/mcp-i` - **CRITICAL ISSUE**
|
|
44
|
+
|
|
45
|
+
**Current Usage:**
|
|
46
|
+
- Only used for TypeScript types: `NodeRuntimeConfig`, `XmcpConfig`
|
|
47
|
+
- Imported in `generate-config.ts` for type references in generated code
|
|
48
|
+
|
|
49
|
+
**Problem:**
|
|
50
|
+
- This package is **MASSIVE** (~50MB+ with dependencies):
|
|
51
|
+
- Includes `webpack`, `express`, `@swc/core`, `chokidar`, `webpack-node-externals`
|
|
52
|
+
- Includes `axios`, `jose`, `jsonwebtoken`, `handlebars`
|
|
53
|
+
- Includes entire MCP SDK and runtime
|
|
54
|
+
- **All of this is bundled just for TypeScript types!**
|
|
55
|
+
|
|
56
|
+
**Impact:**
|
|
57
|
+
- Slows down `npm install` for users
|
|
58
|
+
- Increases bundle size unnecessarily
|
|
59
|
+
- Violates separation of concerns (scaffolder shouldn't need runtime)
|
|
60
|
+
|
|
61
|
+
#### 2. `@kya-os/mcp-i-core` - Moderate Issue
|
|
62
|
+
|
|
63
|
+
**Current Usage:**
|
|
64
|
+
- Types: `RemoteConfigCache`, `RemoteConfigOptions`
|
|
65
|
+
- Function: `fetchRemoteConfig` (used in `config-builder.ts`)
|
|
66
|
+
|
|
67
|
+
**Problem:**
|
|
68
|
+
- Includes `@modelcontextprotocol/sdk` as dependency
|
|
69
|
+
- Only needs types + 1 function, but pulls in entire SDK
|
|
70
|
+
|
|
71
|
+
## Architecture Comparison
|
|
72
|
+
|
|
73
|
+
### Modern CLI Scaffolders (Best Practices)
|
|
74
|
+
|
|
75
|
+
#### create-next-app (Next.js)
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"commander": "^9.0.0",
|
|
80
|
+
"fs-extra": "^11.0.0",
|
|
81
|
+
"chalk": "^5.0.0"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
- **No runtime dependencies** - only scaffolding tools
|
|
86
|
+
- Types are in separate `@types` packages or peer dependencies
|
|
87
|
+
- Uses native Node.js APIs
|
|
88
|
+
|
|
89
|
+
#### create-vite (Vite)
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"dependencies": {
|
|
93
|
+
"commander": "^9.0.0",
|
|
94
|
+
"fs-extra": "^11.0.0",
|
|
95
|
+
"chalk": "^5.0.0",
|
|
96
|
+
"minimist": "^1.2.0"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
- **Minimal dependencies** - only what's needed for scaffolding
|
|
101
|
+
- No runtime framework dependencies
|
|
102
|
+
|
|
103
|
+
#### create-react-app (Legacy - What NOT to do)
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"dependencies": {
|
|
107
|
+
// ... 50+ dependencies including webpack, babel, etc.
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
- **Heavy dependencies** - includes entire build toolchain
|
|
112
|
+
- This is why CRA is deprecated in favor of lighter alternatives
|
|
113
|
+
|
|
114
|
+
### Our Current Architecture (create-mcpi-app)
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"dependencies": {
|
|
119
|
+
"@kya-os/mcp-i": "^1.5.5", // ❌ 50MB+ runtime framework
|
|
120
|
+
"@kya-os/mcp-i-core": "^1.1.12", // ⚠️ Includes SDK
|
|
121
|
+
"@kya-os/cli": "^1.3.3", // ⚠️ Not used directly
|
|
122
|
+
"axios": "^1.12.0", // ❌ Unused
|
|
123
|
+
"node-fetch": "^3.3.2", // ❌ Unused (native fetch available)
|
|
124
|
+
"jose": "^6.0.12", // ❌ Unused
|
|
125
|
+
// ... 7 more unused deps
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**We're following the CRA anti-pattern!**
|
|
131
|
+
|
|
132
|
+
## Recommended Architecture Improvements
|
|
133
|
+
|
|
134
|
+
### Option 1: Minimal Dependencies (Recommended)
|
|
135
|
+
|
|
136
|
+
**Remove all unused dependencies and use type-only imports:**
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"dependencies": {
|
|
141
|
+
"chalk": "^5.3.0",
|
|
142
|
+
"commander": "^11.1.0",
|
|
143
|
+
"fs-extra": "^11.2.0",
|
|
144
|
+
"inquirer": "^12.9.4",
|
|
145
|
+
"ora": "^8.0.1",
|
|
146
|
+
"base-x": "^5.0.0",
|
|
147
|
+
"zod": "^3.25.76",
|
|
148
|
+
"@kya-os/cli-effects": "^1.0.19"
|
|
149
|
+
},
|
|
150
|
+
"devDependencies": {
|
|
151
|
+
"@kya-os/contracts": "^1.5.1", // Types only
|
|
152
|
+
"@kya-os/mcp-i-core": "^1.1.12", // Types only
|
|
153
|
+
"@types/node": "^20.19.19",
|
|
154
|
+
"typescript": "^5.3.0",
|
|
155
|
+
"vitest": "^4.0.5"
|
|
156
|
+
},
|
|
157
|
+
"peerDependencies": {
|
|
158
|
+
"@kya-os/mcp-i": ">=1.5.0" // For types, but not bundled
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Changes:**
|
|
164
|
+
1. Move `@kya-os/contracts` and `@kya-os/mcp-i-core` to `devDependencies` (types only)
|
|
165
|
+
2. Add `@kya-os/mcp-i` as `peerDependency` (types available but not bundled)
|
|
166
|
+
3. Remove all unused dependencies
|
|
167
|
+
4. Use native `fetch` instead of `axios`/`node-fetch`
|
|
168
|
+
5. Use native `fs/promises` instead of `fs-extra` (or keep fs-extra if convenience is worth it)
|
|
169
|
+
|
|
170
|
+
**Benefits:**
|
|
171
|
+
- **~60MB reduction** in install size
|
|
172
|
+
- Faster `npm install` times
|
|
173
|
+
- Clearer separation of concerns
|
|
174
|
+
- Aligns with modern CLI tooling patterns
|
|
175
|
+
|
|
176
|
+
### Option 2: Extract Types Package (Best Long-term)
|
|
177
|
+
|
|
178
|
+
Create a separate `@kya-os/mcp-i-types` package:
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"name": "@kya-os/mcp-i-types",
|
|
183
|
+
"version": "1.0.0",
|
|
184
|
+
"types": "./dist/index.d.ts",
|
|
185
|
+
"exports": {
|
|
186
|
+
".": {
|
|
187
|
+
"types": "./dist/index.d.ts"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Benefits:**
|
|
194
|
+
- Zero runtime dependencies
|
|
195
|
+
- Can be used by any package needing types
|
|
196
|
+
- Follows TypeScript best practices
|
|
197
|
+
- Matches patterns used by major frameworks
|
|
198
|
+
|
|
199
|
+
### Option 3: Use Type-Only Imports (Quick Fix)
|
|
200
|
+
|
|
201
|
+
Keep current structure but use TypeScript's `import type`:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
// Instead of:
|
|
205
|
+
import { NodeRuntimeConfig } from "@kya-os/mcp-i";
|
|
206
|
+
|
|
207
|
+
// Use:
|
|
208
|
+
import type { NodeRuntimeConfig } from "@kya-os/mcp-i";
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Then move to `devDependencies`:
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"devDependencies": {
|
|
215
|
+
"@kya-os/mcp-i": "^1.5.5" // Types only, not bundled
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Note:** This still requires the package to be installed, but TypeScript will tree-shake it.
|
|
221
|
+
|
|
222
|
+
## Specific Code Improvements
|
|
223
|
+
|
|
224
|
+
### 1. Replace `fs-extra` with Native APIs
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
// Current:
|
|
228
|
+
import fs from "fs-extra";
|
|
229
|
+
fs.ensureDirSync(path);
|
|
230
|
+
fs.writeJsonSync(path, data);
|
|
231
|
+
|
|
232
|
+
// Better:
|
|
233
|
+
import { mkdir, writeFile } from "fs/promises";
|
|
234
|
+
import { existsSync } from "fs";
|
|
235
|
+
|
|
236
|
+
await mkdir(path, { recursive: true });
|
|
237
|
+
await writeFile(path, JSON.stringify(data, null, 2));
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Trade-off:** More verbose, but removes dependency
|
|
241
|
+
|
|
242
|
+
### 2. Use Native `fetch` Instead of `axios`/`node-fetch`
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
// Current (if we were using axios):
|
|
246
|
+
const response = await axios.get(url);
|
|
247
|
+
|
|
248
|
+
// Better (native fetch):
|
|
249
|
+
const response = await fetch(url);
|
|
250
|
+
const data = await response.json();
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Note:** Node 20+ has native `fetch` - no dependency needed!
|
|
254
|
+
|
|
255
|
+
### 3. Extract `fetchRemoteConfig` Function
|
|
256
|
+
|
|
257
|
+
Instead of importing from `@kya-os/mcp-i-core`, extract the function:
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
// In create-mcpi-app/src/utils/fetch-remote-config.ts
|
|
261
|
+
export async function fetchRemoteConfig(
|
|
262
|
+
options: RemoteConfigOptions,
|
|
263
|
+
cache?: RemoteConfigCache
|
|
264
|
+
): Promise<MCPIConfig | null> {
|
|
265
|
+
// Copy implementation from mcp-i-core
|
|
266
|
+
// This removes the dependency on the entire package
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Trade-off:** Code duplication, but removes heavy dependency
|
|
271
|
+
|
|
272
|
+
### 4. Use `import type` for All Type Imports
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
// Current:
|
|
276
|
+
import { ScaffolderResult } from "@kya-os/contracts";
|
|
277
|
+
import type { NodeRuntimeConfig } from "@kya-os/mcp-i";
|
|
278
|
+
|
|
279
|
+
// Better (all type-only):
|
|
280
|
+
import type { ScaffolderResult } from "@kya-os/contracts";
|
|
281
|
+
import type { NodeRuntimeConfig } from "@kya-os/mcp-i";
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## Dependency Size Analysis
|
|
285
|
+
|
|
286
|
+
### Current Install Size (Estimated)
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
@kya-os/mcp-i: ~50MB (with dependencies)
|
|
290
|
+
@kya-os/mcp-i-core: ~5MB (with SDK)
|
|
291
|
+
@kya-os/cli: ~10MB
|
|
292
|
+
axios: ~500KB
|
|
293
|
+
node-fetch: ~200KB
|
|
294
|
+
jose: ~300KB
|
|
295
|
+
swc-loader: ~2MB
|
|
296
|
+
tsx: ~5MB
|
|
297
|
+
@noble/ed25519: ~100KB
|
|
298
|
+
dotenv-cli: ~100KB
|
|
299
|
+
--------------------------------
|
|
300
|
+
Total wasted: ~73MB+
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Optimized Install Size
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
chalk: ~50KB
|
|
307
|
+
commander: ~200KB
|
|
308
|
+
fs-extra: ~100KB
|
|
309
|
+
inquirer: ~500KB
|
|
310
|
+
ora: ~100KB
|
|
311
|
+
base-x: ~50KB
|
|
312
|
+
zod: ~500KB
|
|
313
|
+
@kya-os/cli-effects: ~200KB
|
|
314
|
+
--------------------------------
|
|
315
|
+
Total: ~1.7MB
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Reduction: ~97% smaller!**
|
|
319
|
+
|
|
320
|
+
## Migration Plan
|
|
321
|
+
|
|
322
|
+
### Phase 1: Remove Unused Dependencies (Low Risk)
|
|
323
|
+
|
|
324
|
+
1. Remove `axios`, `node-fetch`, `jose`, `dotenv-cli`, `swc-loader`, `tsx`, `@noble/ed25519`
|
|
325
|
+
2. Test that scaffolder still works
|
|
326
|
+
3. Verify generated templates still work
|
|
327
|
+
|
|
328
|
+
**Time:** 1-2 hours
|
|
329
|
+
**Risk:** Low
|
|
330
|
+
**Impact:** Immediate size reduction
|
|
331
|
+
|
|
332
|
+
### Phase 2: Move Type Dependencies to devDependencies (Medium Risk)
|
|
333
|
+
|
|
334
|
+
1. Move `@kya-os/contracts` to `devDependencies`
|
|
335
|
+
2. Move `@kya-os/mcp-i-core` to `devDependencies`
|
|
336
|
+
3. Add `@kya-os/mcp-i` as `peerDependency`
|
|
337
|
+
4. Update all imports to use `import type`
|
|
338
|
+
5. Test thoroughly
|
|
339
|
+
|
|
340
|
+
**Time:** 2-4 hours
|
|
341
|
+
**Risk:** Medium
|
|
342
|
+
**Impact:** Major size reduction
|
|
343
|
+
|
|
344
|
+
### Phase 3: Extract fetchRemoteConfig (Optional)
|
|
345
|
+
|
|
346
|
+
1. Copy `fetchRemoteConfig` implementation
|
|
347
|
+
2. Remove `@kya-os/mcp-i-core` dependency
|
|
348
|
+
3. Test config-builder functionality
|
|
349
|
+
|
|
350
|
+
**Time:** 1-2 hours
|
|
351
|
+
**Risk:** Low
|
|
352
|
+
**Impact:** Further size reduction
|
|
353
|
+
|
|
354
|
+
### Phase 4: Replace fs-extra (Optional)
|
|
355
|
+
|
|
356
|
+
1. Replace `fs-extra` calls with native `fs/promises`
|
|
357
|
+
2. Add helper functions for common operations
|
|
358
|
+
3. Test file operations
|
|
359
|
+
|
|
360
|
+
**Time:** 2-3 hours
|
|
361
|
+
**Risk:** Low
|
|
362
|
+
**Impact:** Small size reduction
|
|
363
|
+
|
|
364
|
+
## Recommendations Summary
|
|
365
|
+
|
|
366
|
+
### ✅ Immediate Actions (High Impact, Low Risk)
|
|
367
|
+
|
|
368
|
+
1. **Remove 7 unused dependencies** → ~8MB reduction
|
|
369
|
+
2. **Move type-only packages to devDependencies** → ~55MB reduction
|
|
370
|
+
3. **Add `@kya-os/mcp-i` as peerDependency** → Users install only if needed
|
|
371
|
+
|
|
372
|
+
### ⚠️ Consider (Medium Impact, Medium Risk)
|
|
373
|
+
|
|
374
|
+
4. **Extract `fetchRemoteConfig` function** → Remove `@kya-os/mcp-i-core` dependency
|
|
375
|
+
5. **Use native `fs/promises`** → Remove `fs-extra` dependency
|
|
376
|
+
|
|
377
|
+
### 🎯 Long-term (High Impact, High Effort)
|
|
378
|
+
|
|
379
|
+
6. **Create `@kya-os/mcp-i-types` package** → Zero runtime dependencies for types
|
|
380
|
+
7. **Follow create-next-app pattern** → Industry-standard architecture
|
|
381
|
+
|
|
382
|
+
## Conclusion
|
|
383
|
+
|
|
384
|
+
The current architecture follows anti-patterns from legacy tools like `create-react-app`. By adopting modern CLI tooling patterns (like `create-next-app` or `create-vite`), we can:
|
|
385
|
+
|
|
386
|
+
- **Reduce install size by ~97%** (from ~73MB to ~1.7MB)
|
|
387
|
+
- **Improve install speed** significantly
|
|
388
|
+
- **Align with industry best practices**
|
|
389
|
+
- **Improve maintainability** with clearer dependencies
|
|
390
|
+
|
|
391
|
+
The recommended approach is **Option 1** (Minimal Dependencies) as it provides the best balance of impact vs. effort.
|
|
392
|
+
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Deprecation Warnings Analysis
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
The deprecation warnings seen when running `npx @kya-os/create-mcpi-app` are **transitive dependencies** from upstream packages. They cannot be directly fixed in `create-mcpi-app` without fixing the root packages.
|
|
6
|
+
|
|
7
|
+
## Warning Sources
|
|
8
|
+
|
|
9
|
+
### 1. `inflight@1.0.6` (deprecated - leaks memory)
|
|
10
|
+
|
|
11
|
+
**Source Chain:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
@kya-os/mcp-i
|
|
15
|
+
└─ clean-webpack-plugin@4.0.0
|
|
16
|
+
└─ del@4.1.1
|
|
17
|
+
└─ rimraf@2.7.1
|
|
18
|
+
└─ glob@7.2.3
|
|
19
|
+
└─ inflight@1.0.6 ❌
|
|
20
|
+
|
|
21
|
+
@kya-os/mcp-i
|
|
22
|
+
└─ del@7.1.0
|
|
23
|
+
└─ rimraf@3.0.2
|
|
24
|
+
└─ glob@7.2.3
|
|
25
|
+
└─ inflight@1.0.6 ❌
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Fix Required In:** `@kya-os/mcp-i` package
|
|
29
|
+
|
|
30
|
+
- Update `clean-webpack-plugin` to latest version (may have fixed this)
|
|
31
|
+
- Update `del` to latest version (may have fixed this)
|
|
32
|
+
- Or replace `clean-webpack-plugin` with native Node.js alternatives
|
|
33
|
+
|
|
34
|
+
### 2. `phin@2.9.3` and `phin@3.7.1` (deprecated - no longer supported)
|
|
35
|
+
|
|
36
|
+
**Source Chain:**
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
@kya-os/cli
|
|
40
|
+
└─ terminal-image@3.1.1
|
|
41
|
+
└─ render-gif@2.0.4
|
|
42
|
+
└─ jimp@0.14.0
|
|
43
|
+
└─ @jimp/core@0.14.0
|
|
44
|
+
└─ load-bmfont@1.4.2
|
|
45
|
+
└─ phin@3.7.1 ❌
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Fix Required In:** `@kya-os/cli` package
|
|
49
|
+
|
|
50
|
+
- Update `terminal-image` to latest version
|
|
51
|
+
- Or replace `terminal-image` with alternative that doesn't use deprecated `jimp`
|
|
52
|
+
- Or update `jimp` to latest version (if available)
|
|
53
|
+
|
|
54
|
+
### 3. `rimraf@2.7.1` and `rimraf@3.0.2` (deprecated - use v4+)
|
|
55
|
+
|
|
56
|
+
**Source Chain:**
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
@kya-os/mcp-i
|
|
60
|
+
└─ clean-webpack-plugin@4.0.0
|
|
61
|
+
└─ del@4.1.1
|
|
62
|
+
└─ rimraf@2.7.1 ❌
|
|
63
|
+
|
|
64
|
+
@kya-os/mcp-i
|
|
65
|
+
└─ del@7.1.0
|
|
66
|
+
└─ rimraf@3.0.2 ❌
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Fix Required In:** `@kya-os/mcp-i` package
|
|
70
|
+
|
|
71
|
+
- Update `clean-webpack-plugin` to latest (may use rimraf@4+)
|
|
72
|
+
- Update `del` to latest version (may use rimraf@4+)
|
|
73
|
+
- Or add `rimraf@^5.0.0` as direct dependency to force resolution
|
|
74
|
+
|
|
75
|
+
### 4. `glob@7.2.3` (deprecated - use v9+)
|
|
76
|
+
|
|
77
|
+
**Source Chain:**
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
@kya-os/mcp-i
|
|
81
|
+
└─ clean-webpack-plugin@4.0.0
|
|
82
|
+
└─ del@4.1.1
|
|
83
|
+
└─ rimraf@2.7.1
|
|
84
|
+
└─ glob@7.2.3 ❌
|
|
85
|
+
|
|
86
|
+
@kya-os/mcp-i
|
|
87
|
+
└─ del@7.1.0
|
|
88
|
+
└─ rimraf@3.0.2
|
|
89
|
+
└─ glob@7.2.3 ❌
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Fix Required In:** `@kya-os/mcp-i` package
|
|
93
|
+
|
|
94
|
+
- Same as rimraf - update `clean-webpack-plugin` and `del` to latest versions
|
|
95
|
+
|
|
96
|
+
### 5. `node-domexception@1.0.0` (deprecated - use native DOMException)
|
|
97
|
+
|
|
98
|
+
**Source Chain:**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
@modelcontextprotocol/inspector (optional dependency)
|
|
102
|
+
└─ node-fetch@3.3.2
|
|
103
|
+
└─ fetch-blob@3.2.0
|
|
104
|
+
└─ node-domexception@1.0.0 ❌
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Fix Required In:** `@modelcontextprotocol/inspector` package
|
|
108
|
+
|
|
109
|
+
- This is an external package we don't control
|
|
110
|
+
- Node.js 20+ has native DOMException, so this could be updated upstream
|
|
111
|
+
|
|
112
|
+
## Solutions
|
|
113
|
+
|
|
114
|
+
### Option 1: Fix in Upstream Packages (Recommended)
|
|
115
|
+
|
|
116
|
+
**For `@kya-os/mcp-i`:**
|
|
117
|
+
|
|
118
|
+
1. Update `clean-webpack-plugin` to latest version
|
|
119
|
+
2. Update `del` to latest version
|
|
120
|
+
3. Consider replacing `clean-webpack-plugin` with native `fs.rmSync` (Node.js 14.14+)
|
|
121
|
+
|
|
122
|
+
**For `@kya-os/cli`:**
|
|
123
|
+
|
|
124
|
+
1. Update `terminal-image` to latest version
|
|
125
|
+
2. Consider replacing with alternative image display library
|
|
126
|
+
3. Or make `terminal-image` optional/feature-flag
|
|
127
|
+
|
|
128
|
+
**For `@modelcontextprotocol/inspector`:**
|
|
129
|
+
|
|
130
|
+
- This is external - file issue with upstream maintainers
|
|
131
|
+
- Or consider making it truly optional (not installed unless needed)
|
|
132
|
+
|
|
133
|
+
### Option 2: Use npm/pnpm Overrides (Quick Fix)
|
|
134
|
+
|
|
135
|
+
Add to `package.json`:
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"pnpm": {
|
|
140
|
+
"overrides": {
|
|
141
|
+
"rimraf": "^5.0.0",
|
|
142
|
+
"glob": "^11.0.0"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Note:** This forces newer versions but may cause compatibility issues if upstream packages aren't compatible.
|
|
149
|
+
|
|
150
|
+
### Option 3: Accept Warnings (Current State)
|
|
151
|
+
|
|
152
|
+
These are **warnings, not errors**. The package works fine. The warnings are:
|
|
153
|
+
|
|
154
|
+
- Informational only
|
|
155
|
+
- Don't affect functionality
|
|
156
|
+
- Will be resolved when upstream packages update
|
|
157
|
+
|
|
158
|
+
## Impact Assessment
|
|
159
|
+
|
|
160
|
+
**Risk Level:** ⚠️ **LOW**
|
|
161
|
+
|
|
162
|
+
- Warnings don't affect functionality
|
|
163
|
+
- All deprecated packages still work
|
|
164
|
+
- No security vulnerabilities (just deprecation notices)
|
|
165
|
+
|
|
166
|
+
**User Experience Impact:** ⚠️ **MINIMAL**
|
|
167
|
+
|
|
168
|
+
- Users see warnings but package works
|
|
169
|
+
- Warnings are common in npm ecosystem
|
|
170
|
+
- Most users ignore deprecation warnings
|
|
171
|
+
|
|
172
|
+
## Recommendation
|
|
173
|
+
|
|
174
|
+
**Short-term:** Accept the warnings - they don't affect functionality.
|
|
175
|
+
|
|
176
|
+
**Medium-term:** Fix in upstream packages (`@kya-os/mcp-i` and `@kya-os/cli`):
|
|
177
|
+
|
|
178
|
+
1. Update `clean-webpack-plugin` and `del` in `@kya-os/mcp-i`
|
|
179
|
+
2. Update `terminal-image` in `@kya-os/cli` or make it optional
|
|
180
|
+
3. File issue with `@modelcontextprotocol/inspector` maintainers
|
|
181
|
+
|
|
182
|
+
**Long-term:** Consider replacing deprecated dependencies:
|
|
183
|
+
|
|
184
|
+
- Replace `clean-webpack-plugin` with native `fs.rmSync`
|
|
185
|
+
- Replace `terminal-image` with modern alternative
|
|
186
|
+
- Make `@modelcontextprotocol/inspector` truly optional
|
|
187
|
+
|
|
188
|
+
## Quick Wins
|
|
189
|
+
|
|
190
|
+
1. **Update `del` in `@kya-os/mcp-i`** - Latest version may use newer `rimraf`
|
|
191
|
+
2. **Update `clean-webpack-plugin`** - Latest version may have fixed dependencies
|
|
192
|
+
3. **Make `terminal-image` optional** - Only install if needed for avatar display
|