Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .agentic-qe/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Agentic QE v3 Configuration
# Generated by aqe init
# 2026-02-19T17:38:27.216Z
#
# NOTE: Your customizations are PRESERVED when you run "aqe init" again.
# You do NOT need to re-run "aqe init" after editing this file - changes
# take effect immediately. The following settings are merged on reinstall:
# - domains.enabled (custom domains like visual-accessibility)
# - domains.disabled
# - learning.enabled
# - hooks.* preferences
# - workers.enabled
# - agents.maxConcurrent and defaultTimeout

version: "3.6.13"

project:
name: "cf-devpod"
root: "/home/user/cf-devpod"
type: "single"

learning:
enabled: true
embeddingModel: "transformer"
hnswConfig:
M: 8
efConstruction: 100
efSearch: 50
qualityThreshold: 0.5
promotionThreshold: 2
pretrainedPatterns: true

routing:
mode: "ml"
confidenceThreshold: 0.7
feedbackEnabled: true

workers:
enabled:
- "pattern-consolidator"
intervals:
pattern-consolidator: 1800000
coverage-gap-scanner: 3600000
flaky-test-detector: 7200000
routing-accuracy-monitor: 900000
maxConcurrent: 2
daemonAutoStart: true

hooks:
claudeCode: true
preCommit: false
ciIntegration: false

skills:
install: true
installV2: true
installV3: true
overwrite: false

domains:
enabled:
- "test-generation"
- "test-execution"
- "coverage-analysis"
- "quality-assessment"
- "defect-intelligence"
- "requirements-validation"
- "code-intelligence"
- "security-compliance"
- "contract-testing"
- "visual-accessibility"
- "chaos-resilience"
- "learning-optimization"
- "enterprise-integration"
disabled:

agents:
maxConcurrent: 5
defaultTimeout: 60000
13 changes: 13 additions & 0 deletions .agentic-qe/data/learning-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"embeddingModel": "transformer",
"hnswConfig": {
"M": 8,
"efConstruction": 100,
"efSearch": 50
},
"qualityThreshold": 0.5,
"promotionThreshold": 2,
"databasePath": "/home/user/cf-devpod/.agentic-qe/data/memory.db",
"hnswIndexPath": "/home/user/cf-devpod/.agentic-qe/data/hnsw/index.bin",
"initialized": "2026-02-19T17:38:24.021Z"
}
5 changes: 5 additions & 0 deletions .agentic-qe/data/patterns/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"version": "3.6.13",
"domains": [],
"loadedAt": "2026-02-19T17:38:24.022Z"
}
Binary file added .agentic-qe/memory.db-shm
Binary file not shown.
1 change: 1 addition & 0 deletions .agentic-qe/workers/daemon.pid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2575
8 changes: 8 additions & 0 deletions .agentic-qe/workers/pattern-consolidator.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "pattern-consolidator",
"enabled": true,
"interval": 1800000,
"projectRoot": "/home/user/cf-devpod",
"dataDir": "/home/user/cf-devpod/.agentic-qe/data",
"createdAt": "2026-02-19T17:38:25.645Z"
}
15 changes: 15 additions & 0 deletions .agentic-qe/workers/registry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "3.6.13",
"maxConcurrent": 2,
"workers": {
"pattern-consolidator": {
"name": "pattern-consolidator",
"enabled": true,
"interval": 1800000,
"lastRun": null,
"status": "pending"
}
},
"createdAt": "2026-02-19T17:38:25.645Z",
"daemonPid": null
}
56 changes: 56 additions & 0 deletions .agentic-qe/workers/start-daemon.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/env node
// AQE v3 Worker Daemon Startup Script (cross-platform)
// Generated by aqe init
// Starts the MCP server with background workers enabled

const { existsSync, readFileSync, writeFileSync, appendFileSync } = require('fs');
const { join } = require('path');
const { spawn } = require('child_process');

const projectRoot = join(__dirname, '..', '..');
const workersDir = join(projectRoot, '.agentic-qe', 'workers');
const pidFile = join(workersDir, 'daemon.pid');
const logFile = join(workersDir, 'daemon.log');

// Check if already running
if (existsSync(pidFile)) {
const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
try { process.kill(pid, 0); console.log('Daemon already running (PID: ' + pid + ')'); process.exit(0); } catch {}
}

const ts = new Date().toISOString();
appendFileSync(logFile, '[' + ts + '] Starting AQE v3 Worker Daemon...\n');

// Find the best way to run aqe-mcp
const candidates = [
join(projectRoot, 'node_modules', '.bin', 'aqe-mcp'),
join(projectRoot, 'node_modules', 'agentic-qe', 'v3', 'dist', 'mcp', 'bundle.js'),
];

let mcpCmd, mcpArgs;
const binCandidate = candidates.find(c => existsSync(c));

if (binCandidate && binCandidate.endsWith('bundle.js')) {
mcpCmd = process.execPath;
mcpArgs = [binCandidate];
} else if (binCandidate) {
mcpCmd = binCandidate;
mcpArgs = [];
} else {
mcpCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
mcpArgs = ['--yes', 'agentic-qe', 'mcp'];
}

appendFileSync(logFile, '[' + ts + '] Using: ' + mcpCmd + ' ' + mcpArgs.join(' ') + '\n');

const env = { ...process.env, AQE_PROJECT_ROOT: projectRoot, AQE_LEARNING_ENABLED: 'true', AQE_WORKERS_ENABLED: 'true', AQE_HTTP_PORT: '0' };
const child = spawn(mcpCmd, mcpArgs, { cwd: projectRoot, env, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
child.stdout.on('data', d => appendFileSync(logFile, d));
child.stderr.on('data', d => appendFileSync(logFile, d));
child.unref();

writeFileSync(pidFile, String(child.pid));
appendFileSync(logFile, '[' + ts + '] Daemon started with PID: ' + child.pid + '\n');
console.log('AQE v3 Worker Daemon started (PID: ' + child.pid + ')');
console.log('Log file: ' + logFile);
console.log('To stop: node ' + join(workersDir, 'stop-daemon.cjs'));
23 changes: 23 additions & 0 deletions .agentic-qe/workers/stop-daemon.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env node
// AQE v3 Worker Daemon Stop Script (cross-platform)
// Generated by aqe init

const { existsSync, readFileSync, unlinkSync } = require('fs');
const { join } = require('path');

const workersDir = join(__dirname);
const pidFile = join(workersDir, 'daemon.pid');

if (!existsSync(pidFile)) { console.log('No PID file found - daemon may not be running'); process.exit(0); }

const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
try {
process.kill(pid, 0); // Check if alive
console.log('Stopping daemon (PID: ' + pid + ')...');
process.kill(pid, 'SIGTERM');
try { unlinkSync(pidFile); } catch {}
console.log('Daemon stopped');
} catch {
console.log('Daemon not running (stale PID file)');
try { unlinkSync(pidFile); } catch {}
}
Loading