65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
/**
|
|
* Analytics event type definitions for metrics collection.
|
|
*
|
|
* Three event types capture review findings, fix actions, and movement results
|
|
* for local-only analysis when analytics.enabled = true.
|
|
*/
|
|
|
|
/** Status of a review finding across iterations */
|
|
export type FindingStatus = 'new' | 'persists' | 'resolved';
|
|
|
|
/** Severity level of a review finding */
|
|
export type FindingSeverity = 'error' | 'warning';
|
|
|
|
/** Decision taken on a finding */
|
|
export type FindingDecision = 'reject' | 'approve';
|
|
|
|
/** Action taken to address a finding */
|
|
export type FixActionType = 'fixed' | 'rebutted' | 'not_applicable';
|
|
|
|
/** Review finding event — emitted per finding during review movements */
|
|
export interface ReviewFindingEvent {
|
|
type: 'review_finding';
|
|
findingId: string;
|
|
status: FindingStatus;
|
|
ruleId: string;
|
|
severity: FindingSeverity;
|
|
decision: FindingDecision;
|
|
file: string;
|
|
line: number;
|
|
iteration: number;
|
|
runId: string;
|
|
timestamp: string;
|
|
}
|
|
|
|
/** Fix action event — emitted per finding addressed during fix movements */
|
|
export interface FixActionEvent {
|
|
type: 'fix_action';
|
|
findingId: string;
|
|
action: FixActionType;
|
|
changedFiles?: string[];
|
|
testCommand?: string;
|
|
testResult?: string;
|
|
iteration: number;
|
|
runId: string;
|
|
timestamp: string;
|
|
}
|
|
|
|
/** Movement result event — emitted after each movement completes */
|
|
export interface MovementResultEvent {
|
|
type: 'movement_result';
|
|
movement: string;
|
|
provider: string;
|
|
model: string;
|
|
decisionTag: string;
|
|
iteration: number;
|
|
runId: string;
|
|
timestamp: string;
|
|
}
|
|
|
|
/** Union of all analytics event types */
|
|
export type AnalyticsEvent =
|
|
| ReviewFindingEvent
|
|
| FixActionEvent
|
|
| MovementResultEvent;
|