39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { ProtocolTelemetryService } from '../../../../src/main/agentic/observability/protocolTelemetry';
|
|
|
|
describe('ProtocolTelemetryService', () => {
|
|
it('tracks parse validity, repairs, fallback, and blocked actions', () => {
|
|
const telemetry = new ProtocolTelemetryService();
|
|
|
|
telemetry.recordTurn({
|
|
validEnvelope: true,
|
|
repairAttempted: false,
|
|
fallbackUsed: false,
|
|
blockedActions: 0,
|
|
});
|
|
|
|
telemetry.recordTurn({
|
|
validEnvelope: true,
|
|
repairAttempted: true,
|
|
fallbackUsed: false,
|
|
blockedActions: 1,
|
|
});
|
|
|
|
telemetry.recordTurn({
|
|
validEnvelope: false,
|
|
repairAttempted: true,
|
|
fallbackUsed: true,
|
|
blockedActions: 2,
|
|
});
|
|
|
|
const snapshot = telemetry.getSnapshot();
|
|
|
|
expect(snapshot.totalTurns).toBe(3);
|
|
expect(snapshot.validEnvelopeTurns).toBe(2);
|
|
expect(snapshot.repairAttempts).toBe(2);
|
|
expect(snapshot.fallbackTurns).toBe(1);
|
|
expect(snapshot.blockedActionCount).toBe(3);
|
|
expect(snapshot.parseValidityRate).toBeCloseTo(2 / 3, 5);
|
|
});
|
|
});
|