mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
2253d05618
Remove the nested v3/ subdirectory by moving all active source code, tests, configs, and assets directly to the project root. Archive v2/ (dead code, 847MB) to v2-archive.tar.gz. Key changes: - Move v3/src/ → src/, v3/tests/ → tests/, v3/packages/ → packages/ - Move v3/tsconfig.json, v3/vitest.config.ts to root - Merge v3/package.json into root package.json (ESM, scripts, deps, exports) - Merge v3/scripts/ into scripts/, v3/implementation/ into docs/implementation/ - Update all CI workflows to remove "cd v3 &&" and v3/ path prefixes - Fix all init installer path resolution (3-level-up → 2-level-up) - Fix hooks to use "node ./dist/cli/bundle.js" instead of bare "aqe" - Update settings.json ADR/DDD directories to docs/implementation/ - Fix helper scripts (statusline, adr-compliance, ddd-tracker, guidance-hooks) - Update 58 agent definitions: aqe/v3/ → aqe/ memory namespaces - Update 15 guidance shards: v3/src/ → src/ path references - Fix sync interfaces: remove v3/ and v2/ path references - Fix test path calculations (process.cwd() + '..' no longer needed) - Fix flaky perf test threshold (500ms → 1000ms for CI environments) - Fix complexity-analyzer test to match ADR-051 keyword-based eligibility Build passes, 17,901 tests pass, CLI and MCP bundles verified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
89 lines
2.2 KiB
TypeScript
89 lines
2.2 KiB
TypeScript
/**
|
|
* @agentic-qe/opencode-bridge
|
|
* Bridge between AQE MCP server and OpenCode.
|
|
*
|
|
* This package provides:
|
|
* - OpenCode config generation from AQE tool registry
|
|
* - Tool name mapping (AQE naming -> OpenCode display)
|
|
* - Output compaction for token-limited contexts
|
|
* - Template loading for opencode.json
|
|
*/
|
|
|
|
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
|
|
export {
|
|
OpenCodeAgentConfig,
|
|
OpenCodeSkillConfig,
|
|
OpenCodeToolConfig,
|
|
AQEPluginConfig,
|
|
ModelTier,
|
|
} from '@agentic-qe/opencode-types';
|
|
|
|
// Skill tier registry
|
|
export {
|
|
getSkillTier,
|
|
getAllSkillTiers,
|
|
getSkillsByTier,
|
|
getBlockedSkills,
|
|
getSkillTierSummary,
|
|
canSkillRunOnTier,
|
|
TIER_RANK,
|
|
} from './skill-tier-registry.js';
|
|
|
|
export interface BridgeOptions {
|
|
/** Path to opencode.json template */
|
|
templatePath?: string;
|
|
/** AQE MCP server URL or command */
|
|
mcpEndpoint?: string;
|
|
}
|
|
|
|
export interface BridgeStatus {
|
|
initialized: boolean;
|
|
skillCount: number;
|
|
tierBreakdown: {
|
|
tier1: number;
|
|
tier2: number;
|
|
tier3: number;
|
|
};
|
|
mcpEndpoint: string;
|
|
templateValid: boolean;
|
|
}
|
|
|
|
/**
|
|
* Initialize the AQE-OpenCode bridge.
|
|
* Validates the template, loads skill tier summary, and returns bridge status.
|
|
*/
|
|
export async function initBridge(options?: BridgeOptions): Promise<BridgeStatus> {
|
|
const templatePath = options?.templatePath ?? path.resolve(__dirname, '../templates/opencode.json');
|
|
const mcpEndpoint = options?.mcpEndpoint ?? 'npx agentic-qe mcp';
|
|
|
|
// Validate template exists and is valid JSON
|
|
let templateValid = false;
|
|
try {
|
|
if (fs.existsSync(templatePath)) {
|
|
const content = fs.readFileSync(templatePath, 'utf-8');
|
|
JSON.parse(content);
|
|
templateValid = true;
|
|
}
|
|
} catch {
|
|
templateValid = false;
|
|
}
|
|
|
|
// Load skill tier summary
|
|
const { getSkillTierSummary: getSummary } = await import('./skill-tier-registry.js');
|
|
const summary = getSummary();
|
|
|
|
return {
|
|
initialized: true,
|
|
skillCount: summary.total,
|
|
tierBreakdown: {
|
|
tier1: summary.tier1Count,
|
|
tier2: summary.tier2Count,
|
|
tier3: summary.tier3Count,
|
|
},
|
|
mcpEndpoint,
|
|
templateValid,
|
|
};
|
|
}
|