@mr.dj2u/cli 0.1.0
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 +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +475 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent.d.ts +41 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +661 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/continue.d.ts +59 -0
- package/dist/commands/continue.d.ts.map +1 -0
- package/dist/commands/continue.js +336 -0
- package/dist/commands/continue.js.map +1 -0
- package/dist/commands/dev-tools.d.ts +14 -0
- package/dist/commands/dev-tools.d.ts.map +1 -0
- package/dist/commands/dev-tools.js +283 -0
- package/dist/commands/dev-tools.js.map +1 -0
- package/dist/commands/explain.d.ts +29 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +216 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/mcp-install.d.ts +28 -0
- package/dist/commands/mcp-install.d.ts.map +1 -0
- package/dist/commands/mcp-install.js +265 -0
- package/dist/commands/mcp-install.js.map +1 -0
- package/dist/commands/onboard.d.ts +71 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +552 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/report.d.ts +12 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +70 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/skills.d.ts +19 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +81 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/test-and-iterate.d.ts +9 -0
- package/dist/commands/test-and-iterate.d.ts.map +1 -0
- package/dist/commands/test-and-iterate.js +90 -0
- package/dist/commands/test-and-iterate.js.map +1 -0
- package/dist/continue.d.ts +3 -0
- package/dist/continue.d.ts.map +1 -0
- package/dist/continue.js +2 -0
- package/dist/continue.js.map +1 -0
- package/dist/project-memory.d.ts +58 -0
- package/dist/project-memory.d.ts.map +1 -0
- package/dist/project-memory.js +2161 -0
- package/dist/project-memory.js.map +1 -0
- package/package.json +64 -0
- package/templates/project/guidelines.md +88 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA4BA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { hideBin } from 'yargs/helpers';
|
|
4
|
+
import yargs from 'yargs';
|
|
5
|
+
import { fixDoctor, runDoctor } from '@mr.dj2u/doctor';
|
|
6
|
+
import { runAgentCommand } from './commands/agent.js';
|
|
7
|
+
import { runContinueCommand } from './commands/continue.js';
|
|
8
|
+
import { runClearExpoStartCommand, runKillPortCommand } from './commands/dev-tools.js';
|
|
9
|
+
import { runExplainCommand } from './commands/explain.js';
|
|
10
|
+
import { runMcpInstallCommand } from './commands/mcp-install.js';
|
|
11
|
+
import { runOnboardCommand } from './commands/onboard.js';
|
|
12
|
+
import { runReportCommand } from './commands/report.js';
|
|
13
|
+
import { runSkillsListCommand, runSkillsShowCommand } from './commands/skills.js';
|
|
14
|
+
import { runShipCommand } from './commands/test-and-iterate.js';
|
|
15
|
+
async function main() {
|
|
16
|
+
await yargs(hideBin(process.argv))
|
|
17
|
+
.scriptName('mds')
|
|
18
|
+
.command('doctor [path]', 'Run production doctor checks on an Expo project', (builder) => builder
|
|
19
|
+
.positional('path', {
|
|
20
|
+
describe: 'Project path to scan',
|
|
21
|
+
type: 'string',
|
|
22
|
+
default: '.',
|
|
23
|
+
})
|
|
24
|
+
.option('fix', {
|
|
25
|
+
describe: 'Pass auto-fix flags to supported project scripts, such as lint --fix',
|
|
26
|
+
type: 'boolean',
|
|
27
|
+
default: false,
|
|
28
|
+
})
|
|
29
|
+
.option('json', {
|
|
30
|
+
describe: 'Print the structured Doctor report as JSON',
|
|
31
|
+
type: 'boolean',
|
|
32
|
+
default: false,
|
|
33
|
+
})
|
|
34
|
+
.option('ci', {
|
|
35
|
+
describe: 'Run the CI-equivalent profile: lint, typecheck, tests, doctor, build',
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
default: false,
|
|
38
|
+
})
|
|
39
|
+
.option('full', {
|
|
40
|
+
describe: 'Run the full profile, including the broadest available build script',
|
|
41
|
+
type: 'boolean',
|
|
42
|
+
default: false,
|
|
43
|
+
})
|
|
44
|
+
.option('fast', {
|
|
45
|
+
describe: 'Run the fast profile: static checks, lint, typecheck',
|
|
46
|
+
type: 'boolean',
|
|
47
|
+
default: false,
|
|
48
|
+
})
|
|
49
|
+
.option('scripts', {
|
|
50
|
+
describe: 'Run package scripts in addition to static checks',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
default: true,
|
|
53
|
+
})
|
|
54
|
+
.option('timeout-ms', {
|
|
55
|
+
describe: 'Timeout per package script check',
|
|
56
|
+
type: 'number',
|
|
57
|
+
default: 120000,
|
|
58
|
+
}), async (argv) => {
|
|
59
|
+
await handleDoctor(argv);
|
|
60
|
+
})
|
|
61
|
+
.command(['onboard', 'init'], 'Run post-create onboarding for a new Expo project', (builder) => builder
|
|
62
|
+
.option('project', {
|
|
63
|
+
describe: 'Project path to onboard',
|
|
64
|
+
type: 'string',
|
|
65
|
+
default: '.',
|
|
66
|
+
})
|
|
67
|
+
.option('yes', {
|
|
68
|
+
describe: 'Use default answers and scaffold project memory without prompts',
|
|
69
|
+
type: 'boolean',
|
|
70
|
+
default: false,
|
|
71
|
+
})
|
|
72
|
+
.option('force', {
|
|
73
|
+
describe: 'Overwrite existing project memory files',
|
|
74
|
+
type: 'boolean',
|
|
75
|
+
default: false,
|
|
76
|
+
})
|
|
77
|
+
.option('guidelines-template', {
|
|
78
|
+
describe: 'Copy the bundled MDS project/guidelines.md template',
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
default: false,
|
|
81
|
+
})
|
|
82
|
+
.option('guidelines-template-path', {
|
|
83
|
+
describe: 'Copy a custom guidelines.md template file',
|
|
84
|
+
type: 'string',
|
|
85
|
+
})
|
|
86
|
+
.option('rich', {
|
|
87
|
+
describe: 'Add rich boilerplate, package examples, scripts, and agent instructions',
|
|
88
|
+
type: 'boolean',
|
|
89
|
+
})
|
|
90
|
+
.option('advanced-setup', {
|
|
91
|
+
describe: 'Add advanced setup for installed packages',
|
|
92
|
+
type: 'boolean',
|
|
93
|
+
})
|
|
94
|
+
.option('create-expo-components', {
|
|
95
|
+
describe: 'Track whether starter create-expo-app components should be kept',
|
|
96
|
+
type: 'boolean',
|
|
97
|
+
})
|
|
98
|
+
.option('latest-expo-sdk', {
|
|
99
|
+
describe: 'Track whether the project should prefer the latest Expo SDK',
|
|
100
|
+
type: 'boolean',
|
|
101
|
+
})
|
|
102
|
+
.option('platforms', {
|
|
103
|
+
describe: 'Comma-separated target platforms: web, android, ios, apple-tv',
|
|
104
|
+
type: 'string',
|
|
105
|
+
})
|
|
106
|
+
.option('first-platform', {
|
|
107
|
+
describe: 'First MVP platform',
|
|
108
|
+
type: 'string',
|
|
109
|
+
})
|
|
110
|
+
.option('platform-strategy', {
|
|
111
|
+
describe: 'Platform-specific organization style',
|
|
112
|
+
choices: ['folders', 'files-only'],
|
|
113
|
+
})
|
|
114
|
+
.option('app-directory', {
|
|
115
|
+
describe: 'Where Expo Router app routes should live',
|
|
116
|
+
choices: ['src', 'root'],
|
|
117
|
+
})
|
|
118
|
+
.option('platform-layouts', {
|
|
119
|
+
describe: 'Whether selected platforms share layouts or need platform-specific layouts',
|
|
120
|
+
choices: ['shared', 'platform-specific'],
|
|
121
|
+
})
|
|
122
|
+
.option('web-output', {
|
|
123
|
+
describe: 'Expo web output mode',
|
|
124
|
+
choices: ['static', 'server', 'spa', 'none'],
|
|
125
|
+
})
|
|
126
|
+
.option('deployed-server', {
|
|
127
|
+
describe: 'Deployed server expectation',
|
|
128
|
+
choices: ['standard-expo', 'custom', 'none'],
|
|
129
|
+
})
|
|
130
|
+
.option('expo-ui', {
|
|
131
|
+
describe: 'Track Expo UI usage for mobile targets',
|
|
132
|
+
type: 'boolean',
|
|
133
|
+
})
|
|
134
|
+
.option('expo-native-tabs', {
|
|
135
|
+
describe: 'Track Expo Native Tabs usage for mobile targets',
|
|
136
|
+
type: 'boolean',
|
|
137
|
+
})
|
|
138
|
+
.option('eas-selected', {
|
|
139
|
+
describe: 'Ask/store EAS usage choices',
|
|
140
|
+
type: 'boolean',
|
|
141
|
+
})
|
|
142
|
+
.option('eas-uses', {
|
|
143
|
+
describe: 'Comma-separated EAS uses',
|
|
144
|
+
type: 'string',
|
|
145
|
+
})
|
|
146
|
+
.option('data-start', {
|
|
147
|
+
describe: 'Initial data mode',
|
|
148
|
+
choices: ['local', 'supabase'],
|
|
149
|
+
})
|
|
150
|
+
.option('test-to-main', {
|
|
151
|
+
describe: 'Generate test-to-main release safeguards and PR checks',
|
|
152
|
+
type: 'boolean',
|
|
153
|
+
})
|
|
154
|
+
.option('app-name', {
|
|
155
|
+
describe: 'App display name',
|
|
156
|
+
type: 'string',
|
|
157
|
+
})
|
|
158
|
+
.option('audience', {
|
|
159
|
+
describe: 'Who the app serves',
|
|
160
|
+
type: 'string',
|
|
161
|
+
})
|
|
162
|
+
.option('core-flows', {
|
|
163
|
+
describe: 'Primary user flows',
|
|
164
|
+
type: 'string',
|
|
165
|
+
})
|
|
166
|
+
.option('data-needs', {
|
|
167
|
+
describe: 'Expected data/backend needs',
|
|
168
|
+
type: 'string',
|
|
169
|
+
})
|
|
170
|
+
.option('deployment-target', {
|
|
171
|
+
describe: 'Deployment target',
|
|
172
|
+
type: 'string',
|
|
173
|
+
})
|
|
174
|
+
.option('defaults', {
|
|
175
|
+
describe: 'Comma-separated defaults to include',
|
|
176
|
+
type: 'string',
|
|
177
|
+
})
|
|
178
|
+
.option('expo-server-adapter', {
|
|
179
|
+
describe: 'How the Expo Router server is hosted: eas, express, bun, other, none',
|
|
180
|
+
choices: ['eas', 'express', 'bun', 'other', 'none'],
|
|
181
|
+
})
|
|
182
|
+
.option('custom-backend', {
|
|
183
|
+
describe: 'Project has a separate backend API server alongside Expo',
|
|
184
|
+
type: 'boolean',
|
|
185
|
+
})
|
|
186
|
+
.option('custom-backend-entry', {
|
|
187
|
+
describe: 'Entry point for the custom backend server (e.g. server.js, api-server.ts)',
|
|
188
|
+
type: 'string',
|
|
189
|
+
}), async (argv) => {
|
|
190
|
+
await runOnboardCommand(argv);
|
|
191
|
+
})
|
|
192
|
+
.command('continue [path]', 'Inspect an onboarded app and propose the next MDS session plan', (builder) => builder
|
|
193
|
+
.positional('path', {
|
|
194
|
+
describe: 'Onboarded app path',
|
|
195
|
+
type: 'string',
|
|
196
|
+
default: '.',
|
|
197
|
+
})
|
|
198
|
+
.option('json', {
|
|
199
|
+
describe: 'Print the MDS Continue session brief as JSON',
|
|
200
|
+
type: 'boolean',
|
|
201
|
+
default: false,
|
|
202
|
+
}), async (argv) => {
|
|
203
|
+
await runContinueCommand(argv);
|
|
204
|
+
})
|
|
205
|
+
.command(['free-port [ports..]'], 'Free one or more local ports by stopping listening processes', (builder) => builder
|
|
206
|
+
.positional('ports', {
|
|
207
|
+
describe: 'Ports to kill',
|
|
208
|
+
type: 'string',
|
|
209
|
+
array: true,
|
|
210
|
+
default: ['8081'],
|
|
211
|
+
})
|
|
212
|
+
.option('port', {
|
|
213
|
+
describe: 'Additional port values',
|
|
214
|
+
type: 'string',
|
|
215
|
+
array: true,
|
|
216
|
+
}), async (argv) => {
|
|
217
|
+
await runKillPortCommand(argv);
|
|
218
|
+
})
|
|
219
|
+
.command(['clear-expo-start [path]'], 'Kill Expo/server ports, clear local caches, and start Expo with --clear', (builder) => builder
|
|
220
|
+
.positional('path', {
|
|
221
|
+
describe: 'Project path',
|
|
222
|
+
type: 'string',
|
|
223
|
+
default: '.',
|
|
224
|
+
})
|
|
225
|
+
.option('ports', {
|
|
226
|
+
describe: 'Comma-separated ports to kill before starting',
|
|
227
|
+
type: 'string',
|
|
228
|
+
})
|
|
229
|
+
.option('start', {
|
|
230
|
+
describe: 'Start Expo after clearing caches',
|
|
231
|
+
type: 'boolean',
|
|
232
|
+
default: true,
|
|
233
|
+
}), async (argv) => {
|
|
234
|
+
await runClearExpoStartCommand(argv);
|
|
235
|
+
})
|
|
236
|
+
.command('mcp install', 'Register the MDS MCP server with Claude Code, Codex, or Cursor', (builder) => builder
|
|
237
|
+
.option('client', {
|
|
238
|
+
describe: 'MCP host to configure',
|
|
239
|
+
choices: ['claude', 'codex', 'cursor', 'vscode'],
|
|
240
|
+
default: 'claude',
|
|
241
|
+
})
|
|
242
|
+
.option('scope', {
|
|
243
|
+
describe: 'Install for the current user (every workspace) or just the target project',
|
|
244
|
+
choices: ['user', 'project'],
|
|
245
|
+
default: 'user',
|
|
246
|
+
})
|
|
247
|
+
.option('target', {
|
|
248
|
+
describe: 'Project directory for --scope project (ignored for --scope user)',
|
|
249
|
+
type: 'string',
|
|
250
|
+
default: '.',
|
|
251
|
+
})
|
|
252
|
+
.option('server-path', {
|
|
253
|
+
describe: 'Absolute path to the built MCP server entry (overrides auto-detect)',
|
|
254
|
+
type: 'string',
|
|
255
|
+
})
|
|
256
|
+
.option('command', {
|
|
257
|
+
describe: 'Full command to launch the server (overrides server-path and npx fallback)',
|
|
258
|
+
type: 'string',
|
|
259
|
+
})
|
|
260
|
+
.option('dry-run', {
|
|
261
|
+
describe: 'Print the config that would be written instead of writing it',
|
|
262
|
+
type: 'boolean',
|
|
263
|
+
default: false,
|
|
264
|
+
}), async (argv) => {
|
|
265
|
+
await runMcpInstallCommand(argv);
|
|
266
|
+
})
|
|
267
|
+
.command('agent <action>', 'Install or verify MDS agent assets for VS Code Copilot, Claude Code, or Codex', (builder) => builder
|
|
268
|
+
.positional('action', {
|
|
269
|
+
describe: 'Agent command',
|
|
270
|
+
choices: ['install', 'verify'],
|
|
271
|
+
})
|
|
272
|
+
.option('client', {
|
|
273
|
+
describe: 'Agent host to configure',
|
|
274
|
+
choices: ['vscode', 'claude', 'codex'],
|
|
275
|
+
default: 'vscode',
|
|
276
|
+
})
|
|
277
|
+
.option('scope', {
|
|
278
|
+
describe: 'Install for the current user or just the target project',
|
|
279
|
+
choices: ['user', 'project'],
|
|
280
|
+
default: 'project',
|
|
281
|
+
})
|
|
282
|
+
.option('target', {
|
|
283
|
+
describe: 'Project directory for project-scope install or verify',
|
|
284
|
+
type: 'string',
|
|
285
|
+
default: '.',
|
|
286
|
+
})
|
|
287
|
+
.option('server-path', {
|
|
288
|
+
describe: 'Absolute path to the built MCP server entry (overrides auto-detect)',
|
|
289
|
+
type: 'string',
|
|
290
|
+
})
|
|
291
|
+
.option('command', {
|
|
292
|
+
describe: 'Full command to launch the server (overrides server-path and npx fallback)',
|
|
293
|
+
type: 'string',
|
|
294
|
+
})
|
|
295
|
+
.option('bundle-path', {
|
|
296
|
+
describe: 'Path to the generated client bundle',
|
|
297
|
+
type: 'string',
|
|
298
|
+
})
|
|
299
|
+
.option('dry-run', {
|
|
300
|
+
describe: 'Print the files/commands that would be written instead of writing them',
|
|
301
|
+
type: 'boolean',
|
|
302
|
+
default: false,
|
|
303
|
+
}), async (argv) => {
|
|
304
|
+
await runAgentCommand(argv);
|
|
305
|
+
})
|
|
306
|
+
.command('skills <action> [id]', 'List or show bundled MDS agent skills', (builder) => builder
|
|
307
|
+
.positional('action', {
|
|
308
|
+
describe: 'Skill command',
|
|
309
|
+
choices: ['list', 'show'],
|
|
310
|
+
})
|
|
311
|
+
.positional('id', {
|
|
312
|
+
describe: 'Skill id',
|
|
313
|
+
type: 'string',
|
|
314
|
+
})
|
|
315
|
+
.option('query', {
|
|
316
|
+
alias: 'q',
|
|
317
|
+
describe: 'Filter skills by id, name, description, or tag',
|
|
318
|
+
type: 'string',
|
|
319
|
+
})
|
|
320
|
+
.option('json', {
|
|
321
|
+
describe: 'Print JSON output',
|
|
322
|
+
type: 'boolean',
|
|
323
|
+
default: false,
|
|
324
|
+
}), async (argv) => {
|
|
325
|
+
const action = String(argv.action);
|
|
326
|
+
if (action === 'list') {
|
|
327
|
+
await runSkillsListCommand(argv);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
await runSkillsShowCommand(argv);
|
|
331
|
+
})
|
|
332
|
+
.command('explain <topic>', 'Explain a Doctor check or bundled knowledge topic', (builder) => builder
|
|
333
|
+
.positional('topic', {
|
|
334
|
+
describe: 'Doctor check name, knowledge id, or keyword',
|
|
335
|
+
type: 'string',
|
|
336
|
+
})
|
|
337
|
+
.option('json', {
|
|
338
|
+
describe: 'Print the explanation result as JSON',
|
|
339
|
+
type: 'boolean',
|
|
340
|
+
default: false,
|
|
341
|
+
}), async (argv) => {
|
|
342
|
+
await runExplainCommand(argv);
|
|
343
|
+
})
|
|
344
|
+
.command('report [path]', 'Generate a local Doctor-backed project report', (builder) => builder
|
|
345
|
+
.positional('path', {
|
|
346
|
+
describe: 'Project path to scan',
|
|
347
|
+
type: 'string',
|
|
348
|
+
default: '.',
|
|
349
|
+
})
|
|
350
|
+
.option('mode', {
|
|
351
|
+
describe: 'Doctor mode',
|
|
352
|
+
choices: ['fast', 'ci', 'full'],
|
|
353
|
+
default: 'fast',
|
|
354
|
+
})
|
|
355
|
+
.option('scripts', {
|
|
356
|
+
describe: 'Run package scripts in addition to static checks',
|
|
357
|
+
type: 'boolean',
|
|
358
|
+
default: true,
|
|
359
|
+
})
|
|
360
|
+
.option('json', {
|
|
361
|
+
describe: 'Print the structured Doctor report as JSON instead of Markdown',
|
|
362
|
+
type: 'boolean',
|
|
363
|
+
default: false,
|
|
364
|
+
})
|
|
365
|
+
.option('output', {
|
|
366
|
+
alias: 'o',
|
|
367
|
+
describe: 'Write the report to a file instead of stdout',
|
|
368
|
+
type: 'string',
|
|
369
|
+
})
|
|
370
|
+
.option('timeout-ms', {
|
|
371
|
+
describe: 'Timeout per package script check',
|
|
372
|
+
type: 'number',
|
|
373
|
+
default: 120000,
|
|
374
|
+
}), async (argv) => {
|
|
375
|
+
await runReportCommand(argv);
|
|
376
|
+
})
|
|
377
|
+
.command(['test-and-iterate [branch]', 'ship [branch]'], 'Plan the push, PR, CI polling, fix, and merge-to-test workflow', (builder) => builder
|
|
378
|
+
.positional('branch', {
|
|
379
|
+
describe: 'Feature branch to push',
|
|
380
|
+
type: 'string',
|
|
381
|
+
})
|
|
382
|
+
.option('base', {
|
|
383
|
+
describe: 'PR base branch',
|
|
384
|
+
type: 'string',
|
|
385
|
+
default: 'test',
|
|
386
|
+
})
|
|
387
|
+
.option('feature', {
|
|
388
|
+
describe: 'Feature name for generated titles/messages',
|
|
389
|
+
type: 'string',
|
|
390
|
+
})
|
|
391
|
+
.option('pr-title', {
|
|
392
|
+
describe: 'Pull request title',
|
|
393
|
+
type: 'string',
|
|
394
|
+
})
|
|
395
|
+
.option('execute', {
|
|
396
|
+
describe: 'Reserved for the future mutating implementation',
|
|
397
|
+
type: 'boolean',
|
|
398
|
+
default: false,
|
|
399
|
+
}), async (argv) => {
|
|
400
|
+
await runShipCommand(argv);
|
|
401
|
+
})
|
|
402
|
+
.demandCommand()
|
|
403
|
+
.strict()
|
|
404
|
+
.help()
|
|
405
|
+
.parseAsync();
|
|
406
|
+
}
|
|
407
|
+
async function handleDoctor(argv) {
|
|
408
|
+
const mode = resolveDoctorMode(argv);
|
|
409
|
+
const report = argv.fix
|
|
410
|
+
? await fixDoctor(argv.path ?? '.', {
|
|
411
|
+
mode,
|
|
412
|
+
runScripts: argv.scripts,
|
|
413
|
+
timeoutMs: argv.timeoutMs,
|
|
414
|
+
})
|
|
415
|
+
: await runDoctor(argv.path ?? '.', {
|
|
416
|
+
mode,
|
|
417
|
+
runScripts: argv.scripts,
|
|
418
|
+
timeoutMs: argv.timeoutMs,
|
|
419
|
+
});
|
|
420
|
+
if (argv.json) {
|
|
421
|
+
console.log(JSON.stringify(report, null, 2));
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
printDoctorReport(report);
|
|
425
|
+
}
|
|
426
|
+
if (report.summary.errors > 0) {
|
|
427
|
+
process.exitCode = 1;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
function resolveDoctorMode(argv) {
|
|
431
|
+
if (argv.full)
|
|
432
|
+
return 'full';
|
|
433
|
+
if (argv.ci)
|
|
434
|
+
return 'ci';
|
|
435
|
+
if (argv.fast)
|
|
436
|
+
return 'fast';
|
|
437
|
+
return 'fast';
|
|
438
|
+
}
|
|
439
|
+
function printDoctorReport(report) {
|
|
440
|
+
console.log(chalk.bold(`mds doctor (${report.mode})`));
|
|
441
|
+
console.log(chalk.dim(report.projectPath));
|
|
442
|
+
console.log();
|
|
443
|
+
for (const check of report.checks) {
|
|
444
|
+
printCheck(check);
|
|
445
|
+
}
|
|
446
|
+
console.log();
|
|
447
|
+
console.log([
|
|
448
|
+
chalk.cyan(`score ${report.summary.score}/100`),
|
|
449
|
+
chalk.red(`${report.summary.errors} errors`),
|
|
450
|
+
chalk.yellow(`${report.summary.warnings} warnings`),
|
|
451
|
+
chalk.green(`${report.summary.passed} passed`),
|
|
452
|
+
chalk.gray(`${report.summary.skipped} skipped`),
|
|
453
|
+
].join(' | '));
|
|
454
|
+
}
|
|
455
|
+
function printCheck(check) {
|
|
456
|
+
const label = {
|
|
457
|
+
pass: chalk.green('PASS'),
|
|
458
|
+
warn: chalk.yellow('WARN'),
|
|
459
|
+
error: chalk.red('FAIL'),
|
|
460
|
+
skip: chalk.gray('SKIP'),
|
|
461
|
+
}[check.status];
|
|
462
|
+
console.log(`${label} ${chalk.bold(check.name)}: ${check.message}`);
|
|
463
|
+
if (check.status !== 'pass' && check.details) {
|
|
464
|
+
const detailText = JSON.stringify(check.details, null, 2);
|
|
465
|
+
for (const line of detailText.split('\n')) {
|
|
466
|
+
console.log(chalk.dim(` ${line}`));
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
main().catch((error) => {
|
|
471
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
472
|
+
console.error(chalk.red(message));
|
|
473
|
+
process.exit(1);
|
|
474
|
+
});
|
|
475
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type AgentClient = 'vscode' | 'claude' | 'codex';
|
|
2
|
+
export type AgentScope = 'user' | 'project';
|
|
3
|
+
export type AgentAction = 'install' | 'verify';
|
|
4
|
+
export interface AgentArgv {
|
|
5
|
+
action?: AgentAction;
|
|
6
|
+
client?: AgentClient;
|
|
7
|
+
scope?: AgentScope;
|
|
8
|
+
target?: string;
|
|
9
|
+
serverPath?: string;
|
|
10
|
+
command?: string;
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
bundlePath?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AgentInstallResult {
|
|
15
|
+
client: AgentClient;
|
|
16
|
+
scope: AgentScope;
|
|
17
|
+
target: string;
|
|
18
|
+
dryRun: boolean;
|
|
19
|
+
writtenPaths: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface AgentVerifyResult {
|
|
22
|
+
client: AgentClient;
|
|
23
|
+
target: string;
|
|
24
|
+
passed: boolean;
|
|
25
|
+
checks: Array<{
|
|
26
|
+
name: string;
|
|
27
|
+
status: 'pass' | 'fail';
|
|
28
|
+
path: string;
|
|
29
|
+
message: string;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export declare function runAgentCommand(argv: AgentArgv): Promise<void>;
|
|
33
|
+
export declare function runAgentInstallCommand(argv: AgentArgv): Promise<AgentInstallResult>;
|
|
34
|
+
export declare function runAgentVerifyCommand(argv: AgentArgv): Promise<AgentVerifyResult>;
|
|
35
|
+
export declare function verifyAgentInstall(client: AgentClient, target: string): Promise<AgentVerifyResult>;
|
|
36
|
+
export declare function verifyVscodeAgentInstall(target: string): Promise<AgentVerifyResult>;
|
|
37
|
+
export declare function verifyClaudeAgentInstall(target: string): Promise<AgentVerifyResult>;
|
|
38
|
+
export declare function verifyCodexAgentInstall(target: string): Promise<AgentVerifyResult>;
|
|
39
|
+
export declare function resolveVscodeBundleRoot(bundlePath?: string): string;
|
|
40
|
+
export declare function resolvePluginBundleRoot(client: AgentClient, bundlePath?: string): string;
|
|
41
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAeD,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0BzF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoBvF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CASxG;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBzF;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBzF;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkBxF;AAoLD,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBxF"}
|