@specsafe/cli 0.7.1 → 2.0.2
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 +100 -279
- package/canonical/personas/bolt-zane.md +29 -0
- package/canonical/personas/forge-reva.md +29 -0
- package/canonical/personas/herald-cass.md +30 -0
- package/canonical/personas/mason-kai.md +30 -0
- package/canonical/personas/scout-elena.md +27 -0
- package/canonical/personas/warden-lyra.md +30 -0
- package/canonical/rules/.cursorrules.mdc +53 -0
- package/canonical/rules/.rules +48 -0
- package/canonical/rules/AGENTS.md +48 -0
- package/canonical/rules/CLAUDE.md +48 -0
- package/canonical/rules/CONVENTIONS.md +41 -0
- package/canonical/rules/GEMINI.md +50 -0
- package/canonical/rules/continue-config.yaml +5 -0
- package/canonical/skills/specsafe-archive/SKILL.md +63 -0
- package/canonical/skills/specsafe-code/SKILL.md +7 -0
- package/canonical/skills/specsafe-code/workflow.md +212 -0
- package/canonical/skills/specsafe-complete/SKILL.md +7 -0
- package/canonical/skills/specsafe-complete/workflow.md +130 -0
- package/canonical/skills/specsafe-doctor/SKILL.md +103 -0
- package/canonical/skills/specsafe-explore/SKILL.md +7 -0
- package/canonical/skills/specsafe-explore/workflow.md +100 -0
- package/canonical/skills/specsafe-init/SKILL.md +119 -0
- package/canonical/skills/specsafe-new/SKILL.md +7 -0
- package/canonical/skills/specsafe-new/workflow.md +156 -0
- package/canonical/skills/specsafe-qa/SKILL.md +7 -0
- package/canonical/skills/specsafe-qa/workflow.md +223 -0
- package/canonical/skills/specsafe-spec/SKILL.md +7 -0
- package/canonical/skills/specsafe-spec/workflow.md +158 -0
- package/canonical/skills/specsafe-status/SKILL.md +77 -0
- package/canonical/skills/specsafe-test/SKILL.md +7 -0
- package/canonical/skills/specsafe-test/workflow.md +210 -0
- package/canonical/skills/specsafe-verify/SKILL.md +7 -0
- package/canonical/skills/specsafe-verify/workflow.md +143 -0
- package/canonical/templates/project-state-template.md +33 -0
- package/canonical/templates/qa-report-template.md +55 -0
- package/canonical/templates/spec-template.md +52 -0
- package/canonical/templates/specsafe-config-template.json +10 -0
- package/generators/dist/adapters/aider.d.ts +2 -0
- package/generators/dist/adapters/aider.js +23 -0
- package/generators/dist/adapters/aider.js.map +1 -0
- package/generators/dist/adapters/antigravity.d.ts +2 -0
- package/generators/dist/adapters/antigravity.js +33 -0
- package/generators/dist/adapters/antigravity.js.map +1 -0
- package/generators/dist/adapters/claude-code.d.ts +2 -0
- package/generators/dist/adapters/claude-code.js +31 -0
- package/generators/dist/adapters/claude-code.js.map +1 -0
- package/generators/dist/adapters/continue.d.ts +2 -0
- package/generators/dist/adapters/continue.js +33 -0
- package/generators/dist/adapters/continue.js.map +1 -0
- package/generators/dist/adapters/cursor.d.ts +2 -0
- package/generators/dist/adapters/cursor.js +32 -0
- package/generators/dist/adapters/cursor.js.map +1 -0
- package/generators/dist/adapters/gemini.d.ts +2 -0
- package/generators/dist/adapters/gemini.js +36 -0
- package/generators/dist/adapters/gemini.js.map +1 -0
- package/generators/dist/adapters/index.d.ts +13 -0
- package/generators/dist/adapters/index.js +29 -0
- package/generators/dist/adapters/index.js.map +1 -0
- package/generators/dist/adapters/opencode.d.ts +2 -0
- package/generators/dist/adapters/opencode.js +32 -0
- package/generators/dist/adapters/opencode.js.map +1 -0
- package/generators/dist/adapters/types.d.ts +49 -0
- package/generators/dist/adapters/types.js +14 -0
- package/generators/dist/adapters/types.js.map +1 -0
- package/generators/dist/adapters/utils.d.ts +12 -0
- package/generators/dist/adapters/utils.js +68 -0
- package/generators/dist/adapters/utils.js.map +1 -0
- package/generators/dist/adapters/zed.d.ts +2 -0
- package/generators/dist/adapters/zed.js +31 -0
- package/generators/dist/adapters/zed.js.map +1 -0
- package/generators/dist/doctor.d.ts +10 -0
- package/generators/dist/doctor.js +123 -0
- package/generators/dist/doctor.js.map +1 -0
- package/generators/dist/index.d.ts +2 -0
- package/generators/dist/index.js +45 -0
- package/generators/dist/index.js.map +1 -0
- package/generators/dist/init.d.ts +9 -0
- package/generators/dist/init.js +167 -0
- package/generators/dist/init.js.map +1 -0
- package/generators/dist/install.d.ts +5 -0
- package/generators/dist/install.js +66 -0
- package/generators/dist/install.js.map +1 -0
- package/generators/dist/registry.d.ts +3 -0
- package/generators/dist/registry.js +8 -0
- package/generators/dist/registry.js.map +1 -0
- package/generators/dist/update.d.ts +5 -0
- package/generators/dist/update.js +40 -0
- package/generators/dist/update.js.map +1 -0
- package/package.json +32 -27
- package/dist/commands/apply.d.ts +0 -3
- package/dist/commands/apply.d.ts.map +0 -1
- package/dist/commands/apply.js +0 -182
- package/dist/commands/apply.js.map +0 -1
- package/dist/commands/archive.d.ts +0 -3
- package/dist/commands/archive.d.ts.map +0 -1
- package/dist/commands/archive.js +0 -99
- package/dist/commands/archive.js.map +0 -1
- package/dist/commands/capsule.d.ts +0 -8
- package/dist/commands/capsule.d.ts.map +0 -1
- package/dist/commands/capsule.js +0 -466
- package/dist/commands/capsule.js.map +0 -1
- package/dist/commands/complete.d.ts +0 -3
- package/dist/commands/complete.d.ts.map +0 -1
- package/dist/commands/complete.js +0 -140
- package/dist/commands/complete.js.map +0 -1
- package/dist/commands/constitution.d.ts +0 -3
- package/dist/commands/constitution.d.ts.map +0 -1
- package/dist/commands/constitution.js +0 -192
- package/dist/commands/constitution.js.map +0 -1
- package/dist/commands/create.d.ts +0 -10
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -120
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/delta.d.ts +0 -3
- package/dist/commands/delta.d.ts.map +0 -1
- package/dist/commands/delta.js +0 -82
- package/dist/commands/delta.js.map +0 -1
- package/dist/commands/diff.d.ts +0 -3
- package/dist/commands/diff.d.ts.map +0 -1
- package/dist/commands/diff.js +0 -102
- package/dist/commands/diff.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -3
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -204
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/done.d.ts +0 -3
- package/dist/commands/done.d.ts.map +0 -1
- package/dist/commands/done.js +0 -237
- package/dist/commands/done.js.map +0 -1
- package/dist/commands/explore.d.ts +0 -3
- package/dist/commands/explore.d.ts.map +0 -1
- package/dist/commands/explore.js +0 -236
- package/dist/commands/explore.js.map +0 -1
- package/dist/commands/export.d.ts +0 -7
- package/dist/commands/export.d.ts.map +0 -1
- package/dist/commands/export.js +0 -179
- package/dist/commands/export.js.map +0 -1
- package/dist/commands/extend.d.ts +0 -6
- package/dist/commands/extend.d.ts.map +0 -1
- package/dist/commands/extend.js +0 -167
- package/dist/commands/extend.js.map +0 -1
- package/dist/commands/init-old.d.ts +0 -3
- package/dist/commands/init-old.d.ts.map +0 -1
- package/dist/commands/init-old.js +0 -146
- package/dist/commands/init-old.js.map +0 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -298
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list.d.ts +0 -3
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -122
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -3
- package/dist/commands/memory.d.ts.map +0 -1
- package/dist/commands/memory.js +0 -166
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/new.d.ts +0 -3
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -508
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/qa.d.ts +0 -3
- package/dist/commands/qa.d.ts.map +0 -1
- package/dist/commands/qa.js +0 -179
- package/dist/commands/qa.js.map +0 -1
- package/dist/commands/rules.d.ts +0 -6
- package/dist/commands/rules.d.ts.map +0 -1
- package/dist/commands/rules.js +0 -232
- package/dist/commands/rules.js.map +0 -1
- package/dist/commands/shard.d.ts +0 -6
- package/dist/commands/shard.d.ts.map +0 -1
- package/dist/commands/shard.js +0 -199
- package/dist/commands/shard.js.map +0 -1
- package/dist/commands/spec.d.ts +0 -3
- package/dist/commands/spec.d.ts.map +0 -1
- package/dist/commands/spec.js +0 -302
- package/dist/commands/spec.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -47
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/test-apply.d.ts +0 -3
- package/dist/commands/test-apply.d.ts.map +0 -1
- package/dist/commands/test-apply.js +0 -228
- package/dist/commands/test-apply.js.map +0 -1
- package/dist/commands/test-create.d.ts +0 -3
- package/dist/commands/test-create.d.ts.map +0 -1
- package/dist/commands/test-create.js +0 -183
- package/dist/commands/test-create.js.map +0 -1
- package/dist/commands/test-guide.d.ts +0 -3
- package/dist/commands/test-guide.d.ts.map +0 -1
- package/dist/commands/test-guide.js +0 -190
- package/dist/commands/test-guide.js.map +0 -1
- package/dist/commands/test-report.d.ts +0 -3
- package/dist/commands/test-report.d.ts.map +0 -1
- package/dist/commands/test-report.js +0 -196
- package/dist/commands/test-report.js.map +0 -1
- package/dist/commands/test-submit.d.ts +0 -6
- package/dist/commands/test-submit.d.ts.map +0 -1
- package/dist/commands/test-submit.js +0 -236
- package/dist/commands/test-submit.js.map +0 -1
- package/dist/commands/verify.d.ts +0 -3
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js +0 -288
- package/dist/commands/verify.js.map +0 -1
- package/dist/config.d.ts +0 -23
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -44
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -129
- package/dist/index.js.map +0 -1
- package/dist/rules/downloader.d.ts +0 -40
- package/dist/rules/downloader.d.ts.map +0 -1
- package/dist/rules/downloader.js +0 -253
- package/dist/rules/downloader.js.map +0 -1
- package/dist/rules/index.d.ts +0 -8
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -8
- package/dist/rules/index.js.map +0 -1
- package/dist/rules/registry.d.ts +0 -45
- package/dist/rules/registry.d.ts.map +0 -1
- package/dist/rules/registry.js +0 -158
- package/dist/rules/registry.js.map +0 -1
- package/dist/rules/types.d.ts +0 -86
- package/dist/rules/types.d.ts.map +0 -1
- package/dist/rules/types.js +0 -6
- package/dist/rules/types.js.map +0 -1
- package/dist/utils/detectTools.d.ts +0 -15
- package/dist/utils/detectTools.d.ts.map +0 -1
- package/dist/utils/detectTools.js +0 -54
- package/dist/utils/detectTools.js.map +0 -1
- package/dist/utils/generateToolConfig.d.ts +0 -12
- package/dist/utils/generateToolConfig.d.ts.map +0 -1
- package/dist/utils/generateToolConfig.js +0 -1179
- package/dist/utils/generateToolConfig.js.map +0 -1
- package/dist/utils/testRunner.d.ts +0 -39
- package/dist/utils/testRunner.d.ts.map +0 -1
- package/dist/utils/testRunner.js +0 -325
- package/dist/utils/testRunner.js.map +0 -1
package/dist/commands/qa.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import ora from 'ora';
|
|
4
|
-
import { Workflow, ProjectTracker, validateSpecId, generateEARSReport, getEARSScore } from '@specsafe/core';
|
|
5
|
-
import { exec } from 'child_process';
|
|
6
|
-
import { promisify } from 'util';
|
|
7
|
-
import { writeFile, mkdir } from 'fs/promises';
|
|
8
|
-
import { join } from 'path';
|
|
9
|
-
const execAsync = promisify(exec);
|
|
10
|
-
export const qaCommand = new Command('qa')
|
|
11
|
-
.description('Run QA validation (CODE → QA)')
|
|
12
|
-
.argument('<id>', 'Spec ID')
|
|
13
|
-
.option('-o, --output <path>', 'Output path for QA report')
|
|
14
|
-
.option('--ears', 'Validate EARS compliance and generate EARS report')
|
|
15
|
-
.action(async (id, options) => {
|
|
16
|
-
const spinner = ora(`Running QA for ${id}...`).start();
|
|
17
|
-
try {
|
|
18
|
-
// Validate spec ID format
|
|
19
|
-
validateSpecId(id);
|
|
20
|
-
const workflow = new Workflow();
|
|
21
|
-
const tracker = new ProjectTracker(process.cwd());
|
|
22
|
-
// Load existing specs from disk
|
|
23
|
-
await tracker.loadSpecsIntoWorkflow(workflow);
|
|
24
|
-
// Run test suite
|
|
25
|
-
spinner.text = `Running test suite for ${id}...`;
|
|
26
|
-
let testResults = [];
|
|
27
|
-
let coverage = { statements: 0, branches: 0, functions: 0, lines: 0 };
|
|
28
|
-
let allPassed = false;
|
|
29
|
-
let testsFound = false;
|
|
30
|
-
try {
|
|
31
|
-
const { stdout } = await execAsync('npm test -- --reporter=json --coverage');
|
|
32
|
-
testsFound = true;
|
|
33
|
-
// Parse test results from JSON reporter output
|
|
34
|
-
try {
|
|
35
|
-
const parsed = JSON.parse(stdout);
|
|
36
|
-
if (parsed.testResults && Array.isArray(parsed.testResults)) {
|
|
37
|
-
testResults = parsed.testResults.map((r) => ({
|
|
38
|
-
file: r.name || r.file || 'unknown',
|
|
39
|
-
passed: r.numPassingTests ?? (r.status === 'passed' ? 1 : 0),
|
|
40
|
-
failed: r.numFailingTests ?? (r.status === 'failed' ? 1 : 0),
|
|
41
|
-
skipped: r.numPendingTests ?? 0,
|
|
42
|
-
duration: r.perfStats?.runtime ?? r.duration ?? 0
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
if (parsed.coverageMap || parsed.coverage) {
|
|
46
|
-
const cov = parsed.coverageMap || parsed.coverage;
|
|
47
|
-
coverage = {
|
|
48
|
-
statements: cov.statements?.pct ?? 85,
|
|
49
|
-
branches: cov.branches?.pct ?? 80,
|
|
50
|
-
functions: cov.functions?.pct ?? 90,
|
|
51
|
-
lines: cov.lines?.pct ?? 85
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
// JSON parse failed, treat as success with defaults
|
|
57
|
-
spinner.text = `Warning: Could not parse test output as JSON, using default results...`;
|
|
58
|
-
testResults = [{ file: 'test-suite', passed: 1, failed: 0, skipped: 0, duration: 0 }];
|
|
59
|
-
coverage = { statements: 85, branches: 80, functions: 90, lines: 85 };
|
|
60
|
-
}
|
|
61
|
-
allPassed = testResults.every(r => r.failed === 0);
|
|
62
|
-
}
|
|
63
|
-
catch (testError) {
|
|
64
|
-
// Tests failed (non-zero exit)
|
|
65
|
-
if (!testsFound) {
|
|
66
|
-
throw new Error('No tests found. Run \'specsafe test ' + id + '\' to generate tests first.');
|
|
67
|
-
}
|
|
68
|
-
testResults = [{ file: 'test-suite', passed: 0, failed: 1, skipped: 0, duration: 0 }];
|
|
69
|
-
allPassed = false;
|
|
70
|
-
}
|
|
71
|
-
// Move to QA stage (validates implementation exists)
|
|
72
|
-
try {
|
|
73
|
-
workflow.moveToQA(id);
|
|
74
|
-
}
|
|
75
|
-
catch (moveError) {
|
|
76
|
-
if (moveError.message.includes('not found')) {
|
|
77
|
-
throw new Error(`Spec '${id}' not found. Run 'specsafe spec ${id}' to create it first.`);
|
|
78
|
-
}
|
|
79
|
-
if (moveError.message.includes('Must be in CODE stage')) {
|
|
80
|
-
throw new Error(`Spec '${id}' is not in CODE stage. Run 'specsafe code ${id}' first.`);
|
|
81
|
-
}
|
|
82
|
-
if (moveError.message.includes('No implementation files')) {
|
|
83
|
-
throw new Error(`Spec '${id}' has no implementation files. Run 'specsafe code ${id}' and implement the functionality first.`);
|
|
84
|
-
}
|
|
85
|
-
throw moveError;
|
|
86
|
-
}
|
|
87
|
-
// Build issues from failing tests as proper Issue objects
|
|
88
|
-
const issues = testResults
|
|
89
|
-
.filter(r => r.failed > 0)
|
|
90
|
-
.map(r => ({
|
|
91
|
-
severity: 'high',
|
|
92
|
-
description: `${r.failed} test(s) failed in ${r.file}`,
|
|
93
|
-
file: r.file
|
|
94
|
-
}));
|
|
95
|
-
// Generate QA report
|
|
96
|
-
const qaReport = {
|
|
97
|
-
id: `QA-${id}`,
|
|
98
|
-
specId: id,
|
|
99
|
-
timestamp: new Date(),
|
|
100
|
-
testResults,
|
|
101
|
-
coverage,
|
|
102
|
-
recommendation: allPassed ? 'GO' : 'NO-GO',
|
|
103
|
-
issues,
|
|
104
|
-
notes: allPassed
|
|
105
|
-
? 'All tests passing. Ready for completion.'
|
|
106
|
-
: 'Some tests failed. Address issues before completing.'
|
|
107
|
-
};
|
|
108
|
-
// Save QA report
|
|
109
|
-
await mkdir('qa-reports', { recursive: true });
|
|
110
|
-
const reportPath = options.output || join('qa-reports', `qa-${id}.json`);
|
|
111
|
-
await writeFile(reportPath, JSON.stringify(qaReport, null, 2));
|
|
112
|
-
// EARS validation if requested
|
|
113
|
-
let earsScore;
|
|
114
|
-
let earsReportPath;
|
|
115
|
-
if (options.ears) {
|
|
116
|
-
spinner.text = `Validating EARS compliance for ${id}...`;
|
|
117
|
-
const spec = workflow.getSpec(id);
|
|
118
|
-
earsScore = getEARSScore(spec);
|
|
119
|
-
const earsReport = generateEARSReport(spec);
|
|
120
|
-
earsReportPath = join('qa-reports', `ears-${id}.md`);
|
|
121
|
-
await writeFile(earsReportPath, earsReport);
|
|
122
|
-
}
|
|
123
|
-
// Persist state
|
|
124
|
-
await tracker.addSpec(workflow.getSpec(id));
|
|
125
|
-
if (qaReport.recommendation === 'GO') {
|
|
126
|
-
spinner.succeed(chalk.green(`✅ QA passed for ${id}`));
|
|
127
|
-
console.log(chalk.blue(` Report: ${reportPath}`));
|
|
128
|
-
if (options.ears && earsScore !== undefined) {
|
|
129
|
-
console.log(chalk.blue(` EARS Report: ${earsReportPath}`));
|
|
130
|
-
if (earsScore >= 90) {
|
|
131
|
-
console.log(chalk.green(` EARS Score: ${earsScore}/100 ✅`));
|
|
132
|
-
}
|
|
133
|
-
else if (earsScore >= 70) {
|
|
134
|
-
console.log(chalk.yellow(` EARS Score: ${earsScore}/100 ⚠️`));
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
console.log(chalk.red(` EARS Score: ${earsScore}/100 ❌`));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
console.log(chalk.green('Ready for completion!'));
|
|
141
|
-
console.log(chalk.blue(` Run: specsafe complete ${id} --report ${reportPath}`));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
spinner.warn(chalk.yellow(`⚠️ QA issues found for ${id}`));
|
|
145
|
-
const issueDescs = qaReport.issues.map(i => i.description);
|
|
146
|
-
console.log(chalk.red(` Issues: ${issueDescs.join(', ')}`));
|
|
147
|
-
if (options.ears && earsScore !== undefined) {
|
|
148
|
-
console.log(chalk.blue(` EARS Report: ${earsReportPath}`));
|
|
149
|
-
if (earsScore >= 90) {
|
|
150
|
-
console.log(chalk.green(` EARS Score: ${earsScore}/100 ✅`));
|
|
151
|
-
}
|
|
152
|
-
else if (earsScore >= 70) {
|
|
153
|
-
console.log(chalk.yellow(` EARS Score: ${earsScore}/100 ⚠️`));
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
console.log(chalk.red(` EARS Score: ${earsScore}/100 ❌`));
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
console.log(chalk.blue('Fix issues and re-run: specsafe qa <id>'));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
spinner.fail(chalk.red(error.message));
|
|
164
|
-
if (error.message.includes('not in CODE stage') || error.message.includes('Run \'specsafe code\'')) {
|
|
165
|
-
console.log(chalk.gray(`💡 Tip: Run 'specsafe code ${id}' to move to CODE stage first.`));
|
|
166
|
-
}
|
|
167
|
-
else if (error.message.includes('No tests found') || error.message.includes('generate tests')) {
|
|
168
|
-
console.log(chalk.gray(`💡 Tip: Run 'specsafe test ${id}' to generate tests first.`));
|
|
169
|
-
}
|
|
170
|
-
else if (error.message.includes('not found')) {
|
|
171
|
-
console.log(chalk.gray(`💡 Tip: Run 'specsafe new <name>' to create a spec first.`));
|
|
172
|
-
}
|
|
173
|
-
else if (error.message.includes('No implementation files')) {
|
|
174
|
-
console.log(chalk.gray(`💡 Tip: Implement the functionality in src/ to match the requirements.`));
|
|
175
|
-
}
|
|
176
|
-
process.exit(1);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
//# sourceMappingURL=qa.js.map
|
package/dist/commands/qa.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qa.js","sourceRoot":"","sources":["../../src/commands/qa.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/rules.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/commands/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkFpC;;GAEG;AACH,eAAO,MAAM,YAAY,SA8MtB,CAAC"}
|
package/dist/commands/rules.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import ora from 'ora';
|
|
4
|
-
import { writeFile, readFile, mkdir } from 'fs/promises';
|
|
5
|
-
import { existsSync } from 'fs';
|
|
6
|
-
import { join, dirname } from 'path';
|
|
7
|
-
import { getSupportedAgents, getAgent, AGENT_DEFINITIONS, } from '@specsafe/core';
|
|
8
|
-
/**
|
|
9
|
-
* Load installed agents from config
|
|
10
|
-
*/
|
|
11
|
-
async function loadInstalledAgents(cwd = process.cwd()) {
|
|
12
|
-
const configPath = join(cwd, 'specsafe.config.json');
|
|
13
|
-
try {
|
|
14
|
-
const content = await readFile(configPath, 'utf-8');
|
|
15
|
-
const config = JSON.parse(content);
|
|
16
|
-
return new Map(Object.entries(config.agents || {}));
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
return new Map();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Save agent configuration
|
|
24
|
-
*/
|
|
25
|
-
async function saveAgentConfig(agentId, config, cwd = process.cwd()) {
|
|
26
|
-
const configPath = join(cwd, 'specsafe.config.json');
|
|
27
|
-
let existingConfig = {};
|
|
28
|
-
try {
|
|
29
|
-
const content = await readFile(configPath, 'utf-8');
|
|
30
|
-
existingConfig = JSON.parse(content);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Config doesn't exist yet
|
|
34
|
-
}
|
|
35
|
-
existingConfig.agents = {
|
|
36
|
-
...(existingConfig.agents || {}),
|
|
37
|
-
[agentId]: config,
|
|
38
|
-
};
|
|
39
|
-
await writeFile(configPath, JSON.stringify(existingConfig, null, 2));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Remove agent configuration
|
|
43
|
-
*/
|
|
44
|
-
async function removeAgentConfig(agentId, cwd = process.cwd()) {
|
|
45
|
-
const configPath = join(cwd, 'specsafe.config.json');
|
|
46
|
-
// Read phase - handle ENOENT gracefully
|
|
47
|
-
let config;
|
|
48
|
-
try {
|
|
49
|
-
const content = await readFile(configPath, 'utf-8');
|
|
50
|
-
config = JSON.parse(content);
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
// Config doesn't exist or is malformed
|
|
54
|
-
if (err.code === 'ENOENT') {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
throw err;
|
|
58
|
-
}
|
|
59
|
-
// Write phase - let errors bubble up
|
|
60
|
-
if (config.agents && config.agents[agentId]) {
|
|
61
|
-
delete config.agents[agentId];
|
|
62
|
-
await writeFile(configPath, JSON.stringify(config, null, 2));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Rules command - manage AI coding assistant integrations
|
|
67
|
-
*/
|
|
68
|
-
export const rulesCommand = new Command('rules')
|
|
69
|
-
.description('Manage AI coding assistant rules and integrations')
|
|
70
|
-
.addCommand(new Command('list')
|
|
71
|
-
.description('List available and installed agents')
|
|
72
|
-
.action(async () => {
|
|
73
|
-
const spinner = ora('Loading agents...').start();
|
|
74
|
-
try {
|
|
75
|
-
const installedAgents = await loadInstalledAgents();
|
|
76
|
-
spinner.stop();
|
|
77
|
-
console.log(chalk.bold('\n📋 Available Agents:\n'));
|
|
78
|
-
for (const agentDef of AGENT_DEFINITIONS) {
|
|
79
|
-
const agentEntry = getAgent(agentDef.id);
|
|
80
|
-
const isInstalled = installedAgents.has(agentDef.id);
|
|
81
|
-
const isDetected = agentEntry ? await agentEntry.adapter.detect(process.cwd()) : false;
|
|
82
|
-
const status = isInstalled
|
|
83
|
-
? chalk.green('[installed]')
|
|
84
|
-
: isDetected
|
|
85
|
-
? chalk.yellow('[detected]')
|
|
86
|
-
: chalk.gray('[available]');
|
|
87
|
-
console.log(` ${status} ${chalk.cyan(agentDef.id.padEnd(15))} ${agentDef.name}`);
|
|
88
|
-
if (isDetected && !isInstalled && agentDef.detectionFiles.length > 0) {
|
|
89
|
-
console.log(` ${chalk.gray(`Detected: ${agentDef.detectionFiles[0]}`)}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
console.log(chalk.gray(`\n${AGENT_DEFINITIONS.length} agents available`));
|
|
93
|
-
console.log(chalk.gray(`\nUse 'specsafe rules add <agent>' to install agent configs`));
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
spinner.fail(chalk.red(`Failed to list agents: ${error.message}`));
|
|
97
|
-
process.exit(1);
|
|
98
|
-
}
|
|
99
|
-
}))
|
|
100
|
-
.addCommand(new Command('add')
|
|
101
|
-
.description('Install configuration for an agent')
|
|
102
|
-
.argument('<agent>', 'Agent ID (claude-code, cursor, copilot, etc.)')
|
|
103
|
-
.option('--force', 'Overwrite existing files')
|
|
104
|
-
.action(async (agentId, options) => {
|
|
105
|
-
const supportedAgents = getSupportedAgents();
|
|
106
|
-
if (!supportedAgents.includes(agentId)) {
|
|
107
|
-
console.error(chalk.red(`Error: Unknown agent "${agentId}"`));
|
|
108
|
-
console.log(chalk.gray(`\nAvailable agents: ${supportedAgents.join(', ')}`));
|
|
109
|
-
process.exit(1);
|
|
110
|
-
}
|
|
111
|
-
const agentEntry = getAgent(agentId);
|
|
112
|
-
if (!agentEntry) {
|
|
113
|
-
console.error(chalk.red(`Error: Agent "${agentId}" has no adapter registered.`));
|
|
114
|
-
console.log(chalk.gray('This agent is defined but not yet implemented.'));
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
117
|
-
const spinner = ora(`Installing ${agentEntry.name} configuration...`).start();
|
|
118
|
-
try {
|
|
119
|
-
const projectDir = process.cwd();
|
|
120
|
-
// Generate config files
|
|
121
|
-
const configFiles = await agentEntry.adapter.generateConfig(projectDir, {
|
|
122
|
-
force: options.force,
|
|
123
|
-
});
|
|
124
|
-
// Generate command files
|
|
125
|
-
const commandFiles = await agentEntry.adapter.generateCommands(projectDir, {
|
|
126
|
-
force: options.force,
|
|
127
|
-
});
|
|
128
|
-
const allFiles = [...configFiles, ...commandFiles];
|
|
129
|
-
let created = 0;
|
|
130
|
-
let skipped = 0;
|
|
131
|
-
// Write files
|
|
132
|
-
for (const file of allFiles) {
|
|
133
|
-
const filePath = join(projectDir, file.path);
|
|
134
|
-
const fileDir = dirname(filePath);
|
|
135
|
-
// Create directory (mkdir recursive is idempotent)
|
|
136
|
-
await mkdir(fileDir, { recursive: true });
|
|
137
|
-
// Check if file exists
|
|
138
|
-
if (existsSync(filePath) && !options.force) {
|
|
139
|
-
skipped++;
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
// Write file
|
|
143
|
-
await writeFile(filePath, file.content);
|
|
144
|
-
created++;
|
|
145
|
-
}
|
|
146
|
-
// Save to config
|
|
147
|
-
await saveAgentConfig(agentId, { enabled: true });
|
|
148
|
-
spinner.succeed(chalk.green(`Installed ${agentEntry.name} configuration`));
|
|
149
|
-
console.log(chalk.gray(`\nFiles: ${created} created, ${skipped} skipped`));
|
|
150
|
-
// Show instructions
|
|
151
|
-
console.log('\n' + chalk.blue('Usage Instructions:'));
|
|
152
|
-
console.log(agentEntry.adapter.getInstructions());
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
spinner.fail(chalk.red(`Failed to install ${agentId}: ${error.message}`));
|
|
156
|
-
process.exit(1);
|
|
157
|
-
}
|
|
158
|
-
}))
|
|
159
|
-
.addCommand(new Command('remove')
|
|
160
|
-
.description('Remove configuration for an agent')
|
|
161
|
-
.argument('<agent>', 'Agent ID to remove')
|
|
162
|
-
.action(async (agentId) => {
|
|
163
|
-
const supportedAgents = getSupportedAgents();
|
|
164
|
-
if (!supportedAgents.includes(agentId)) {
|
|
165
|
-
console.error(chalk.red(`Error: Unknown agent "${agentId}"`));
|
|
166
|
-
process.exit(1);
|
|
167
|
-
}
|
|
168
|
-
// Check if agent is actually installed
|
|
169
|
-
const installedAgents = await loadInstalledAgents();
|
|
170
|
-
if (!installedAgents.has(agentId)) {
|
|
171
|
-
console.warn(chalk.yellow(`Warning: Agent "${agentId}" is not configured in this project.`));
|
|
172
|
-
console.log(chalk.gray('Nothing to remove.'));
|
|
173
|
-
process.exit(0);
|
|
174
|
-
}
|
|
175
|
-
const spinner = ora(`Removing ${agentId} configuration...`).start();
|
|
176
|
-
try {
|
|
177
|
-
// Remove from config
|
|
178
|
-
await removeAgentConfig(agentId);
|
|
179
|
-
spinner.succeed(chalk.green(`Removed ${agentId} from configuration`));
|
|
180
|
-
console.log(chalk.gray('\nNote: Config files were not deleted. Remove them manually if needed.'));
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
spinner.fail(chalk.red(`Failed to remove ${agentId}: ${error.message}`));
|
|
184
|
-
process.exit(1);
|
|
185
|
-
}
|
|
186
|
-
}))
|
|
187
|
-
.addCommand(new Command('info')
|
|
188
|
-
.description('Show information about an agent')
|
|
189
|
-
.argument('<agent>', 'Agent ID')
|
|
190
|
-
.action(async (agentId) => {
|
|
191
|
-
const agentEntry = getAgent(agentId);
|
|
192
|
-
if (!agentEntry) {
|
|
193
|
-
// Fallback to agent definition if no adapter available
|
|
194
|
-
const agentDef = AGENT_DEFINITIONS.find(def => def.id === agentId);
|
|
195
|
-
if (!agentDef) {
|
|
196
|
-
console.error(chalk.red(`Error: Unknown agent "${agentId}"`));
|
|
197
|
-
const supported = getSupportedAgents();
|
|
198
|
-
console.log(chalk.gray(`\nAvailable agents: ${supported.join(', ')}`));
|
|
199
|
-
process.exit(1);
|
|
200
|
-
}
|
|
201
|
-
// Show metadata but note no adapter available
|
|
202
|
-
console.log(chalk.bold(`\n${agentDef.name}\n`));
|
|
203
|
-
console.log(chalk.gray(`ID: ${agentDef.id}`));
|
|
204
|
-
console.log(chalk.gray(`Config Directory: ${agentDef.configDir || 'N/A'}`));
|
|
205
|
-
console.log(chalk.gray(`Command Directory: ${agentDef.commandDir || 'N/A'}`));
|
|
206
|
-
console.log(chalk.gray(`File Extension: ${agentDef.fileExtension}`));
|
|
207
|
-
console.log(chalk.gray(`Command Format: ${agentDef.commandFormat}`));
|
|
208
|
-
console.log('\n' + chalk.blue('Detection Files:'));
|
|
209
|
-
for (const file of agentDef.detectionFiles) {
|
|
210
|
-
const exists = existsSync(join(process.cwd(), file));
|
|
211
|
-
const status = exists ? chalk.green('✓') : chalk.gray('✗');
|
|
212
|
-
console.log(` ${status} ${file}`);
|
|
213
|
-
}
|
|
214
|
-
console.log('\n' + chalk.yellow('⚠ No adapter available for this agent'));
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
console.log(chalk.bold(`\n${agentEntry.name}\n`));
|
|
218
|
-
console.log(chalk.gray(`ID: ${agentEntry.id}`));
|
|
219
|
-
console.log(chalk.gray(`Config Directory: ${agentEntry.configDir || 'N/A'}`));
|
|
220
|
-
console.log(chalk.gray(`Command Directory: ${agentEntry.commandDir || 'N/A'}`));
|
|
221
|
-
console.log(chalk.gray(`File Extension: ${agentEntry.fileExtension}`));
|
|
222
|
-
console.log(chalk.gray(`Command Format: ${agentEntry.commandFormat}`));
|
|
223
|
-
console.log('\n' + chalk.blue('Detection Files:'));
|
|
224
|
-
for (const file of agentEntry.detectionFiles) {
|
|
225
|
-
const exists = existsSync(join(process.cwd(), file));
|
|
226
|
-
const status = exists ? chalk.green('✓') : chalk.gray('✗');
|
|
227
|
-
console.log(` ${status} ${file}`);
|
|
228
|
-
}
|
|
229
|
-
console.log('\n' + chalk.blue('Instructions:'));
|
|
230
|
-
console.log(agentEntry.adapter.getInstructions());
|
|
231
|
-
}));
|
|
232
|
-
//# sourceMappingURL=rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/commands/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,MAA4B,EAC5B,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACrD,IAAI,cAAc,GAA4B,EAAE,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IAED,cAAc,CAAC,MAAM,GAAG;QACtB,GAAG,CAAE,cAAc,CAAC,MAA8C,IAAI,EAAE,CAAC;QACzE,CAAC,OAAO,CAAC,EAAE,MAAM;KAClB,CAAC;IAEF,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAErD,wCAAwC;IACxC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uCAAuC;QACvC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,CAAC,MAAM,IAAK,MAAM,CAAC,MAAkC,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,OAAQ,MAAM,CAAC,MAAkC,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,mDAAmD,CAAC;KAChE,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAEpD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEvF,MAAM,MAAM,GAAG,WAAW;gBACxB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;gBAC5B,CAAC,CAAC,UAAU;oBACV,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAElF,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,MAAM,mBAAmB,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,KAAK,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,SAAS,EAAE,+CAA+C,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA4B,EAAE,EAAE;IAC9D,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,8BAA8B,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,UAAU,CAAC,IAAI,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjC,wBAAwB;QACxB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE;YACtE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;YACzE,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,cAAc;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAElC,mDAAmD;YACnD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,uBAAuB;YACvB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,aAAa;YACb,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iBAAiB;QACjB,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;QAE3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,aAAa,OAAO,UAAU,CAAC,CAAC,CAAC;QAE3E,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEpD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,MAAM,eAAe,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,OAAO,sCAAsC,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,OAAO,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,qBAAqB;QACrB,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,qBAAqB,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC,CAAC;IAEpG,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,uDAAuD;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,8CAA8C;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAErE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CACL,CAAC"}
|
package/dist/commands/shard.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../src/commands/shard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,eAAO,MAAM,YAAY,SA+ErB,CAAC"}
|