agentic-qe 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
- package/CHANGELOG.md +595 -0
- package/README.md +117 -16
- package/config/constitution.schema.json +423 -0
- package/config/otel-collector.yaml +234 -0
- 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-claude-md-template.js +3 -3
- 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/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 +107 -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/constitution/index.d.ts +105 -0
- package/dist/constitution/index.d.ts.map +1 -0
- package/dist/constitution/index.js +207 -0
- package/dist/constitution/index.js.map +1 -0
- package/dist/constitution/loader.d.ts +141 -0
- package/dist/constitution/loader.d.ts.map +1 -0
- package/dist/constitution/loader.js +515 -0
- package/dist/constitution/loader.js.map +1 -0
- package/dist/constitution/schema.d.ts +409 -0
- package/dist/constitution/schema.d.ts.map +1 -0
- package/dist/constitution/schema.js +71 -0
- package/dist/constitution/schema.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/MemoryManagerFactory.d.ts +77 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.js +270 -0
- package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +375 -131
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +12 -1
- package/dist/core/memory/index.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/mcp/handlers/memory/memory-backup.js +6 -6
- package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -38
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +4 -4
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/persistence/event-store.d.ts +162 -0
- package/dist/persistence/event-store.d.ts.map +1 -0
- package/dist/persistence/event-store.js +315 -0
- package/dist/persistence/event-store.js.map +1 -0
- package/dist/persistence/index.d.ts +145 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +227 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/metrics-aggregator.d.ts +187 -0
- package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
- package/dist/persistence/metrics-aggregator.js +495 -0
- package/dist/persistence/metrics-aggregator.js.map +1 -0
- package/dist/persistence/reasoning-store.d.ts +178 -0
- package/dist/persistence/reasoning-store.d.ts.map +1 -0
- package/dist/persistence/reasoning-store.js +440 -0
- package/dist/persistence/reasoning-store.js.map +1 -0
- package/dist/persistence/schema.d.ts +181 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +186 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/telemetry/bootstrap.d.ts +67 -0
- package/dist/telemetry/bootstrap.d.ts.map +1 -0
- package/dist/telemetry/bootstrap.js +320 -0
- package/dist/telemetry/bootstrap.js.map +1 -0
- package/dist/telemetry/index.d.ts +16 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +84 -0
- package/dist/telemetry/index.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/agent-metrics.d.ts +109 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.js +213 -0
- package/dist/telemetry/metrics/agent-metrics.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 +54 -0
- package/dist/telemetry/metrics/index.d.ts.map +1 -0
- package/dist/telemetry/metrics/index.js +116 -0
- package/dist/telemetry/metrics/index.js.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.js +259 -0
- package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
- package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
- package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/system-metrics.js +380 -0
- package/dist/telemetry/metrics/system-metrics.js.map +1 -0
- package/dist/telemetry/types.d.ts +195 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +90 -0
- package/dist/telemetry/types.js.map +1 -0
- 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 +43 -2
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Code configuration module
|
|
4
|
+
*
|
|
5
|
+
* Generates Claude Code settings and MCP server configuration
|
|
6
|
+
* CRITICAL for the learning system to function!
|
|
7
|
+
*
|
|
8
|
+
* @module cli/init/claude-config
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
|
+
};
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.generateClaudeSettings = generateClaudeSettings;
|
|
48
|
+
exports.setupMCPServer = setupMCPServer;
|
|
49
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
50
|
+
const fs = __importStar(require("fs-extra"));
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
/**
|
|
53
|
+
* Generate Claude Code settings
|
|
54
|
+
*
|
|
55
|
+
* Creates the .claude/settings.json file with proper MCP server configuration
|
|
56
|
+
*
|
|
57
|
+
* @param config - Fleet configuration
|
|
58
|
+
*/
|
|
59
|
+
async function generateClaudeSettings(_fleetConfig) {
|
|
60
|
+
const settingsPath = path.join(process.cwd(), '.claude', 'settings.json');
|
|
61
|
+
// Check if settings.json already exists
|
|
62
|
+
const settingsExists = await fs.pathExists(settingsPath);
|
|
63
|
+
let existingSettings = {};
|
|
64
|
+
if (settingsExists) {
|
|
65
|
+
console.log(chalk_1.default.yellow(' ⓘ .claude/settings.json already exists - merging AQE configuration'));
|
|
66
|
+
try {
|
|
67
|
+
existingSettings = await fs.readJson(settingsPath);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.log(chalk_1.default.red(' ⚠️ Could not parse existing settings.json - creating backup'));
|
|
71
|
+
await fs.copy(settingsPath, `${settingsPath}.backup`);
|
|
72
|
+
console.log(chalk_1.default.gray(` Backup saved to: ${settingsPath}.backup`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Merge AQE settings with existing settings
|
|
76
|
+
const aqeEnv = {
|
|
77
|
+
AGENTDB_LEARNING_ENABLED: "true",
|
|
78
|
+
AGENTDB_REASONING_ENABLED: "true",
|
|
79
|
+
AGENTDB_AUTO_TRAIN: "true",
|
|
80
|
+
AQE_MEMORY_ENABLED: "true"
|
|
81
|
+
};
|
|
82
|
+
const aqePermissions = [
|
|
83
|
+
"Bash(npx agentdb:*)",
|
|
84
|
+
"Bash(npx aqe:*)",
|
|
85
|
+
"Bash(npm run test:*)",
|
|
86
|
+
"Bash(git status)",
|
|
87
|
+
"Bash(git diff:*)",
|
|
88
|
+
"Bash(git log:*)",
|
|
89
|
+
"Bash(git add:*)",
|
|
90
|
+
"Bash(git commit:*)"
|
|
91
|
+
];
|
|
92
|
+
const settings = {
|
|
93
|
+
...existingSettings,
|
|
94
|
+
env: {
|
|
95
|
+
...(existingSettings.env || {}),
|
|
96
|
+
...aqeEnv
|
|
97
|
+
},
|
|
98
|
+
permissions: {
|
|
99
|
+
allow: Array.from(new Set([
|
|
100
|
+
...(existingSettings.permissions?.allow || []),
|
|
101
|
+
...aqePermissions
|
|
102
|
+
])),
|
|
103
|
+
deny: existingSettings.permissions?.deny || []
|
|
104
|
+
},
|
|
105
|
+
hooks: mergeHooks(existingSettings.hooks, getAQEHooks()),
|
|
106
|
+
enabledMcpjsonServers: Array.from(new Set([
|
|
107
|
+
...(existingSettings.enabledMcpjsonServers || []),
|
|
108
|
+
"agentic-qe"
|
|
109
|
+
]))
|
|
110
|
+
};
|
|
111
|
+
await fs.ensureDir(path.dirname(settingsPath));
|
|
112
|
+
await fs.writeJson(settingsPath, settings, { spaces: 2 });
|
|
113
|
+
if (settingsExists) {
|
|
114
|
+
console.log(chalk_1.default.green(' ✓ Merged AQE configuration into existing .claude/settings.json'));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
console.log(chalk_1.default.green(' ✓ Created .claude/settings.json with AgentDB learning hooks'));
|
|
118
|
+
}
|
|
119
|
+
console.log(chalk_1.default.gray(' • PreToolUse: Semantic search + failure pattern detection'));
|
|
120
|
+
console.log(chalk_1.default.gray(' • PostToolUse: Experience replay + verdict-based quality'));
|
|
121
|
+
console.log(chalk_1.default.gray(' • Stop: Model training + memory optimization'));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get AQE hooks configuration
|
|
125
|
+
*
|
|
126
|
+
* SECURITY: All hook commands use jq -R '@sh' for proper shell escaping
|
|
127
|
+
* to prevent shell injection attacks from malicious file paths/inputs.
|
|
128
|
+
*/
|
|
129
|
+
function getAQEHooks() {
|
|
130
|
+
return {
|
|
131
|
+
PreToolUse: [
|
|
132
|
+
{
|
|
133
|
+
matcher: "Write|Edit|MultiEdit",
|
|
134
|
+
hooks: [
|
|
135
|
+
{
|
|
136
|
+
type: "command",
|
|
137
|
+
description: "Semantic Search - Query similar successful past edits",
|
|
138
|
+
command: "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | jq -R '@sh' | xargs -I {} bash -c 'FILE={}; npx agentdb@latest query --domain \"successful-edits\" --query \"file:$FILE\" --k 5 --min-confidence 0.8 --format json 2>/dev/null | jq -r \".memories[]? | \\\"💡 Past Success: \\(.pattern.summary // \\\"No similar patterns found\\\")\\\" \" 2>/dev/null || true'"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: "command",
|
|
142
|
+
description: "Failure Pattern Recognition - Warn about known failure patterns",
|
|
143
|
+
command: "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | jq -R '@sh' | xargs -I {} bash -c 'FILE={}; npx agentdb@latest query --domain \"failed-edits\" --query \"file:$FILE\" --k 3 --min-confidence 0.7 --format json 2>/dev/null | jq -r \".memories[]? | \\\"🚨 Warning: Similar edit failed - \\(.pattern.reason // \\\"unknown\\\")\\\" \" 2>/dev/null || true'"
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
matcher: "Task",
|
|
149
|
+
hooks: [
|
|
150
|
+
{
|
|
151
|
+
type: "command",
|
|
152
|
+
description: "Trajectory Prediction - Predict optimal task sequence",
|
|
153
|
+
command: "cat | jq -r '.tool_input.prompt // .tool_input.task // empty' | jq -R '@sh' | xargs -I {} bash -c 'TASK={}; npx agentdb@latest query --domain \"task-trajectories\" --query \"task:$TASK\" --k 3 --min-confidence 0.75 --format json 2>/dev/null | jq -r \".memories[]? | \\\"📋 Predicted Steps: \\(.pattern.trajectory // \\\"No trajectory data\\\") (Success Rate: \\(.confidence // 0))\\\" \" 2>/dev/null || true'"
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
PostToolUse: [
|
|
159
|
+
{
|
|
160
|
+
matcher: "Write|Edit|MultiEdit",
|
|
161
|
+
hooks: [
|
|
162
|
+
{
|
|
163
|
+
type: "command",
|
|
164
|
+
description: "Experience Replay - Capture edit as RL experience",
|
|
165
|
+
command: "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | jq -R '@sh' | xargs -I {} bash -c 'FILE={}; TIMESTAMP=$(date +%s); npx agentdb@latest store-pattern --type \"experience\" --domain \"code-edits\" --pattern \"{\\\"file\\\":$FILE,\\\"timestamp\\\":$TIMESTAMP,\\\"action\\\":\\\"edit\\\",\\\"state\\\":\\\"pre-test\\\"}\" --confidence 0.5 2>/dev/null || true'"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: "command",
|
|
169
|
+
description: "Verdict-Based Quality - Async verdict assignment after tests",
|
|
170
|
+
command: "cat | jq -r '.tool_input.file_path // .tool_input.path // empty' | jq -R '@sh' | xargs -I {} bash -c 'FILE={}; (sleep 2; TEST_RESULT=$(npm test --silent 2>&1 | grep -q \"pass\" && echo \"ACCEPT\" || echo \"REJECT\"); REWARD=$([ \"$TEST_RESULT\" = \"ACCEPT\" ] && echo \"1.0\" || echo \"-1.0\"); npx agentdb@latest store-pattern --type \"verdict\" --domain \"code-quality\" --pattern \"{\\\"file\\\":$FILE,\\\"verdict\\\":\\\"$TEST_RESULT\\\",\\\"reward\\\":$REWARD}\" --confidence $([ \"$TEST_RESULT\" = \"ACCEPT\" ] && echo \"0.95\" || echo \"0.3\") 2>/dev/null; if [ \"$TEST_RESULT\" = \"ACCEPT\" ]; then npx agentdb@latest store-pattern --type \"success\" --domain \"successful-edits\" --pattern \"{\\\"file\\\":$FILE,\\\"summary\\\":\\\"Edit passed tests\\\"}\" --confidence 0.9 2>/dev/null; else npx agentdb@latest store-pattern --type \"failure\" --domain \"failed-edits\" --pattern \"{\\\"file\\\":$FILE,\\\"reason\\\":\\\"Tests failed\\\"}\" --confidence 0.8 2>/dev/null; fi) &'"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
matcher: "Task",
|
|
176
|
+
hooks: [
|
|
177
|
+
{
|
|
178
|
+
type: "command",
|
|
179
|
+
description: "Trajectory Storage - Record task trajectory for learning",
|
|
180
|
+
command: "cat | jq -r '.tool_input.prompt // .tool_input.task // empty, .result.success // \"unknown\"' | paste -d'\\n' - - | jq -Rs 'split(\"\\n\") | {task: (.[0] | @sh), success: .[1]}' | jq -r 'CONFIDENCE=(if .success == \"true\" then \"0.95\" else \"0.5\" end); \"TASK=\\(.task); SUCCESS=\\(.success); npx agentdb@latest store-pattern --type trajectory --domain task-trajectories --pattern \\(\"{\\\\\\\"task\\\\\\\":\\\" + .task + \",\\\\\\\"success\\\\\\\":\\(.success),\\\\\\\"trajectory\\\\\\\":\\\\\\\"search→scaffold→test→refine\\\\\\\"}\\\" | @sh) --confidence \\(CONFIDENCE) 2>/dev/null || true\"' | bash"
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
Stop: [
|
|
186
|
+
{
|
|
187
|
+
hooks: [
|
|
188
|
+
{
|
|
189
|
+
type: "command",
|
|
190
|
+
description: "Session end - Train models and compress learnings",
|
|
191
|
+
command: "bash -c 'npx agentdb@latest train --domain \"code-edits\" --epochs 10 --batch-size 32 2>/dev/null || true; npx agentdb@latest optimize-memory --compress true --consolidate-patterns true 2>/dev/null || true'"
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Merge existing hooks with AQE hooks (avoiding duplicates)
|
|
200
|
+
*/
|
|
201
|
+
function mergeHooks(existing, aqeHooks) {
|
|
202
|
+
if (!existing) {
|
|
203
|
+
return aqeHooks;
|
|
204
|
+
}
|
|
205
|
+
const merged = { ...existing };
|
|
206
|
+
// Merge each hook type
|
|
207
|
+
for (const hookType of ['PreToolUse', 'PostToolUse', 'Stop', 'PreCompact']) {
|
|
208
|
+
if (aqeHooks[hookType]) {
|
|
209
|
+
if (!merged[hookType]) {
|
|
210
|
+
merged[hookType] = aqeHooks[hookType];
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// Append AQE hooks to existing hooks (avoid duplicates based on description)
|
|
214
|
+
const existingDescriptions = new Set(merged[hookType].flatMap((item) => item.hooks?.map((h) => h.description) || [item.description]).filter(Boolean));
|
|
215
|
+
for (const aqeHook of aqeHooks[hookType]) {
|
|
216
|
+
const aqeDescriptions = aqeHook.hooks?.map((h) => h.description) || [aqeHook.description];
|
|
217
|
+
const hasAnyDuplicate = aqeDescriptions.some((desc) => existingDescriptions.has(desc));
|
|
218
|
+
if (!hasAnyDuplicate) {
|
|
219
|
+
merged[hookType].push(aqeHook);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return merged;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Setup MCP server configuration
|
|
229
|
+
*
|
|
230
|
+
* Configures the Model Context Protocol server for agent coordination
|
|
231
|
+
*/
|
|
232
|
+
async function setupMCPServer() {
|
|
233
|
+
console.log(chalk_1.default.cyan('\n 🔌 Setting up MCP server integration...\n'));
|
|
234
|
+
try {
|
|
235
|
+
// Check if claude CLI is available
|
|
236
|
+
const { execSync } = require('child_process');
|
|
237
|
+
try {
|
|
238
|
+
execSync('which claude', { stdio: 'ignore' });
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
console.log(chalk_1.default.yellow(' ⚠️ Claude Code CLI not found'));
|
|
242
|
+
console.log(chalk_1.default.gray(' ℹ️ Please add MCP server manually after installing Claude Code:'));
|
|
243
|
+
console.log(chalk_1.default.cyan(' claude mcp add agentic-qe npx aqe-mcp'));
|
|
244
|
+
console.log(chalk_1.default.gray('\n Download Claude Code: https://claude.com/claude-code'));
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
// Check if MCP server is already added
|
|
248
|
+
try {
|
|
249
|
+
const mcpList = execSync('claude mcp list', { encoding: 'utf-8' });
|
|
250
|
+
if (mcpList.includes('agentic-qe')) {
|
|
251
|
+
console.log(chalk_1.default.green(' ✓ MCP server already configured'));
|
|
252
|
+
console.log(chalk_1.default.gray(' • Server: agentic-qe'));
|
|
253
|
+
console.log(chalk_1.default.gray(' • Command: npx aqe-mcp'));
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
// Ignore errors, proceed with adding
|
|
259
|
+
}
|
|
260
|
+
// Add MCP server
|
|
261
|
+
console.log(chalk_1.default.gray(' • Adding MCP server to Claude Code...'));
|
|
262
|
+
execSync('claude mcp add agentic-qe npx aqe-mcp', { stdio: 'inherit' });
|
|
263
|
+
console.log(chalk_1.default.green('\n ✓ MCP server added successfully'));
|
|
264
|
+
console.log(chalk_1.default.gray(' • Server: agentic-qe'));
|
|
265
|
+
console.log(chalk_1.default.gray(' • Tools: 102 MCP tools available'));
|
|
266
|
+
console.log(chalk_1.default.gray(' • Memory: Shared memory coordination enabled'));
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
console.log(chalk_1.default.yellow(' ⚠️ Could not auto-configure MCP server'));
|
|
270
|
+
console.log(chalk_1.default.gray(` Error: ${error.message}`));
|
|
271
|
+
console.log(chalk_1.default.gray('\n Please add manually:'));
|
|
272
|
+
console.log(chalk_1.default.cyan(' claude mcp add agentic-qe npx aqe-mcp'));
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=claude-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-config.js","sourceRoot":"","sources":["../../../src/cli/init/claude-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLAUDE.md generation module
|
|
3
|
+
*
|
|
4
|
+
* Creates project-specific CLAUDE.md with AQE Fleet configuration
|
|
5
|
+
*
|
|
6
|
+
* @module cli/init/claude-md
|
|
7
|
+
*/
|
|
8
|
+
import { FleetConfig } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* Create CLAUDE.md file in project root
|
|
11
|
+
*
|
|
12
|
+
* Generates a condensed CLAUDE.md with AQE Fleet instructions.
|
|
13
|
+
* Handles existing CLAUDE.md by backing up and asking user preference.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Fleet configuration
|
|
16
|
+
* @param isYesMode - Skip interactive prompts
|
|
17
|
+
*/
|
|
18
|
+
export declare function createClaudeMd(config: FleetConfig, isYesMode?: boolean): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=claude-md.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/cli/init/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EnG"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLAUDE.md generation module
|
|
4
|
+
*
|
|
5
|
+
* Creates project-specific CLAUDE.md with AQE Fleet configuration
|
|
6
|
+
*
|
|
7
|
+
* @module cli/init/claude-md
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.createClaudeMd = createClaudeMd;
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
const fs = __importStar(require("fs-extra"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
51
|
+
const init_claude_md_template_1 = require("../commands/init-claude-md-template");
|
|
52
|
+
// Import version from package.json
|
|
53
|
+
const packageJson = require('../../../package.json');
|
|
54
|
+
const PACKAGE_VERSION = packageJson.version;
|
|
55
|
+
/**
|
|
56
|
+
* Create CLAUDE.md file in project root
|
|
57
|
+
*
|
|
58
|
+
* Generates a condensed CLAUDE.md with AQE Fleet instructions.
|
|
59
|
+
* Handles existing CLAUDE.md by backing up and asking user preference.
|
|
60
|
+
*
|
|
61
|
+
* @param config - Fleet configuration
|
|
62
|
+
* @param isYesMode - Skip interactive prompts
|
|
63
|
+
*/
|
|
64
|
+
async function createClaudeMd(config, isYesMode = false) {
|
|
65
|
+
console.log(chalk_1.default.gray(' • Creating CLAUDE.md configuration'));
|
|
66
|
+
const claudeMdPath = path.join(process.cwd(), 'CLAUDE.md');
|
|
67
|
+
const agentCount = await countAgentFiles('.claude/agents');
|
|
68
|
+
// Check if CLAUDE.md exists
|
|
69
|
+
const exists = await fs.pathExists(claudeMdPath);
|
|
70
|
+
let existingContent = '';
|
|
71
|
+
let appendPosition = 'append'; // default for --yes mode
|
|
72
|
+
if (exists) {
|
|
73
|
+
// Backup existing CLAUDE.md
|
|
74
|
+
const backupPath = path.join(process.cwd(), 'CLAUDE.md.backup');
|
|
75
|
+
await fs.copy(claudeMdPath, backupPath);
|
|
76
|
+
console.log(chalk_1.default.yellow(` ℹ️ Existing CLAUDE.md backed up to ${backupPath}`));
|
|
77
|
+
// Read existing content
|
|
78
|
+
existingContent = await fs.readFile(claudeMdPath, 'utf8');
|
|
79
|
+
// In interactive mode, ask where to add AQE instructions
|
|
80
|
+
if (!isYesMode) {
|
|
81
|
+
const { position } = await inquirer_1.default.prompt([
|
|
82
|
+
{
|
|
83
|
+
type: 'list',
|
|
84
|
+
name: 'position',
|
|
85
|
+
message: 'Existing CLAUDE.md detected. Where should we add AQE instructions?',
|
|
86
|
+
choices: [
|
|
87
|
+
{
|
|
88
|
+
name: 'At the end (append) - Recommended',
|
|
89
|
+
value: 'append',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'At the beginning (prepend)',
|
|
93
|
+
value: 'prepend',
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
default: 'append',
|
|
97
|
+
},
|
|
98
|
+
]);
|
|
99
|
+
appendPosition = position;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Generate condensed CLAUDE.md using template
|
|
103
|
+
const claudeMdContent = (0, init_claude_md_template_1.generateCondensedClaudeMd)({
|
|
104
|
+
agentCount,
|
|
105
|
+
topology: config.topology,
|
|
106
|
+
maxAgents: config.maxAgents,
|
|
107
|
+
testingFocus: config.testingFocus,
|
|
108
|
+
environments: config.environments,
|
|
109
|
+
frameworks: config.frameworks,
|
|
110
|
+
routing: config.routing,
|
|
111
|
+
streaming: config.streaming,
|
|
112
|
+
}, PACKAGE_VERSION);
|
|
113
|
+
// Combine with existing content if present
|
|
114
|
+
let finalContent;
|
|
115
|
+
if (exists && existingContent) {
|
|
116
|
+
const separator = '\n\n---\n\n';
|
|
117
|
+
if (appendPosition === 'prepend') {
|
|
118
|
+
finalContent = claudeMdContent + separator + existingContent;
|
|
119
|
+
console.log(chalk_1.default.gray(' AQE instructions prepended to existing CLAUDE.md'));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
finalContent = existingContent + separator + claudeMdContent;
|
|
123
|
+
console.log(chalk_1.default.gray(' AQE instructions appended to existing CLAUDE.md'));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
finalContent = claudeMdContent;
|
|
128
|
+
}
|
|
129
|
+
// Write CLAUDE.md
|
|
130
|
+
await fs.writeFile(claudeMdPath, finalContent, 'utf8');
|
|
131
|
+
console.log(chalk_1.default.green(' ✓ CLAUDE.md created'));
|
|
132
|
+
console.log(chalk_1.default.gray(` Fleet: ${config.topology} topology, ${config.maxAgents} max agents`));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Count agent files in .claude/agents directory
|
|
136
|
+
*
|
|
137
|
+
* @param agentsDir - Path to agents directory
|
|
138
|
+
* @returns Number of .md files found
|
|
139
|
+
*/
|
|
140
|
+
async function countAgentFiles(agentsDir) {
|
|
141
|
+
const agentsPath = path.join(process.cwd(), agentsDir);
|
|
142
|
+
if (!await fs.pathExists(agentsPath)) {
|
|
143
|
+
return 0;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
const files = await fs.readdir(agentsPath);
|
|
147
|
+
return files.filter(f => f.endsWith('.md')).length;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return 0;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=claude-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../../src/cli/init/claude-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/cli/init/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAsB,oBAAoB,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ChF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Commands (slash commands) template management
|
|
4
|
+
* Copies AQE slash command 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.copyCommandTemplates = copyCommandTemplates;
|
|
44
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
+
const fs = __importStar(require("fs-extra"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
async function copyCommandTemplates(force = false) {
|
|
48
|
+
console.log(chalk_1.default.cyan(' ⚡ Copying AQE slash commands...'));
|
|
49
|
+
// Find package location
|
|
50
|
+
const possiblePaths = [
|
|
51
|
+
path.join(__dirname, '../../../.claude/commands'),
|
|
52
|
+
path.join(process.cwd(), 'node_modules/agentic-qe/.claude/commands'),
|
|
53
|
+
path.join(process.cwd(), '../agentic-qe/.claude/commands')
|
|
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(' ⚠️ Commands not found - skipping'));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const targetPath = path.join(process.cwd(), '.claude/commands');
|
|
67
|
+
await fs.ensureDir(targetPath);
|
|
68
|
+
// Copy all .md files
|
|
69
|
+
const items = await fs.readdir(sourcePath);
|
|
70
|
+
let copied = 0;
|
|
71
|
+
for (const item of items) {
|
|
72
|
+
if (item.endsWith('.md') && item.startsWith('aqe-')) {
|
|
73
|
+
const sourceFile = path.join(sourcePath, item);
|
|
74
|
+
const targetFile = path.join(targetPath, item);
|
|
75
|
+
if (!await fs.pathExists(targetFile) || force) {
|
|
76
|
+
await fs.copy(sourceFile, targetFile);
|
|
77
|
+
copied++;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
console.log(chalk_1.default.green(` ✓ Copied ${copied} AQE commands`));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/cli/init/commands.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMH,oDA2CC;AA/CD,kDAA0B;AAC1B,6CAA+B;AAC/B,2CAA6B;AAEtB,KAAK,UAAU,oBAAoB,CAAC,QAAiB,KAAK;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE7D,wBAAwB;IACxB,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,0CAA0C,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gCAAgC,CAAC;KAC3D,CAAC;IAEF,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,UAAU,GAAG,CAAC,CAAC;YACf,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE/B,qBAAqB;IACrB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACtC,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,MAAM,eAAe,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database initialization module
|
|
3
|
+
*
|
|
4
|
+
* Initializes AgentDB, memory databases, and learning databases
|
|
5
|
+
*
|
|
6
|
+
* @module cli/init/database-init
|
|
7
|
+
*/
|
|
8
|
+
import { FleetConfig } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* Initialize all databases for the Agentic QE Fleet
|
|
11
|
+
*
|
|
12
|
+
* @param config - Fleet configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare function initializeDatabases(config: FleetConfig): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=database-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-init.d.ts","sourceRoot":"","sources":["../../../src/cli/init/database-init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5E"}
|