Overview
The LLM enhancement layer is hardcoded to Anthropic Claude, blocking teams on OpenAI, AWS Bedrock, or self-hosted models from using AI-powered findings enhancement. A provider abstraction removes this vendor lock-in.
Proposed Abstraction
export interface LLMProvider {
name: string;
complete(prompt: string, systemPrompt?: string): Promise<string>;
}
export interface LLMProviderConfig {
provider: 'anthropic' | 'openai' | 'bedrock' | 'ollama' | 'custom';
model?: string;
apiKey?: string;
baseUrl?: string; // for Ollama / self-hosted
region?: string; // for AWS Bedrock
customProvider?: LLMProvider;
}
Provider Targets
| Provider |
Default Model |
| Anthropic |
claude-sonnet-4-20250514 |
| OpenAI |
gpt-4o |
| AWS Bedrock |
anthropic.claude-3-5-sonnet |
| Ollama |
llama3 (localhost:11434) |
Config File Support
{
"llm": {
"provider": "openai",
"model": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}"
}
}
Env variable interpolation supported in config values.
CLI Flags
chainproof scan contracts/ --llm-provider openai --llm-model gpt-4o --api-key sk-...
Acceptance Criteria
Overview
The LLM enhancement layer is hardcoded to Anthropic Claude, blocking teams on OpenAI, AWS Bedrock, or self-hosted models from using AI-powered findings enhancement. A provider abstraction removes this vendor lock-in.
Proposed Abstraction
Provider Targets
Config File Support
{ "llm": { "provider": "openai", "model": "gpt-4o", "apiKey": "${OPENAI_API_KEY}" } }Env variable interpolation supported in config values.
CLI Flags
Acceptance Criteria