/** * Multi-agent contribution protocol. * Ports lib/skills/contribution-protocol.sh. * * Implements the contribution protocol for multi-agent research coordination: * template instantiation, task validation, injection block generation, * conflict detection, and consensus computation. * * @epic T4454 * @task T4520 */ import type { ManifestEntry } from '../types.js'; /** A contribution decision from an agent. */ export interface ContributionDecision { agentId: string; taskId: string; decision: string; confidence: number; rationale: string; } /** Conflict between two agent decisions. */ export interface ContributionConflict { field: string; agent1: string; agent2: string; value1: string; value2: string; severity: 'low' | 'medium' | 'high'; } /** Consensus result from weighted voting. */ export interface ConsensusResult { decision: string; confidence: number; votes: Array<{ agentId: string; weight: number; vote: string; }>; conflicts: ContributionConflict[]; } /** * Generate a unique contribution ID. * @task T4520 */ export declare function generateContributionId(taskId: string): string; /** * Validate that a task is suitable for contribution protocol. * @task T4520 */ export declare function validateContributionTask(taskId: string, cwd?: string): Promise<{ valid: boolean; issues: string[]; }>; /** * Generate the contribution injection block for a subagent prompt. * @task T4520 */ export declare function getContributionInjection(taskId: string, protocolPath?: string, _cwd?: string): string; /** * Detect conflicts between two sets of decisions. * @task T4520 */ export declare function detectConflicts(decisions1: ContributionDecision[], decisions2: ContributionDecision[]): ContributionConflict[]; /** * Compute weighted consensus from multiple agent decisions. * @task T4520 */ export declare function computeConsensus(decisions: ContributionDecision[], weights?: Record): ConsensusResult; /** * Create a manifest entry for a contribution. * @task T4520 */ export declare function createContributionManifestEntry(taskId: string, contributionId: string, decisions: ContributionDecision[]): ManifestEntry; //# sourceMappingURL=contribution.d.ts.map