/** * Impact analysis module - dependency-aware prediction of downstream effects. * * Builds on the existing dependency graph infrastructure in phases/deps.ts * and orchestration/analyze.ts to provide: * - Task impact assessment (direct + transitive dependents) * - Change impact prediction (cancel, block, complete, reprioritize) * - Blast radius calculation (scope quantification) * - Free-text impact prediction (predictImpact) — T043 * * @module intelligence */ import type { DataAccessor } from '../store/data-accessor.js'; import type { BlastRadius, ChangeImpact, ChangeType, ImpactAssessment, ImpactReport } from './types.js'; /** * Analyze the full downstream impact of a task. * * Computes direct and transitive dependents, affected lifecycle pipelines, * blocked work counts, critical path membership, and blast radius. * * @param taskId - The task to analyze * @param accessor - DataAccessor instance (or auto-created from cwd) * @param cwd - Working directory (used if accessor is not provided) * @returns Full impact assessment */ export declare function analyzeTaskImpact(taskId: string, accessor?: DataAccessor, cwd?: string): Promise; /** * Analyze the downstream effects of a specific change to a task. * * Predicts what happens when a task is cancelled, blocked, completed, * or reprioritized, including cascading status changes. * * @param taskId - The task being changed * @param changeType - The type of change * @param accessor - DataAccessor instance (or auto-created from cwd) * @param cwd - Working directory (used if accessor is not provided) * @returns Predicted change impact */ export declare function analyzeChangeImpact(taskId: string, changeType: ChangeType, accessor?: DataAccessor, cwd?: string): Promise; /** * Calculate the blast radius for a task. * * Quantifies how many tasks, epics, and what percentage of the project * would be impacted by changes to this task. * * @param taskId - The task to analyze * @param accessor - DataAccessor instance (or auto-created from cwd) * @param cwd - Working directory (used if accessor is not provided) * @returns Blast radius metrics */ export declare function calculateBlastRadius(taskId: string, accessor?: DataAccessor, cwd?: string): Promise; /** * Predict the downstream impact of a free-text change description. * * Uses fuzzy keyword matching to identify candidate tasks that relate to * the change, then walks the reverse dependency graph to enumerate all * downstream tasks that may be affected. * * @remarks * The matching is purely lexical (no embeddings). Tasks are ranked by * how many tokens from the change description appear in their title and * description. The top `matchLimit` (default: 5) matched tasks are used * as seeds for downstream dependency tracing. * * @example * ```ts * import { predictImpact } from '@cleocode/core'; * * const report = await predictImpact('Modify authentication flow', process.cwd()); * console.log(report.summary); * // "3 tasks matched 'Modify authentication flow'; 7 downstream tasks affected." * for (const task of report.affectedTasks) { * console.log(`${task.id} (${task.exposure}): ${task.reason}`); * } * ``` * * @param change - Free-text description of the proposed change (e.g. "Modify X") * @param cwd - Working directory used to locate the tasks database * @param accessor - Optional pre-created DataAccessor (useful in tests) * @param matchLimit - Maximum number of seed tasks to match (default: 5) * @returns Full impact prediction report */ export declare function predictImpact(change: string, cwd?: string, accessor?: DataAccessor, matchLimit?: number): Promise; //# sourceMappingURL=impact.d.ts.map