agentic-qe 1.8.4 → 1.9.1
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/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
- package/CHANGELOG.md +394 -0
- package/README.md +86 -18
- package/dist/App.d.ts +5 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +15 -0
- package/dist/App.js.map +1 -0
- package/dist/cli/commands/constitution.d.ts +34 -0
- package/dist/cli/commands/constitution.d.ts.map +1 -0
- package/dist/cli/commands/constitution.js +679 -0
- package/dist/cli/commands/constitution.js.map +1 -0
- package/dist/cli/commands/init.d.ts +8 -75
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -2292
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +3 -4
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +36 -0
- package/dist/cli/commands/telemetry.d.ts.map +1 -0
- package/dist/cli/commands/telemetry.js +364 -0
- package/dist/cli/commands/telemetry.js.map +1 -0
- package/dist/cli/index.js +66 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/agents.d.ts +22 -0
- package/dist/cli/init/agents.d.ts.map +1 -0
- package/dist/cli/init/agents.js +522 -0
- package/dist/cli/init/agents.js.map +1 -0
- package/dist/cli/init/bash-wrapper.d.ts +14 -0
- package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
- package/dist/cli/init/bash-wrapper.js +47 -0
- package/dist/cli/init/bash-wrapper.js.map +1 -0
- package/dist/cli/init/claude-config.d.ts +24 -0
- package/dist/cli/init/claude-config.d.ts.map +1 -0
- package/dist/cli/init/claude-config.js +275 -0
- package/dist/cli/init/claude-config.js.map +1 -0
- package/dist/cli/init/claude-md.d.ts +19 -0
- package/dist/cli/init/claude-md.d.ts.map +1 -0
- package/dist/cli/init/claude-md.js +153 -0
- package/dist/cli/init/claude-md.js.map +1 -0
- package/dist/cli/init/commands.d.ts +6 -0
- package/dist/cli/init/commands.d.ts.map +1 -0
- package/dist/cli/init/commands.js +83 -0
- package/dist/cli/init/commands.js.map +1 -0
- package/dist/cli/init/database-init.d.ts +15 -0
- package/dist/cli/init/database-init.d.ts.map +1 -0
- package/dist/cli/init/database-init.js +203 -0
- package/dist/cli/init/database-init.js.map +1 -0
- package/dist/cli/init/directory-structure.d.ts +14 -0
- package/dist/cli/init/directory-structure.d.ts.map +1 -0
- package/dist/cli/init/directory-structure.js +91 -0
- package/dist/cli/init/directory-structure.js.map +1 -0
- package/dist/cli/init/documentation.d.ts +14 -0
- package/dist/cli/init/documentation.d.ts.map +1 -0
- package/dist/cli/init/documentation.js +195 -0
- package/dist/cli/init/documentation.js.map +1 -0
- package/dist/cli/init/fleet-config.d.ts +34 -0
- package/dist/cli/init/fleet-config.d.ts.map +1 -0
- package/dist/cli/init/fleet-config.js +269 -0
- package/dist/cli/init/fleet-config.js.map +1 -0
- package/dist/cli/init/helpers.d.ts +6 -0
- package/dist/cli/init/helpers.d.ts.map +1 -0
- package/dist/cli/init/helpers.js +94 -0
- package/dist/cli/init/helpers.js.map +1 -0
- package/dist/cli/init/index.d.ts +32 -0
- package/dist/cli/init/index.d.ts.map +1 -0
- package/dist/cli/init/index.js +294 -0
- package/dist/cli/init/index.js.map +1 -0
- package/dist/cli/init/skills.d.ts +6 -0
- package/dist/cli/init/skills.d.ts.map +1 -0
- package/dist/cli/init/skills.js +138 -0
- package/dist/cli/init/skills.js.map +1 -0
- package/dist/cli/init/utils/file-utils.d.ts +74 -0
- package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/file-utils.js +187 -0
- package/dist/cli/init/utils/file-utils.js.map +1 -0
- package/dist/cli/init/utils/index.d.ts +18 -0
- package/dist/cli/init/utils/index.d.ts.map +1 -0
- package/dist/cli/init/utils/index.js +48 -0
- package/dist/cli/init/utils/index.js.map +1 -0
- package/dist/cli/init/utils/log-utils.d.ts +47 -0
- package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/log-utils.js +68 -0
- package/dist/cli/init/utils/log-utils.js.map +1 -0
- package/dist/cli/init/utils/path-utils.d.ts +91 -0
- package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/path-utils.js +208 -0
- package/dist/cli/init/utils/path-utils.js.map +1 -0
- package/dist/cli/init/utils/validation-utils.d.ts +44 -0
- package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/validation-utils.js +68 -0
- package/dist/cli/init/utils/validation-utils.js.map +1 -0
- package/dist/cli/init/utils.d.ts +183 -0
- package/dist/cli/init/utils.d.ts.map +1 -0
- package/dist/cli/init/utils.js +354 -0
- package/dist/cli/init/utils.js.map +1 -0
- package/dist/components/Dashboard/Dashboard.d.ts +4 -0
- package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
- package/dist/components/Dashboard/Dashboard.js +148 -0
- package/dist/components/Dashboard/Dashboard.js.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.js +138 -0
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
- package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
- package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/ast-evaluator.js +303 -0
- package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/base.d.ts +144 -0
- package/dist/constitution/evaluators/base.d.ts.map +1 -0
- package/dist/constitution/evaluators/base.js +144 -0
- package/dist/constitution/evaluators/base.js.map +1 -0
- package/dist/constitution/evaluators/index.d.ts +19 -0
- package/dist/constitution/evaluators/index.d.ts.map +1 -0
- package/dist/constitution/evaluators/index.js +56 -0
- package/dist/constitution/evaluators/index.js.map +1 -0
- package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
- package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/metric-evaluator.js +195 -0
- package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
- package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
- package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
- package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
- package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
- package/dist/contexts/DashboardContext.d.ts +41 -0
- package/dist/contexts/DashboardContext.d.ts.map +1 -0
- package/dist/contexts/DashboardContext.js +187 -0
- package/dist/contexts/DashboardContext.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +40 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +291 -120
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +69 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/telemetry/instrumentation/agent.d.ts +158 -0
- package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/agent.js +372 -0
- package/dist/telemetry/instrumentation/agent.js.map +1 -0
- package/dist/telemetry/instrumentation/index.d.ts +24 -0
- package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/index.js +54 -0
- package/dist/telemetry/instrumentation/index.js.map +1 -0
- package/dist/telemetry/instrumentation/memory.d.ts +313 -0
- package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/memory.js +552 -0
- package/dist/telemetry/instrumentation/memory.js.map +1 -0
- package/dist/telemetry/instrumentation/task.d.ts +146 -0
- package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/task.js +305 -0
- package/dist/telemetry/instrumentation/task.js.map +1 -0
- package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
- package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
- package/dist/telemetry/metrics/collectors/cost.js +526 -0
- package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
- package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
- package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
- package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
- package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
- package/dist/telemetry/metrics/index.d.ts +4 -1
- package/dist/telemetry/metrics/index.d.ts.map +1 -1
- package/dist/telemetry/metrics/index.js +18 -2
- package/dist/telemetry/metrics/index.js.map +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/telemetry/types.d.ts.map +1 -1
- package/dist/visualization/api/RestEndpoints.d.ts +136 -0
- package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
- package/dist/visualization/api/RestEndpoints.js +428 -0
- package/dist/visualization/api/RestEndpoints.js.map +1 -0
- package/dist/visualization/api/WebSocketServer.d.ts +165 -0
- package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
- package/dist/visualization/api/WebSocketServer.js +518 -0
- package/dist/visualization/api/WebSocketServer.js.map +1 -0
- package/dist/visualization/core/DataTransformer.d.ts +89 -0
- package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
- package/dist/visualization/core/DataTransformer.js +478 -0
- package/dist/visualization/core/DataTransformer.js.map +1 -0
- package/dist/visualization/index.d.ts +92 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +121 -0
- package/dist/visualization/index.js.map +1 -0
- package/dist/visualization/types.d.ts +148 -0
- package/dist/visualization/types.d.ts.map +1 -0
- package/dist/visualization/types.js +7 -0
- package/dist/visualization/types.js.map +1 -0
- package/dist/voting/consensus.d.ts +87 -0
- package/dist/voting/consensus.d.ts.map +1 -0
- package/dist/voting/consensus.js +568 -0
- package/dist/voting/consensus.js.map +1 -0
- package/dist/voting/index.d.ts +12 -0
- package/dist/voting/index.d.ts.map +1 -0
- package/dist/voting/index.js +36 -0
- package/dist/voting/index.js.map +1 -0
- package/dist/voting/orchestrator.d.ts +65 -0
- package/dist/voting/orchestrator.d.ts.map +1 -0
- package/dist/voting/orchestrator.js +306 -0
- package/dist/voting/orchestrator.js.map +1 -0
- package/dist/voting/panel-assembly.d.ts +54 -0
- package/dist/voting/panel-assembly.d.ts.map +1 -0
- package/dist/voting/panel-assembly.js +192 -0
- package/dist/voting/panel-assembly.js.map +1 -0
- package/dist/voting/protocol.d.ts +119 -0
- package/dist/voting/protocol.d.ts.map +1 -0
- package/dist/voting/protocol.js +18 -0
- package/dist/voting/protocol.js.map +1 -0
- package/dist/voting/types.d.ts +125 -0
- package/dist/voting/types.d.ts.map +1 -0
- package/dist/voting/types.js +7 -0
- package/dist/voting/types.js.map +1 -0
- package/package.json +27 -2
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Main initialization orchestrator for Agentic QE Fleet
|
|
4
|
+
*
|
|
5
|
+
* Coordinates all initialization steps in the correct order with proper error handling,
|
|
6
|
+
* progress logging, and rollback capabilities.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/init
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.createBashWrapper = exports.copyDocumentation = exports.setupMCPServer = exports.generateClaudeSettings = exports.initializeDatabases = exports.createDirectoryStructure = void 0;
|
|
15
|
+
exports.initCommand = initCommand;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const ora_1 = __importDefault(require("ora"));
|
|
18
|
+
const ProcessExit_1 = require("../../utils/ProcessExit");
|
|
19
|
+
// Phase modules (will be created incrementally)
|
|
20
|
+
const directory_structure_1 = require("./directory-structure");
|
|
21
|
+
Object.defineProperty(exports, "createDirectoryStructure", { enumerable: true, get: function () { return directory_structure_1.createDirectoryStructure; } });
|
|
22
|
+
const database_init_1 = require("./database-init");
|
|
23
|
+
Object.defineProperty(exports, "initializeDatabases", { enumerable: true, get: function () { return database_init_1.initializeDatabases; } });
|
|
24
|
+
const claude_config_1 = require("./claude-config");
|
|
25
|
+
Object.defineProperty(exports, "generateClaudeSettings", { enumerable: true, get: function () { return claude_config_1.generateClaudeSettings; } });
|
|
26
|
+
Object.defineProperty(exports, "setupMCPServer", { enumerable: true, get: function () { return claude_config_1.setupMCPServer; } });
|
|
27
|
+
const documentation_1 = require("./documentation");
|
|
28
|
+
Object.defineProperty(exports, "copyDocumentation", { enumerable: true, get: function () { return documentation_1.copyDocumentation; } });
|
|
29
|
+
const bash_wrapper_1 = require("./bash-wrapper");
|
|
30
|
+
Object.defineProperty(exports, "createBashWrapper", { enumerable: true, get: function () { return bash_wrapper_1.createBashWrapper; } });
|
|
31
|
+
const claude_md_1 = require("./claude-md");
|
|
32
|
+
const agents_1 = require("./agents");
|
|
33
|
+
const skills_1 = require("./skills");
|
|
34
|
+
const commands_1 = require("./commands");
|
|
35
|
+
const helpers_1 = require("./helpers");
|
|
36
|
+
// Import version from package.json
|
|
37
|
+
const packageJson = require('../../../package.json');
|
|
38
|
+
const PACKAGE_VERSION = packageJson.version;
|
|
39
|
+
/**
|
|
40
|
+
* Main initialization command
|
|
41
|
+
*
|
|
42
|
+
* Coordinates all initialization phases in the correct order with:
|
|
43
|
+
* - Progress tracking and user feedback
|
|
44
|
+
* - Error handling and recovery
|
|
45
|
+
* - Rollback on critical failures
|
|
46
|
+
* - Skippable non-critical phases
|
|
47
|
+
*
|
|
48
|
+
* @param options - Initialization options from CLI
|
|
49
|
+
* @returns Promise that resolves when initialization is complete
|
|
50
|
+
*/
|
|
51
|
+
async function initCommand(options) {
|
|
52
|
+
console.log(chalk_1.default.blue.bold(`\n🚀 Initializing Agentic QE Fleet v${PACKAGE_VERSION}\n`));
|
|
53
|
+
// Validate and prepare configuration
|
|
54
|
+
const config = await prepareConfiguration(options);
|
|
55
|
+
// Define initialization phases
|
|
56
|
+
const phases = [
|
|
57
|
+
{
|
|
58
|
+
name: 'Directory Structure',
|
|
59
|
+
description: 'Creating project directories',
|
|
60
|
+
execute: async (cfg, opts) => (0, directory_structure_1.createDirectoryStructure)(opts.force || false),
|
|
61
|
+
critical: true,
|
|
62
|
+
rollback: async () => {
|
|
63
|
+
// Cleanup directories if needed
|
|
64
|
+
console.log(chalk_1.default.yellow('Rolling back directory creation...'));
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'Databases',
|
|
69
|
+
description: 'Initializing AgentDB and memory databases',
|
|
70
|
+
execute: async (cfg) => (0, database_init_1.initializeDatabases)(cfg),
|
|
71
|
+
critical: true,
|
|
72
|
+
rollback: async () => {
|
|
73
|
+
console.log(chalk_1.default.yellow('Rolling back database initialization...'));
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'Claude Configuration',
|
|
78
|
+
description: 'Generating Claude Code settings and MCP server',
|
|
79
|
+
execute: async (cfg) => {
|
|
80
|
+
await (0, claude_config_1.generateClaudeSettings)(cfg);
|
|
81
|
+
await (0, claude_config_1.setupMCPServer)();
|
|
82
|
+
},
|
|
83
|
+
critical: true // CRITICAL for learning system!
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'Documentation',
|
|
87
|
+
description: 'Copying reference documentation',
|
|
88
|
+
execute: async () => (0, documentation_1.copyDocumentation)(),
|
|
89
|
+
critical: false // Non-critical, can skip if fails
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'Bash Wrapper',
|
|
93
|
+
description: 'Creating aqe command wrapper',
|
|
94
|
+
execute: async () => (0, bash_wrapper_1.createBashWrapper)(),
|
|
95
|
+
critical: false
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Agent Templates',
|
|
99
|
+
description: 'Copying agent templates to .claude/agents',
|
|
100
|
+
execute: async (cfg, opts) => (0, agents_1.copyAgentTemplates)(cfg, opts.force || false),
|
|
101
|
+
critical: false
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'Skill Templates',
|
|
105
|
+
description: 'Copying QE skill templates to .claude/skills',
|
|
106
|
+
execute: async (cfg, opts) => (0, skills_1.copySkillTemplates)(opts.force || false),
|
|
107
|
+
critical: false
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: 'Command Templates',
|
|
111
|
+
description: 'Copying slash command templates to .claude/commands',
|
|
112
|
+
execute: async (cfg, opts) => (0, commands_1.copyCommandTemplates)(opts.force || false),
|
|
113
|
+
critical: false
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: 'Helper Scripts',
|
|
117
|
+
description: 'Copying helper scripts to .claude/helpers',
|
|
118
|
+
execute: async (cfg, opts) => (0, helpers_1.copyHelperScripts)(opts.force || false),
|
|
119
|
+
critical: false
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'CLAUDE.md',
|
|
123
|
+
description: 'Creating CLAUDE.md configuration file',
|
|
124
|
+
execute: async (cfg, opts) => (0, claude_md_1.createClaudeMd)(cfg, opts.yes || opts.nonInteractive || false),
|
|
125
|
+
critical: false
|
|
126
|
+
}
|
|
127
|
+
// Future phases could include:
|
|
128
|
+
// - Fleet configuration customization
|
|
129
|
+
// - CI/CD integration templates
|
|
130
|
+
// - Git hooks setup
|
|
131
|
+
];
|
|
132
|
+
let spinner = null;
|
|
133
|
+
const completedPhases = [];
|
|
134
|
+
try {
|
|
135
|
+
// ⚡ OPTIMIZATION: Execute phases in parallel groups for faster initialization
|
|
136
|
+
// Group 1: Critical sequential phases (must run in order)
|
|
137
|
+
const criticalPhases = phases.filter(p => p.critical);
|
|
138
|
+
// Group 2: Non-critical parallel phases (can run concurrently)
|
|
139
|
+
const parallelPhases = phases.filter(p => !p.critical);
|
|
140
|
+
// Execute critical phases sequentially (dependencies require order)
|
|
141
|
+
for (const phase of criticalPhases) {
|
|
142
|
+
try {
|
|
143
|
+
spinner = (0, ora_1.default)({
|
|
144
|
+
text: phase.description,
|
|
145
|
+
prefixText: chalk_1.default.blue(`[${phase.name}]`)
|
|
146
|
+
}).start();
|
|
147
|
+
await phase.execute(config, options);
|
|
148
|
+
spinner.succeed(chalk_1.default.green(`${phase.description} - Complete`));
|
|
149
|
+
completedPhases.push(phase.name);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
spinner?.fail(chalk_1.default.red(`${phase.description} - Failed`));
|
|
153
|
+
// Critical phases should have already stopped in the loop above
|
|
154
|
+
console.error(chalk_1.default.red(`\n❌ Critical phase "${phase.name}" failed:`));
|
|
155
|
+
console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
|
|
156
|
+
// Attempt rollback
|
|
157
|
+
await rollbackPhases(phases, completedPhases, config);
|
|
158
|
+
ProcessExit_1.ProcessExit.exitIfNotTest(1);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// ⚡ Execute non-critical phases in parallel for 2-3x speedup
|
|
163
|
+
console.log(chalk_1.default.cyan('\n📦 Installing optional components (parallel)...\n'));
|
|
164
|
+
const parallelResults = await Promise.allSettled(parallelPhases.map(async (phase) => {
|
|
165
|
+
const phaseSpinner = (0, ora_1.default)({
|
|
166
|
+
text: phase.description,
|
|
167
|
+
prefixText: chalk_1.default.blue(`[${phase.name}]`)
|
|
168
|
+
}).start();
|
|
169
|
+
try {
|
|
170
|
+
await phase.execute(config, options);
|
|
171
|
+
phaseSpinner.succeed(chalk_1.default.green(`${phase.description} - Complete`));
|
|
172
|
+
return { success: true, phase: phase.name };
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
phaseSpinner.fail(chalk_1.default.yellow(`${phase.description} - Skipped`));
|
|
176
|
+
console.warn(chalk_1.default.yellow(` ⚠️ ${error instanceof Error ? error.message : String(error)}`));
|
|
177
|
+
return { success: false, phase: phase.name, error };
|
|
178
|
+
}
|
|
179
|
+
}));
|
|
180
|
+
// Track which parallel phases completed
|
|
181
|
+
parallelResults.forEach((result) => {
|
|
182
|
+
if (result.status === 'fulfilled' && result.value.success) {
|
|
183
|
+
completedPhases.push(result.value.phase);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
// All phases completed successfully (or skipped non-critical)
|
|
187
|
+
displaySuccessMessage(config, options);
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
// Unexpected error during initialization
|
|
191
|
+
spinner?.fail(chalk_1.default.red('Initialization failed'));
|
|
192
|
+
console.error(chalk_1.default.red('\n❌ Unexpected initialization error:'));
|
|
193
|
+
console.error(error);
|
|
194
|
+
await rollbackPhases(phases, completedPhases, config);
|
|
195
|
+
ProcessExit_1.ProcessExit.exitIfNotTest(1);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Prepare and validate fleet configuration from CLI options
|
|
200
|
+
*/
|
|
201
|
+
async function prepareConfiguration(options) {
|
|
202
|
+
// Parse and validate options
|
|
203
|
+
const maxAgents = parseInt(options.maxAgents);
|
|
204
|
+
const testingFocus = options.focus.split(',').map(f => f.trim());
|
|
205
|
+
const environments = options.environments.split(',').map(e => e.trim());
|
|
206
|
+
const frameworks = options.frameworks
|
|
207
|
+
? options.frameworks.split(',').map(f => f.trim())
|
|
208
|
+
: ['jest'];
|
|
209
|
+
// Validation
|
|
210
|
+
if (maxAgents < 5 || maxAgents > 50) {
|
|
211
|
+
throw new Error('Max agents must be between 5 and 50');
|
|
212
|
+
}
|
|
213
|
+
const validTopologies = ['hierarchical', 'mesh', 'ring', 'adaptive'];
|
|
214
|
+
if (!validTopologies.includes(options.topology)) {
|
|
215
|
+
throw new Error(`Invalid topology. Must be one of: ${validTopologies.join(', ')}`);
|
|
216
|
+
}
|
|
217
|
+
// Create fleet configuration
|
|
218
|
+
const config = {
|
|
219
|
+
agents: [], // Will be populated during agent setup phase
|
|
220
|
+
topology: options.topology,
|
|
221
|
+
maxAgents,
|
|
222
|
+
testingFocus,
|
|
223
|
+
environments,
|
|
224
|
+
frameworks,
|
|
225
|
+
routing: {
|
|
226
|
+
enabled: false, // Disabled by default for safe rollout
|
|
227
|
+
defaultModel: 'claude-sonnet-4.5',
|
|
228
|
+
enableCostTracking: true,
|
|
229
|
+
enableFallback: true,
|
|
230
|
+
maxRetries: 3,
|
|
231
|
+
costThreshold: 0.5
|
|
232
|
+
},
|
|
233
|
+
streaming: {
|
|
234
|
+
enabled: true, // Enabled by default
|
|
235
|
+
progressInterval: 2000,
|
|
236
|
+
bufferEvents: false,
|
|
237
|
+
timeout: 1800000
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
return config;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Rollback completed phases on critical failure
|
|
244
|
+
*/
|
|
245
|
+
async function rollbackPhases(phases, completedPhases, config) {
|
|
246
|
+
if (completedPhases.length === 0) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
console.log(chalk_1.default.yellow('\n⏮️ Rolling back completed phases...'));
|
|
250
|
+
// Rollback in reverse order
|
|
251
|
+
for (let i = completedPhases.length - 1; i >= 0; i--) {
|
|
252
|
+
const phaseName = completedPhases[i];
|
|
253
|
+
const phase = phases.find(p => p.name === phaseName);
|
|
254
|
+
if (phase?.rollback) {
|
|
255
|
+
try {
|
|
256
|
+
await phase.rollback(config);
|
|
257
|
+
console.log(chalk_1.default.gray(` ✓ Rolled back: ${phaseName}`));
|
|
258
|
+
}
|
|
259
|
+
catch (rollbackError) {
|
|
260
|
+
console.warn(chalk_1.default.yellow(` ⚠️ Rollback failed for: ${phaseName}`));
|
|
261
|
+
console.warn(chalk_1.default.gray(String(rollbackError)));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
console.log(chalk_1.default.yellow('\n⚠️ Initialization rolled back. Please fix errors and try again.\n'));
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Display success message with next steps
|
|
269
|
+
*/
|
|
270
|
+
function displaySuccessMessage(config, options) {
|
|
271
|
+
console.log(chalk_1.default.green.bold('\n✅ Initialization Complete!\n'));
|
|
272
|
+
console.log(chalk_1.default.blue('Fleet Configuration:'));
|
|
273
|
+
console.log(chalk_1.default.gray(` • Topology: ${config.topology}`));
|
|
274
|
+
console.log(chalk_1.default.gray(` • Max Agents: ${config.maxAgents}`));
|
|
275
|
+
console.log(chalk_1.default.gray(` • Testing Focus: ${config.testingFocus?.join(', ')}`));
|
|
276
|
+
console.log(chalk_1.default.gray(` • Environments: ${config.environments?.join(', ')}`));
|
|
277
|
+
console.log(chalk_1.default.gray(` • Frameworks: ${config.frameworks?.join(', ')}`));
|
|
278
|
+
console.log(chalk_1.default.yellow('\n💡 Next Steps:\n'));
|
|
279
|
+
console.log(chalk_1.default.white(' 1. Check fleet status:'));
|
|
280
|
+
console.log(chalk_1.default.cyan(' aqe status'));
|
|
281
|
+
console.log(chalk_1.default.white('\n 2. Check learning status:'));
|
|
282
|
+
console.log(chalk_1.default.cyan(' aqe learn status'));
|
|
283
|
+
console.log(chalk_1.default.white('\n 3. View learned patterns:'));
|
|
284
|
+
console.log(chalk_1.default.cyan(' aqe patterns list'));
|
|
285
|
+
console.log(chalk_1.default.white('\n 4. For agent capabilities, see:'));
|
|
286
|
+
console.log(chalk_1.default.cyan(' .agentic-qe/docs/agents.md\n'));
|
|
287
|
+
if (config.routing?.enabled) {
|
|
288
|
+
console.log(chalk_1.default.blue('💰 Multi-Model Router enabled - expect 70-81% cost savings!\n'));
|
|
289
|
+
}
|
|
290
|
+
if (options.enableLearning) {
|
|
291
|
+
console.log(chalk_1.default.blue('🧠 Learning system enabled - agents will improve over time!\n'));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/init/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;AA8CH,kCAmKC;AA/MD,kDAA0B;AAC1B,8CAA+B;AAE/B,yDAAsD;AAEtD,gDAAgD;AAChD,+DAAiE;AAiU/D,yGAjUO,8CAAwB,OAiUP;AAhU1B,mDAAsD;AAiUpD,oGAjUO,mCAAmB,OAiUP;AAhUrB,mDAAyE;AAiUvE,uGAjUO,sCAAsB,OAiUP;AACtB,+FAlU+B,8BAAc,OAkU/B;AAjUhB,mDAAoD;AAkUlD,kGAlUO,iCAAiB,OAkUP;AAjUnB,iDAAmD;AAkUjD,kGAlUO,gCAAiB,OAkUP;AAjUnB,2CAA6C;AAC7C,qCAA8C;AAC9C,qCAA8C;AAC9C,yCAAkD;AAClD,uCAA8C;AAE9C,mCAAmC;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrD,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC;AAa5C;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,eAAe,IAAI,CAAC,CAAC,CAAC;IAEzF,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,MAAM,MAAM,GAAgB;QAC1B;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,8CAAwB,EAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YAC3E,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,gCAAgC;gBAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAClE,CAAC;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,mCAAmB,EAAC,GAAG,CAAC;YAChD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACvE,CAAC;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,gDAAgD;YAC7D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,IAAA,sCAAsB,EAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,IAAA,8BAAc,GAAE,CAAC;YACzB,CAAC;YACD,QAAQ,EAAE,IAAI,CAAE,gCAAgC;SACjD;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,iCAAiB,GAAE;YACxC,QAAQ,EAAE,KAAK,CAAE,kCAAkC;SACpD;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,gCAAiB,GAAE;YACxC,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YAC1E,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,8CAA8C;YAC3D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAkB,EAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YACrE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YACvE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAiB,EAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YACpE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAc,EAAC,GAAG,EAAG,IAAY,CAAC,GAAG,IAAK,IAAY,CAAC,cAAc,IAAI,KAAK,CAAC;YAC7G,QAAQ,EAAE,KAAK;SAChB;QACD,+BAA+B;QAC/B,sCAAsC;QACtC,gCAAgC;QAChC,oBAAoB;KACrB,CAAC;IAEF,IAAI,OAAO,GAAe,IAAI,CAAC;IAC/B,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,8EAA8E;QAC9E,0DAA0D;QAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEvD,oEAAoE;QACpE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,OAAO,GAAG,IAAA,aAAG,EAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,UAAU,EAAE,eAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;iBAC1C,CAAC,CAAC,KAAK,EAAE,CAAC;gBAEX,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErC,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC;gBAChE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,WAAW,CAAC,CAAC,CAAC;gBAE1D,gEAAgE;gBAChE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEjF,mBAAmB;gBACnB,MAAM,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBAEtD,yBAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAE/E,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,CAC9C,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC;gBACvB,IAAI,EAAE,KAAK,CAAC,WAAW;gBACvB,UAAU,EAAE,eAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;aAC1C,CAAC,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACrC,YAAY,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC;gBACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9F,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,wCAAwC;QACxC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1D,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,OAAO,EAAE,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QACtD,yBAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAAC,OAAoB;IACtD,6BAA6B;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;QACnC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEb,aAAa;IACb,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAgB;QAC1B,MAAM,EAAE,EAAE,EAAG,6CAA6C;QAC1D,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,OAAO,EAAE;YACP,OAAO,EAAE,KAAK,EAAG,uCAAuC;YACxD,YAAY,EAAE,mBAAmB;YACjC,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,GAAG;SACnB;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI,EAAG,qBAAqB;YACrC,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,OAAO;SACjB;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,MAAmB,EACnB,eAAyB,EACzB,MAAmB;IAEnB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAEpE,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAErD,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;AACpG,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAmB,EAAE,OAAoB;IACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/cli/init/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,kBAAkB,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmG9E"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Skills template management
|
|
4
|
+
* Copies QE Fleet skill templates from package to user project
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.copySkillTemplates = copySkillTemplates;
|
|
44
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
+
const fs = __importStar(require("fs-extra"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
async function copySkillTemplates(force = false) {
|
|
48
|
+
console.log(chalk_1.default.cyan(' 🎯 Copying QE Fleet skills...'));
|
|
49
|
+
// Find package location
|
|
50
|
+
const possiblePaths = [
|
|
51
|
+
path.join(__dirname, '../../../.claude/skills'),
|
|
52
|
+
path.join(process.cwd(), 'node_modules/agentic-qe/.claude/skills'),
|
|
53
|
+
path.join(process.cwd(), '../agentic-qe/.claude/skills')
|
|
54
|
+
];
|
|
55
|
+
let sourcePath = null;
|
|
56
|
+
for (const p of possiblePaths) {
|
|
57
|
+
if (await fs.pathExists(p)) {
|
|
58
|
+
sourcePath = p;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!sourcePath) {
|
|
63
|
+
console.warn(chalk_1.default.yellow(' ⚠️ Skills not found - skipping'));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const targetPath = path.join(process.cwd(), '.claude/skills');
|
|
67
|
+
await fs.ensureDir(targetPath);
|
|
68
|
+
// QE-specific skill patterns (NOT claude-flow, github, flow-nexus, agentdb-*, hive-mind, hooks, performance-analysis, reasoningbank-*, sparc-methodology)
|
|
69
|
+
// Total: 40 QE skills (updated from 38 - added accessibility-testing, shift-left-testing, shift-right-testing, verification-quality, visual-testing-advanced, xp-practices, technical-writing)
|
|
70
|
+
const QE_SKILL_PATTERNS = [
|
|
71
|
+
/^accessibility-testing$/,
|
|
72
|
+
/^agentic-quality-engineering$/,
|
|
73
|
+
/^api-testing-patterns$/,
|
|
74
|
+
/^brutal-honesty-review$/,
|
|
75
|
+
/^bug-reporting-excellence$/,
|
|
76
|
+
/^chaos-engineering-resilience$/,
|
|
77
|
+
/^cicd-pipeline-qe-orchestrator$/,
|
|
78
|
+
/^code-review-quality$/,
|
|
79
|
+
/^compatibility-testing$/,
|
|
80
|
+
/^compliance-testing$/,
|
|
81
|
+
/^consultancy-practices$/,
|
|
82
|
+
/^context-driven-testing$/,
|
|
83
|
+
/^contract-testing$/,
|
|
84
|
+
/^database-testing$/,
|
|
85
|
+
/^exploratory-testing-advanced$/,
|
|
86
|
+
/^holistic-testing-pact$/,
|
|
87
|
+
/^localization-testing$/,
|
|
88
|
+
/^mobile-testing$/,
|
|
89
|
+
/^mutation-testing$/,
|
|
90
|
+
/^pair-programming$/,
|
|
91
|
+
/^performance-testing$/, // QE performance testing (NOT performance-analysis which is Claude Flow)
|
|
92
|
+
/^quality-metrics$/,
|
|
93
|
+
/^refactoring-patterns$/,
|
|
94
|
+
/^regression-testing$/,
|
|
95
|
+
/^risk-based-testing$/,
|
|
96
|
+
/^security-testing$/,
|
|
97
|
+
/^sherlock-review$/,
|
|
98
|
+
/^shift-left-testing$/,
|
|
99
|
+
/^shift-right-testing$/,
|
|
100
|
+
/^six-thinking-hats$/,
|
|
101
|
+
/^tdd-london-chicago$/,
|
|
102
|
+
/^technical-writing$/,
|
|
103
|
+
/^test-automation-strategy$/,
|
|
104
|
+
/^test-data-management$/,
|
|
105
|
+
/^test-design-techniques$/,
|
|
106
|
+
/^test-environment-management$/,
|
|
107
|
+
/^test-reporting-analytics$/,
|
|
108
|
+
/^verification-quality$/,
|
|
109
|
+
/^visual-testing-advanced$/,
|
|
110
|
+
/^xp-practices$/
|
|
111
|
+
];
|
|
112
|
+
const isQESkill = (name) => {
|
|
113
|
+
return QE_SKILL_PATTERNS.some(pattern => pattern.test(name));
|
|
114
|
+
};
|
|
115
|
+
// Copy only QE skill directories
|
|
116
|
+
const items = await fs.readdir(sourcePath);
|
|
117
|
+
let copied = 0;
|
|
118
|
+
let skipped = 0;
|
|
119
|
+
for (const item of items) {
|
|
120
|
+
const itemPath = path.join(sourcePath, item);
|
|
121
|
+
const stats = await fs.stat(itemPath);
|
|
122
|
+
if (stats.isDirectory() && isQESkill(item)) {
|
|
123
|
+
const targetDir = path.join(targetPath, item);
|
|
124
|
+
if (!await fs.pathExists(targetDir) || force) {
|
|
125
|
+
await fs.copy(itemPath, targetDir);
|
|
126
|
+
copied++;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else if (stats.isDirectory()) {
|
|
130
|
+
skipped++;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
console.log(chalk_1.default.green(` ✓ Copied ${copied} QE skills`));
|
|
134
|
+
if (skipped > 0) {
|
|
135
|
+
console.log(chalk_1.default.gray(` ℹ️ Skipped ${skipped} non-QE skills (claude-flow, github, flow-nexus, etc.)`));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/cli/init/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File system utilities module
|
|
3
|
+
*
|
|
4
|
+
* Common file system operations for initialization:
|
|
5
|
+
* - Directory creation and validation
|
|
6
|
+
* - File existence checks
|
|
7
|
+
* - Safe JSON and file operations
|
|
8
|
+
* - Directory structure creation
|
|
9
|
+
*
|
|
10
|
+
* @module cli/init/utils/file-utils
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Ensure directory exists, creating it if necessary
|
|
14
|
+
*
|
|
15
|
+
* @param dirPath - Absolute or relative path to directory
|
|
16
|
+
* @throws Error if directory creation fails
|
|
17
|
+
*/
|
|
18
|
+
export declare function ensureDirectory(dirPath: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a file exists
|
|
21
|
+
*
|
|
22
|
+
* @param filePath - Path to check
|
|
23
|
+
* @returns True if file exists, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
export declare function fileExists(filePath: string): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a directory exists
|
|
28
|
+
*
|
|
29
|
+
* @param dirPath - Path to check
|
|
30
|
+
* @returns True if directory exists, false otherwise
|
|
31
|
+
*/
|
|
32
|
+
export declare function directoryExists(dirPath: string): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Write JSON data to file with proper formatting and error handling
|
|
35
|
+
*
|
|
36
|
+
* @param filePath - Path to write JSON file
|
|
37
|
+
* @param data - Data to serialize to JSON
|
|
38
|
+
* @param indent - Number of spaces for indentation (default: 2)
|
|
39
|
+
* @throws Error if write fails
|
|
40
|
+
*/
|
|
41
|
+
export declare function safeWriteJson(filePath: string, data: any, indent?: number): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Read and parse JSON file with error handling
|
|
44
|
+
*
|
|
45
|
+
* @param filePath - Path to JSON file
|
|
46
|
+
* @returns Parsed JSON data
|
|
47
|
+
* @throws Error if file doesn't exist or JSON is invalid
|
|
48
|
+
*/
|
|
49
|
+
export declare function safeReadJson<T = any>(filePath: string): Promise<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Write text file with error handling
|
|
52
|
+
*
|
|
53
|
+
* @param filePath - Path to write file
|
|
54
|
+
* @param content - File content
|
|
55
|
+
* @throws Error if write fails
|
|
56
|
+
*/
|
|
57
|
+
export declare function safeWriteFile(filePath: string, content: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Create a safe directory structure (won't fail if directories exist)
|
|
60
|
+
*
|
|
61
|
+
* @param directories - Array of directory paths to create
|
|
62
|
+
* @param baseDir - Base directory (default: process.cwd())
|
|
63
|
+
* @param force - Force recreation if directory exists
|
|
64
|
+
* @returns Array of created directory paths
|
|
65
|
+
*/
|
|
66
|
+
export declare function createDirectories(directories: string[], baseDir?: string, force?: boolean): Promise<string[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Format file size in human-readable format
|
|
69
|
+
*
|
|
70
|
+
* @param bytes - Size in bytes
|
|
71
|
+
* @returns Formatted string (e.g., "1.5 KB", "2.3 MB")
|
|
72
|
+
*/
|
|
73
|
+
export declare function formatFileSize(bytes: number): string;
|
|
74
|
+
//# sourceMappingURL=file-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../../../src/cli/init/utils/file-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMnE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,GAAE,MAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxE;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE,MAAsB,EAC/B,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWpD"}
|