import type { GatewayIntakeResponse } from '../../gateway/agent-service.js'; import type { ContextBrokerResult } from '../../context/broker.js'; import type { TaskProfile } from '../../akinator/types.js'; import { type CapabilityResolution, type CapabilityWarning, type MemoryPolicy } from '../../akinator/capabilities.js'; import type { AgentRouteContext } from './agent-runs.js'; export type AgentCapabilityNextAction = 'proceed' | 'answer_from_evidence_or_ask_user' | 'required_capability_unavailable'; export type CapabilityGatedIntakeResponse = Omit & { context: ContextBrokerResult['context']; recommendations: ContextBrokerResult['recommendations']; capabilities: CapabilityResolution; memoryPolicy: MemoryPolicy; warnings: CapabilityWarning[]; nextAction: AgentCapabilityNextAction; }; export interface AgentCapabilityGateInput { task: string; intakeStatus: 'needs_answer' | 'ready' | 'exhausted'; taskProfile: TaskProfile; recommendedTags: string[]; catalog: unknown; broker: Pick; memoryUseOverride?: 'none' | 'actionable'; storedEntryCount?: number; } export interface AgentCapabilityGateResult { context: ContextBrokerResult['context']; recommendations: ContextBrokerResult['recommendations']; capabilities: CapabilityResolution; memoryPolicy: MemoryPolicy; warnings: CapabilityWarning[]; nextAction: AgentCapabilityNextAction; } export declare function deriveBrokerMemoryUseSignal(context: Pick, broker: Pick): 'none' | 'actionable'; export declare function brokerIntakeStatus(status: ContextBrokerResult['status']): AgentCapabilityGateInput['intakeStatus']; export declare function assertBrokerContextRun(candidate: Pick, runId: string): void; export declare function requestCapabilityCatalog(value: unknown): unknown; export declare function applyAgentCapabilityGate(input: AgentCapabilityGateInput): AgentCapabilityGateResult; /** Count stored entries only when the final model-facing context is empty. */ export declare function applyAgentCapabilityGateWithDeliveryObservation(input: Omit, countStoredEntries: () => number): AgentCapabilityGateResult; /** Rank once, decide against that immutable snapshot, and persist only the * exact approved delivery. A rejected or throwing gate never writes context. */ export declare function attachCapabilityGatedContext(context: AgentRouteContext, value: GatewayIntakeResponse, catalog: unknown): Promise; //# sourceMappingURL=agent-capability-gate.d.ts.map