@yawlabs/ctxlint 0.9.2 → 0.9.4
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 +31 -2
- package/agent-session-lint-rules.json +16 -8
- package/context-lint-rules.json +165 -48
- package/dist/index.js +1547 -1294
- package/mcp-config-lint-rules.json +189 -44
- package/package.json +10 -2
|
@@ -55,7 +55,10 @@
|
|
|
55
55
|
"trigger": "JSON.parse fails on the file content.",
|
|
56
56
|
"message": "MCP config is not valid JSON: {parseError}",
|
|
57
57
|
"fixable": false,
|
|
58
|
-
"clients": [
|
|
58
|
+
"clients": [
|
|
59
|
+
"all"
|
|
60
|
+
],
|
|
61
|
+
"stability": "stable"
|
|
59
62
|
},
|
|
60
63
|
{
|
|
61
64
|
"id": "mcp-schema/wrong-root-key",
|
|
@@ -66,7 +69,10 @@
|
|
|
66
69
|
"message": "{file} must use \"{expected}\" as root key, not \"{actual}\"",
|
|
67
70
|
"fixable": true,
|
|
68
71
|
"fixDescription": "Rename the root key to match the expected key for the client.",
|
|
69
|
-
"clients": [
|
|
72
|
+
"clients": [
|
|
73
|
+
"all"
|
|
74
|
+
],
|
|
75
|
+
"stability": "stable"
|
|
70
76
|
},
|
|
71
77
|
{
|
|
72
78
|
"id": "mcp-schema/missing-root-key",
|
|
@@ -76,7 +82,10 @@
|
|
|
76
82
|
"trigger": "The parsed JSON object has neither \"mcpServers\" nor \"servers\" as a key.",
|
|
77
83
|
"message": "MCP config has no \"{expected}\" key",
|
|
78
84
|
"fixable": false,
|
|
79
|
-
"clients": [
|
|
85
|
+
"clients": [
|
|
86
|
+
"all"
|
|
87
|
+
],
|
|
88
|
+
"stability": "stable"
|
|
80
89
|
},
|
|
81
90
|
{
|
|
82
91
|
"id": "mcp-schema/missing-command",
|
|
@@ -86,7 +95,10 @@
|
|
|
86
95
|
"trigger": "Server has type \"stdio\" (or no type with no url) and no \"command\" field.",
|
|
87
96
|
"message": "Server \"{name}\": missing \"command\" field",
|
|
88
97
|
"fixable": false,
|
|
89
|
-
"clients": [
|
|
98
|
+
"clients": [
|
|
99
|
+
"all"
|
|
100
|
+
],
|
|
101
|
+
"stability": "stable"
|
|
90
102
|
},
|
|
91
103
|
{
|
|
92
104
|
"id": "mcp-schema/missing-url",
|
|
@@ -96,7 +108,10 @@
|
|
|
96
108
|
"trigger": "Server has type \"http\" or \"sse\" and no \"url\" field.",
|
|
97
109
|
"message": "Server \"{name}\": missing \"url\" field",
|
|
98
110
|
"fixable": false,
|
|
99
|
-
"clients": [
|
|
111
|
+
"clients": [
|
|
112
|
+
"all"
|
|
113
|
+
],
|
|
114
|
+
"stability": "stable"
|
|
100
115
|
},
|
|
101
116
|
{
|
|
102
117
|
"id": "mcp-schema/unknown-transport",
|
|
@@ -106,7 +121,10 @@
|
|
|
106
121
|
"trigger": "\"type\" field is present but is not \"stdio\", \"http\", or \"sse\".",
|
|
107
122
|
"message": "Server \"{name}\": unknown transport type \"{type}\"",
|
|
108
123
|
"fixable": false,
|
|
109
|
-
"clients": [
|
|
124
|
+
"clients": [
|
|
125
|
+
"all"
|
|
126
|
+
],
|
|
127
|
+
"stability": "stable"
|
|
110
128
|
},
|
|
111
129
|
{
|
|
112
130
|
"id": "mcp-schema/ambiguous-transport",
|
|
@@ -116,7 +134,10 @@
|
|
|
116
134
|
"trigger": "Server entry has both \"command\" and \"url\" fields.",
|
|
117
135
|
"message": "Server \"{name}\": has both \"command\" and \"url\" — transport is ambiguous",
|
|
118
136
|
"fixable": false,
|
|
119
|
-
"clients": [
|
|
137
|
+
"clients": [
|
|
138
|
+
"all"
|
|
139
|
+
],
|
|
140
|
+
"stability": "stable"
|
|
120
141
|
},
|
|
121
142
|
{
|
|
122
143
|
"id": "mcp-schema/empty-servers",
|
|
@@ -126,7 +147,10 @@
|
|
|
126
147
|
"trigger": "Root key exists but the object is empty.",
|
|
127
148
|
"message": "MCP config has no server entries",
|
|
128
149
|
"fixable": false,
|
|
129
|
-
"clients": [
|
|
150
|
+
"clients": [
|
|
151
|
+
"all"
|
|
152
|
+
],
|
|
153
|
+
"stability": "stable"
|
|
130
154
|
},
|
|
131
155
|
{
|
|
132
156
|
"id": "mcp-security/hardcoded-bearer",
|
|
@@ -137,7 +161,10 @@
|
|
|
137
161
|
"message": "Server \"{name}\": hardcoded Bearer token in a git-tracked file",
|
|
138
162
|
"fixable": true,
|
|
139
163
|
"fixDescription": "Replace the literal token with an env var reference derived from the server name.",
|
|
140
|
-
"clients": [
|
|
164
|
+
"clients": [
|
|
165
|
+
"all"
|
|
166
|
+
],
|
|
167
|
+
"stability": "stable"
|
|
141
168
|
},
|
|
142
169
|
{
|
|
143
170
|
"id": "mcp-security/hardcoded-api-key",
|
|
@@ -148,7 +175,10 @@
|
|
|
148
175
|
"message": "Server \"{name}\": possible API key in a git-tracked file",
|
|
149
176
|
"fixable": true,
|
|
150
177
|
"fixDescription": "Replace the literal value with an env var reference.",
|
|
151
|
-
"clients": [
|
|
178
|
+
"clients": [
|
|
179
|
+
"all"
|
|
180
|
+
],
|
|
181
|
+
"stability": "stable"
|
|
152
182
|
},
|
|
153
183
|
{
|
|
154
184
|
"id": "mcp-security/secret-in-url",
|
|
@@ -158,7 +188,10 @@
|
|
|
158
188
|
"trigger": "URL contains query params like ?key=, ?token=, ?api_key= with literal values in a git-tracked file.",
|
|
159
189
|
"message": "Server \"{name}\": possible secret in URL query string",
|
|
160
190
|
"fixable": false,
|
|
161
|
-
"clients": [
|
|
191
|
+
"clients": [
|
|
192
|
+
"all"
|
|
193
|
+
],
|
|
194
|
+
"stability": "stable"
|
|
162
195
|
},
|
|
163
196
|
{
|
|
164
197
|
"id": "mcp-security/http-no-tls",
|
|
@@ -168,7 +201,10 @@
|
|
|
168
201
|
"trigger": "URL scheme is http:// and host is not localhost or 127.0.0.1.",
|
|
169
202
|
"message": "Server \"{name}\": URL uses HTTP without TLS",
|
|
170
203
|
"fixable": false,
|
|
171
|
-
"clients": [
|
|
204
|
+
"clients": [
|
|
205
|
+
"all"
|
|
206
|
+
],
|
|
207
|
+
"stability": "stable"
|
|
172
208
|
},
|
|
173
209
|
{
|
|
174
210
|
"id": "mcp-commands/windows-npx-no-wrapper",
|
|
@@ -179,7 +215,10 @@
|
|
|
179
215
|
"message": "Server \"{name}\": npx requires \"cmd /c\" wrapper on Windows",
|
|
180
216
|
"fixable": true,
|
|
181
217
|
"fixDescription": "Rewrite command from \"npx\" to \"cmd\" with [\"/c\", \"npx\", ...] args.",
|
|
182
|
-
"clients": [
|
|
218
|
+
"clients": [
|
|
219
|
+
"all"
|
|
220
|
+
],
|
|
221
|
+
"stability": "stable"
|
|
183
222
|
},
|
|
184
223
|
{
|
|
185
224
|
"id": "mcp-commands/command-not-found",
|
|
@@ -189,7 +228,10 @@
|
|
|
189
228
|
"trigger": "Command starts with ./ or ../ and the resolved path does not exist.",
|
|
190
229
|
"message": "Server \"{name}\": command \"{command}\" not found",
|
|
191
230
|
"fixable": false,
|
|
192
|
-
"clients": [
|
|
231
|
+
"clients": [
|
|
232
|
+
"all"
|
|
233
|
+
],
|
|
234
|
+
"stability": "stable"
|
|
193
235
|
},
|
|
194
236
|
{
|
|
195
237
|
"id": "mcp-commands/args-path-missing",
|
|
@@ -199,7 +241,10 @@
|
|
|
199
241
|
"trigger": "An arg matches a file path pattern (contains / with extension, or starts with ./) and the file does not exist.",
|
|
200
242
|
"message": "Server \"{name}\": arg \"{arg}\" references a missing file",
|
|
201
243
|
"fixable": false,
|
|
202
|
-
"clients": [
|
|
244
|
+
"clients": [
|
|
245
|
+
"all"
|
|
246
|
+
],
|
|
247
|
+
"stability": "stable"
|
|
203
248
|
},
|
|
204
249
|
{
|
|
205
250
|
"id": "mcp-deprecated/sse-transport",
|
|
@@ -210,7 +255,10 @@
|
|
|
210
255
|
"message": "Server \"{name}\": SSE transport is deprecated — use \"http\" (Streamable HTTP)",
|
|
211
256
|
"fixable": true,
|
|
212
257
|
"fixDescription": "Replace \"sse\" with \"http\" in the type field.",
|
|
213
|
-
"clients": [
|
|
258
|
+
"clients": [
|
|
259
|
+
"all"
|
|
260
|
+
],
|
|
261
|
+
"stability": "stable"
|
|
214
262
|
},
|
|
215
263
|
{
|
|
216
264
|
"id": "mcp-env/wrong-syntax",
|
|
@@ -221,7 +269,13 @@
|
|
|
221
269
|
"message": "Server \"{name}\": {client} uses {expected}, not {actual}",
|
|
222
270
|
"fixable": true,
|
|
223
271
|
"fixDescription": "Rewrite env var references to the correct syntax for the target client.",
|
|
224
|
-
"clients": [
|
|
272
|
+
"clients": [
|
|
273
|
+
"claude-code",
|
|
274
|
+
"cursor",
|
|
275
|
+
"continue",
|
|
276
|
+
"windsurf"
|
|
277
|
+
],
|
|
278
|
+
"stability": "stable"
|
|
225
279
|
},
|
|
226
280
|
{
|
|
227
281
|
"id": "mcp-env/unset-variable",
|
|
@@ -231,7 +285,13 @@
|
|
|
231
285
|
"trigger": "Env var reference found but the variable is not in process.env.",
|
|
232
286
|
"message": "Server \"{name}\": environment variable \"{var}\" is not set",
|
|
233
287
|
"fixable": false,
|
|
234
|
-
"clients": [
|
|
288
|
+
"clients": [
|
|
289
|
+
"claude-code",
|
|
290
|
+
"cursor",
|
|
291
|
+
"continue",
|
|
292
|
+
"windsurf"
|
|
293
|
+
],
|
|
294
|
+
"stability": "stable"
|
|
235
295
|
},
|
|
236
296
|
{
|
|
237
297
|
"id": "mcp-env/empty-env-block",
|
|
@@ -241,7 +301,10 @@
|
|
|
241
301
|
"trigger": "\"env\" key is present but the object is empty ({}).",
|
|
242
302
|
"message": "Server \"{name}\": empty \"env\" block can be removed",
|
|
243
303
|
"fixable": false,
|
|
244
|
-
"clients": [
|
|
304
|
+
"clients": [
|
|
305
|
+
"all"
|
|
306
|
+
],
|
|
307
|
+
"stability": "stable"
|
|
245
308
|
},
|
|
246
309
|
{
|
|
247
310
|
"id": "mcp-urls/malformed",
|
|
@@ -251,7 +314,10 @@
|
|
|
251
314
|
"trigger": "URL cannot be parsed by standard URL parser and does not contain env var placeholders.",
|
|
252
315
|
"message": "Server \"{name}\": invalid URL",
|
|
253
316
|
"fixable": false,
|
|
254
|
-
"clients": [
|
|
317
|
+
"clients": [
|
|
318
|
+
"all"
|
|
319
|
+
],
|
|
320
|
+
"stability": "stable"
|
|
255
321
|
},
|
|
256
322
|
{
|
|
257
323
|
"id": "mcp-urls/localhost-in-project-config",
|
|
@@ -261,7 +327,10 @@
|
|
|
261
327
|
"trigger": "URL host is localhost or 127.0.0.1 and the file is a project-level config.",
|
|
262
328
|
"message": "Server \"{name}\": localhost URL in project config won't work for teammates",
|
|
263
329
|
"fixable": false,
|
|
264
|
-
"clients": [
|
|
330
|
+
"clients": [
|
|
331
|
+
"all"
|
|
332
|
+
],
|
|
333
|
+
"stability": "stable"
|
|
265
334
|
},
|
|
266
335
|
{
|
|
267
336
|
"id": "mcp-urls/missing-path",
|
|
@@ -271,7 +340,10 @@
|
|
|
271
340
|
"trigger": "URL path is empty or just \"/\".",
|
|
272
341
|
"message": "Server \"{name}\": URL has no path — most MCP servers expect /mcp",
|
|
273
342
|
"fixable": false,
|
|
274
|
-
"clients": [
|
|
343
|
+
"clients": [
|
|
344
|
+
"all"
|
|
345
|
+
],
|
|
346
|
+
"stability": "stable"
|
|
275
347
|
},
|
|
276
348
|
{
|
|
277
349
|
"id": "mcp-consistency/same-server-different-config",
|
|
@@ -281,7 +353,10 @@
|
|
|
281
353
|
"trigger": "Server name exists in 2+ config files with different url or command/args values.",
|
|
282
354
|
"message": "Server \"{name}\" is configured differently in {file1} and {file2}",
|
|
283
355
|
"fixable": false,
|
|
284
|
-
"clients": [
|
|
356
|
+
"clients": [
|
|
357
|
+
"all"
|
|
358
|
+
],
|
|
359
|
+
"stability": "stable"
|
|
285
360
|
},
|
|
286
361
|
{
|
|
287
362
|
"id": "mcp-consistency/duplicate-server-name",
|
|
@@ -291,7 +366,10 @@
|
|
|
291
366
|
"trigger": "Duplicate key in the mcpServers/servers object.",
|
|
292
367
|
"message": "Duplicate server name \"{name}\" in {file} — only the last definition is used",
|
|
293
368
|
"fixable": false,
|
|
294
|
-
"clients": [
|
|
369
|
+
"clients": [
|
|
370
|
+
"all"
|
|
371
|
+
],
|
|
372
|
+
"stability": "stable"
|
|
295
373
|
},
|
|
296
374
|
{
|
|
297
375
|
"id": "mcp-consistency/missing-from-client",
|
|
@@ -301,7 +379,10 @@
|
|
|
301
379
|
"trigger": "Server exists in .mcp.json but is absent from .cursor/mcp.json or .vscode/mcp.json (when those files exist).",
|
|
302
380
|
"message": "Server \"{name}\" is in .mcp.json but missing from {file}",
|
|
303
381
|
"fixable": false,
|
|
304
|
-
"clients": [
|
|
382
|
+
"clients": [
|
|
383
|
+
"all"
|
|
384
|
+
],
|
|
385
|
+
"stability": "stable"
|
|
305
386
|
},
|
|
306
387
|
{
|
|
307
388
|
"id": "mcp-redundancy/disabled-server",
|
|
@@ -311,7 +392,10 @@
|
|
|
311
392
|
"trigger": "Server has \"disabled\": true.",
|
|
312
393
|
"message": "Server \"{name}\" is disabled — consider removing if no longer needed",
|
|
313
394
|
"fixable": false,
|
|
314
|
-
"clients": [
|
|
395
|
+
"clients": [
|
|
396
|
+
"cline"
|
|
397
|
+
],
|
|
398
|
+
"stability": "stable"
|
|
315
399
|
},
|
|
316
400
|
{
|
|
317
401
|
"id": "mcp-redundancy/identical-across-scopes",
|
|
@@ -321,7 +405,12 @@
|
|
|
321
405
|
"trigger": "Server with same name and identical config exists at both project and global scope.",
|
|
322
406
|
"message": "Server \"{name}\" is identically configured in {projectFile} and {globalFile}",
|
|
323
407
|
"fixable": false,
|
|
324
|
-
"clients": [
|
|
408
|
+
"clients": [
|
|
409
|
+
"claude-code",
|
|
410
|
+
"cursor",
|
|
411
|
+
"amazonq"
|
|
412
|
+
],
|
|
413
|
+
"stability": "stable"
|
|
325
414
|
}
|
|
326
415
|
],
|
|
327
416
|
"clients": [
|
|
@@ -329,12 +418,23 @@
|
|
|
329
418
|
"id": "claude-code",
|
|
330
419
|
"name": "Claude Code",
|
|
331
420
|
"projectConfig": ".mcp.json",
|
|
332
|
-
"globalConfig": [
|
|
421
|
+
"globalConfig": [
|
|
422
|
+
"~/.claude.json",
|
|
423
|
+
"~/.claude/settings.json"
|
|
424
|
+
],
|
|
333
425
|
"rootKey": "mcpServers",
|
|
334
426
|
"envVarSyntax": "${VAR}",
|
|
335
427
|
"envVarDefaultSyntax": "${VAR:-default}",
|
|
336
|
-
"transports": [
|
|
337
|
-
|
|
428
|
+
"transports": [
|
|
429
|
+
"stdio",
|
|
430
|
+
"http",
|
|
431
|
+
"sse"
|
|
432
|
+
],
|
|
433
|
+
"scopePrecedence": [
|
|
434
|
+
"local",
|
|
435
|
+
"project",
|
|
436
|
+
"user"
|
|
437
|
+
]
|
|
338
438
|
},
|
|
339
439
|
{
|
|
340
440
|
"id": "claude-desktop",
|
|
@@ -346,8 +446,14 @@
|
|
|
346
446
|
},
|
|
347
447
|
"rootKey": "mcpServers",
|
|
348
448
|
"envVarSyntax": null,
|
|
349
|
-
"transports": [
|
|
350
|
-
|
|
449
|
+
"transports": [
|
|
450
|
+
"stdio",
|
|
451
|
+
"http",
|
|
452
|
+
"sse"
|
|
453
|
+
],
|
|
454
|
+
"scopePrecedence": [
|
|
455
|
+
"global"
|
|
456
|
+
]
|
|
351
457
|
},
|
|
352
458
|
{
|
|
353
459
|
"id": "vscode",
|
|
@@ -356,8 +462,15 @@
|
|
|
356
462
|
"globalConfig": null,
|
|
357
463
|
"rootKey": "servers",
|
|
358
464
|
"envVarSyntax": "${VAR}",
|
|
359
|
-
"transports": [
|
|
360
|
-
|
|
465
|
+
"transports": [
|
|
466
|
+
"stdio",
|
|
467
|
+
"http",
|
|
468
|
+
"sse"
|
|
469
|
+
],
|
|
470
|
+
"scopePrecedence": [
|
|
471
|
+
"workspace",
|
|
472
|
+
"user"
|
|
473
|
+
]
|
|
361
474
|
},
|
|
362
475
|
{
|
|
363
476
|
"id": "cursor",
|
|
@@ -366,8 +479,15 @@
|
|
|
366
479
|
"globalConfig": "~/.cursor/mcp.json",
|
|
367
480
|
"rootKey": "mcpServers",
|
|
368
481
|
"envVarSyntax": "${env:VAR}",
|
|
369
|
-
"transports": [
|
|
370
|
-
|
|
482
|
+
"transports": [
|
|
483
|
+
"stdio",
|
|
484
|
+
"http",
|
|
485
|
+
"sse"
|
|
486
|
+
],
|
|
487
|
+
"scopePrecedence": [
|
|
488
|
+
"project",
|
|
489
|
+
"global"
|
|
490
|
+
]
|
|
371
491
|
},
|
|
372
492
|
{
|
|
373
493
|
"id": "windsurf",
|
|
@@ -376,8 +496,14 @@
|
|
|
376
496
|
"globalConfig": "~/.codeium/windsurf/mcp_config.json",
|
|
377
497
|
"rootKey": "mcpServers",
|
|
378
498
|
"envVarSyntax": "${env:VAR}",
|
|
379
|
-
"transports": [
|
|
380
|
-
|
|
499
|
+
"transports": [
|
|
500
|
+
"stdio",
|
|
501
|
+
"http",
|
|
502
|
+
"sse"
|
|
503
|
+
],
|
|
504
|
+
"scopePrecedence": [
|
|
505
|
+
"global"
|
|
506
|
+
]
|
|
381
507
|
},
|
|
382
508
|
{
|
|
383
509
|
"id": "cline",
|
|
@@ -386,8 +512,14 @@
|
|
|
386
512
|
"globalConfig": "VS Code globalStorage: saoudrizwan.claude-dev/settings/cline_mcp_settings.json",
|
|
387
513
|
"rootKey": "mcpServers",
|
|
388
514
|
"envVarSyntax": null,
|
|
389
|
-
"transports": [
|
|
390
|
-
|
|
515
|
+
"transports": [
|
|
516
|
+
"stdio",
|
|
517
|
+
"http",
|
|
518
|
+
"sse"
|
|
519
|
+
],
|
|
520
|
+
"scopePrecedence": [
|
|
521
|
+
"global"
|
|
522
|
+
]
|
|
391
523
|
},
|
|
392
524
|
{
|
|
393
525
|
"id": "amazonq",
|
|
@@ -396,8 +528,14 @@
|
|
|
396
528
|
"globalConfig": "~/.aws/amazonq/mcp.json",
|
|
397
529
|
"rootKey": "mcpServers",
|
|
398
530
|
"envVarSyntax": null,
|
|
399
|
-
"transports": [
|
|
400
|
-
|
|
531
|
+
"transports": [
|
|
532
|
+
"stdio",
|
|
533
|
+
"http"
|
|
534
|
+
],
|
|
535
|
+
"scopePrecedence": [
|
|
536
|
+
"workspace",
|
|
537
|
+
"global"
|
|
538
|
+
]
|
|
401
539
|
},
|
|
402
540
|
{
|
|
403
541
|
"id": "continue",
|
|
@@ -406,8 +544,15 @@
|
|
|
406
544
|
"globalConfig": "~/.continue/config.yaml",
|
|
407
545
|
"rootKey": "mcpServers",
|
|
408
546
|
"envVarSyntax": "${{ secrets.VAR }}",
|
|
409
|
-
"transports": [
|
|
410
|
-
|
|
547
|
+
"transports": [
|
|
548
|
+
"stdio",
|
|
549
|
+
"http",
|
|
550
|
+
"sse"
|
|
551
|
+
],
|
|
552
|
+
"scopePrecedence": [
|
|
553
|
+
"workspace",
|
|
554
|
+
"global"
|
|
555
|
+
]
|
|
411
556
|
}
|
|
412
557
|
]
|
|
413
558
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yawlabs/ctxlint",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"description": "Lint your AI agent context files, MCP server configs, and session data against your actual codebase",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ctxlint": "dist/index.js"
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"dev": "node build.mjs",
|
|
12
12
|
"test": "vitest",
|
|
13
13
|
"test:run": "vitest run",
|
|
14
|
+
"test:coverage": "vitest run --coverage --coverage.reporter=text-summary --coverage.reporter=html --coverage.exclude='**/__tests__/**' --coverage.exclude='**/fixtures/**' --coverage.exclude='dist/**' --coverage.exclude='build.mjs' --coverage.exclude='coverage-report.mjs'",
|
|
14
15
|
"lint": "eslint src/",
|
|
15
16
|
"format": "prettier --write src/",
|
|
16
17
|
"mcp": "node dist/index.js --mcp-server"
|
|
@@ -79,6 +80,7 @@
|
|
|
79
80
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
80
81
|
"@types/fast-levenshtein": "^0.0.4",
|
|
81
82
|
"@types/node": "^25.6.0",
|
|
83
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
82
84
|
"chalk": "^5.6.2",
|
|
83
85
|
"commander": "^14.0.3",
|
|
84
86
|
"esbuild": "^0.28.0",
|
|
@@ -92,12 +94,18 @@
|
|
|
92
94
|
"tsup": "^8.5.1",
|
|
93
95
|
"typescript": "^6.0.2",
|
|
94
96
|
"typescript-eslint": "^8.58.1",
|
|
97
|
+
"vite": "^8.0.8",
|
|
95
98
|
"vitest": "^4.1.4",
|
|
96
99
|
"zod": "^4.3.6"
|
|
97
100
|
},
|
|
98
101
|
"pnpm": {
|
|
99
102
|
"onlyBuiltDependencies": [
|
|
100
103
|
"esbuild"
|
|
101
|
-
]
|
|
104
|
+
],
|
|
105
|
+
"overrides": {
|
|
106
|
+
"hono": "^4.12.12",
|
|
107
|
+
"@hono/node-server": "^1.19.13",
|
|
108
|
+
"vite": "^8.0.8"
|
|
109
|
+
}
|
|
102
110
|
}
|
|
103
111
|
}
|