incur 0.4.9 → 0.4.10
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/dist/Cli.d.ts +4 -0
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +125 -7
- package/dist/Cli.js.map +1 -1
- package/dist/Mcp.js +19 -5
- package/dist/Mcp.js.map +1 -1
- package/dist/internal/command.d.ts +29 -19
- package/dist/internal/command.d.ts.map +1 -1
- package/dist/internal/command.js +4 -0
- package/dist/internal/command.js.map +1 -1
- package/package.json +1 -1
- package/src/Cli.test-d.ts +2 -0
- package/src/Cli.test.ts +393 -4
- package/src/Cli.ts +150 -7
- package/src/Completions.test.ts +1 -0
- package/src/Help.test.ts +1 -1
- package/src/Mcp.test.ts +96 -0
- package/src/Mcp.ts +19 -5
- package/src/e2e.test.ts +4 -4
- package/src/internal/command.ts +4 -0
|
@@ -99,7 +99,7 @@ export declare const builtinCommands: ({
|
|
|
99
99
|
} | {
|
|
100
100
|
name: string;
|
|
101
101
|
description: string;
|
|
102
|
-
subcommands: (CommandMeta<z.ZodObject<{
|
|
102
|
+
subcommands: ((CommandMeta<z.ZodObject<{
|
|
103
103
|
agent: z.ZodOptional<z.ZodString>;
|
|
104
104
|
command: z.ZodOptional<z.ZodString>;
|
|
105
105
|
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -108,7 +108,12 @@ export declare const builtinCommands: ({
|
|
|
108
108
|
aliases?: string[] | undefined;
|
|
109
109
|
} & {
|
|
110
110
|
name: string;
|
|
111
|
-
})
|
|
111
|
+
}) | (CommandMeta<z.ZodObject<any, z.core.$strip>> & {
|
|
112
|
+
/** Alternative names for this built-in subcommand. */
|
|
113
|
+
aliases?: string[] | undefined;
|
|
114
|
+
} & {
|
|
115
|
+
name: string;
|
|
116
|
+
}))[];
|
|
112
117
|
args?: undefined;
|
|
113
118
|
hint?: undefined;
|
|
114
119
|
aliases?: undefined;
|
|
@@ -116,15 +121,15 @@ export declare const builtinCommands: ({
|
|
|
116
121
|
name: string;
|
|
117
122
|
aliases: string[];
|
|
118
123
|
description: string;
|
|
119
|
-
subcommands: ((CommandMeta<z.ZodObject<{
|
|
120
|
-
depth: z.ZodOptional<z.ZodNumber>;
|
|
121
|
-
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
122
|
-
}, z.core.$strip>> & {
|
|
124
|
+
subcommands: ((CommandMeta<z.ZodObject<any, z.core.$strip>> & {
|
|
123
125
|
/** Alternative names for this built-in subcommand. */
|
|
124
126
|
aliases?: string[] | undefined;
|
|
125
127
|
} & {
|
|
126
128
|
name: string;
|
|
127
|
-
}) | (CommandMeta<z.ZodObject<
|
|
129
|
+
}) | (CommandMeta<z.ZodObject<{
|
|
130
|
+
depth: z.ZodOptional<z.ZodNumber>;
|
|
131
|
+
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
132
|
+
}, z.core.$strip>> & {
|
|
128
133
|
/** Alternative names for this built-in subcommand. */
|
|
129
134
|
aliases?: string[] | undefined;
|
|
130
135
|
} & {
|
|
@@ -151,7 +156,7 @@ export declare function findBuiltin(token: string): {
|
|
|
151
156
|
} | {
|
|
152
157
|
name: string;
|
|
153
158
|
description: string;
|
|
154
|
-
subcommands: (CommandMeta<z.ZodObject<{
|
|
159
|
+
subcommands: ((CommandMeta<z.ZodObject<{
|
|
155
160
|
agent: z.ZodOptional<z.ZodString>;
|
|
156
161
|
command: z.ZodOptional<z.ZodString>;
|
|
157
162
|
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -160,7 +165,12 @@ export declare function findBuiltin(token: string): {
|
|
|
160
165
|
aliases?: string[] | undefined;
|
|
161
166
|
} & {
|
|
162
167
|
name: string;
|
|
163
|
-
})
|
|
168
|
+
}) | (CommandMeta<z.ZodObject<any, z.core.$strip>> & {
|
|
169
|
+
/** Alternative names for this built-in subcommand. */
|
|
170
|
+
aliases?: string[] | undefined;
|
|
171
|
+
} & {
|
|
172
|
+
name: string;
|
|
173
|
+
}))[];
|
|
164
174
|
args?: undefined;
|
|
165
175
|
hint?: undefined;
|
|
166
176
|
aliases?: undefined;
|
|
@@ -168,15 +178,15 @@ export declare function findBuiltin(token: string): {
|
|
|
168
178
|
name: string;
|
|
169
179
|
aliases: string[];
|
|
170
180
|
description: string;
|
|
171
|
-
subcommands: ((CommandMeta<z.ZodObject<{
|
|
172
|
-
depth: z.ZodOptional<z.ZodNumber>;
|
|
173
|
-
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
174
|
-
}, z.core.$strip>> & {
|
|
181
|
+
subcommands: ((CommandMeta<z.ZodObject<any, z.core.$strip>> & {
|
|
175
182
|
/** Alternative names for this built-in subcommand. */
|
|
176
183
|
aliases?: string[] | undefined;
|
|
177
184
|
} & {
|
|
178
185
|
name: string;
|
|
179
|
-
}) | (CommandMeta<z.ZodObject<
|
|
186
|
+
}) | (CommandMeta<z.ZodObject<{
|
|
187
|
+
depth: z.ZodOptional<z.ZodNumber>;
|
|
188
|
+
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
189
|
+
}, z.core.$strip>> & {
|
|
180
190
|
/** Alternative names for this built-in subcommand. */
|
|
181
191
|
aliases?: string[] | undefined;
|
|
182
192
|
} & {
|
|
@@ -195,15 +205,15 @@ export declare function findBuiltinSubcommand(builtin: (typeof builtinCommands)[
|
|
|
195
205
|
aliases?: string[] | undefined;
|
|
196
206
|
} & {
|
|
197
207
|
name: string;
|
|
198
|
-
}) | (CommandMeta<z.ZodObject<{
|
|
199
|
-
depth: z.ZodOptional<z.ZodNumber>;
|
|
200
|
-
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
-
}, z.core.$strip>> & {
|
|
208
|
+
}) | (CommandMeta<z.ZodObject<any, z.core.$strip>> & {
|
|
202
209
|
/** Alternative names for this built-in subcommand. */
|
|
203
210
|
aliases?: string[] | undefined;
|
|
204
211
|
} & {
|
|
205
212
|
name: string;
|
|
206
|
-
}) | (CommandMeta<z.ZodObject<
|
|
213
|
+
}) | (CommandMeta<z.ZodObject<{
|
|
214
|
+
depth: z.ZodOptional<z.ZodNumber>;
|
|
215
|
+
noGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
216
|
+
}, z.core.$strip>> & {
|
|
207
217
|
/** Alternative names for this built-in subcommand. */
|
|
208
218
|
aliases?: string[] | undefined;
|
|
209
219
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/command.js
CHANGED
|
@@ -260,6 +260,10 @@ export const builtinCommands = [
|
|
|
260
260
|
noGlobal: z.boolean().optional().describe('Install to project instead of globally'),
|
|
261
261
|
}),
|
|
262
262
|
}),
|
|
263
|
+
subcommand({
|
|
264
|
+
name: 'doctor',
|
|
265
|
+
description: 'Validate MCP server startup and tool listing',
|
|
266
|
+
}),
|
|
263
267
|
],
|
|
264
268
|
},
|
|
265
269
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,wEAAwE;AACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAyB7C,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAY,EAAE,OAAwB;IAClE,MAAM,EACJ,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,SAAS,GAAG,OAAO,CAAC,GAAG,EACvB,GAAG,EAAE,SAAS,EACd,OAAO,GAAG,EAAE,EACZ,IAAI,EAAE,UAAU,EAChB,WAAW,GAAG,EAAE,GACjB,GAAG,OAAO,CAAA;IACX,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAA;IAE7C,MAAM,OAAO,GAA4B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,IAAI,MAAkC,CAAA;IACtC,6FAA6F;IAC7F,6FAA6F;IAC7F,yFAAyF;IACzF,IAAI,cAAyC,CAAA;IAC7C,IAAI,qBAA+C,CAAA;IACnD,IAAI,kBAA4C,CAAA;IAChD,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;QAC1C,kBAAkB,GAAG,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,yBAAyB;QACzB,IAAI,IAA6B,CAAA;QACjC,IAAI,aAAsC,CAAA;QAE1C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,KAA2C;gBAC1D,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAA;YACF,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,aAAa,GAAG,MAAM,CAAC,OAAO,CAAA;QAChC,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,6EAA6E;YAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACzD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAChD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACpE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACxF,CAAC;QAED,YAAY;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAE7E,yBAAyB;QACzB,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,OAAuC,EAAE,EAAS,EAAE,CAC/E,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAU,CAAA;QACtD,MAAM,OAAO,GAAG,CAAC,IAMhB,EAAS,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAU,CAAA;QAExD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACtB,KAAK;YACL,IAAI;YACJ,WAAW;YACX,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,OAAO;YACd,MAAM;YACN,cAAc;YACd,IAAI;YACJ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,aAAa;YACtB,GAAG,EAAE,OAAO;YACZ,OAAO;SACR,CAAC,CAAA;QAEF,8EAA8E;QAC9E,qFAAqF;QACrF,mEAAmE;QACnE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;oBACvC,qBAAqB,GAAG,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;gBACF,KAAK,SAAS,CAAC,CAAC,OAAO;oBACrB,IAAI,CAAC;wBACH,OAAO,KAAK,CAAC,CAAC,GAAgD,CAAA;oBAChE,CAAC;4BAAS,CAAC;wBACT,qBAAsB,EAAE,CAAA;oBAC1B,CAAC;gBACH,CAAC;gBACD,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;gBAC9B,kBAAmB,EAAE,CAAA;gBACrB,MAAM,cAAc,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;YAC1B,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAA;QAEzB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,OAAmB,CAAA;gBAC9B,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAA;YACjF,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAsB,CAAA;gBAClC,MAAM,GAAG;oBACP,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBAC5E;oBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3C,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;iBACzE,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACtC,CAAC,CAAA;IAED,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAErE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,IAMhB,EAAS,EAAE;gBACV,0FAA0F;gBAC1F,MAAM,GAAG;oBACP,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBAC9E;oBACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC3E,CAAA;gBACD,OAAO,SAAkB,CAAA;YAC3B,CAAC,CAAA;YAED,MAAM,KAAK,GAAsB;gBAC/B,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,MAAa;gBACrB,cAAc;gBACd,OAAO;gBACP,IAAI;gBACJ,GAAG,CAAC,GAAW,EAAE,KAAc;oBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBACtB,CAAC;gBACD,GAAG,EAAE,OAAO;gBACZ,OAAO;aACR,CAAA;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CACtC,CAAC,IAAyB,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;gBAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvB,CAAC,EACD,UAAU,CACX,CAAA;YACD,6EAA6E;YAC7E,8EAA8E;YAC9E,iFAAiF;YACjF,sFAAsF;YACtF,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAA;YAC/B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;YAC/C,IAAI,cAAc;gBAAE,OAAO,MAAO,CAAA;YAClC,MAAM,YAAY,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe;YAClC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B;aACF,CAAA;QACH,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC1D,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,GAAG,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC9E;YACD,GAAG,CAAC,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC7D,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;gBAC9B,CAAC,CAAC,SAAS,CAAC;SACf,CAAA;IACH,CAAC;IAED,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAChD,CAAC;AAED,6EAA6E;AAC7E,SAAS,WAAW,CAClB,MAA+B,EAC/B,OAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,CAAC,GAA4B,EAAE,CAAA;IACrC,MAAM,CAAC,GAA4B,EAAE,CAAA;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;;YAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;AAChC,CAAC;AA6DD,iDAAiD;AACjD,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAA;AACzE,CAAC;AAED,iDAAiD;AACjD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,aAAa,IAAI,KAAK;QAC7B,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAC1C,CAAA;AACH,CAAC;AAqBD,4EAA4E;AAC5E,SAAS,UAAU,CACjB,GAAsD;IAEtD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAA;AAKjE,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACpE,CAAC;QACF,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,GAAG;gBACX,CAAC,MAAM,EAAE,WAAW,IAAI,qBAAqB,EAAE,oBAAoB,CAAC;gBACpE,CAAC,MAAM,EAAE,GAAG,IAAI,4BAA4B,EAAE,qCAAqC,CAAC;gBACpF,CAAC,SAAS,EAAE,SAAS,IAAI,wBAAwB,EAAE,oBAAoB,CAAC;gBACxE,CAAC,KAAK,EAAE,WAAW,IAAI,oBAAoB,EAAE,mBAAmB,CAAC;aACzD,CAAA;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YACtD,OAAO,CACL,UAAU;gBACV,IAAI;qBACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;qBACpF,IAAI,CAAC,IAAI,CAAC,CACd,CAAA;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,UAAU,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,wBAAwB;gBACrC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,KAAK,EAAE,CAAC;yBACL,MAAM,EAAE;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,oDAAoD,CAAC;oBACjE,OAAO,EAAE,CAAC;yBACP,MAAM,EAAE;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,iEAAiE,CAAC;oBAC9E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACpF,CAAC;aACH,CAAC;SACH;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,UAAU,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,4BAA4B;gBACzC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;oBACpF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACpF,CAAC;aACH,CAAC;YACF,UAAU,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,WAAW,EAAE,aAAa;aAC3B,CAAC;SACH;KACF;CAQA,CAAA;AAEH,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,qBAAqB,CAAC,OAAyC,EAAE,KAAa;IAC5F,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/F,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Cli.test-d.ts
CHANGED
|
@@ -354,6 +354,8 @@ test('run() context exposes format metadata', () => {
|
|
|
354
354
|
test('command mcp metadata accepts instructions and annotations', () => {
|
|
355
355
|
Cli.create('test').command('read', {
|
|
356
356
|
mcp: {
|
|
357
|
+
name: 'read_data',
|
|
358
|
+
description: 'Read data through MCP',
|
|
357
359
|
annotations: {
|
|
358
360
|
title: 'Read data',
|
|
359
361
|
readOnlyHint: true,
|
package/src/Cli.test.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { homedir, tmpdir } from 'node:os'
|
|
|
4
4
|
import { join } from 'node:path'
|
|
5
5
|
|
|
6
6
|
import * as Command from './internal/command.js'
|
|
7
|
+
import * as SyncMcp from './SyncMcp.js'
|
|
7
8
|
|
|
8
9
|
const originalIsTTY = process.stdout.isTTY
|
|
9
10
|
beforeAll(() => {
|
|
@@ -47,6 +48,15 @@ async function serve(
|
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
function mockMcpServeResponses(responses: unknown[]) {
|
|
52
|
+
return vi.spyOn(Mcp, 'serve').mockImplementation(async (_name, _version, _commands, options) => {
|
|
53
|
+
for (const response of responses)
|
|
54
|
+
options!.output?.write(
|
|
55
|
+
`${typeof response === 'string' ? response : JSON.stringify(response)}\n`,
|
|
56
|
+
)
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
function createConfigCli(flag?: string) {
|
|
51
61
|
const project = Cli.create('project').command('list', {
|
|
52
62
|
options: z.object({
|
|
@@ -2178,7 +2188,7 @@ describe('help', () => {
|
|
|
2178
2188
|
|
|
2179
2189
|
Integrations:
|
|
2180
2190
|
completions Generate shell completion script
|
|
2181
|
-
mcp
|
|
2191
|
+
mcp Register as MCP server (add, doctor)
|
|
2182
2192
|
skills Sync skill files to agents (add, list)
|
|
2183
2193
|
|
|
2184
2194
|
Global Options:
|
|
@@ -2216,7 +2226,7 @@ describe('help', () => {
|
|
|
2216
2226
|
|
|
2217
2227
|
Integrations:
|
|
2218
2228
|
completions Generate shell completion script
|
|
2219
|
-
mcp
|
|
2229
|
+
mcp Register as MCP server (add, doctor)
|
|
2220
2230
|
skills Sync skill files to agents (add, list)
|
|
2221
2231
|
|
|
2222
2232
|
Global Options:
|
|
@@ -2502,7 +2512,7 @@ describe('help', () => {
|
|
|
2502
2512
|
|
|
2503
2513
|
Integrations:
|
|
2504
2514
|
completions Generate shell completion script
|
|
2505
|
-
mcp
|
|
2515
|
+
mcp Register as MCP server (add, doctor)
|
|
2506
2516
|
skills Sync skill files to agents (add, list)
|
|
2507
2517
|
|
|
2508
2518
|
Global Options:
|
|
@@ -2832,6 +2842,7 @@ describe('built-in commands', () => {
|
|
|
2832
2842
|
expect(output).toContain('test mcp')
|
|
2833
2843
|
expect(output).toContain('Register as MCP server')
|
|
2834
2844
|
expect(output).toContain('add')
|
|
2845
|
+
expect(output).toContain('doctor')
|
|
2835
2846
|
})
|
|
2836
2847
|
|
|
2837
2848
|
test('mcp --help shows help with subcommands', async () => {
|
|
@@ -2840,6 +2851,7 @@ describe('built-in commands', () => {
|
|
|
2840
2851
|
const { output } = await serve(cli, ['mcp', '--help'])
|
|
2841
2852
|
expect(output).toContain('test mcp')
|
|
2842
2853
|
expect(output).toContain('add')
|
|
2854
|
+
expect(output).toContain('doctor')
|
|
2843
2855
|
})
|
|
2844
2856
|
|
|
2845
2857
|
test('mcp add --help shows options', async () => {
|
|
@@ -2852,6 +2864,364 @@ describe('built-in commands', () => {
|
|
|
2852
2864
|
expect(output).toContain('--agent')
|
|
2853
2865
|
})
|
|
2854
2866
|
|
|
2867
|
+
test('mcp add forwards command, agent, and global flags', async () => {
|
|
2868
|
+
const spy = vi
|
|
2869
|
+
.spyOn(SyncMcp, 'register')
|
|
2870
|
+
.mockResolvedValue({ command: 'pnpm test --mcp', agents: ['Cursor'] })
|
|
2871
|
+
try {
|
|
2872
|
+
const cli = Cli.create('test', { sync: { suggestions: ['Check health'] } })
|
|
2873
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2874
|
+
const { output, exitCode } = await serve(cli, [
|
|
2875
|
+
'mcp',
|
|
2876
|
+
'add',
|
|
2877
|
+
'--no-global',
|
|
2878
|
+
'-c',
|
|
2879
|
+
'pnpm test --mcp',
|
|
2880
|
+
'--agent',
|
|
2881
|
+
'cursor',
|
|
2882
|
+
'--json',
|
|
2883
|
+
])
|
|
2884
|
+
expect(exitCode).toBeUndefined()
|
|
2885
|
+
expect(spy).toHaveBeenCalledWith('test', {
|
|
2886
|
+
command: 'pnpm test --mcp',
|
|
2887
|
+
global: false,
|
|
2888
|
+
agents: ['cursor'],
|
|
2889
|
+
})
|
|
2890
|
+
expect(output).toContain('Registered test as MCP server')
|
|
2891
|
+
expect(output).toContain('Try asking:')
|
|
2892
|
+
expect(output).toContain('"Check health"')
|
|
2893
|
+
expect(output).toContain('"command": "pnpm test --mcp"')
|
|
2894
|
+
} finally {
|
|
2895
|
+
spy.mockRestore()
|
|
2896
|
+
}
|
|
2897
|
+
})
|
|
2898
|
+
|
|
2899
|
+
test('mcp add exits nonzero when registration fails', async () => {
|
|
2900
|
+
const spy = vi.spyOn(SyncMcp, 'register').mockRejectedValue('register failed')
|
|
2901
|
+
try {
|
|
2902
|
+
const cli = Cli.create('test')
|
|
2903
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2904
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'add', '--json'])
|
|
2905
|
+
expect(exitCode).toBe(1)
|
|
2906
|
+
expect(output).toContain('Registering MCP server...')
|
|
2907
|
+
expect(JSON.parse(output.slice(output.indexOf('{')))).toEqual({
|
|
2908
|
+
code: 'MCP_ADD_FAILED',
|
|
2909
|
+
message: 'register failed',
|
|
2910
|
+
})
|
|
2911
|
+
} finally {
|
|
2912
|
+
spy.mockRestore()
|
|
2913
|
+
}
|
|
2914
|
+
})
|
|
2915
|
+
|
|
2916
|
+
test('mcp doctor --help shows description', async () => {
|
|
2917
|
+
const cli = Cli.create('test')
|
|
2918
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2919
|
+
const { output } = await serve(cli, ['mcp', 'doctor', '--help'])
|
|
2920
|
+
expect(output).toContain('test mcp doctor')
|
|
2921
|
+
expect(output).toContain('Validate MCP server startup and tool listing')
|
|
2922
|
+
})
|
|
2923
|
+
|
|
2924
|
+
test('mcp doctor lists tools', async () => {
|
|
2925
|
+
const cli = Cli.create('test', { version: '1.0.0' })
|
|
2926
|
+
cli.command('ping', { description: 'Health check', run: () => ({ pong: true }) })
|
|
2927
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
2928
|
+
const result = JSON.parse(output)
|
|
2929
|
+
expect(exitCode).toBeUndefined()
|
|
2930
|
+
expect(result).toEqual({
|
|
2931
|
+
ok: true,
|
|
2932
|
+
toolCount: 1,
|
|
2933
|
+
tools: [{ name: 'ping', description: 'Health check' }],
|
|
2934
|
+
warnings: [],
|
|
2935
|
+
errors: [],
|
|
2936
|
+
})
|
|
2937
|
+
})
|
|
2938
|
+
|
|
2939
|
+
test('mcp doctor forwards MCP instructions to the smoke test server', async () => {
|
|
2940
|
+
const spy = mockMcpServeResponses([
|
|
2941
|
+
{
|
|
2942
|
+
jsonrpc: '2.0',
|
|
2943
|
+
id: 1,
|
|
2944
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
2945
|
+
},
|
|
2946
|
+
{ jsonrpc: '2.0', id: 2, result: { tools: [] } },
|
|
2947
|
+
])
|
|
2948
|
+
try {
|
|
2949
|
+
const cli = Cli.create('test', {
|
|
2950
|
+
version: '2.0.0',
|
|
2951
|
+
mcp: { instructions: 'Use read-only commands first.' },
|
|
2952
|
+
})
|
|
2953
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2954
|
+
const { exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
2955
|
+
expect(exitCode).toBeUndefined()
|
|
2956
|
+
expect(spy).toHaveBeenCalledWith(
|
|
2957
|
+
'test',
|
|
2958
|
+
'2.0.0',
|
|
2959
|
+
expect.any(Map),
|
|
2960
|
+
expect.objectContaining({
|
|
2961
|
+
version: '2.0.0',
|
|
2962
|
+
instructions: 'Use read-only commands first.',
|
|
2963
|
+
}),
|
|
2964
|
+
)
|
|
2965
|
+
} finally {
|
|
2966
|
+
spy.mockRestore()
|
|
2967
|
+
}
|
|
2968
|
+
})
|
|
2969
|
+
|
|
2970
|
+
test('mcp doctor does not call tools', async () => {
|
|
2971
|
+
let calls = 0
|
|
2972
|
+
const cli = Cli.create('test')
|
|
2973
|
+
cli.command('mutate', {
|
|
2974
|
+
run() {
|
|
2975
|
+
calls++
|
|
2976
|
+
return { ok: true }
|
|
2977
|
+
},
|
|
2978
|
+
})
|
|
2979
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
2980
|
+
expect(exitCode).toBeUndefined()
|
|
2981
|
+
expect(JSON.parse(output)).toMatchObject({ ok: true, toolCount: 1 })
|
|
2982
|
+
expect(calls).toBe(0)
|
|
2983
|
+
})
|
|
2984
|
+
|
|
2985
|
+
test('mcp doctor warns when no tools are exposed', async () => {
|
|
2986
|
+
const spy = mockMcpServeResponses([
|
|
2987
|
+
{
|
|
2988
|
+
jsonrpc: '2.0',
|
|
2989
|
+
id: 1,
|
|
2990
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
2991
|
+
},
|
|
2992
|
+
{ jsonrpc: '2.0', id: 2, result: { tools: [] } },
|
|
2993
|
+
])
|
|
2994
|
+
try {
|
|
2995
|
+
const cli = Cli.create('test')
|
|
2996
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2997
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
2998
|
+
expect(exitCode).toBeUndefined()
|
|
2999
|
+
expect(JSON.parse(output)).toEqual({
|
|
3000
|
+
ok: true,
|
|
3001
|
+
toolCount: 0,
|
|
3002
|
+
tools: [],
|
|
3003
|
+
warnings: ['No MCP tools exposed.'],
|
|
3004
|
+
errors: [],
|
|
3005
|
+
})
|
|
3006
|
+
} finally {
|
|
3007
|
+
spy.mockRestore()
|
|
3008
|
+
}
|
|
3009
|
+
})
|
|
3010
|
+
|
|
3011
|
+
test('mcp doctor filters malformed tools from tools/list', async () => {
|
|
3012
|
+
const spy = mockMcpServeResponses([
|
|
3013
|
+
{
|
|
3014
|
+
jsonrpc: '2.0',
|
|
3015
|
+
id: 1,
|
|
3016
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
3017
|
+
},
|
|
3018
|
+
{
|
|
3019
|
+
jsonrpc: '2.0',
|
|
3020
|
+
id: 2,
|
|
3021
|
+
result: {
|
|
3022
|
+
tools: [
|
|
3023
|
+
null,
|
|
3024
|
+
{ name: 123, description: 'bad name' },
|
|
3025
|
+
{ name: 'without_description', description: 123 },
|
|
3026
|
+
{ name: 'with_description', description: 'Useful tool' },
|
|
3027
|
+
],
|
|
3028
|
+
},
|
|
3029
|
+
},
|
|
3030
|
+
])
|
|
3031
|
+
try {
|
|
3032
|
+
const cli = Cli.create('test')
|
|
3033
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3034
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3035
|
+
expect(exitCode).toBeUndefined()
|
|
3036
|
+
expect(JSON.parse(output)).toEqual({
|
|
3037
|
+
ok: true,
|
|
3038
|
+
toolCount: 2,
|
|
3039
|
+
tools: [
|
|
3040
|
+
{ name: 'without_description' },
|
|
3041
|
+
{ name: 'with_description', description: 'Useful tool' },
|
|
3042
|
+
],
|
|
3043
|
+
warnings: [],
|
|
3044
|
+
errors: [],
|
|
3045
|
+
})
|
|
3046
|
+
} finally {
|
|
3047
|
+
spy.mockRestore()
|
|
3048
|
+
}
|
|
3049
|
+
})
|
|
3050
|
+
|
|
3051
|
+
test('mcp doctor exits nonzero when MCP server fails', async () => {
|
|
3052
|
+
const spy = vi.spyOn(Mcp, 'serve').mockRejectedValue(new Error('boom'))
|
|
3053
|
+
try {
|
|
3054
|
+
const cli = Cli.create('test')
|
|
3055
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3056
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3057
|
+
expect(exitCode).toBe(1)
|
|
3058
|
+
expect(JSON.parse(output)).toEqual({
|
|
3059
|
+
ok: false,
|
|
3060
|
+
toolCount: 0,
|
|
3061
|
+
tools: [],
|
|
3062
|
+
warnings: [],
|
|
3063
|
+
errors: [{ code: 'MCP_SERVER_FAILED', message: 'boom' }],
|
|
3064
|
+
})
|
|
3065
|
+
} finally {
|
|
3066
|
+
spy.mockRestore()
|
|
3067
|
+
}
|
|
3068
|
+
})
|
|
3069
|
+
|
|
3070
|
+
test('mcp doctor stringifies non-error MCP server failures', async () => {
|
|
3071
|
+
const spy = vi.spyOn(Mcp, 'serve').mockRejectedValue('boom')
|
|
3072
|
+
try {
|
|
3073
|
+
const cli = Cli.create('test')
|
|
3074
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3075
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3076
|
+
expect(exitCode).toBe(1)
|
|
3077
|
+
expect(JSON.parse(output).errors).toEqual([{ code: 'MCP_SERVER_FAILED', message: 'boom' }])
|
|
3078
|
+
} finally {
|
|
3079
|
+
spy.mockRestore()
|
|
3080
|
+
}
|
|
3081
|
+
})
|
|
3082
|
+
|
|
3083
|
+
test('mcp doctor exits nonzero when MCP response cannot be parsed', async () => {
|
|
3084
|
+
const spy = mockMcpServeResponses(['{bad json}'])
|
|
3085
|
+
try {
|
|
3086
|
+
const cli = Cli.create('test')
|
|
3087
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3088
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3089
|
+
expect(exitCode).toBe(1)
|
|
3090
|
+
expect(JSON.parse(output)).toMatchObject({
|
|
3091
|
+
ok: false,
|
|
3092
|
+
toolCount: 0,
|
|
3093
|
+
tools: [],
|
|
3094
|
+
warnings: [],
|
|
3095
|
+
errors: [{ code: 'MCP_RESPONSE_PARSE_FAILED' }],
|
|
3096
|
+
})
|
|
3097
|
+
} finally {
|
|
3098
|
+
spy.mockRestore()
|
|
3099
|
+
}
|
|
3100
|
+
})
|
|
3101
|
+
|
|
3102
|
+
test('mcp doctor exits nonzero when an MCP response is not an object', async () => {
|
|
3103
|
+
const spy = mockMcpServeResponses([null])
|
|
3104
|
+
try {
|
|
3105
|
+
const cli = Cli.create('test')
|
|
3106
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3107
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3108
|
+
expect(exitCode).toBe(1)
|
|
3109
|
+
expect(JSON.parse(output)).toMatchObject({
|
|
3110
|
+
ok: false,
|
|
3111
|
+
errors: [
|
|
3112
|
+
{
|
|
3113
|
+
code: 'MCP_RESPONSE_PARSE_FAILED',
|
|
3114
|
+
message: 'Expected JSON-RPC response object.',
|
|
3115
|
+
},
|
|
3116
|
+
],
|
|
3117
|
+
})
|
|
3118
|
+
} finally {
|
|
3119
|
+
spy.mockRestore()
|
|
3120
|
+
}
|
|
3121
|
+
})
|
|
3122
|
+
|
|
3123
|
+
test('mcp doctor exits nonzero when initialize response is missing', async () => {
|
|
3124
|
+
const spy = mockMcpServeResponses([{ jsonrpc: '2.0', id: 2, result: { tools: [] } }])
|
|
3125
|
+
try {
|
|
3126
|
+
const cli = Cli.create('test')
|
|
3127
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3128
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3129
|
+
expect(exitCode).toBe(1)
|
|
3130
|
+
expect(JSON.parse(output).errors).toEqual([
|
|
3131
|
+
{ code: 'MCP_INITIALIZE_MISSING', message: 'Missing initialize response.' },
|
|
3132
|
+
])
|
|
3133
|
+
} finally {
|
|
3134
|
+
spy.mockRestore()
|
|
3135
|
+
}
|
|
3136
|
+
})
|
|
3137
|
+
|
|
3138
|
+
test('mcp doctor exits nonzero when initialize fails', async () => {
|
|
3139
|
+
const spy = mockMcpServeResponses([
|
|
3140
|
+
{ jsonrpc: '2.0', id: 1, error: 'initialize failed' },
|
|
3141
|
+
{ jsonrpc: '2.0', id: 2, result: { tools: [] } },
|
|
3142
|
+
])
|
|
3143
|
+
try {
|
|
3144
|
+
const cli = Cli.create('test')
|
|
3145
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3146
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3147
|
+
expect(exitCode).toBe(1)
|
|
3148
|
+
expect(JSON.parse(output).errors).toEqual([
|
|
3149
|
+
{ code: 'MCP_INITIALIZE_FAILED', message: '"initialize failed"' },
|
|
3150
|
+
])
|
|
3151
|
+
} finally {
|
|
3152
|
+
spy.mockRestore()
|
|
3153
|
+
}
|
|
3154
|
+
})
|
|
3155
|
+
|
|
3156
|
+
test('mcp doctor exits nonzero when tools/list response is missing', async () => {
|
|
3157
|
+
const spy = mockMcpServeResponses([
|
|
3158
|
+
{
|
|
3159
|
+
jsonrpc: '2.0',
|
|
3160
|
+
id: 1,
|
|
3161
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
3162
|
+
},
|
|
3163
|
+
])
|
|
3164
|
+
try {
|
|
3165
|
+
const cli = Cli.create('test')
|
|
3166
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3167
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3168
|
+
expect(exitCode).toBe(1)
|
|
3169
|
+
expect(JSON.parse(output).errors).toEqual([
|
|
3170
|
+
{ code: 'MCP_TOOLS_LIST_MISSING', message: 'Missing tools/list response.' },
|
|
3171
|
+
])
|
|
3172
|
+
} finally {
|
|
3173
|
+
spy.mockRestore()
|
|
3174
|
+
}
|
|
3175
|
+
})
|
|
3176
|
+
|
|
3177
|
+
test('mcp doctor exits nonzero when tools/list fails', async () => {
|
|
3178
|
+
const spy = mockMcpServeResponses([
|
|
3179
|
+
{
|
|
3180
|
+
jsonrpc: '2.0',
|
|
3181
|
+
id: 1,
|
|
3182
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
3183
|
+
},
|
|
3184
|
+
{ jsonrpc: '2.0', id: 2, error: { code: -32603, message: 'list failed' } },
|
|
3185
|
+
])
|
|
3186
|
+
try {
|
|
3187
|
+
const cli = Cli.create('test')
|
|
3188
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3189
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3190
|
+
expect(exitCode).toBe(1)
|
|
3191
|
+
expect(JSON.parse(output)).toEqual({
|
|
3192
|
+
ok: false,
|
|
3193
|
+
toolCount: 0,
|
|
3194
|
+
tools: [],
|
|
3195
|
+
warnings: [],
|
|
3196
|
+
errors: [{ code: 'MCP_TOOLS_LIST_FAILED', message: 'list failed' }],
|
|
3197
|
+
})
|
|
3198
|
+
} finally {
|
|
3199
|
+
spy.mockRestore()
|
|
3200
|
+
}
|
|
3201
|
+
})
|
|
3202
|
+
|
|
3203
|
+
test('mcp doctor exits nonzero when tools/list has an invalid shape', async () => {
|
|
3204
|
+
const spy = mockMcpServeResponses([
|
|
3205
|
+
{
|
|
3206
|
+
jsonrpc: '2.0',
|
|
3207
|
+
id: 1,
|
|
3208
|
+
result: { protocolVersion: '2024-11-05', capabilities: {}, serverInfo: {} },
|
|
3209
|
+
},
|
|
3210
|
+
{ jsonrpc: '2.0', id: 2, result: { tools: 'invalid' } },
|
|
3211
|
+
])
|
|
3212
|
+
try {
|
|
3213
|
+
const cli = Cli.create('test')
|
|
3214
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
3215
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'doctor', '--json'])
|
|
3216
|
+
expect(exitCode).toBe(1)
|
|
3217
|
+
expect(JSON.parse(output).errors).toEqual([
|
|
3218
|
+
{ code: 'MCP_TOOLS_LIST_INVALID', message: 'tools/list did not return a tools array.' },
|
|
3219
|
+
])
|
|
3220
|
+
} finally {
|
|
3221
|
+
spy.mockRestore()
|
|
3222
|
+
}
|
|
3223
|
+
})
|
|
3224
|
+
|
|
2855
3225
|
test('bare skills shows help with subcommands', async () => {
|
|
2856
3226
|
const cli = Cli.create('test')
|
|
2857
3227
|
cli.command('ping', { run: () => ({ pong: true }) })
|
|
@@ -2888,6 +3258,22 @@ describe('built-in commands', () => {
|
|
|
2888
3258
|
expect(output).toContain('test mcp add')
|
|
2889
3259
|
})
|
|
2890
3260
|
|
|
3261
|
+
test('mcp typo shows human suggestions in TTY', async () => {
|
|
3262
|
+
const previous = process.stdout.isTTY
|
|
3263
|
+
;(process.stdout as any).isTTY = true
|
|
3264
|
+
try {
|
|
3265
|
+
const cli = Cli.create('test')
|
|
3266
|
+
cli.command('ping', { run: () => ({}) })
|
|
3267
|
+
const { output, exitCode } = await serve(cli, ['mcp', 'zzzz'])
|
|
3268
|
+
expect(exitCode).toBe(1)
|
|
3269
|
+
expect(output).toContain("Error: 'zzzz' is not a command for 'test mcp'.")
|
|
3270
|
+
expect(output).toContain('Suggested command:')
|
|
3271
|
+
expect(output).toContain('test mcp --help')
|
|
3272
|
+
} finally {
|
|
3273
|
+
;(process.stdout as any).isTTY = previous
|
|
3274
|
+
}
|
|
3275
|
+
})
|
|
3276
|
+
|
|
2891
3277
|
test('skills add --help shows options', async () => {
|
|
2892
3278
|
const cli = Cli.create('test')
|
|
2893
3279
|
cli.command('ping', { run: () => ({ pong: true }) })
|
|
@@ -5888,6 +6274,8 @@ describe('--mcp', () => {
|
|
|
5888
6274
|
const cli = Cli.create('test')
|
|
5889
6275
|
cli.command('deploy', {
|
|
5890
6276
|
mcp: {
|
|
6277
|
+
name: 'deploy_service',
|
|
6278
|
+
description: 'Deploy service through MCP',
|
|
5891
6279
|
annotations: { destructiveHint: true, idempotentHint: false },
|
|
5892
6280
|
instructions: 'Require confirmation before production deploys.',
|
|
5893
6281
|
},
|
|
@@ -5897,7 +6285,8 @@ describe('--mcp', () => {
|
|
|
5897
6285
|
|
|
5898
6286
|
const commands = spy.mock.calls[0]![2] as Map<string, any>
|
|
5899
6287
|
const [tool] = Mcp.collectTools(commands, [])
|
|
5900
|
-
expect(tool?.name).toBe('
|
|
6288
|
+
expect(tool?.name).toBe('deploy_service')
|
|
6289
|
+
expect(tool?.description).toBe('Deploy service through MCP')
|
|
5901
6290
|
expect(tool?.annotations).toEqual({ destructiveHint: true, idempotentHint: false })
|
|
5902
6291
|
expect(tool?.instructions).toBe('Require confirmation before production deploys.')
|
|
5903
6292
|
} finally {
|