@bonginkan/maria
Version:
MARIA OS v5.9.5 – Self-Evolving Organizational Intelligence OS | Speed Improvement Phase 3: LLM Optimization + Command Refactoring | Performance Measurement + Run Evidence System | Zero ESLint/TypeScript Errors | 人とAIが役割を持ち、学び、進化し続けるための仕事のOS | GraphRAG ×
130 lines (129 loc) • 5.02 kB
TypeScript
/**
* Filename Inference Telemetry Integration
* Tracks performance and usage metrics for the intelligent filename inference system
*/
import type { FilenameCandidate, InferenceResult, SaveOperation, SaveResult } from "../types/filename-inference.types";
export declare enum FilenameInferenceEvent {
INFERENCE_START = "filename.inference.start",
INFERENCE_END = "filename.inference.end",
INFERENCE_TIMEOUT = "filename.inference.timeout",
INFERENCE_CACHE_HIT = "filename.inference.cache.hit",
INFERENCE_CACHE_MISS = "filename.inference.cache.miss",
EXPLICIT_ANALYZER_START = "filename.analyzer.explicit.start",
EXPLICIT_ANALYZER_END = "filename.analyzer.explicit.end",
CONTEXTUAL_ANALYZER_START = "filename.analyzer.contextual.start",
CONTEXTUAL_ANALYZER_END = "filename.analyzer.contextual.end",
SEMANTIC_ANALYZER_START = "filename.analyzer.semantic.start",
SEMANTIC_ANALYZER_END = "filename.analyzer.semantic.end",
PROJECT_ANALYZER_START = "filename.analyzer.project.start",
PROJECT_ANALYZER_END = "filename.analyzer.project.end",
EXTENSION_ANALYZER_START = "filename.analyzer.extension.start",
EXTENSION_ANALYZER_END = "filename.analyzer.extension.end",
SAVE_MODE_DECIDED = "filename.ux.mode.decided",
INTERACTIVE_SELECTION_START = "filename.ux.selection.start",
INTERACTIVE_SELECTION_END = "filename.ux.selection.end",
DRY_RUN_EXECUTED = "filename.ux.dryrun.executed",
UNDO_EXECUTED = "filename.ux.undo.executed",
SAVE_OPERATION_START = "filename.save.start",
SAVE_OPERATION_END = "filename.save.end",
SAVE_OPERATION_SUCCESS = "filename.save.success",
SAVE_OPERATION_FAILED = "filename.save.failed",
SECURITY_VIOLATION = "filename.security.violation",
PATH_TRAVERSAL_BLOCKED = "filename.security.path_traversal_blocked",
PLAN_VIOLATION_BLOCKED = "filename.security.plan_violation_blocked",
PERMISSION_DENIED = "filename.security.permission_denied",
HIGH_CONFIDENCE_INFERENCE = "filename.performance.high_confidence",
LOW_CONFIDENCE_INFERENCE = "filename.performance.low_confidence",
ANALYZER_SLOW = "filename.performance.analyzer_slow"
}
export interface FilenameInferenceMetrics {
totalInferences: number;
averageInferenceTime: number;
cacheHitRate: number;
timeoutRate: number;
highConfidenceRate: number;
mediumConfidenceRate: number;
lowConfidenceRate: number;
immediateMode: number;
interactiveMode: number;
dryRunMode: number;
userCancellations: number;
undoOperations: number;
securityViolations: number;
pathTraversalAttempts: number;
planViolations: number;
permissionDenials: number;
successfulSaves: number;
failedSaves: number;
saveSuccessRate: number;
}
export declare class FilenameInferenceTelemetry {
private telemetry;
private integration;
private readonly integrationPromise;
constructor();
private loadOptionalIntegration;
private toMeta;
/**
* Start timing an inference operation
*/
startInference(prompt: string, context?: unknown): () => void;
/**
* Record inference completion
*/
recordInferenceComplete(result: InferenceResult | FilenameCandidate, durationMs: number): void;
/**
* Record cache hit
*/
recordCacheHit(cacheKey: string): void;
/**
* Record cache miss
*/
recordCacheMiss(cacheKey: string): void;
/**
* Start timing an analyzer
*/
startAnalyzer(analyzer: string): () => void;
/**
* Record analyzer completion
*/
recordAnalyzerComplete(analyzer: string, candidates: FilenameCandidate[], durationMs: number): void;
/**
* Record save mode decision
*/
recordSaveModeDecision(confidence: number, mode: 'immediate' | 'interactive' | 'dry-run', reason: string): void;
/**
* Record interactive selection
*/
recordInteractiveSelection(candidates: FilenameCandidate[], selectedIndex: number, durationMs: number): void;
/**
* Record dry run execution
*/
recordDryRun(analysisResults: unknown): void;
/**
* Record undo operation
*/
recordUndo(operation: string, success: boolean): void;
/**
* Record save operation
*/
recordSave(operation: SaveOperation, result: SaveResult, durationMs: number): void;
/**
* Record security violations
*/
recordSecurityViolation(type: 'path_traversal' | 'plan_violation' | 'permission_denied', details: unknown): void;
/**
* Generate metrics summary
*/
generateMetrics(windowMs?: number): Promise<FilenameInferenceMetrics>;
/**
* Record integration telemetry for external systems
*/
recordIntegrationTelemetry(data: unknown): Promise<void>;
private getConfidenceLevel;
private getDurationBucket;
private getFileExtension;
private recordConfidenceMetrics;
private recordTimeout;
}
export declare const filenameInferenceTelemetry: FilenameInferenceTelemetry;