
Research
/Security News
OpenAPI React Query Codegen Compromised in Mini Shai-Hulud npm Supply Chain Attack
Ten malicious OpenAPI React Query Codegen versions were published to npm in the Mini Shai-Hulud attack, all with valid provenance.
@thearchitech.xyz/genome-transformer
Advanced tools
**Unified Genome Transformation Engine for Architech CLI**
Unified Genome Transformation Engine for Architech CLI
A consolidated, extensible package that transforms user intent (genomes) into executable plans through a unified pipeline of specialized transformers.
The Genome Transformer consolidates multiple scattered automation systems into a single, clean transformation pipeline. Instead of having transformation logic scattered across different CLI services, everything is centralized in this dedicated package.
CLICapabilityResolverTRPCOverrideServiceUIMarketplaceResolverModuleAutoInclusionServiceGenomeTransformationService orchestrates everythingINPUT: Genome (Capability or Legacy)
↓
[1] CAPABILITY NORMALIZATION (Capabilities → Modules)
↓
[2] MODULE EXPANSION (Add dependencies, expand features)
↓
[3] TECH-STACK RESOLUTION (Apply tRPC/SDK overrides)
↓
[4] UI MARKETPLACE RESOLUTION (Resolve UI components)
↓
[5] PATH REQUIREMENTS EXTRACTION (Extract domains and path needs)
↓
[6] FINAL VALIDATION (Validate and prepare)
↓
OUTPUT: Resolved Genome (Ready for Execution)
Main orchestration service that coordinates all transformers.
const transformer = new GenomeTransformationService({
marketplacePath: '/path/to/marketplace',
logger: console,
options: {
enableTRPCDetection: true,
enableUIResolution: true,
enableAutoInclusion: true,
enableCapabilityResolution: true
}
});
const result = await transformer.transform(genome);
Abstract base class for implementing custom transformers.
class CustomTransformer extends BaseGenomeTransformer {
readonly name = 'Custom Transformer';
readonly priority = 10;
readonly description = 'Custom transformation logic';
async transform(genome: ProcessedGenome, context: TransformationContext): Promise<ProcessedGenome> {
// Custom transformation logic
return genome;
}
}
import { GenomeTransformationService } from '@thearchitech.xyz/genome-transformer';
const transformer = new GenomeTransformationService({
marketplacePath: '/path/to/marketplace',
logger: console
});
const result = await transformer.transform(genome);
console.log('Transformation result:', result);
const transformer = new GenomeTransformationService({
marketplacePath: '/path/to/marketplace',
logger: console,
options: {
enableTRPCDetection: true, // Auto-detect and apply tRPC overrides
enableUIResolution: true, // Resolve UI components from marketplace
enableAutoInclusion: true, // Auto-add required dependencies
enableCapabilityResolution: true // Convert capabilities to modules
}
});
import { BaseGenomeTransformer } from '@thearchitech.xyz/genome-transformer';
class CustomTransformer extends BaseGenomeTransformer {
readonly name = 'Custom Transformer';
readonly priority = 10;
readonly description = 'Custom transformation logic';
canTransform(genome: ProcessedGenome): boolean {
return genome.modules.some(m => m.id.includes('custom'));
}
async transform(genome: ProcessedGenome, context: TransformationContext): Promise<ProcessedGenome> {
// Custom transformation logic
return genome;
}
}
transformer.addTransformer(new CustomTransformer());
npm install @thearchitech.xyz/genome-transformer
# Install dependencies
npm install
# Build
npm run build
# Test
npm test
# Watch mode
npm run dev
constructor(config: TransformationConfig)
transform(genome: Genome): Promise<TransformationResult> - Transform genomeaddTransformer(transformer: GenomeTransformer): void - Add custom transformerremoveTransformer(name: string): void - Remove transformergetTransformers(): GenomeTransformer[] - Get all transformersgetTransformer(name: string): GenomeTransformer | undefined - Get specific transformername: string - Transformer namepriority: number - Execution priority (lower = earlier)description: string - Transformer descriptiontransform(genome: ProcessedGenome, context: TransformationContext): Promise<ProcessedGenome> - Transform genomecanTransform(genome: ProcessedGenome): boolean - Check if transformer appliesvalidate(genome: ProcessedGenome): Promise<ValidationResult> - Validate genomeinterface TransformationConfig {
marketplacePath: string;
logger: Logger;
options?: {
enableTRPCDetection?: boolean;
enableUIResolution?: boolean;
enableAutoInclusion?: boolean;
enableCapabilityResolution?: boolean;
};
}
interface TransformationResult {
originalGenome: Genome;
resolvedGenome: Genome;
transformationSteps: TransformationStep[];
success: boolean;
error?: string;
duration: number;
}
interface TransformationStep {
transformer: string;
duration: number;
modulesCount: number;
success: boolean;
error?: string;
}
The transformer supports both traditional module-based genomes and new capability-driven genomes.
const traditionalGenome = {
version: '1.0',
project: {
name: 'my-app',
framework: 'nextjs',
structure: 'single-app'
},
modules: [
{
id: 'adapters/auth/better-auth-nextjs',
category: 'adapters',
parameters: {}
},
{
id: 'features/auth/frontend',
category: 'features',
parameters: {}
}
]
};
const capabilityGenome = {
version: '1.0',
project: {
name: 'my-app',
framework: 'nextjs',
structure: 'single-app'
},
capabilities: {
auth: {
provider: 'better-auth-nextjs',
frontend: true,
techStack: true
},
payments: {
provider: 'stripe-nextjs',
frontend: true,
backend: true,
techStack: true,
database: true
}
}
};
The capability-driven approach is much more declarative and easier to understand. The transformer automatically converts capabilities into the appropriate modules.
MIT License - see LICENSE file for details.
@thearchitech.xyz/types - Core type definitions@thearchitech.xyz/marketplace - Marketplace modules and blueprints@thearchitech.xyz/cli - Main CLI applicationFAQs
**Unified Genome Transformation Engine for Architech CLI**
We found that @thearchitech.xyz/genome-transformer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Research
/Security News
Ten malicious OpenAPI React Query Codegen versions were published to npm in the Mini Shai-Hulud attack, all with valid provenance.

Security News
Socket joins more than 100 technology, cybersecurity, and financial organizations calling for a global surge in cyber defense.

Product
Enterprise security teams can now detect malware, credential theft, suspicious network activity, and risky updates across Microsoft Edge extensions.