claude-flow-novice
Version:
Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.
93 lines (84 loc) • 2.81 kB
text/typescript
/**
* Cerebras SDK Wrapper with Fallback Support
*
* This module provides a unified interface for the Cerebras SDK
* that works even when the SDK is not installed.
*/
let cerebrasSDK: any = null;
let fallbackMode = false;
// Try to import the Cerebras SDK
try {
const sdk = await import('@cerebras/cerebras_cloud_sdk');
cerebrasSDK = sdk.default;
console.log('✅ Cerebras SDK loaded successfully');
} catch (error) {
if (process.env.CFN_ALLOW_FALLBACK !== 'true') {
console.error('❌ Cerebras SDK not found and fallback mode disabled');
console.error(' Install with: npm install @cerebras/cerebras_cloud_sdk');
console.error(' Or enable fallback mode: CFN_ALLOW_FALLBACK=true');
process.exit(1);
}
console.warn('⚠️ Cerebras SDK not found, using fallback mode');
console.warn(' To enable LLM fixes, install: npm install @cerebras/cerebras_cloud_sdk');
fallbackMode = true;
}
/**
* Create a Cerebras client or return a fallback
*/
export function createClient(apiKey?: string) {
if (fallbackMode) {
return {
chat: {
completions: {
create: async (params: any) => {
console.warn('⚠️ Fallback mode: No LLM processing available');
return {
choices: [{
message: {
content: '// Fallback: Manual intervention required\n' +
'// Unable to process with LLM in fallback mode\n' +
'// Please install @cerebras/cerebras_cloud_sdk for automated fixes'
}
}]
};
}
}
}
};
}
if (!cerebrasSDK) {
throw new Error('Cerebras SDK not available');
}
// Return actual Cerebras client
return new cerebrasSDK({
apiKey: apiKey || process.env.CEREBRAS_API_KEY
});
}
/**
* Check if we're in fallback mode
*/
export function isFallbackMode(): boolean {
return fallbackMode;
}
/**
* Get SDK status
*/
export function getSDKStatus(): {
available: boolean;
mode: 'full' | 'fallback';
message: string;
} {
if (fallbackMode) {
return {
available: false,
mode: 'fallback',
message: 'Cerebras SDK not installed - fallback mode active'
};
}
return {
available: true,
mode: 'full',
message: 'Cerebras SDK available - full LLM processing enabled'
};
}
export default createClient;