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.
Files changed (215) hide show
  1. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  2. package/CHANGELOG.md +394 -0
  3. package/README.md +86 -18
  4. package/dist/App.d.ts +5 -0
  5. package/dist/App.d.ts.map +1 -0
  6. package/dist/App.js +15 -0
  7. package/dist/App.js.map +1 -0
  8. package/dist/cli/commands/constitution.d.ts +34 -0
  9. package/dist/cli/commands/constitution.d.ts.map +1 -0
  10. package/dist/cli/commands/constitution.js +679 -0
  11. package/dist/cli/commands/constitution.js.map +1 -0
  12. package/dist/cli/commands/init.d.ts +8 -75
  13. package/dist/cli/commands/init.d.ts.map +1 -1
  14. package/dist/cli/commands/init.js +22 -2292
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  17. package/dist/cli/commands/learn/index.js +3 -4
  18. package/dist/cli/commands/learn/index.js.map +1 -1
  19. package/dist/cli/commands/telemetry.d.ts +36 -0
  20. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  21. package/dist/cli/commands/telemetry.js +364 -0
  22. package/dist/cli/commands/telemetry.js.map +1 -0
  23. package/dist/cli/index.js +66 -0
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/init/agents.d.ts +22 -0
  26. package/dist/cli/init/agents.d.ts.map +1 -0
  27. package/dist/cli/init/agents.js +522 -0
  28. package/dist/cli/init/agents.js.map +1 -0
  29. package/dist/cli/init/bash-wrapper.d.ts +14 -0
  30. package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
  31. package/dist/cli/init/bash-wrapper.js +47 -0
  32. package/dist/cli/init/bash-wrapper.js.map +1 -0
  33. package/dist/cli/init/claude-config.d.ts +24 -0
  34. package/dist/cli/init/claude-config.d.ts.map +1 -0
  35. package/dist/cli/init/claude-config.js +275 -0
  36. package/dist/cli/init/claude-config.js.map +1 -0
  37. package/dist/cli/init/claude-md.d.ts +19 -0
  38. package/dist/cli/init/claude-md.d.ts.map +1 -0
  39. package/dist/cli/init/claude-md.js +153 -0
  40. package/dist/cli/init/claude-md.js.map +1 -0
  41. package/dist/cli/init/commands.d.ts +6 -0
  42. package/dist/cli/init/commands.d.ts.map +1 -0
  43. package/dist/cli/init/commands.js +83 -0
  44. package/dist/cli/init/commands.js.map +1 -0
  45. package/dist/cli/init/database-init.d.ts +15 -0
  46. package/dist/cli/init/database-init.d.ts.map +1 -0
  47. package/dist/cli/init/database-init.js +203 -0
  48. package/dist/cli/init/database-init.js.map +1 -0
  49. package/dist/cli/init/directory-structure.d.ts +14 -0
  50. package/dist/cli/init/directory-structure.d.ts.map +1 -0
  51. package/dist/cli/init/directory-structure.js +91 -0
  52. package/dist/cli/init/directory-structure.js.map +1 -0
  53. package/dist/cli/init/documentation.d.ts +14 -0
  54. package/dist/cli/init/documentation.d.ts.map +1 -0
  55. package/dist/cli/init/documentation.js +195 -0
  56. package/dist/cli/init/documentation.js.map +1 -0
  57. package/dist/cli/init/fleet-config.d.ts +34 -0
  58. package/dist/cli/init/fleet-config.d.ts.map +1 -0
  59. package/dist/cli/init/fleet-config.js +269 -0
  60. package/dist/cli/init/fleet-config.js.map +1 -0
  61. package/dist/cli/init/helpers.d.ts +6 -0
  62. package/dist/cli/init/helpers.d.ts.map +1 -0
  63. package/dist/cli/init/helpers.js +94 -0
  64. package/dist/cli/init/helpers.js.map +1 -0
  65. package/dist/cli/init/index.d.ts +32 -0
  66. package/dist/cli/init/index.d.ts.map +1 -0
  67. package/dist/cli/init/index.js +294 -0
  68. package/dist/cli/init/index.js.map +1 -0
  69. package/dist/cli/init/skills.d.ts +6 -0
  70. package/dist/cli/init/skills.d.ts.map +1 -0
  71. package/dist/cli/init/skills.js +138 -0
  72. package/dist/cli/init/skills.js.map +1 -0
  73. package/dist/cli/init/utils/file-utils.d.ts +74 -0
  74. package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
  75. package/dist/cli/init/utils/file-utils.js +187 -0
  76. package/dist/cli/init/utils/file-utils.js.map +1 -0
  77. package/dist/cli/init/utils/index.d.ts +18 -0
  78. package/dist/cli/init/utils/index.d.ts.map +1 -0
  79. package/dist/cli/init/utils/index.js +48 -0
  80. package/dist/cli/init/utils/index.js.map +1 -0
  81. package/dist/cli/init/utils/log-utils.d.ts +47 -0
  82. package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
  83. package/dist/cli/init/utils/log-utils.js +68 -0
  84. package/dist/cli/init/utils/log-utils.js.map +1 -0
  85. package/dist/cli/init/utils/path-utils.d.ts +91 -0
  86. package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
  87. package/dist/cli/init/utils/path-utils.js +208 -0
  88. package/dist/cli/init/utils/path-utils.js.map +1 -0
  89. package/dist/cli/init/utils/validation-utils.d.ts +44 -0
  90. package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
  91. package/dist/cli/init/utils/validation-utils.js +68 -0
  92. package/dist/cli/init/utils/validation-utils.js.map +1 -0
  93. package/dist/cli/init/utils.d.ts +183 -0
  94. package/dist/cli/init/utils.d.ts.map +1 -0
  95. package/dist/cli/init/utils.js +354 -0
  96. package/dist/cli/init/utils.js.map +1 -0
  97. package/dist/components/Dashboard/Dashboard.d.ts +4 -0
  98. package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
  99. package/dist/components/Dashboard/Dashboard.js +148 -0
  100. package/dist/components/Dashboard/Dashboard.js.map +1 -0
  101. package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
  102. package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
  103. package/dist/components/Dashboard/DashboardHeader.js +138 -0
  104. package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
  105. package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
  106. package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
  107. package/dist/constitution/evaluators/ast-evaluator.js +303 -0
  108. package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
  109. package/dist/constitution/evaluators/base.d.ts +144 -0
  110. package/dist/constitution/evaluators/base.d.ts.map +1 -0
  111. package/dist/constitution/evaluators/base.js +144 -0
  112. package/dist/constitution/evaluators/base.js.map +1 -0
  113. package/dist/constitution/evaluators/index.d.ts +19 -0
  114. package/dist/constitution/evaluators/index.d.ts.map +1 -0
  115. package/dist/constitution/evaluators/index.js +56 -0
  116. package/dist/constitution/evaluators/index.js.map +1 -0
  117. package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
  118. package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
  119. package/dist/constitution/evaluators/metric-evaluator.js +195 -0
  120. package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
  121. package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
  122. package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
  123. package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
  124. package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
  125. package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
  126. package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
  127. package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
  128. package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
  129. package/dist/contexts/DashboardContext.d.ts +41 -0
  130. package/dist/contexts/DashboardContext.d.ts.map +1 -0
  131. package/dist/contexts/DashboardContext.js +187 -0
  132. package/dist/contexts/DashboardContext.js.map +1 -0
  133. package/dist/core/memory/SwarmMemoryManager.d.ts +40 -0
  134. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  135. package/dist/core/memory/SwarmMemoryManager.js +291 -120
  136. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  137. package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
  138. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  139. package/dist/hooks/useKeyboardShortcuts.js +69 -0
  140. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  141. package/dist/telemetry/instrumentation/agent.d.ts +158 -0
  142. package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
  143. package/dist/telemetry/instrumentation/agent.js +372 -0
  144. package/dist/telemetry/instrumentation/agent.js.map +1 -0
  145. package/dist/telemetry/instrumentation/index.d.ts +24 -0
  146. package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
  147. package/dist/telemetry/instrumentation/index.js +54 -0
  148. package/dist/telemetry/instrumentation/index.js.map +1 -0
  149. package/dist/telemetry/instrumentation/memory.d.ts +313 -0
  150. package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
  151. package/dist/telemetry/instrumentation/memory.js +552 -0
  152. package/dist/telemetry/instrumentation/memory.js.map +1 -0
  153. package/dist/telemetry/instrumentation/task.d.ts +146 -0
  154. package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
  155. package/dist/telemetry/instrumentation/task.js +305 -0
  156. package/dist/telemetry/instrumentation/task.js.map +1 -0
  157. package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
  158. package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
  159. package/dist/telemetry/metrics/collectors/cost.js +526 -0
  160. package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
  161. package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
  162. package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
  163. package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
  164. package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
  165. package/dist/telemetry/metrics/index.d.ts +4 -1
  166. package/dist/telemetry/metrics/index.d.ts.map +1 -1
  167. package/dist/telemetry/metrics/index.js +18 -2
  168. package/dist/telemetry/metrics/index.js.map +1 -1
  169. package/dist/telemetry/types.d.ts +1 -1
  170. package/dist/telemetry/types.d.ts.map +1 -1
  171. package/dist/visualization/api/RestEndpoints.d.ts +136 -0
  172. package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
  173. package/dist/visualization/api/RestEndpoints.js +428 -0
  174. package/dist/visualization/api/RestEndpoints.js.map +1 -0
  175. package/dist/visualization/api/WebSocketServer.d.ts +165 -0
  176. package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
  177. package/dist/visualization/api/WebSocketServer.js +518 -0
  178. package/dist/visualization/api/WebSocketServer.js.map +1 -0
  179. package/dist/visualization/core/DataTransformer.d.ts +89 -0
  180. package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
  181. package/dist/visualization/core/DataTransformer.js +478 -0
  182. package/dist/visualization/core/DataTransformer.js.map +1 -0
  183. package/dist/visualization/index.d.ts +92 -0
  184. package/dist/visualization/index.d.ts.map +1 -0
  185. package/dist/visualization/index.js +121 -0
  186. package/dist/visualization/index.js.map +1 -0
  187. package/dist/visualization/types.d.ts +148 -0
  188. package/dist/visualization/types.d.ts.map +1 -0
  189. package/dist/visualization/types.js +7 -0
  190. package/dist/visualization/types.js.map +1 -0
  191. package/dist/voting/consensus.d.ts +87 -0
  192. package/dist/voting/consensus.d.ts.map +1 -0
  193. package/dist/voting/consensus.js +568 -0
  194. package/dist/voting/consensus.js.map +1 -0
  195. package/dist/voting/index.d.ts +12 -0
  196. package/dist/voting/index.d.ts.map +1 -0
  197. package/dist/voting/index.js +36 -0
  198. package/dist/voting/index.js.map +1 -0
  199. package/dist/voting/orchestrator.d.ts +65 -0
  200. package/dist/voting/orchestrator.d.ts.map +1 -0
  201. package/dist/voting/orchestrator.js +306 -0
  202. package/dist/voting/orchestrator.js.map +1 -0
  203. package/dist/voting/panel-assembly.d.ts +54 -0
  204. package/dist/voting/panel-assembly.d.ts.map +1 -0
  205. package/dist/voting/panel-assembly.js +192 -0
  206. package/dist/voting/panel-assembly.js.map +1 -0
  207. package/dist/voting/protocol.d.ts +119 -0
  208. package/dist/voting/protocol.d.ts.map +1 -0
  209. package/dist/voting/protocol.js +18 -0
  210. package/dist/voting/protocol.js.map +1 -0
  211. package/dist/voting/types.d.ts +125 -0
  212. package/dist/voting/types.d.ts.map +1 -0
  213. package/dist/voting/types.js +7 -0
  214. package/dist/voting/types.js.map +1 -0
  215. 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":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Skills template management
3
+ * Copies QE Fleet skill templates from package to user project
4
+ */
5
+ export declare function copySkillTemplates(force?: boolean): Promise<void>;
6
+ //# sourceMappingURL=skills.d.ts.map
@@ -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"}