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.
@@ -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<any, z.core.$strip>> & {
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<any, z.core.$strip>> & {
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<any, z.core.$strip>> & {
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,KAAK,EAAgC,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMlG,8CAA8C;AAC9C,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAA;AAmBD,iFAAiF;AACjF,wBAAsB,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CA4N7F;AAgBD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,gDAAgD;IAChD,KAAK,OAAO,GAAG;QACb,wCAAwC;QACxC,KAAK,EAAE,OAAO,CAAA;QACd,qFAAqF;QACrF,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,8CAA8C;QAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;QAC9C,uFAAuF;QACvF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,4BAA4B;QAC5B,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAClC,mEAAmE;QACnE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;QAC1D,kCAAkC;QAClC,MAAM,EAAE,MAAM,CAAA;QACd,mDAAmD;QACnD,cAAc,EAAE,OAAO,CAAA;QACvB,iEAAiE;QACjE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;QAC7C,4FAA4F;QAC5F,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACrC,uEAAuE;QACvE,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;QAC7C,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ;;;;;WAKG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;QACjD,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAA;QACZ,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QACnC,0BAA0B;QAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;IAED,qCAAqC;IACrC,KAAK,MAAM,GACP;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAE,GACvD;QACE,EAAE,EAAE,KAAK,CAAA;QACT,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC/B,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;SACvC,CAAA;QACD,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC9B,GACD;QAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAC1D;AAiBD,2EAA2E;AAC3E,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IAAI;IAClF,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACtC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAgBD,6CAA6C;AAC7C,eAAO,MAAM,MAAM,6CAA8C,CAAA;AAEjE,8BAA8B;AAC9B,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,gFAAgF;AAChF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;QAlBxB,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;;;;;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;IAqFnD,CAAA;AAEH,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;QA9FrC,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;;;;;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;cA0FrD;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM;;;;;IAnG1F,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;;;;;IANlD,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;;IANlD,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;eA+FrD;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,WAEtC"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,KAAK,EAAgC,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMlG,8CAA8C;AAC9C,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAA;AAmBD,iFAAiF;AACjF,wBAAsB,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CA4N7F;AAgBD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,gDAAgD;IAChD,KAAK,OAAO,GAAG;QACb,wCAAwC;QACxC,KAAK,EAAE,OAAO,CAAA;QACd,qFAAqF;QACrF,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,8CAA8C;QAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;QAC9C,uFAAuF;QACvF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,4BAA4B;QAC5B,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAClC,mEAAmE;QACnE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;QAC1D,kCAAkC;QAClC,MAAM,EAAE,MAAM,CAAA;QACd,mDAAmD;QACnD,cAAc,EAAE,OAAO,CAAA;QACvB,iEAAiE;QACjE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;QAC7C,4FAA4F;QAC5F,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACrC,uEAAuE;QACvE,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;QAC7C,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ;;;;;WAKG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;QACjD,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAA;QACZ,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QACnC,0BAA0B;QAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;IAED,qCAAqC;IACrC,KAAK,MAAM,GACP;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAE,GACvD;QACE,EAAE,EAAE,KAAK,CAAA;QACT,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC/B,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;SACvC,CAAA;QACD,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC9B,GACD;QAAE,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAC1D;AAiBD,2EAA2E;AAC3E,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IAAI;IAClF,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACtC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAgBD,6CAA6C;AAC7C,eAAO,MAAM,MAAM,6CAA8C,CAAA;AAEjE,8BAA8B;AAC9B,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,gFAAgF;AAChF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;QAlBxB,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;IAyFnD,CAAA;AAEH,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;QAlGrC,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;;QANlD,sDAAsD;kBAC5C,MAAM,EAAE,GAAG,SAAS;;cAKc,MAAM;;;;cA8FrD;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM;;;;;IAvG1F,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;;IANlD,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;;;;;IANlD,sDAAsD;cAC5C,MAAM,EAAE,GAAG,SAAS;;UAKc,MAAM;eAmGrD;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,WAEtC"}
@@ -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":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "incur",
3
3
  "type": "module",
4
- "version": "0.4.9",
4
+ "version": "0.4.10",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
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 add Register as MCP server
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 add Register as MCP server
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 add Register as MCP server
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('deploy')
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 {