/** * Next-Unicorn Orchestrator — the main analysis pipeline. * * Extracted from index.ts to keep the entry point clean (re-exports only). * Each inline step follows the Occam's Razor principle: only code that * Claude cannot do (regex, semver, API calls) lives here. */ import { OutputSchema, type UxAuditItem } from './schemas/output.schema.js'; import type { Detection, ScanResult } from './analyzer/types.js'; import { type Context7Client } from './verifier/context7.js'; import { type PeerDependencyResolver } from './checker/peer-dependency-checker.js'; import type { VulnerabilityClient } from './security/osv-client.js'; import type { RegistryClient } from './updater/registry-client.js'; import type { PlatformClient } from './pr-creator/platform-client.js'; import type { GitOperations } from './pr-creator/git-operations.js'; /** * A library recommendation provided by the AI agent (or caller). */ export interface LibraryRecommendation { library: string; version: string; license: string; rationale?: string; ecosystem?: Array<{ library: string; version: string; role: string; }>; antiPatterns?: string[]; alternatives?: Array<{ library: string; when: string; }>; } export type Recommender = (detection: Detection) => LibraryRecommendation | null; /** * A capability gap — something the project SHOULD have but DOESN'T. */ export interface GapRecommendation { domain: string; description: string; recommendedLibrary: { name: string; version: string; license: string; documentationUrl?: string; rationale?: string; ecosystem?: Array<{ library: string; version: string; role: string; }>; antiPatterns?: string[]; alternatives?: Array<{ library: string; when: string; }>; }; priority: 'critical' | 'recommended' | 'nice-to-have'; verificationStatus?: 'verified' | 'unverified' | 'unavailable'; verificationNote?: string; } export interface AnalyzeOptions { input: unknown; context7Client: Context7Client; recommender: Recommender; gaps?: GapRecommendation[]; /** Optional UX audit items — AI agent provides these based on project analysis */ uxAudit?: UxAuditItem[]; vulnClient?: VulnerabilityClient; registryClient?: RegistryClient; platformClient?: PlatformClient; gitOps?: GitOperations; peerDependencyResolver?: PeerDependencyResolver; } export type AnalyzeResult = { success: true; output: OutputSchema; scanResult: ScanResult; json: string; prettyJson: string; exclusions: ExclusionRecord[]; } | { success: false; error: string; issues?: unknown; }; export interface ExclusionRecord { libraryName: string; license: string; reason: string; } export declare function analyze(options: AnalyzeOptions): Promise; //# sourceMappingURL=orchestrator.d.ts.map