This document provides a comprehensive reference for the Complete Arbitration Mesh (CAM) Protocol API.
The main entry point for interacting with the CAM Protocol.
class CompleteArbitrationMesh {
constructor(config: CAMConfig);
// Routing methods
routeRequest(request: AICoreRequest): Promise<AICoreResponse>;
batchRouteRequests(requests: AICoreRequest[]): Promise<AICoreResponse[]>;
// Collaboration methods
decomposeTask(task: ComplexTask): Promise<TaskComponents[]>;
discoverAgents(capabilities: AgentCapabilities[]): Promise<AgentInfo[]>;
initiateCollaboration(request: CollaborationRequest): Promise<CollaborationSession>;
// Policy management
registerPolicy(policy: Policy): Promise<void>;
updatePolicy(policyId: string, updates: Partial<Policy>): Promise<void>;
deletePolicy(policyId: string): Promise<void>;
// Monitoring and analytics
getUsageStatistics(options: UsageStatisticsOptions): Promise<UsageStatistics>;
getPerformanceMetrics(options: MetricsOptions): Promise<PerformanceMetrics>;
}interface AICoreRequest {
prompt: string;
model?: string;
temperature?: number;
maxTokens?: number;
requirements?: ProviderRequirements;
metadata?: Record<string, any>;
}interface AICoreResponse {
content: string;
provider: string;
model: string;
cost: number;
latency: number;
usage: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
metadata?: Record<string, any>;
}interface CollaborationRequest {
task: string;
requirements: string[];
decomposition?: 'auto' | 'manual';
agents?: string[];
timeout?: number;
metadata?: Record<string, any>;
}interface CollaborationSession {
id: string;
task: string;
agents: AgentInfo[];
status: 'initializing' | 'active' | 'completed' | 'failed';
createdAt: string;
updatedAt: string;
metadata: Record<string, any>;
// Methods
getResult(): Promise<CollaborationResult>;
pause(): Promise<void>;
resume(): Promise<void>;
cancel(): Promise<void>;
}interface CAMConfig {
apiKey: string;
environment?: 'development' | 'staging' | 'production';
endpoint?: string;
timeout?: number;
defaultProviders?: string[];
policies?: Policy[];
logging?: {
level: 'debug' | 'info' | 'warn' | 'error';
destination?: 'console' | 'file';
filePath?: string;
};
}interface Policy {
id?: string;
name: string;
description?: string;
rules: PolicyRule[];
priority?: number;
enabled?: boolean;
}interface PolicyRule {
condition: PolicyCondition;
action: PolicyAction;
}interface ComplexTask {
id: string;
description: string;
requirements: string[];
constraints: Record<string, any>;
priority: 'low' | 'medium' | 'high' | 'critical';
}interface AgentCapabilities {
type: string;
skills: string[];
specializations: string[];
quality: number;
cost: number;
}interface AgentInfo {
id: string;
name: string;
type: string;
capabilities: AgentCapabilities;
status: 'available' | 'busy' | 'offline';
reputation: number;
metadata: Record<string, any>;
}class CAMError extends Error {
code: string;
details?: Record<string, any>;
timestamp: string;
requestId?: string;
}The CAM Protocol also provides a REST API for non-TypeScript environments.
All API requests require authentication using the Authorization header:
Authorization: Bearer YOUR_API_KEY
Route a single request to the optimal provider.
Route multiple requests in a single API call.
Decompose a complex task into smaller components.
Discover agents with specific capabilities.
Start a new collaboration session.
Get the status of a collaboration session.
Get the result of a completed collaboration session.
Create a new policy.
Update an existing policy.
Delete a policy.
Get usage statistics.
Get performance metrics.
The CAM Protocol can send webhook notifications for various events:
request.completed: A request has been completedcollaboration.started: A collaboration session has startedcollaboration.completed: A collaboration session has completedpolicy.violated: A policy violation has occurrederror.occurred: An error has occurred
The CAM Protocol enforces rate limits based on your subscription tier:
- Community: 10 requests per minute
- Professional: 100 requests per minute
- Enterprise: 1,000 requests per minute
auth_error: Authentication errorinvalid_request: Invalid request parametersrate_limit_exceeded: Rate limit exceededprovider_error: Provider API errorpolicy_violation: Policy violationcollaboration_error: Collaboration errorinternal_error: Internal server error