/** * SP6 — verifyEndToEnd action. * * Orchestrates a real capability smoke: search → fetch → extract → * (synthesis if a provider key is configured) plus an MCP-wiring check per * detected/configured agent. * * Design: * - All network/provider calls are injected via `VerifyEndToEndDeps` so the * orchestration logic is testable headlessly. * - Synthesis is SKIPPED (not failed) when no provider key is configured. * This avoids treating an optional capability as a hard failure. * - MCP-wiring: reads each agent's config file and asserts the wigolo entry * is present at the expected key path. Reuses the SP7/agents.ts detection * and config-writer.ts key-path knowledge. * - hardFailureCount counts only 'fail' results — 'skipped' is not a failure. * * SP4 seam: the synthesis probe resolves a provider key via SP4's * `resolveProviderKey(provider, { dataDir })` (keychain → encrypted file → * env). When no provider has a resolvable key, synthesis is skipped-with- * reason rather than failed. */ import type { AgentId, InstallType } from '../agents.js'; export type CapabilityName = 'search' | 'fetch' | 'extract' | 'synthesis' | 'mcp-wiring'; export type CapabilityStatus = 'pass' | 'fail' | 'skipped'; export interface CapabilityResult { capability: CapabilityName; status: CapabilityStatus; /** Human-readable detail. On fail: actionable message naming the fix. */ detail: string; } export interface McpWiringResult { agentId: AgentId; agentName: string; configPath: string | null; status: CapabilityStatus; detail: string; } export interface VerifyEndToEndResult { capabilities: CapabilityResult[]; mcpWiringResults: McpWiringResult[]; allPassed: boolean; /** Count of capabilities with status === 'fail'. Skipped never increments this. */ hardFailureCount: number; } export interface VerifyEndToEndDeps { probeSearch(): Promise; probeFetch(): Promise; probeExtract(): Promise; probeSynthesis(): Promise; probeMcpWiring(): Promise; } export declare function verifyEndToEnd(deps: VerifyEndToEndDeps): Promise; export interface McpWiringCheckInput { agentId: AgentId; agentName: string; configPath: string | null; keyPath: string[]; installType: InstallType; /** * Override the path-bound roots. Production omits this (defaults to home + * cwd); tests pass a temp-dir root so fixtures don't have to live under the * real home directory. */ allowedRoots?: string[]; } export declare function checkMcpWiringForAgent(input: McpWiringCheckInput): Promise; export declare function buildDefaultDeps(): Promise; export declare function formatVerifyResultPlain(result: VerifyEndToEndResult): string[]; //# sourceMappingURL=verify-e2e.d.ts.map