/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */ import type { WrfcChain, WrfcSubtask } from '../../../agents/wrfc-types.js'; import type { ProcessNode, ProcessReviewSummary } from '../types.js'; /** * Reprice a WRFC owner agent node for honest DISPLAY. The owner runs no LLM turn * itself; at completion its usage is backfilled from aggregateChainUsage, a * mixed-model rollup of its children, so pricing it with a single owner model is * wrong and leaving it "unpriced" while its children priced fine is misleading. * Instead adopt the chain node's per-child-summed cost (and its model descriptor). * * Returns the SAME node reference when no reprice applies (owner already priced, or * the chain has no priced cost), so callers can skip untouched nodes. The owner is * excluded from every leaf-sum (registry aggregateCost / isWrfcOwnerAgentNode), so * adopting the chain total here can never double-count. */ export declare function repriceWrfcOwnerNode(ownerNode: ProcessNode, chainNode: ProcessNode): ProcessNode; /** * The subtask's currently-active member agent, i.e. whichever role is * driving its current phase. Undefined when the subtask has no phase * currently in flight (pending/passed/failed), matches subtaskState()'s * own phase mapping above. */ export declare function activeSubtaskMemberAgentId(subtask: WrfcSubtask): string | undefined; /** * The latest review as served on the wire: verdict (the CONTROLLER's * gate-inclusive verdict when recorded; the reviewer's own claim only as a * legacy fallback), score, cycle count, and the acceptance checklist, so a * consumer renders what was ACTUALLY verified. Returns undefined when no * review has completed (the wire field stays absent, never an empty shell). */ export declare function deriveReviewSummary(source: { readonly reviewerReport?: { readonly score: number; readonly passed: boolean; readonly acceptanceChecklist?: ReadonlyArray<{ item: string; verified: boolean; evidence: string; howExercised?: string | undefined; }> | undefined; } | undefined; readonly lastReviewVerdict?: { passed: boolean; score: number; } | undefined; readonly reviewCycles: number; }): ProcessReviewSummary | undefined; export declare function adaptSubtask(subtask: WrfcSubtask, chain: WrfcChain, opts: { steerable: boolean; }): ProcessNode; /** * WrfcChain → ProcessNode. `memberNodes` are the already-adapted agent nodes * whose ids appear in chain.allAgentIds, EXCLUDING the owner agent (see * aggregateCost). Chain nodes are roots (the owner agent hangs under the * chain via its wrfcId edge, not the other way around). */ export declare function adaptChain(chain: WrfcChain, memberNodes: readonly ProcessNode[], now: number): ProcessNode; //# sourceMappingURL=wrfc.d.ts.map