@kuralle-syrinx/recorder 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,118 @@
1
+ import { type PipelineBus, type PluginConfig, type VoicePlugin } from "@kuralle-syrinx/core";
2
+ export { interleaveStereoPcm16, pcm16ToWav } from "./wav.js";
3
+ export interface VoiceSessionRecorderConfig {
4
+ readonly outputDir: string;
5
+ readonly sessionId?: string;
6
+ readonly eventsFile?: string;
7
+ readonly userAudioFile?: string;
8
+ readonly assistantAudioFile?: string;
9
+ readonly manifestFile?: string;
10
+ readonly conversationFile?: string;
11
+ readonly userSampleRateHz?: number;
12
+ readonly assistantSampleRateHz?: number;
13
+ }
14
+ export interface VoiceSessionRecorderFiles {
15
+ readonly directory: string;
16
+ readonly eventsPath: string;
17
+ readonly userAudioPath: string;
18
+ readonly assistantAudioPath: string;
19
+ readonly manifestPath: string;
20
+ readonly conversationAudioPath?: string;
21
+ }
22
+ export interface VoiceSessionRecorderManifest {
23
+ readonly schemaVersion: 1;
24
+ readonly sessionId?: string;
25
+ readonly startedAtMs: number;
26
+ readonly closedAtMs: number;
27
+ readonly files: VoiceSessionRecorderFiles;
28
+ readonly audio: {
29
+ readonly user: {
30
+ readonly path: string;
31
+ readonly sampleRateHz: number;
32
+ readonly encoding: "pcm_s16le";
33
+ readonly channels: 1;
34
+ readonly byteLength: number;
35
+ readonly durationMs: number;
36
+ readonly chunks: number;
37
+ };
38
+ readonly assistant: {
39
+ readonly path: string;
40
+ readonly sampleRateHz: number;
41
+ readonly encoding: "pcm_s16le";
42
+ readonly channels: 1;
43
+ readonly byteLength: number;
44
+ readonly durationMs: number;
45
+ readonly chunks: number;
46
+ readonly truncations: number;
47
+ };
48
+ readonly conversation?: {
49
+ readonly path: string;
50
+ readonly sampleRateHz: number;
51
+ readonly channels: 2;
52
+ readonly encoding: "pcm_s16le";
53
+ readonly byteLength: number;
54
+ readonly durationMs: number;
55
+ };
56
+ };
57
+ readonly events: {
58
+ readonly path: string;
59
+ readonly packets: number;
60
+ readonly byteLength: number;
61
+ };
62
+ }
63
+ export declare class VoiceSessionRecorder implements VoicePlugin {
64
+ private bus;
65
+ private events;
66
+ private userAudio;
67
+ private assistantAudio;
68
+ private sessionId;
69
+ private userSampleRateHz;
70
+ private userChunks;
71
+ private userCursorBytes;
72
+ private assistantChunks;
73
+ private assistantCursorBytes;
74
+ private assistantPlayoutStartMs;
75
+ private assistantSampleRateHz;
76
+ private assistantSampleRateLocked;
77
+ private startedAtMs;
78
+ private userAudioBytes;
79
+ private userAudioChunks;
80
+ private assistantAudioBytes;
81
+ private assistantAudioChunks;
82
+ private assistantTruncations;
83
+ private eventBytes;
84
+ private eventPackets;
85
+ private conversationFile;
86
+ private conversationAudioPath;
87
+ private conversationAudioBytes;
88
+ private packetReader;
89
+ private packetPump;
90
+ private pendingWrites;
91
+ private closing;
92
+ private writeFailure;
93
+ private filesValue;
94
+ get files(): VoiceSessionRecorderFiles | null;
95
+ initialize(bus: PipelineBus, config: PluginConfig): Promise<void>;
96
+ close(): Promise<void>;
97
+ private recordPackets;
98
+ private writeEvent;
99
+ private recordUserAudio;
100
+ private recordAssistantAudio;
101
+ private recordPlayoutProgress;
102
+ private truncateAssistantAudio;
103
+ private flushUserAudio;
104
+ private flushAssistantAudio;
105
+ private writeConversationWav;
106
+ private writeManifest;
107
+ private currentUserWallOffsetBytes;
108
+ private currentAssistantWallOffsetBytes;
109
+ private reanchorAssistantToPlayout;
110
+ private writeStreamData;
111
+ private validatePcm16ByteLength;
112
+ private acceptAssistantSampleRate;
113
+ private waitForPendingWrites;
114
+ }
115
+ export declare function createVoiceSessionRecorder(config: VoiceSessionRecorderConfig): VoiceSessionRecorder;
116
+ export declare function assertVoiceSessionRecorderManifest(manifest: unknown): asserts manifest is VoiceSessionRecorderManifest;
117
+ export declare function validateVoiceSessionRecorderManifest(manifest: unknown): string[];
118
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}