sequant 1.3.1 → 1.5.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/README.md +32 -0
- package/dist/bin/cli.js +1 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/commands/doctor.d.ts +1 -4
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.integration.test.d.ts +10 -0
- package/dist/src/commands/doctor.integration.test.d.ts.map +1 -0
- package/dist/src/commands/doctor.integration.test.js +71 -0
- package/dist/src/commands/doctor.integration.test.js.map +1 -0
- package/dist/src/commands/doctor.js +1 -1
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/doctor.test.js +20 -20
- package/dist/src/commands/doctor.test.js.map +1 -1
- package/dist/src/commands/init.d.ts +1 -0
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +42 -13
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/init.test.js +35 -10
- package/dist/src/commands/init.test.js.map +1 -1
- package/dist/src/commands/run.d.ts.map +1 -1
- package/dist/src/commands/run.js +161 -96
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/run.test.js.map +1 -1
- package/dist/src/lib/settings.d.ts +26 -0
- package/dist/src/lib/settings.d.ts.map +1 -1
- package/dist/src/lib/settings.js +12 -0
- package/dist/src/lib/settings.js.map +1 -1
- package/dist/src/lib/shutdown.d.ts +118 -0
- package/dist/src/lib/shutdown.d.ts.map +1 -0
- package/dist/src/lib/shutdown.js +174 -0
- package/dist/src/lib/shutdown.js.map +1 -0
- package/dist/src/lib/shutdown.test.d.ts +5 -0
- package/dist/src/lib/shutdown.test.d.ts.map +1 -0
- package/dist/src/lib/shutdown.test.js +216 -0
- package/dist/src/lib/shutdown.test.js.map +1 -0
- package/dist/src/lib/system.d.ts.map +1 -1
- package/dist/src/lib/system.js +9 -0
- package/dist/src/lib/system.js.map +1 -1
- package/dist/src/lib/system.test.js +27 -0
- package/dist/src/lib/system.test.js.map +1 -1
- package/dist/src/lib/templates.js.map +1 -1
- package/dist/src/lib/tty.d.ts +2 -0
- package/dist/src/lib/tty.d.ts.map +1 -1
- package/dist/src/lib/tty.js +11 -6
- package/dist/src/lib/tty.js.map +1 -1
- package/dist/src/lib/tty.test.js +44 -2
- package/dist/src/lib/tty.test.js.map +1 -1
- package/dist/src/lib/wizard.d.ts +64 -0
- package/dist/src/lib/wizard.d.ts.map +1 -0
- package/dist/src/lib/wizard.js +255 -0
- package/dist/src/lib/wizard.js.map +1 -0
- package/dist/src/lib/wizard.test.d.ts +2 -0
- package/dist/src/lib/wizard.test.d.ts.map +1 -0
- package/dist/src/lib/wizard.test.js +268 -0
- package/dist/src/lib/wizard.test.js.map +1 -0
- package/dist/src/lib/workflow/log-rotation.d.ts.map +1 -1
- package/dist/src/lib/workflow/log-rotation.js +0 -1
- package/dist/src/lib/workflow/log-rotation.js.map +1 -1
- package/dist/src/lib/workflow/run-log-schema.d.ts +4 -4
- package/dist/src/lib/workflow/run-log-schema.test.js +1 -0
- package/dist/src/lib/workflow/run-log-schema.test.js.map +1 -1
- package/package.json +8 -2
- package/templates/skills/assess/SKILL.md +31 -0
- package/templates/skills/exec/SKILL.md +164 -15
- package/templates/skills/fullsolve/SKILL.md +61 -10
- package/templates/skills/loop/SKILL.md +48 -3
- package/templates/skills/spec/SKILL.md +97 -2
package/README.md
CHANGED
|
@@ -45,6 +45,8 @@ When using AI coding assistants, work can become scattered and quality inconsist
|
|
|
45
45
|
| Git | `git --version` | Required |
|
|
46
46
|
| [jq](https://jqlang.github.io/jq/) | `jq --version` | Optional, improves hook performance |
|
|
47
47
|
|
|
48
|
+
> **Note:** Sequant currently requires GitHub for issue tracking. GitLab and Bitbucket support is planned for a future release. See [Platform Requirements](docs/platform-requirements.md) for workarounds if you use a different platform.
|
|
49
|
+
|
|
48
50
|
### Setup
|
|
49
51
|
|
|
50
52
|
```bash
|
|
@@ -309,10 +311,16 @@ Configure `sequant run` defaults in `.sequant/settings.json`:
|
|
|
309
311
|
"qualityLoop": false,
|
|
310
312
|
"maxIterations": 3,
|
|
311
313
|
"smartTests": true
|
|
314
|
+
},
|
|
315
|
+
"agents": {
|
|
316
|
+
"parallel": false,
|
|
317
|
+
"model": "haiku"
|
|
312
318
|
}
|
|
313
319
|
}
|
|
314
320
|
```
|
|
315
321
|
|
|
322
|
+
#### Run Settings
|
|
323
|
+
|
|
316
324
|
| Option | Default | Description |
|
|
317
325
|
|--------|---------|-------------|
|
|
318
326
|
| `logJson` | `true` | Enable JSON logging for run sessions |
|
|
@@ -324,6 +332,29 @@ Configure `sequant run` defaults in `.sequant/settings.json`:
|
|
|
324
332
|
| `maxIterations` | `3` | Max quality loop iterations |
|
|
325
333
|
| `smartTests` | `true` | Auto-detect test commands |
|
|
326
334
|
|
|
335
|
+
#### Agent Settings
|
|
336
|
+
|
|
337
|
+
| Option | Default | Description |
|
|
338
|
+
|--------|---------|-------------|
|
|
339
|
+
| `parallel` | `false` | Run sub-agents in parallel (faster but higher token usage) |
|
|
340
|
+
| `model` | `"haiku"` | Default model for sub-agents (`haiku`, `sonnet`, or `opus`) |
|
|
341
|
+
|
|
342
|
+
##### Cost vs Speed Trade-offs
|
|
343
|
+
|
|
344
|
+
Skills like `/qa`, `/merger`, and `/fullsolve` spawn sub-agents for quality checks. The `agents` settings control how these agents execute:
|
|
345
|
+
|
|
346
|
+
| Mode | Token Usage | Speed | Best For |
|
|
347
|
+
|------|-------------|-------|----------|
|
|
348
|
+
| Sequential (`parallel: false`) | 1x (baseline) | Slower | Limited API plans, cost-conscious users |
|
|
349
|
+
| Parallel (`parallel: true`) | ~2-3x | ~50% faster | Unlimited plans, batch operations |
|
|
350
|
+
|
|
351
|
+
**Override per invocation:**
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
/qa 123 --parallel # Force parallel (faster)
|
|
355
|
+
/qa 123 --sequential # Force sequential (cheaper)
|
|
356
|
+
```
|
|
357
|
+
|
|
327
358
|
CLI flags override settings file values.
|
|
328
359
|
|
|
329
360
|
## Directory Structure
|
|
@@ -352,6 +383,7 @@ After `sequant init`:
|
|
|
352
383
|
- [Run Command](docs/run-command.md) — Batch execution options
|
|
353
384
|
- [Customization Guide](docs/customization.md) — Override templates safely
|
|
354
385
|
- [MCP Integrations](docs/mcp-integrations.md) — Optional MCP server setup
|
|
386
|
+
- [Platform Requirements](docs/platform-requirements.md) — GitHub dependency and workarounds
|
|
355
387
|
- [Troubleshooting](docs/troubleshooting.md) — Common issues and solutions
|
|
356
388
|
- [Testing Guide](docs/testing.md) — Cross-platform testing matrix
|
|
357
389
|
- [Git Patterns](docs/git-patterns.md) — Worktree and merge workflows
|
package/dist/bin/cli.js
CHANGED
|
@@ -55,6 +55,7 @@ program
|
|
|
55
55
|
.option("-y, --yes", "Skip confirmation prompts")
|
|
56
56
|
.option("-f, --force", "Overwrite existing configuration")
|
|
57
57
|
.option("-i, --interactive", "Force interactive mode even in non-TTY environment")
|
|
58
|
+
.option("--skip-setup", "Skip the dependency setup wizard")
|
|
58
59
|
.action(initCommand);
|
|
59
60
|
program
|
|
60
61
|
.command("update")
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sequant doctor - Check installation health
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
export declare function doctorCommand(options: DoctorOptions): Promise<void>;
|
|
7
|
-
export {};
|
|
4
|
+
export declare function doctorCommand(): Promise<void>;
|
|
8
5
|
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA2RnD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration tests for the doctor command
|
|
3
|
+
*
|
|
4
|
+
* These tests run the actual CLI as a subprocess to catch runtime errors
|
|
5
|
+
* that unit tests with mocks might miss (e.g., ESM import issues).
|
|
6
|
+
*
|
|
7
|
+
* Issue #60: Unit tests mock all system functions, missing runtime errors
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=doctor.integration.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.integration.test.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration tests for the doctor command
|
|
3
|
+
*
|
|
4
|
+
* These tests run the actual CLI as a subprocess to catch runtime errors
|
|
5
|
+
* that unit tests with mocks might miss (e.g., ESM import issues).
|
|
6
|
+
*
|
|
7
|
+
* Issue #60: Unit tests mock all system functions, missing runtime errors
|
|
8
|
+
*/
|
|
9
|
+
import { execSync } from "child_process";
|
|
10
|
+
import { describe, it, expect, beforeAll } from "vitest";
|
|
11
|
+
import { resolve, dirname } from "path";
|
|
12
|
+
import { fileURLToPath } from "url";
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const projectRoot = resolve(__dirname, "../..");
|
|
15
|
+
const cliPath = resolve(projectRoot, "dist/bin/cli.js");
|
|
16
|
+
const execOptions = {
|
|
17
|
+
cwd: projectRoot,
|
|
18
|
+
encoding: "utf-8",
|
|
19
|
+
// Capture both stdout and stderr
|
|
20
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
21
|
+
};
|
|
22
|
+
describe("doctor command integration", () => {
|
|
23
|
+
beforeAll(() => {
|
|
24
|
+
// Build the project before running integration tests
|
|
25
|
+
execSync("npm run build", {
|
|
26
|
+
cwd: projectRoot,
|
|
27
|
+
stdio: "ignore",
|
|
28
|
+
});
|
|
29
|
+
}, 30000); // 30 second timeout for build
|
|
30
|
+
it("runs without crashing", () => {
|
|
31
|
+
let output;
|
|
32
|
+
let exitCode = 0;
|
|
33
|
+
try {
|
|
34
|
+
output = execSync(`node ${cliPath} doctor`, execOptions);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// execSync throws on non-zero exit codes
|
|
38
|
+
// We accept exit code 1 (some checks fail) as valid in CI environments
|
|
39
|
+
const execError = error;
|
|
40
|
+
exitCode = execError.status;
|
|
41
|
+
output = execError.stdout || "";
|
|
42
|
+
// Only exit codes 0 (all pass) and 1 (some checks fail) are acceptable
|
|
43
|
+
// Any other exit code indicates a crash or uncaught exception
|
|
44
|
+
if (exitCode !== null && exitCode !== 0 && exitCode !== 1) {
|
|
45
|
+
throw new Error(`Doctor command crashed with exit code ${exitCode}.\n` +
|
|
46
|
+
`stdout: ${execError.stdout}\n` +
|
|
47
|
+
`stderr: ${execError.stderr}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Verify the command actually ran and produced expected output
|
|
51
|
+
expect(output).toContain("Running health checks");
|
|
52
|
+
// Accept both exit code 0 (all pass) and 1 (some checks fail in CI)
|
|
53
|
+
expect([0, 1]).toContain(exitCode);
|
|
54
|
+
});
|
|
55
|
+
it("shows help without crashing", () => {
|
|
56
|
+
let output;
|
|
57
|
+
try {
|
|
58
|
+
output = execSync(`node ${cliPath} doctor --help`, execOptions);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
const execError = error;
|
|
62
|
+
throw new Error(`Doctor --help crashed with exit code ${execError.status}.\n` +
|
|
63
|
+
`stdout: ${execError.stdout}\n` +
|
|
64
|
+
`stderr: ${execError.stderr}`);
|
|
65
|
+
}
|
|
66
|
+
// Verify help output contains expected content
|
|
67
|
+
expect(output).toContain("doctor");
|
|
68
|
+
expect(output).toContain("Check your Sequant installation");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=doctor.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.integration.test.js","sourceRoot":"","sources":["../../../src/commands/doctor.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import chalk from "chalk";
|
|
|
5
5
|
import { fileExists, isExecutable } from "../lib/fs.js";
|
|
6
6
|
import { getManifest } from "../lib/manifest.js";
|
|
7
7
|
import { commandExists, isGhAuthenticated, isNativeWindows, isWSL, checkOptionalMcpServers, OPTIONAL_MCP_SERVERS, } from "../lib/system.js";
|
|
8
|
-
export async function doctorCommand(
|
|
8
|
+
export async function doctorCommand() {
|
|
9
9
|
console.log(chalk.blue("\n🔍 Running health checks...\n"));
|
|
10
10
|
const checks = [];
|
|
11
11
|
// Check 1: Manifest exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,7 @@ describe("doctor command", () => {
|
|
|
87
87
|
it("passes when gh CLI is installed", async () => {
|
|
88
88
|
mockCommandExists.mockReturnValue(true);
|
|
89
89
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
90
|
-
await doctorCommand(
|
|
90
|
+
await doctorCommand();
|
|
91
91
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
92
92
|
expect(output).toContain("GitHub CLI");
|
|
93
93
|
expect(output).toContain("gh CLI is installed");
|
|
@@ -95,7 +95,7 @@ describe("doctor command", () => {
|
|
|
95
95
|
it("fails when gh CLI is not installed", async () => {
|
|
96
96
|
mockCommandExists.mockImplementation((cmd) => cmd !== "gh");
|
|
97
97
|
mockIsGhAuthenticated.mockReturnValue(false);
|
|
98
|
-
await doctorCommand(
|
|
98
|
+
await doctorCommand();
|
|
99
99
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
100
100
|
expect(output).toContain("GitHub CLI");
|
|
101
101
|
expect(output).toContain("gh CLI not installed");
|
|
@@ -104,7 +104,7 @@ describe("doctor command", () => {
|
|
|
104
104
|
it("passes when gh CLI is authenticated", async () => {
|
|
105
105
|
mockCommandExists.mockReturnValue(true);
|
|
106
106
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
107
|
-
await doctorCommand(
|
|
107
|
+
await doctorCommand();
|
|
108
108
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
109
109
|
expect(output).toContain("GitHub Auth");
|
|
110
110
|
expect(output).toContain("gh CLI is authenticated");
|
|
@@ -112,7 +112,7 @@ describe("doctor command", () => {
|
|
|
112
112
|
it("fails when gh CLI is not authenticated", async () => {
|
|
113
113
|
mockCommandExists.mockReturnValue(true);
|
|
114
114
|
mockIsGhAuthenticated.mockReturnValue(false);
|
|
115
|
-
await doctorCommand(
|
|
115
|
+
await doctorCommand();
|
|
116
116
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
117
117
|
expect(output).toContain("GitHub Auth");
|
|
118
118
|
expect(output).toContain("gh CLI not authenticated");
|
|
@@ -120,7 +120,7 @@ describe("doctor command", () => {
|
|
|
120
120
|
});
|
|
121
121
|
it("skips auth check when gh CLI is not installed", async () => {
|
|
122
122
|
mockCommandExists.mockImplementation((cmd) => cmd !== "gh");
|
|
123
|
-
await doctorCommand(
|
|
123
|
+
await doctorCommand();
|
|
124
124
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
125
125
|
// Should not contain auth check result since gh is not installed
|
|
126
126
|
expect(output).not.toContain("GitHub Auth");
|
|
@@ -130,7 +130,7 @@ describe("doctor command", () => {
|
|
|
130
130
|
it("passes when claude CLI is installed", async () => {
|
|
131
131
|
mockCommandExists.mockReturnValue(true);
|
|
132
132
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
133
|
-
await doctorCommand(
|
|
133
|
+
await doctorCommand();
|
|
134
134
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
135
135
|
expect(output).toContain("Claude Code CLI");
|
|
136
136
|
expect(output).toContain("claude CLI is installed");
|
|
@@ -138,7 +138,7 @@ describe("doctor command", () => {
|
|
|
138
138
|
it("fails when claude CLI is not installed", async () => {
|
|
139
139
|
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
140
140
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
141
|
-
await doctorCommand(
|
|
141
|
+
await doctorCommand();
|
|
142
142
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
143
143
|
expect(output).toContain("Claude Code CLI");
|
|
144
144
|
expect(output).toContain("claude CLI not installed");
|
|
@@ -148,7 +148,7 @@ describe("doctor command", () => {
|
|
|
148
148
|
it("shows install link when claude CLI is missing", async () => {
|
|
149
149
|
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
150
150
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
151
|
-
await doctorCommand(
|
|
151
|
+
await doctorCommand();
|
|
152
152
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
153
153
|
expect(output).toContain("https://docs.anthropic.com/en/docs/claude-code");
|
|
154
154
|
});
|
|
@@ -157,7 +157,7 @@ describe("doctor command", () => {
|
|
|
157
157
|
it("passes when jq is installed", async () => {
|
|
158
158
|
mockCommandExists.mockReturnValue(true);
|
|
159
159
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
160
|
-
await doctorCommand(
|
|
160
|
+
await doctorCommand();
|
|
161
161
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
162
162
|
expect(output).toContain("jq");
|
|
163
163
|
expect(output).toContain("jq is installed");
|
|
@@ -165,7 +165,7 @@ describe("doctor command", () => {
|
|
|
165
165
|
it("warns when jq is not installed", async () => {
|
|
166
166
|
mockCommandExists.mockImplementation((cmd) => cmd !== "jq");
|
|
167
167
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
168
|
-
await doctorCommand(
|
|
168
|
+
await doctorCommand();
|
|
169
169
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
170
170
|
expect(output).toContain("jq");
|
|
171
171
|
expect(output).toContain("jq not installed");
|
|
@@ -178,7 +178,7 @@ describe("doctor command", () => {
|
|
|
178
178
|
it("warns when running on native Windows", async () => {
|
|
179
179
|
mockIsNativeWindows.mockReturnValue(true);
|
|
180
180
|
mockIsWSL.mockReturnValue(false);
|
|
181
|
-
await doctorCommand(
|
|
181
|
+
await doctorCommand();
|
|
182
182
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
183
183
|
expect(output).toContain("Platform");
|
|
184
184
|
expect(output).toContain("native Windows");
|
|
@@ -187,7 +187,7 @@ describe("doctor command", () => {
|
|
|
187
187
|
it("passes when running in WSL", async () => {
|
|
188
188
|
mockIsNativeWindows.mockReturnValue(false);
|
|
189
189
|
mockIsWSL.mockReturnValue(true);
|
|
190
|
-
await doctorCommand(
|
|
190
|
+
await doctorCommand();
|
|
191
191
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
192
192
|
expect(output).toContain("Platform");
|
|
193
193
|
expect(output).toContain("Running in WSL");
|
|
@@ -196,7 +196,7 @@ describe("doctor command", () => {
|
|
|
196
196
|
it("does not show platform check on macOS/Linux", async () => {
|
|
197
197
|
mockIsNativeWindows.mockReturnValue(false);
|
|
198
198
|
mockIsWSL.mockReturnValue(false);
|
|
199
|
-
await doctorCommand(
|
|
199
|
+
await doctorCommand();
|
|
200
200
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
201
201
|
// Should not contain Platform check on non-Windows systems
|
|
202
202
|
expect(output).not.toContain("Platform");
|
|
@@ -206,20 +206,20 @@ describe("doctor command", () => {
|
|
|
206
206
|
it("all checks pass when everything is installed and configured", async () => {
|
|
207
207
|
mockCommandExists.mockReturnValue(true);
|
|
208
208
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
209
|
-
await doctorCommand(
|
|
209
|
+
await doctorCommand();
|
|
210
210
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
211
211
|
expect(output).toContain("All checks passed");
|
|
212
212
|
expect(processExitSpy).not.toHaveBeenCalled();
|
|
213
213
|
});
|
|
214
214
|
it("exits with failure when gh is missing even if jq is present", async () => {
|
|
215
215
|
mockCommandExists.mockImplementation((cmd) => cmd !== "gh");
|
|
216
|
-
await doctorCommand(
|
|
216
|
+
await doctorCommand();
|
|
217
217
|
expect(processExitSpy).toHaveBeenCalledWith(1);
|
|
218
218
|
});
|
|
219
219
|
it("shows only warnings (no failure) when only jq is missing", async () => {
|
|
220
220
|
mockCommandExists.mockImplementation((cmd) => cmd !== "jq");
|
|
221
221
|
mockIsGhAuthenticated.mockReturnValue(true);
|
|
222
|
-
await doctorCommand(
|
|
222
|
+
await doctorCommand();
|
|
223
223
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
224
224
|
expect(output).toContain("Warnings:");
|
|
225
225
|
expect(output).toContain("should work");
|
|
@@ -233,7 +233,7 @@ describe("doctor command", () => {
|
|
|
233
233
|
context7: true,
|
|
234
234
|
"sequential-thinking": true,
|
|
235
235
|
});
|
|
236
|
-
await doctorCommand(
|
|
236
|
+
await doctorCommand();
|
|
237
237
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
238
238
|
expect(output).toContain("MCP Servers");
|
|
239
239
|
expect(output).toContain("All optional MCPs configured");
|
|
@@ -244,7 +244,7 @@ describe("doctor command", () => {
|
|
|
244
244
|
context7: false,
|
|
245
245
|
"sequential-thinking": true,
|
|
246
246
|
});
|
|
247
|
-
await doctorCommand(
|
|
247
|
+
await doctorCommand();
|
|
248
248
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
249
249
|
expect(output).toContain("MCP Servers");
|
|
250
250
|
expect(output).toContain("Some MCPs configured");
|
|
@@ -260,7 +260,7 @@ describe("doctor command", () => {
|
|
|
260
260
|
context7: false,
|
|
261
261
|
"sequential-thinking": false,
|
|
262
262
|
});
|
|
263
|
-
await doctorCommand(
|
|
263
|
+
await doctorCommand();
|
|
264
264
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
265
265
|
expect(output).toContain("MCP Servers");
|
|
266
266
|
expect(output).toContain("No optional MCPs configured");
|
|
@@ -274,7 +274,7 @@ describe("doctor command", () => {
|
|
|
274
274
|
context7: false,
|
|
275
275
|
"sequential-thinking": false,
|
|
276
276
|
});
|
|
277
|
-
await doctorCommand(
|
|
277
|
+
await doctorCommand();
|
|
278
278
|
// Should complete without failure
|
|
279
279
|
expect(processExitSpy).not.toHaveBeenCalled();
|
|
280
280
|
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../../src/commands/doctor.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../../src/commands/doctor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzE,oBAAoB;AACpB,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,gBAAgB;AAChB,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;CACrB,CAAC,CAAC,CAAC;AAEJ,wBAAwB;AACxB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;IACxB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;IACd,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;IAChC,oBAAoB,EAAE;QACpB;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YAC7B,UAAU,EAAE,qCAAqC;SAClD;QACD;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,UAAU,EAAE,8BAA8B;SAC3C;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,CAAC,YAAY,CAAC;YACtB,UAAU,EAAE,yCAAyC;SACtD;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7C,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnD,MAAM,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3D,MAAM,mBAAmB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACvD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,MAAM,2BAA2B,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAEvE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,aAA0C,CAAC;IAC/C,8DAA8D;IAC9D,IAAI,cAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtE,cAAc,GAAG,EAAE;aAChB,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;aACtB,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAU,CAAC,CAAC;QAElD,8CAA8C;QAC9C,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,eAAe,CAAC,iBAAiB,CAAC;YAChC,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,0BAA0B;YACvC,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QACH,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,0BAA0B;QAC1B,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjC,+BAA+B;QAC/B,2BAA2B,CAAC,eAAe,CAAC;YAC1C,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI;YACd,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5B,cAAc,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACpE,qBAAqB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE7C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE7C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;YACrD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YAEpE,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,iEAAiE;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;YACxE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,gDAAgD,CACjD,CAAC;YACF,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;YACxE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,gDAAgD,CACjD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACpE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,oDAAoD;YACpD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,2DAA2D;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YAEpE,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACpE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,2BAA2B,CAAC,eAAe,CAAC;gBAC1C,iBAAiB,EAAE,IAAI;gBACvB,QAAQ,EAAE,IAAI;gBACd,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CAAC;YAEH,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,2BAA2B,CAAC,eAAe,CAAC;gBAC1C,iBAAiB,EAAE,IAAI;gBACvB,QAAQ,EAAE,KAAK;gBACf,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CAAC;YAEH,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,0CAA0C;YAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,2BAA2B,CAAC,eAAe,CAAC;gBAC1C,iBAAiB,EAAE,KAAK;gBACxB,QAAQ,EAAE,KAAK;gBACf,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YAEH,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC/C,0CAA0C;YAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,2BAA2B,CAAC,eAAe,CAAC;gBAC1C,iBAAiB,EAAE,KAAK;gBACxB,QAAQ,EAAE,KAAK;gBACf,qBAAqB,EAAE,KAAK;aAC7B,CAAC,CAAC;YAEH,MAAM,aAAa,EAAE,CAAC;YAEtB,kCAAkC;YAClC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2DH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAyCD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqRrE"}
|
|
@@ -11,6 +11,7 @@ import { createDefaultSettings } from "../lib/settings.js";
|
|
|
11
11
|
import { fileExists, ensureDir, readFile, writeFile } from "../lib/fs.js";
|
|
12
12
|
import { commandExists, isGhAuthenticated, getInstallHint, } from "../lib/system.js";
|
|
13
13
|
import { shouldUseInteractiveMode, getNonInteractiveReason, } from "../lib/tty.js";
|
|
14
|
+
import { checkAllDependencies, displayDependencyStatus, runSetupWizard, shouldRunSetupWizard, } from "../lib/wizard.js";
|
|
14
15
|
/**
|
|
15
16
|
* Check prerequisites and display warnings
|
|
16
17
|
*/
|
|
@@ -46,10 +47,8 @@ const GITIGNORE_ENTRIES = [
|
|
|
46
47
|
async function updateGitignore() {
|
|
47
48
|
const gitignorePath = ".gitignore";
|
|
48
49
|
let content = "";
|
|
49
|
-
let existed = false;
|
|
50
50
|
if (await fileExists(gitignorePath)) {
|
|
51
51
|
content = await readFile(gitignorePath);
|
|
52
|
-
existed = true;
|
|
53
52
|
// Check if already has .sequant/
|
|
54
53
|
if (content.includes(".sequant/")) {
|
|
55
54
|
return false; // Already configured
|
|
@@ -77,17 +76,46 @@ export async function initCommand(options) {
|
|
|
77
76
|
console.log(chalk.yellow(`⚡ Non-interactive mode detected${reason ? ` (${reason})` : ""}`));
|
|
78
77
|
console.log(chalk.gray(" Using defaults. Use --interactive to force prompts.\n"));
|
|
79
78
|
}
|
|
80
|
-
// Check
|
|
79
|
+
// Check dependencies and run setup wizard if needed
|
|
80
|
+
const depCheckResult = checkAllDependencies();
|
|
81
|
+
let wizardRemainingIssues = [];
|
|
82
|
+
if (shouldRunSetupWizard({ skipSetup: options.skipSetup, yes: options.yes })) {
|
|
83
|
+
// Display dependency status
|
|
84
|
+
displayDependencyStatus(depCheckResult);
|
|
85
|
+
// Run wizard if there are missing required dependencies
|
|
86
|
+
if (depCheckResult.hasMissing) {
|
|
87
|
+
const wizardResult = await runSetupWizard(depCheckResult, {
|
|
88
|
+
skipPrompts,
|
|
89
|
+
});
|
|
90
|
+
wizardRemainingIssues = wizardResult.remainingIssues;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if (options.skipSetup) {
|
|
94
|
+
// User explicitly skipped - show brief status
|
|
95
|
+
console.log(chalk.gray("Skipping dependency setup wizard (--skip-setup)\n"));
|
|
96
|
+
}
|
|
97
|
+
// Fall back to legacy warning system for any remaining issues
|
|
81
98
|
const { warnings, suggestions } = checkPrerequisites();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
// Only show warnings if wizard didn't already handle them or if there are remaining issues
|
|
100
|
+
if (wizardRemainingIssues.length > 0 ||
|
|
101
|
+
(options.skipSetup && warnings.length > 0)) {
|
|
102
|
+
if (wizardRemainingIssues.length > 0) {
|
|
103
|
+
console.log(chalk.yellow("⚠️ Remaining setup issues:\n"));
|
|
104
|
+
for (const issue of wizardRemainingIssues) {
|
|
105
|
+
console.log(chalk.yellow(` • ${issue}`));
|
|
106
|
+
}
|
|
107
|
+
console.log();
|
|
86
108
|
}
|
|
87
|
-
|
|
88
|
-
console.log(chalk.
|
|
109
|
+
else if (warnings.length > 0) {
|
|
110
|
+
console.log(chalk.yellow("⚠️ Prerequisites:\n"));
|
|
111
|
+
for (const warning of warnings) {
|
|
112
|
+
console.log(chalk.yellow(` • ${warning}`));
|
|
113
|
+
}
|
|
114
|
+
for (const suggestion of suggestions.filter((s) => !s.startsWith("Optional"))) {
|
|
115
|
+
console.log(chalk.gray(` ${suggestion}`));
|
|
116
|
+
}
|
|
117
|
+
console.log();
|
|
89
118
|
}
|
|
90
|
-
console.log();
|
|
91
119
|
}
|
|
92
120
|
// Check if already initialized
|
|
93
121
|
const configExists = await fileExists(".claude/settings.json");
|
|
@@ -249,9 +277,10 @@ export async function initCommand(options) {
|
|
|
249
277
|
const optionalSection = optionalSuggestions.length > 0
|
|
250
278
|
? `\n${chalk.bold("Optional improvements:")}\n${optionalSuggestions.map((s) => ` • ${s.replace("Optional: ", "")}`).join("\n")}\n`
|
|
251
279
|
: "";
|
|
252
|
-
// Build prerequisites reminder if there were warnings
|
|
253
|
-
const
|
|
254
|
-
|
|
280
|
+
// Build prerequisites reminder if there were remaining issues from wizard or warnings
|
|
281
|
+
const hasRemainingIssues = wizardRemainingIssues.length > 0 || warnings.length > 0;
|
|
282
|
+
const prereqReminder = hasRemainingIssues
|
|
283
|
+
? `\n${chalk.yellow("⚠️ Remember to install missing dependencies before using issue workflows.")}\n${chalk.gray(" Run 'sequant doctor' to verify your setup.\n")}`
|
|
255
284
|
: "";
|
|
256
285
|
// Success message
|
|
257
286
|
console.log(chalk.green(`
|