@buildlog/types 1.0.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,2515 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * @buildlog/types
5
+ * Type definitions for the .buildlog file format
6
+ */
7
+ /**
8
+ * The root structure of a .buildlog file
9
+ */
10
+ interface BuildlogFile {
11
+ /** Schema version (semver) */
12
+ version: "1.0.0";
13
+ /** Session metadata */
14
+ metadata: BuildlogMetadata;
15
+ /** Starting state of tracked files */
16
+ initialState: BuildlogState;
17
+ /** Ordered list of events that occurred during the session */
18
+ events: BuildlogEvent[];
19
+ /** Ending state of tracked files */
20
+ finalState: BuildlogState;
21
+ }
22
+ /**
23
+ * Metadata about the recording session
24
+ */
25
+ interface BuildlogMetadata {
26
+ /** Unique identifier (UUID v4) */
27
+ id: string;
28
+ /** Human-readable title */
29
+ title: string;
30
+ /** Optional longer description */
31
+ description?: string;
32
+ /** Author information */
33
+ author?: BuildlogAuthor;
34
+ /** When the session was recorded (ISO 8601) */
35
+ createdAt: string;
36
+ /** When the file was last modified (ISO 8601) */
37
+ updatedAt?: string;
38
+ /** Total session duration in seconds */
39
+ durationSeconds: number;
40
+ /** Editor/IDE used */
41
+ editor: EditorType;
42
+ /** AI provider(s) used */
43
+ aiProviders?: AIProvider[];
44
+ /** Primary programming language */
45
+ primaryLanguage?: string;
46
+ /** All languages detected */
47
+ languages?: string[];
48
+ /** User-applied tags for discovery */
49
+ tags?: string[];
50
+ /** Project/repository information */
51
+ project?: BuildlogProject;
52
+ /** Arbitrary key-value pairs for extensibility */
53
+ custom?: Record<string, unknown>;
54
+ }
55
+ interface BuildlogAuthor {
56
+ name?: string;
57
+ username?: string;
58
+ url?: string;
59
+ avatarUrl?: string;
60
+ }
61
+ interface BuildlogProject {
62
+ name?: string;
63
+ repository?: string;
64
+ branch?: string;
65
+ commit?: string;
66
+ }
67
+ type EditorType = "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
68
+ type AIProvider = "claude" | "gpt" | "copilot" | "gemini" | "other";
69
+ /**
70
+ * Snapshot of file system state at a point in time
71
+ */
72
+ interface BuildlogState {
73
+ /** List of file snapshots */
74
+ files: FileSnapshot[];
75
+ /** Working directory structure (file tree without content) */
76
+ fileTree?: string[];
77
+ }
78
+ /**
79
+ * A single file's content at a point in time
80
+ */
81
+ interface FileSnapshot {
82
+ /** Relative path from workspace root */
83
+ path: string;
84
+ /** Full file content */
85
+ content: string;
86
+ /** Language identifier for syntax highlighting */
87
+ language: string;
88
+ /** File size in bytes */
89
+ sizeBytes?: number;
90
+ /** SHA-256 hash of content (for integrity checking) */
91
+ hash?: string;
92
+ }
93
+ /**
94
+ * Union type of all possible events
95
+ */
96
+ type BuildlogEvent = PromptEvent | AIResponseEvent | CodeChangeEvent | FileCreateEvent | FileDeleteEvent | FileRenameEvent | TerminalEvent | NoteEvent | CheckpointEvent | ErrorEvent;
97
+ /**
98
+ * Base fields present on all events
99
+ */
100
+ interface BaseEvent {
101
+ /** Unique event identifier (UUID v4) */
102
+ id: string;
103
+ /** Seconds elapsed since session start */
104
+ timestamp: number;
105
+ /** Event sequence number (0-indexed) */
106
+ sequence: number;
107
+ }
108
+ /**
109
+ * User prompt sent to AI
110
+ */
111
+ interface PromptEvent extends BaseEvent {
112
+ type: "prompt";
113
+ /** The prompt text */
114
+ content: string;
115
+ /** Files explicitly attached/referenced as context */
116
+ contextFiles?: string[];
117
+ /** Selected text that was highlighted when prompting */
118
+ selection?: TextSelection;
119
+ /** Which AI provider received this prompt */
120
+ provider?: AIProvider;
121
+ /** Model identifier if known */
122
+ model?: string;
123
+ }
124
+ interface TextSelection {
125
+ filePath: string;
126
+ startLine: number;
127
+ endLine: number;
128
+ text: string;
129
+ }
130
+ /**
131
+ * AI response to a prompt
132
+ */
133
+ interface AIResponseEvent extends BaseEvent {
134
+ type: "ai_response";
135
+ /** The AI's text response */
136
+ content: string;
137
+ /** Code blocks extracted from the response */
138
+ codeBlocks?: CodeBlock[];
139
+ /** ID of the prompt this responds to */
140
+ promptEventId?: string;
141
+ /** Which AI provider generated this */
142
+ provider?: AIProvider;
143
+ /** Model identifier if known */
144
+ model?: string;
145
+ /** Token usage if available */
146
+ tokenUsage?: TokenUsage;
147
+ }
148
+ interface CodeBlock {
149
+ /** Programming language */
150
+ language: string;
151
+ /** The code content */
152
+ code: string;
153
+ /** Target file path if AI specified one */
154
+ filePath?: string;
155
+ /** Start line if AI specified line numbers */
156
+ startLine?: number;
157
+ }
158
+ interface TokenUsage {
159
+ input?: number;
160
+ output?: number;
161
+ }
162
+ /**
163
+ * Code modification in an existing file
164
+ */
165
+ interface CodeChangeEvent extends BaseEvent {
166
+ type: "code_change";
167
+ /** File that was changed */
168
+ filePath: string;
169
+ /** Unified diff format */
170
+ diff: string;
171
+ /** How the change was made */
172
+ source: ChangeSource;
173
+ /** Lines changed summary */
174
+ linesChanged?: LinesChanged;
175
+ /** ID of AI response that suggested this change (if applicable) */
176
+ aiResponseEventId?: string;
177
+ }
178
+ type ChangeSource = "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
179
+ interface LinesChanged {
180
+ added: number;
181
+ removed: number;
182
+ }
183
+ /**
184
+ * New file creation
185
+ */
186
+ interface FileCreateEvent extends BaseEvent {
187
+ type: "file_create";
188
+ /** Path of new file */
189
+ filePath: string;
190
+ /** Initial content */
191
+ content: string;
192
+ /** Language for syntax highlighting */
193
+ language: string;
194
+ /** How the file was created */
195
+ source: "manual" | "ai_accepted";
196
+ /** ID of AI response that suggested this file (if applicable) */
197
+ aiResponseEventId?: string;
198
+ }
199
+ /**
200
+ * File deletion
201
+ */
202
+ interface FileDeleteEvent extends BaseEvent {
203
+ type: "file_delete";
204
+ /** Path of deleted file */
205
+ filePath: string;
206
+ /** Content at time of deletion (for undo/reference) */
207
+ previousContent?: string;
208
+ }
209
+ /**
210
+ * File rename/move
211
+ */
212
+ interface FileRenameEvent extends BaseEvent {
213
+ type: "file_rename";
214
+ /** Original path */
215
+ fromPath: string;
216
+ /** New path */
217
+ toPath: string;
218
+ }
219
+ /**
220
+ * Terminal command execution
221
+ */
222
+ interface TerminalEvent extends BaseEvent {
223
+ type: "terminal";
224
+ /** Command that was run */
225
+ command: string;
226
+ /** Terminal output (may be truncated) */
227
+ output?: string;
228
+ /** Exit code if process completed */
229
+ exitCode?: number;
230
+ /** Working directory */
231
+ cwd?: string;
232
+ /** Duration in seconds */
233
+ durationSeconds?: number;
234
+ }
235
+ /**
236
+ * User annotation/commentary
237
+ */
238
+ interface NoteEvent extends BaseEvent {
239
+ type: "note";
240
+ /** Note content (supports markdown) */
241
+ content: string;
242
+ /** Optional category */
243
+ category?: NoteCategory;
244
+ /** Reference to specific file/line */
245
+ reference?: NoteReference;
246
+ }
247
+ type NoteCategory = "explanation" | "gotcha" | "tip" | "warning" | "todo";
248
+ interface NoteReference {
249
+ filePath: string;
250
+ startLine?: number;
251
+ endLine?: number;
252
+ }
253
+ /**
254
+ * Named checkpoint/milestone in the session
255
+ */
256
+ interface CheckpointEvent extends BaseEvent {
257
+ type: "checkpoint";
258
+ /** Checkpoint name */
259
+ name: string;
260
+ /** Description of what's been accomplished */
261
+ description?: string;
262
+ /** Snapshot of all files at this point */
263
+ state?: BuildlogState;
264
+ }
265
+ /**
266
+ * Error that occurred during the session
267
+ */
268
+ interface ErrorEvent extends BaseEvent {
269
+ type: "error";
270
+ /** Error message */
271
+ message: string;
272
+ /** Error category */
273
+ category: ErrorCategory;
274
+ /** File where error occurred */
275
+ filePath?: string;
276
+ /** Line number */
277
+ line?: number;
278
+ /** Full stack trace */
279
+ stackTrace?: string;
280
+ /** Whether this error was resolved during the session */
281
+ resolved?: boolean;
282
+ /** ID of event that resolved it */
283
+ resolvedByEventId?: string;
284
+ }
285
+ type ErrorCategory = "build" | "runtime" | "lint" | "type" | "test" | "other";
286
+ /** All possible event types */
287
+ type EventType = BuildlogEvent["type"];
288
+ /** Map from event type string to event interface */
289
+ type EventByType<T extends EventType> = Extract<BuildlogEvent, {
290
+ type: T;
291
+ }>;
292
+ /** Validation result */
293
+ interface ValidationResult {
294
+ valid: boolean;
295
+ errors?: ValidationError[];
296
+ }
297
+ interface ValidationError {
298
+ path: string;
299
+ message: string;
300
+ code: string;
301
+ }
302
+ /** Stats computed from a buildlog */
303
+ interface BuildlogStats {
304
+ durationSeconds: number;
305
+ eventCount: number;
306
+ promptCount: number;
307
+ responseCount: number;
308
+ fileCount: number;
309
+ linesAdded: number;
310
+ linesRemoved: number;
311
+ languages: string[];
312
+ }
313
+
314
+ declare const EditorTypeSchema: z.ZodEnum<["cursor", "vscode", "windsurf", "zed", "neovim", "jetbrains", "openclaw", "other"]>;
315
+ declare const AIProviderSchema: z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>;
316
+ declare const ChangeSourceSchema: z.ZodEnum<["manual", "ai_accepted", "ai_partial", "ai_rejected_then_manual"]>;
317
+ declare const NoteCategorySchema: z.ZodEnum<["explanation", "gotcha", "tip", "warning", "todo"]>;
318
+ declare const ErrorCategorySchema: z.ZodEnum<["build", "runtime", "lint", "type", "test", "other"]>;
319
+ declare const BuildlogAuthorSchema: z.ZodObject<{
320
+ name: z.ZodOptional<z.ZodString>;
321
+ username: z.ZodOptional<z.ZodString>;
322
+ url: z.ZodOptional<z.ZodString>;
323
+ avatarUrl: z.ZodOptional<z.ZodString>;
324
+ }, "strip", z.ZodTypeAny, {
325
+ name?: string | undefined;
326
+ username?: string | undefined;
327
+ url?: string | undefined;
328
+ avatarUrl?: string | undefined;
329
+ }, {
330
+ name?: string | undefined;
331
+ username?: string | undefined;
332
+ url?: string | undefined;
333
+ avatarUrl?: string | undefined;
334
+ }>;
335
+ declare const BuildlogProjectSchema: z.ZodObject<{
336
+ name: z.ZodOptional<z.ZodString>;
337
+ repository: z.ZodOptional<z.ZodString>;
338
+ branch: z.ZodOptional<z.ZodString>;
339
+ commit: z.ZodOptional<z.ZodString>;
340
+ }, "strip", z.ZodTypeAny, {
341
+ name?: string | undefined;
342
+ repository?: string | undefined;
343
+ branch?: string | undefined;
344
+ commit?: string | undefined;
345
+ }, {
346
+ name?: string | undefined;
347
+ repository?: string | undefined;
348
+ branch?: string | undefined;
349
+ commit?: string | undefined;
350
+ }>;
351
+ declare const FileSnapshotSchema: z.ZodObject<{
352
+ path: z.ZodString;
353
+ content: z.ZodString;
354
+ language: z.ZodString;
355
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
356
+ hash: z.ZodOptional<z.ZodString>;
357
+ }, "strip", z.ZodTypeAny, {
358
+ path: string;
359
+ content: string;
360
+ language: string;
361
+ sizeBytes?: number | undefined;
362
+ hash?: string | undefined;
363
+ }, {
364
+ path: string;
365
+ content: string;
366
+ language: string;
367
+ sizeBytes?: number | undefined;
368
+ hash?: string | undefined;
369
+ }>;
370
+ declare const BuildlogStateSchema: z.ZodObject<{
371
+ files: z.ZodArray<z.ZodObject<{
372
+ path: z.ZodString;
373
+ content: z.ZodString;
374
+ language: z.ZodString;
375
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
376
+ hash: z.ZodOptional<z.ZodString>;
377
+ }, "strip", z.ZodTypeAny, {
378
+ path: string;
379
+ content: string;
380
+ language: string;
381
+ sizeBytes?: number | undefined;
382
+ hash?: string | undefined;
383
+ }, {
384
+ path: string;
385
+ content: string;
386
+ language: string;
387
+ sizeBytes?: number | undefined;
388
+ hash?: string | undefined;
389
+ }>, "many">;
390
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
391
+ }, "strip", z.ZodTypeAny, {
392
+ files: {
393
+ path: string;
394
+ content: string;
395
+ language: string;
396
+ sizeBytes?: number | undefined;
397
+ hash?: string | undefined;
398
+ }[];
399
+ fileTree?: string[] | undefined;
400
+ }, {
401
+ files: {
402
+ path: string;
403
+ content: string;
404
+ language: string;
405
+ sizeBytes?: number | undefined;
406
+ hash?: string | undefined;
407
+ }[];
408
+ fileTree?: string[] | undefined;
409
+ }>;
410
+ declare const TextSelectionSchema: z.ZodObject<{
411
+ filePath: z.ZodString;
412
+ startLine: z.ZodNumber;
413
+ endLine: z.ZodNumber;
414
+ text: z.ZodString;
415
+ }, "strip", z.ZodTypeAny, {
416
+ filePath: string;
417
+ startLine: number;
418
+ endLine: number;
419
+ text: string;
420
+ }, {
421
+ filePath: string;
422
+ startLine: number;
423
+ endLine: number;
424
+ text: string;
425
+ }>;
426
+ declare const CodeBlockSchema: z.ZodObject<{
427
+ language: z.ZodString;
428
+ code: z.ZodString;
429
+ filePath: z.ZodOptional<z.ZodString>;
430
+ startLine: z.ZodOptional<z.ZodNumber>;
431
+ }, "strip", z.ZodTypeAny, {
432
+ code: string;
433
+ language: string;
434
+ filePath?: string | undefined;
435
+ startLine?: number | undefined;
436
+ }, {
437
+ code: string;
438
+ language: string;
439
+ filePath?: string | undefined;
440
+ startLine?: number | undefined;
441
+ }>;
442
+ declare const TokenUsageSchema: z.ZodObject<{
443
+ input: z.ZodOptional<z.ZodNumber>;
444
+ output: z.ZodOptional<z.ZodNumber>;
445
+ }, "strip", z.ZodTypeAny, {
446
+ input?: number | undefined;
447
+ output?: number | undefined;
448
+ }, {
449
+ input?: number | undefined;
450
+ output?: number | undefined;
451
+ }>;
452
+ declare const LinesChangedSchema: z.ZodObject<{
453
+ added: z.ZodNumber;
454
+ removed: z.ZodNumber;
455
+ }, "strip", z.ZodTypeAny, {
456
+ added: number;
457
+ removed: number;
458
+ }, {
459
+ added: number;
460
+ removed: number;
461
+ }>;
462
+ declare const NoteReferenceSchema: z.ZodObject<{
463
+ filePath: z.ZodString;
464
+ startLine: z.ZodOptional<z.ZodNumber>;
465
+ endLine: z.ZodOptional<z.ZodNumber>;
466
+ }, "strip", z.ZodTypeAny, {
467
+ filePath: string;
468
+ startLine?: number | undefined;
469
+ endLine?: number | undefined;
470
+ }, {
471
+ filePath: string;
472
+ startLine?: number | undefined;
473
+ endLine?: number | undefined;
474
+ }>;
475
+ declare const PromptEventSchema: z.ZodObject<{
476
+ id: z.ZodString;
477
+ timestamp: z.ZodNumber;
478
+ sequence: z.ZodNumber;
479
+ } & {
480
+ type: z.ZodLiteral<"prompt">;
481
+ content: z.ZodString;
482
+ contextFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
483
+ selection: z.ZodOptional<z.ZodObject<{
484
+ filePath: z.ZodString;
485
+ startLine: z.ZodNumber;
486
+ endLine: z.ZodNumber;
487
+ text: z.ZodString;
488
+ }, "strip", z.ZodTypeAny, {
489
+ filePath: string;
490
+ startLine: number;
491
+ endLine: number;
492
+ text: string;
493
+ }, {
494
+ filePath: string;
495
+ startLine: number;
496
+ endLine: number;
497
+ text: string;
498
+ }>>;
499
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
500
+ model: z.ZodOptional<z.ZodString>;
501
+ }, "strip", z.ZodTypeAny, {
502
+ type: "prompt";
503
+ content: string;
504
+ id: string;
505
+ timestamp: number;
506
+ sequence: number;
507
+ contextFiles?: string[] | undefined;
508
+ selection?: {
509
+ filePath: string;
510
+ startLine: number;
511
+ endLine: number;
512
+ text: string;
513
+ } | undefined;
514
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
515
+ model?: string | undefined;
516
+ }, {
517
+ type: "prompt";
518
+ content: string;
519
+ id: string;
520
+ timestamp: number;
521
+ sequence: number;
522
+ contextFiles?: string[] | undefined;
523
+ selection?: {
524
+ filePath: string;
525
+ startLine: number;
526
+ endLine: number;
527
+ text: string;
528
+ } | undefined;
529
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
530
+ model?: string | undefined;
531
+ }>;
532
+ declare const AIResponseEventSchema: z.ZodObject<{
533
+ id: z.ZodString;
534
+ timestamp: z.ZodNumber;
535
+ sequence: z.ZodNumber;
536
+ } & {
537
+ type: z.ZodLiteral<"ai_response">;
538
+ content: z.ZodString;
539
+ codeBlocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
540
+ language: z.ZodString;
541
+ code: z.ZodString;
542
+ filePath: z.ZodOptional<z.ZodString>;
543
+ startLine: z.ZodOptional<z.ZodNumber>;
544
+ }, "strip", z.ZodTypeAny, {
545
+ code: string;
546
+ language: string;
547
+ filePath?: string | undefined;
548
+ startLine?: number | undefined;
549
+ }, {
550
+ code: string;
551
+ language: string;
552
+ filePath?: string | undefined;
553
+ startLine?: number | undefined;
554
+ }>, "many">>;
555
+ promptEventId: z.ZodOptional<z.ZodString>;
556
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
557
+ model: z.ZodOptional<z.ZodString>;
558
+ tokenUsage: z.ZodOptional<z.ZodObject<{
559
+ input: z.ZodOptional<z.ZodNumber>;
560
+ output: z.ZodOptional<z.ZodNumber>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ input?: number | undefined;
563
+ output?: number | undefined;
564
+ }, {
565
+ input?: number | undefined;
566
+ output?: number | undefined;
567
+ }>>;
568
+ }, "strip", z.ZodTypeAny, {
569
+ type: "ai_response";
570
+ content: string;
571
+ id: string;
572
+ timestamp: number;
573
+ sequence: number;
574
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
575
+ model?: string | undefined;
576
+ codeBlocks?: {
577
+ code: string;
578
+ language: string;
579
+ filePath?: string | undefined;
580
+ startLine?: number | undefined;
581
+ }[] | undefined;
582
+ promptEventId?: string | undefined;
583
+ tokenUsage?: {
584
+ input?: number | undefined;
585
+ output?: number | undefined;
586
+ } | undefined;
587
+ }, {
588
+ type: "ai_response";
589
+ content: string;
590
+ id: string;
591
+ timestamp: number;
592
+ sequence: number;
593
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
594
+ model?: string | undefined;
595
+ codeBlocks?: {
596
+ code: string;
597
+ language: string;
598
+ filePath?: string | undefined;
599
+ startLine?: number | undefined;
600
+ }[] | undefined;
601
+ promptEventId?: string | undefined;
602
+ tokenUsage?: {
603
+ input?: number | undefined;
604
+ output?: number | undefined;
605
+ } | undefined;
606
+ }>;
607
+ declare const CodeChangeEventSchema: z.ZodObject<{
608
+ id: z.ZodString;
609
+ timestamp: z.ZodNumber;
610
+ sequence: z.ZodNumber;
611
+ } & {
612
+ type: z.ZodLiteral<"code_change">;
613
+ filePath: z.ZodString;
614
+ diff: z.ZodString;
615
+ source: z.ZodEnum<["manual", "ai_accepted", "ai_partial", "ai_rejected_then_manual"]>;
616
+ linesChanged: z.ZodOptional<z.ZodObject<{
617
+ added: z.ZodNumber;
618
+ removed: z.ZodNumber;
619
+ }, "strip", z.ZodTypeAny, {
620
+ added: number;
621
+ removed: number;
622
+ }, {
623
+ added: number;
624
+ removed: number;
625
+ }>>;
626
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
627
+ }, "strip", z.ZodTypeAny, {
628
+ type: "code_change";
629
+ filePath: string;
630
+ id: string;
631
+ timestamp: number;
632
+ sequence: number;
633
+ diff: string;
634
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
635
+ linesChanged?: {
636
+ added: number;
637
+ removed: number;
638
+ } | undefined;
639
+ aiResponseEventId?: string | undefined;
640
+ }, {
641
+ type: "code_change";
642
+ filePath: string;
643
+ id: string;
644
+ timestamp: number;
645
+ sequence: number;
646
+ diff: string;
647
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
648
+ linesChanged?: {
649
+ added: number;
650
+ removed: number;
651
+ } | undefined;
652
+ aiResponseEventId?: string | undefined;
653
+ }>;
654
+ declare const FileCreateEventSchema: z.ZodObject<{
655
+ id: z.ZodString;
656
+ timestamp: z.ZodNumber;
657
+ sequence: z.ZodNumber;
658
+ } & {
659
+ type: z.ZodLiteral<"file_create">;
660
+ filePath: z.ZodString;
661
+ content: z.ZodString;
662
+ language: z.ZodString;
663
+ source: z.ZodEnum<["manual", "ai_accepted"]>;
664
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
665
+ }, "strip", z.ZodTypeAny, {
666
+ type: "file_create";
667
+ content: string;
668
+ language: string;
669
+ filePath: string;
670
+ id: string;
671
+ timestamp: number;
672
+ sequence: number;
673
+ source: "manual" | "ai_accepted";
674
+ aiResponseEventId?: string | undefined;
675
+ }, {
676
+ type: "file_create";
677
+ content: string;
678
+ language: string;
679
+ filePath: string;
680
+ id: string;
681
+ timestamp: number;
682
+ sequence: number;
683
+ source: "manual" | "ai_accepted";
684
+ aiResponseEventId?: string | undefined;
685
+ }>;
686
+ declare const FileDeleteEventSchema: z.ZodObject<{
687
+ id: z.ZodString;
688
+ timestamp: z.ZodNumber;
689
+ sequence: z.ZodNumber;
690
+ } & {
691
+ type: z.ZodLiteral<"file_delete">;
692
+ filePath: z.ZodString;
693
+ previousContent: z.ZodOptional<z.ZodString>;
694
+ }, "strip", z.ZodTypeAny, {
695
+ type: "file_delete";
696
+ filePath: string;
697
+ id: string;
698
+ timestamp: number;
699
+ sequence: number;
700
+ previousContent?: string | undefined;
701
+ }, {
702
+ type: "file_delete";
703
+ filePath: string;
704
+ id: string;
705
+ timestamp: number;
706
+ sequence: number;
707
+ previousContent?: string | undefined;
708
+ }>;
709
+ declare const FileRenameEventSchema: z.ZodObject<{
710
+ id: z.ZodString;
711
+ timestamp: z.ZodNumber;
712
+ sequence: z.ZodNumber;
713
+ } & {
714
+ type: z.ZodLiteral<"file_rename">;
715
+ fromPath: z.ZodString;
716
+ toPath: z.ZodString;
717
+ }, "strip", z.ZodTypeAny, {
718
+ type: "file_rename";
719
+ id: string;
720
+ timestamp: number;
721
+ sequence: number;
722
+ fromPath: string;
723
+ toPath: string;
724
+ }, {
725
+ type: "file_rename";
726
+ id: string;
727
+ timestamp: number;
728
+ sequence: number;
729
+ fromPath: string;
730
+ toPath: string;
731
+ }>;
732
+ declare const TerminalEventSchema: z.ZodObject<{
733
+ id: z.ZodString;
734
+ timestamp: z.ZodNumber;
735
+ sequence: z.ZodNumber;
736
+ } & {
737
+ type: z.ZodLiteral<"terminal">;
738
+ command: z.ZodString;
739
+ output: z.ZodOptional<z.ZodString>;
740
+ exitCode: z.ZodOptional<z.ZodNumber>;
741
+ cwd: z.ZodOptional<z.ZodString>;
742
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
743
+ }, "strip", z.ZodTypeAny, {
744
+ type: "terminal";
745
+ id: string;
746
+ timestamp: number;
747
+ sequence: number;
748
+ command: string;
749
+ output?: string | undefined;
750
+ exitCode?: number | undefined;
751
+ cwd?: string | undefined;
752
+ durationSeconds?: number | undefined;
753
+ }, {
754
+ type: "terminal";
755
+ id: string;
756
+ timestamp: number;
757
+ sequence: number;
758
+ command: string;
759
+ output?: string | undefined;
760
+ exitCode?: number | undefined;
761
+ cwd?: string | undefined;
762
+ durationSeconds?: number | undefined;
763
+ }>;
764
+ declare const NoteEventSchema: z.ZodObject<{
765
+ id: z.ZodString;
766
+ timestamp: z.ZodNumber;
767
+ sequence: z.ZodNumber;
768
+ } & {
769
+ type: z.ZodLiteral<"note">;
770
+ content: z.ZodString;
771
+ category: z.ZodOptional<z.ZodEnum<["explanation", "gotcha", "tip", "warning", "todo"]>>;
772
+ reference: z.ZodOptional<z.ZodObject<{
773
+ filePath: z.ZodString;
774
+ startLine: z.ZodOptional<z.ZodNumber>;
775
+ endLine: z.ZodOptional<z.ZodNumber>;
776
+ }, "strip", z.ZodTypeAny, {
777
+ filePath: string;
778
+ startLine?: number | undefined;
779
+ endLine?: number | undefined;
780
+ }, {
781
+ filePath: string;
782
+ startLine?: number | undefined;
783
+ endLine?: number | undefined;
784
+ }>>;
785
+ }, "strip", z.ZodTypeAny, {
786
+ type: "note";
787
+ content: string;
788
+ id: string;
789
+ timestamp: number;
790
+ sequence: number;
791
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
792
+ reference?: {
793
+ filePath: string;
794
+ startLine?: number | undefined;
795
+ endLine?: number | undefined;
796
+ } | undefined;
797
+ }, {
798
+ type: "note";
799
+ content: string;
800
+ id: string;
801
+ timestamp: number;
802
+ sequence: number;
803
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
804
+ reference?: {
805
+ filePath: string;
806
+ startLine?: number | undefined;
807
+ endLine?: number | undefined;
808
+ } | undefined;
809
+ }>;
810
+ declare const CheckpointEventSchema: z.ZodObject<{
811
+ id: z.ZodString;
812
+ timestamp: z.ZodNumber;
813
+ sequence: z.ZodNumber;
814
+ } & {
815
+ type: z.ZodLiteral<"checkpoint">;
816
+ name: z.ZodString;
817
+ description: z.ZodOptional<z.ZodString>;
818
+ state: z.ZodOptional<z.ZodObject<{
819
+ files: z.ZodArray<z.ZodObject<{
820
+ path: z.ZodString;
821
+ content: z.ZodString;
822
+ language: z.ZodString;
823
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
824
+ hash: z.ZodOptional<z.ZodString>;
825
+ }, "strip", z.ZodTypeAny, {
826
+ path: string;
827
+ content: string;
828
+ language: string;
829
+ sizeBytes?: number | undefined;
830
+ hash?: string | undefined;
831
+ }, {
832
+ path: string;
833
+ content: string;
834
+ language: string;
835
+ sizeBytes?: number | undefined;
836
+ hash?: string | undefined;
837
+ }>, "many">;
838
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
839
+ }, "strip", z.ZodTypeAny, {
840
+ files: {
841
+ path: string;
842
+ content: string;
843
+ language: string;
844
+ sizeBytes?: number | undefined;
845
+ hash?: string | undefined;
846
+ }[];
847
+ fileTree?: string[] | undefined;
848
+ }, {
849
+ files: {
850
+ path: string;
851
+ content: string;
852
+ language: string;
853
+ sizeBytes?: number | undefined;
854
+ hash?: string | undefined;
855
+ }[];
856
+ fileTree?: string[] | undefined;
857
+ }>>;
858
+ }, "strip", z.ZodTypeAny, {
859
+ type: "checkpoint";
860
+ name: string;
861
+ id: string;
862
+ timestamp: number;
863
+ sequence: number;
864
+ description?: string | undefined;
865
+ state?: {
866
+ files: {
867
+ path: string;
868
+ content: string;
869
+ language: string;
870
+ sizeBytes?: number | undefined;
871
+ hash?: string | undefined;
872
+ }[];
873
+ fileTree?: string[] | undefined;
874
+ } | undefined;
875
+ }, {
876
+ type: "checkpoint";
877
+ name: string;
878
+ id: string;
879
+ timestamp: number;
880
+ sequence: number;
881
+ description?: string | undefined;
882
+ state?: {
883
+ files: {
884
+ path: string;
885
+ content: string;
886
+ language: string;
887
+ sizeBytes?: number | undefined;
888
+ hash?: string | undefined;
889
+ }[];
890
+ fileTree?: string[] | undefined;
891
+ } | undefined;
892
+ }>;
893
+ declare const ErrorEventSchema: z.ZodObject<{
894
+ id: z.ZodString;
895
+ timestamp: z.ZodNumber;
896
+ sequence: z.ZodNumber;
897
+ } & {
898
+ type: z.ZodLiteral<"error">;
899
+ message: z.ZodString;
900
+ category: z.ZodEnum<["build", "runtime", "lint", "type", "test", "other"]>;
901
+ filePath: z.ZodOptional<z.ZodString>;
902
+ line: z.ZodOptional<z.ZodNumber>;
903
+ stackTrace: z.ZodOptional<z.ZodString>;
904
+ resolved: z.ZodOptional<z.ZodBoolean>;
905
+ resolvedByEventId: z.ZodOptional<z.ZodString>;
906
+ }, "strip", z.ZodTypeAny, {
907
+ type: "error";
908
+ message: string;
909
+ id: string;
910
+ timestamp: number;
911
+ sequence: number;
912
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
913
+ filePath?: string | undefined;
914
+ line?: number | undefined;
915
+ stackTrace?: string | undefined;
916
+ resolved?: boolean | undefined;
917
+ resolvedByEventId?: string | undefined;
918
+ }, {
919
+ type: "error";
920
+ message: string;
921
+ id: string;
922
+ timestamp: number;
923
+ sequence: number;
924
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
925
+ filePath?: string | undefined;
926
+ line?: number | undefined;
927
+ stackTrace?: string | undefined;
928
+ resolved?: boolean | undefined;
929
+ resolvedByEventId?: string | undefined;
930
+ }>;
931
+ declare const BuildlogEventSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
932
+ id: z.ZodString;
933
+ timestamp: z.ZodNumber;
934
+ sequence: z.ZodNumber;
935
+ } & {
936
+ type: z.ZodLiteral<"prompt">;
937
+ content: z.ZodString;
938
+ contextFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
939
+ selection: z.ZodOptional<z.ZodObject<{
940
+ filePath: z.ZodString;
941
+ startLine: z.ZodNumber;
942
+ endLine: z.ZodNumber;
943
+ text: z.ZodString;
944
+ }, "strip", z.ZodTypeAny, {
945
+ filePath: string;
946
+ startLine: number;
947
+ endLine: number;
948
+ text: string;
949
+ }, {
950
+ filePath: string;
951
+ startLine: number;
952
+ endLine: number;
953
+ text: string;
954
+ }>>;
955
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
956
+ model: z.ZodOptional<z.ZodString>;
957
+ }, "strip", z.ZodTypeAny, {
958
+ type: "prompt";
959
+ content: string;
960
+ id: string;
961
+ timestamp: number;
962
+ sequence: number;
963
+ contextFiles?: string[] | undefined;
964
+ selection?: {
965
+ filePath: string;
966
+ startLine: number;
967
+ endLine: number;
968
+ text: string;
969
+ } | undefined;
970
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
971
+ model?: string | undefined;
972
+ }, {
973
+ type: "prompt";
974
+ content: string;
975
+ id: string;
976
+ timestamp: number;
977
+ sequence: number;
978
+ contextFiles?: string[] | undefined;
979
+ selection?: {
980
+ filePath: string;
981
+ startLine: number;
982
+ endLine: number;
983
+ text: string;
984
+ } | undefined;
985
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
986
+ model?: string | undefined;
987
+ }>, z.ZodObject<{
988
+ id: z.ZodString;
989
+ timestamp: z.ZodNumber;
990
+ sequence: z.ZodNumber;
991
+ } & {
992
+ type: z.ZodLiteral<"ai_response">;
993
+ content: z.ZodString;
994
+ codeBlocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
995
+ language: z.ZodString;
996
+ code: z.ZodString;
997
+ filePath: z.ZodOptional<z.ZodString>;
998
+ startLine: z.ZodOptional<z.ZodNumber>;
999
+ }, "strip", z.ZodTypeAny, {
1000
+ code: string;
1001
+ language: string;
1002
+ filePath?: string | undefined;
1003
+ startLine?: number | undefined;
1004
+ }, {
1005
+ code: string;
1006
+ language: string;
1007
+ filePath?: string | undefined;
1008
+ startLine?: number | undefined;
1009
+ }>, "many">>;
1010
+ promptEventId: z.ZodOptional<z.ZodString>;
1011
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
1012
+ model: z.ZodOptional<z.ZodString>;
1013
+ tokenUsage: z.ZodOptional<z.ZodObject<{
1014
+ input: z.ZodOptional<z.ZodNumber>;
1015
+ output: z.ZodOptional<z.ZodNumber>;
1016
+ }, "strip", z.ZodTypeAny, {
1017
+ input?: number | undefined;
1018
+ output?: number | undefined;
1019
+ }, {
1020
+ input?: number | undefined;
1021
+ output?: number | undefined;
1022
+ }>>;
1023
+ }, "strip", z.ZodTypeAny, {
1024
+ type: "ai_response";
1025
+ content: string;
1026
+ id: string;
1027
+ timestamp: number;
1028
+ sequence: number;
1029
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1030
+ model?: string | undefined;
1031
+ codeBlocks?: {
1032
+ code: string;
1033
+ language: string;
1034
+ filePath?: string | undefined;
1035
+ startLine?: number | undefined;
1036
+ }[] | undefined;
1037
+ promptEventId?: string | undefined;
1038
+ tokenUsage?: {
1039
+ input?: number | undefined;
1040
+ output?: number | undefined;
1041
+ } | undefined;
1042
+ }, {
1043
+ type: "ai_response";
1044
+ content: string;
1045
+ id: string;
1046
+ timestamp: number;
1047
+ sequence: number;
1048
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1049
+ model?: string | undefined;
1050
+ codeBlocks?: {
1051
+ code: string;
1052
+ language: string;
1053
+ filePath?: string | undefined;
1054
+ startLine?: number | undefined;
1055
+ }[] | undefined;
1056
+ promptEventId?: string | undefined;
1057
+ tokenUsage?: {
1058
+ input?: number | undefined;
1059
+ output?: number | undefined;
1060
+ } | undefined;
1061
+ }>, z.ZodObject<{
1062
+ id: z.ZodString;
1063
+ timestamp: z.ZodNumber;
1064
+ sequence: z.ZodNumber;
1065
+ } & {
1066
+ type: z.ZodLiteral<"code_change">;
1067
+ filePath: z.ZodString;
1068
+ diff: z.ZodString;
1069
+ source: z.ZodEnum<["manual", "ai_accepted", "ai_partial", "ai_rejected_then_manual"]>;
1070
+ linesChanged: z.ZodOptional<z.ZodObject<{
1071
+ added: z.ZodNumber;
1072
+ removed: z.ZodNumber;
1073
+ }, "strip", z.ZodTypeAny, {
1074
+ added: number;
1075
+ removed: number;
1076
+ }, {
1077
+ added: number;
1078
+ removed: number;
1079
+ }>>;
1080
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
1081
+ }, "strip", z.ZodTypeAny, {
1082
+ type: "code_change";
1083
+ filePath: string;
1084
+ id: string;
1085
+ timestamp: number;
1086
+ sequence: number;
1087
+ diff: string;
1088
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
1089
+ linesChanged?: {
1090
+ added: number;
1091
+ removed: number;
1092
+ } | undefined;
1093
+ aiResponseEventId?: string | undefined;
1094
+ }, {
1095
+ type: "code_change";
1096
+ filePath: string;
1097
+ id: string;
1098
+ timestamp: number;
1099
+ sequence: number;
1100
+ diff: string;
1101
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
1102
+ linesChanged?: {
1103
+ added: number;
1104
+ removed: number;
1105
+ } | undefined;
1106
+ aiResponseEventId?: string | undefined;
1107
+ }>, z.ZodObject<{
1108
+ id: z.ZodString;
1109
+ timestamp: z.ZodNumber;
1110
+ sequence: z.ZodNumber;
1111
+ } & {
1112
+ type: z.ZodLiteral<"file_create">;
1113
+ filePath: z.ZodString;
1114
+ content: z.ZodString;
1115
+ language: z.ZodString;
1116
+ source: z.ZodEnum<["manual", "ai_accepted"]>;
1117
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
1118
+ }, "strip", z.ZodTypeAny, {
1119
+ type: "file_create";
1120
+ content: string;
1121
+ language: string;
1122
+ filePath: string;
1123
+ id: string;
1124
+ timestamp: number;
1125
+ sequence: number;
1126
+ source: "manual" | "ai_accepted";
1127
+ aiResponseEventId?: string | undefined;
1128
+ }, {
1129
+ type: "file_create";
1130
+ content: string;
1131
+ language: string;
1132
+ filePath: string;
1133
+ id: string;
1134
+ timestamp: number;
1135
+ sequence: number;
1136
+ source: "manual" | "ai_accepted";
1137
+ aiResponseEventId?: string | undefined;
1138
+ }>, z.ZodObject<{
1139
+ id: z.ZodString;
1140
+ timestamp: z.ZodNumber;
1141
+ sequence: z.ZodNumber;
1142
+ } & {
1143
+ type: z.ZodLiteral<"file_delete">;
1144
+ filePath: z.ZodString;
1145
+ previousContent: z.ZodOptional<z.ZodString>;
1146
+ }, "strip", z.ZodTypeAny, {
1147
+ type: "file_delete";
1148
+ filePath: string;
1149
+ id: string;
1150
+ timestamp: number;
1151
+ sequence: number;
1152
+ previousContent?: string | undefined;
1153
+ }, {
1154
+ type: "file_delete";
1155
+ filePath: string;
1156
+ id: string;
1157
+ timestamp: number;
1158
+ sequence: number;
1159
+ previousContent?: string | undefined;
1160
+ }>, z.ZodObject<{
1161
+ id: z.ZodString;
1162
+ timestamp: z.ZodNumber;
1163
+ sequence: z.ZodNumber;
1164
+ } & {
1165
+ type: z.ZodLiteral<"file_rename">;
1166
+ fromPath: z.ZodString;
1167
+ toPath: z.ZodString;
1168
+ }, "strip", z.ZodTypeAny, {
1169
+ type: "file_rename";
1170
+ id: string;
1171
+ timestamp: number;
1172
+ sequence: number;
1173
+ fromPath: string;
1174
+ toPath: string;
1175
+ }, {
1176
+ type: "file_rename";
1177
+ id: string;
1178
+ timestamp: number;
1179
+ sequence: number;
1180
+ fromPath: string;
1181
+ toPath: string;
1182
+ }>, z.ZodObject<{
1183
+ id: z.ZodString;
1184
+ timestamp: z.ZodNumber;
1185
+ sequence: z.ZodNumber;
1186
+ } & {
1187
+ type: z.ZodLiteral<"terminal">;
1188
+ command: z.ZodString;
1189
+ output: z.ZodOptional<z.ZodString>;
1190
+ exitCode: z.ZodOptional<z.ZodNumber>;
1191
+ cwd: z.ZodOptional<z.ZodString>;
1192
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
1193
+ }, "strip", z.ZodTypeAny, {
1194
+ type: "terminal";
1195
+ id: string;
1196
+ timestamp: number;
1197
+ sequence: number;
1198
+ command: string;
1199
+ output?: string | undefined;
1200
+ exitCode?: number | undefined;
1201
+ cwd?: string | undefined;
1202
+ durationSeconds?: number | undefined;
1203
+ }, {
1204
+ type: "terminal";
1205
+ id: string;
1206
+ timestamp: number;
1207
+ sequence: number;
1208
+ command: string;
1209
+ output?: string | undefined;
1210
+ exitCode?: number | undefined;
1211
+ cwd?: string | undefined;
1212
+ durationSeconds?: number | undefined;
1213
+ }>, z.ZodObject<{
1214
+ id: z.ZodString;
1215
+ timestamp: z.ZodNumber;
1216
+ sequence: z.ZodNumber;
1217
+ } & {
1218
+ type: z.ZodLiteral<"note">;
1219
+ content: z.ZodString;
1220
+ category: z.ZodOptional<z.ZodEnum<["explanation", "gotcha", "tip", "warning", "todo"]>>;
1221
+ reference: z.ZodOptional<z.ZodObject<{
1222
+ filePath: z.ZodString;
1223
+ startLine: z.ZodOptional<z.ZodNumber>;
1224
+ endLine: z.ZodOptional<z.ZodNumber>;
1225
+ }, "strip", z.ZodTypeAny, {
1226
+ filePath: string;
1227
+ startLine?: number | undefined;
1228
+ endLine?: number | undefined;
1229
+ }, {
1230
+ filePath: string;
1231
+ startLine?: number | undefined;
1232
+ endLine?: number | undefined;
1233
+ }>>;
1234
+ }, "strip", z.ZodTypeAny, {
1235
+ type: "note";
1236
+ content: string;
1237
+ id: string;
1238
+ timestamp: number;
1239
+ sequence: number;
1240
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
1241
+ reference?: {
1242
+ filePath: string;
1243
+ startLine?: number | undefined;
1244
+ endLine?: number | undefined;
1245
+ } | undefined;
1246
+ }, {
1247
+ type: "note";
1248
+ content: string;
1249
+ id: string;
1250
+ timestamp: number;
1251
+ sequence: number;
1252
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
1253
+ reference?: {
1254
+ filePath: string;
1255
+ startLine?: number | undefined;
1256
+ endLine?: number | undefined;
1257
+ } | undefined;
1258
+ }>, z.ZodObject<{
1259
+ id: z.ZodString;
1260
+ timestamp: z.ZodNumber;
1261
+ sequence: z.ZodNumber;
1262
+ } & {
1263
+ type: z.ZodLiteral<"checkpoint">;
1264
+ name: z.ZodString;
1265
+ description: z.ZodOptional<z.ZodString>;
1266
+ state: z.ZodOptional<z.ZodObject<{
1267
+ files: z.ZodArray<z.ZodObject<{
1268
+ path: z.ZodString;
1269
+ content: z.ZodString;
1270
+ language: z.ZodString;
1271
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
1272
+ hash: z.ZodOptional<z.ZodString>;
1273
+ }, "strip", z.ZodTypeAny, {
1274
+ path: string;
1275
+ content: string;
1276
+ language: string;
1277
+ sizeBytes?: number | undefined;
1278
+ hash?: string | undefined;
1279
+ }, {
1280
+ path: string;
1281
+ content: string;
1282
+ language: string;
1283
+ sizeBytes?: number | undefined;
1284
+ hash?: string | undefined;
1285
+ }>, "many">;
1286
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1287
+ }, "strip", z.ZodTypeAny, {
1288
+ files: {
1289
+ path: string;
1290
+ content: string;
1291
+ language: string;
1292
+ sizeBytes?: number | undefined;
1293
+ hash?: string | undefined;
1294
+ }[];
1295
+ fileTree?: string[] | undefined;
1296
+ }, {
1297
+ files: {
1298
+ path: string;
1299
+ content: string;
1300
+ language: string;
1301
+ sizeBytes?: number | undefined;
1302
+ hash?: string | undefined;
1303
+ }[];
1304
+ fileTree?: string[] | undefined;
1305
+ }>>;
1306
+ }, "strip", z.ZodTypeAny, {
1307
+ type: "checkpoint";
1308
+ name: string;
1309
+ id: string;
1310
+ timestamp: number;
1311
+ sequence: number;
1312
+ description?: string | undefined;
1313
+ state?: {
1314
+ files: {
1315
+ path: string;
1316
+ content: string;
1317
+ language: string;
1318
+ sizeBytes?: number | undefined;
1319
+ hash?: string | undefined;
1320
+ }[];
1321
+ fileTree?: string[] | undefined;
1322
+ } | undefined;
1323
+ }, {
1324
+ type: "checkpoint";
1325
+ name: string;
1326
+ id: string;
1327
+ timestamp: number;
1328
+ sequence: number;
1329
+ description?: string | undefined;
1330
+ state?: {
1331
+ files: {
1332
+ path: string;
1333
+ content: string;
1334
+ language: string;
1335
+ sizeBytes?: number | undefined;
1336
+ hash?: string | undefined;
1337
+ }[];
1338
+ fileTree?: string[] | undefined;
1339
+ } | undefined;
1340
+ }>, z.ZodObject<{
1341
+ id: z.ZodString;
1342
+ timestamp: z.ZodNumber;
1343
+ sequence: z.ZodNumber;
1344
+ } & {
1345
+ type: z.ZodLiteral<"error">;
1346
+ message: z.ZodString;
1347
+ category: z.ZodEnum<["build", "runtime", "lint", "type", "test", "other"]>;
1348
+ filePath: z.ZodOptional<z.ZodString>;
1349
+ line: z.ZodOptional<z.ZodNumber>;
1350
+ stackTrace: z.ZodOptional<z.ZodString>;
1351
+ resolved: z.ZodOptional<z.ZodBoolean>;
1352
+ resolvedByEventId: z.ZodOptional<z.ZodString>;
1353
+ }, "strip", z.ZodTypeAny, {
1354
+ type: "error";
1355
+ message: string;
1356
+ id: string;
1357
+ timestamp: number;
1358
+ sequence: number;
1359
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
1360
+ filePath?: string | undefined;
1361
+ line?: number | undefined;
1362
+ stackTrace?: string | undefined;
1363
+ resolved?: boolean | undefined;
1364
+ resolvedByEventId?: string | undefined;
1365
+ }, {
1366
+ type: "error";
1367
+ message: string;
1368
+ id: string;
1369
+ timestamp: number;
1370
+ sequence: number;
1371
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
1372
+ filePath?: string | undefined;
1373
+ line?: number | undefined;
1374
+ stackTrace?: string | undefined;
1375
+ resolved?: boolean | undefined;
1376
+ resolvedByEventId?: string | undefined;
1377
+ }>]>;
1378
+ declare const BuildlogMetadataSchema: z.ZodObject<{
1379
+ id: z.ZodString;
1380
+ title: z.ZodString;
1381
+ description: z.ZodOptional<z.ZodString>;
1382
+ author: z.ZodOptional<z.ZodObject<{
1383
+ name: z.ZodOptional<z.ZodString>;
1384
+ username: z.ZodOptional<z.ZodString>;
1385
+ url: z.ZodOptional<z.ZodString>;
1386
+ avatarUrl: z.ZodOptional<z.ZodString>;
1387
+ }, "strip", z.ZodTypeAny, {
1388
+ name?: string | undefined;
1389
+ username?: string | undefined;
1390
+ url?: string | undefined;
1391
+ avatarUrl?: string | undefined;
1392
+ }, {
1393
+ name?: string | undefined;
1394
+ username?: string | undefined;
1395
+ url?: string | undefined;
1396
+ avatarUrl?: string | undefined;
1397
+ }>>;
1398
+ createdAt: z.ZodString;
1399
+ updatedAt: z.ZodOptional<z.ZodString>;
1400
+ durationSeconds: z.ZodNumber;
1401
+ editor: z.ZodEnum<["cursor", "vscode", "windsurf", "zed", "neovim", "jetbrains", "openclaw", "other"]>;
1402
+ aiProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>, "many">>;
1403
+ primaryLanguage: z.ZodOptional<z.ZodString>;
1404
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1405
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1406
+ project: z.ZodOptional<z.ZodObject<{
1407
+ name: z.ZodOptional<z.ZodString>;
1408
+ repository: z.ZodOptional<z.ZodString>;
1409
+ branch: z.ZodOptional<z.ZodString>;
1410
+ commit: z.ZodOptional<z.ZodString>;
1411
+ }, "strip", z.ZodTypeAny, {
1412
+ name?: string | undefined;
1413
+ repository?: string | undefined;
1414
+ branch?: string | undefined;
1415
+ commit?: string | undefined;
1416
+ }, {
1417
+ name?: string | undefined;
1418
+ repository?: string | undefined;
1419
+ branch?: string | undefined;
1420
+ commit?: string | undefined;
1421
+ }>>;
1422
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1423
+ }, "strip", z.ZodTypeAny, {
1424
+ id: string;
1425
+ durationSeconds: number;
1426
+ title: string;
1427
+ createdAt: string;
1428
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
1429
+ custom?: Record<string, unknown> | undefined;
1430
+ description?: string | undefined;
1431
+ author?: {
1432
+ name?: string | undefined;
1433
+ username?: string | undefined;
1434
+ url?: string | undefined;
1435
+ avatarUrl?: string | undefined;
1436
+ } | undefined;
1437
+ updatedAt?: string | undefined;
1438
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
1439
+ primaryLanguage?: string | undefined;
1440
+ languages?: string[] | undefined;
1441
+ tags?: string[] | undefined;
1442
+ project?: {
1443
+ name?: string | undefined;
1444
+ repository?: string | undefined;
1445
+ branch?: string | undefined;
1446
+ commit?: string | undefined;
1447
+ } | undefined;
1448
+ }, {
1449
+ id: string;
1450
+ durationSeconds: number;
1451
+ title: string;
1452
+ createdAt: string;
1453
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
1454
+ custom?: Record<string, unknown> | undefined;
1455
+ description?: string | undefined;
1456
+ author?: {
1457
+ name?: string | undefined;
1458
+ username?: string | undefined;
1459
+ url?: string | undefined;
1460
+ avatarUrl?: string | undefined;
1461
+ } | undefined;
1462
+ updatedAt?: string | undefined;
1463
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
1464
+ primaryLanguage?: string | undefined;
1465
+ languages?: string[] | undefined;
1466
+ tags?: string[] | undefined;
1467
+ project?: {
1468
+ name?: string | undefined;
1469
+ repository?: string | undefined;
1470
+ branch?: string | undefined;
1471
+ commit?: string | undefined;
1472
+ } | undefined;
1473
+ }>;
1474
+ declare const BuildlogFileSchema: z.ZodObject<{
1475
+ version: z.ZodLiteral<"1.0.0">;
1476
+ metadata: z.ZodObject<{
1477
+ id: z.ZodString;
1478
+ title: z.ZodString;
1479
+ description: z.ZodOptional<z.ZodString>;
1480
+ author: z.ZodOptional<z.ZodObject<{
1481
+ name: z.ZodOptional<z.ZodString>;
1482
+ username: z.ZodOptional<z.ZodString>;
1483
+ url: z.ZodOptional<z.ZodString>;
1484
+ avatarUrl: z.ZodOptional<z.ZodString>;
1485
+ }, "strip", z.ZodTypeAny, {
1486
+ name?: string | undefined;
1487
+ username?: string | undefined;
1488
+ url?: string | undefined;
1489
+ avatarUrl?: string | undefined;
1490
+ }, {
1491
+ name?: string | undefined;
1492
+ username?: string | undefined;
1493
+ url?: string | undefined;
1494
+ avatarUrl?: string | undefined;
1495
+ }>>;
1496
+ createdAt: z.ZodString;
1497
+ updatedAt: z.ZodOptional<z.ZodString>;
1498
+ durationSeconds: z.ZodNumber;
1499
+ editor: z.ZodEnum<["cursor", "vscode", "windsurf", "zed", "neovim", "jetbrains", "openclaw", "other"]>;
1500
+ aiProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>, "many">>;
1501
+ primaryLanguage: z.ZodOptional<z.ZodString>;
1502
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1503
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1504
+ project: z.ZodOptional<z.ZodObject<{
1505
+ name: z.ZodOptional<z.ZodString>;
1506
+ repository: z.ZodOptional<z.ZodString>;
1507
+ branch: z.ZodOptional<z.ZodString>;
1508
+ commit: z.ZodOptional<z.ZodString>;
1509
+ }, "strip", z.ZodTypeAny, {
1510
+ name?: string | undefined;
1511
+ repository?: string | undefined;
1512
+ branch?: string | undefined;
1513
+ commit?: string | undefined;
1514
+ }, {
1515
+ name?: string | undefined;
1516
+ repository?: string | undefined;
1517
+ branch?: string | undefined;
1518
+ commit?: string | undefined;
1519
+ }>>;
1520
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1521
+ }, "strip", z.ZodTypeAny, {
1522
+ id: string;
1523
+ durationSeconds: number;
1524
+ title: string;
1525
+ createdAt: string;
1526
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
1527
+ custom?: Record<string, unknown> | undefined;
1528
+ description?: string | undefined;
1529
+ author?: {
1530
+ name?: string | undefined;
1531
+ username?: string | undefined;
1532
+ url?: string | undefined;
1533
+ avatarUrl?: string | undefined;
1534
+ } | undefined;
1535
+ updatedAt?: string | undefined;
1536
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
1537
+ primaryLanguage?: string | undefined;
1538
+ languages?: string[] | undefined;
1539
+ tags?: string[] | undefined;
1540
+ project?: {
1541
+ name?: string | undefined;
1542
+ repository?: string | undefined;
1543
+ branch?: string | undefined;
1544
+ commit?: string | undefined;
1545
+ } | undefined;
1546
+ }, {
1547
+ id: string;
1548
+ durationSeconds: number;
1549
+ title: string;
1550
+ createdAt: string;
1551
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
1552
+ custom?: Record<string, unknown> | undefined;
1553
+ description?: string | undefined;
1554
+ author?: {
1555
+ name?: string | undefined;
1556
+ username?: string | undefined;
1557
+ url?: string | undefined;
1558
+ avatarUrl?: string | undefined;
1559
+ } | undefined;
1560
+ updatedAt?: string | undefined;
1561
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
1562
+ primaryLanguage?: string | undefined;
1563
+ languages?: string[] | undefined;
1564
+ tags?: string[] | undefined;
1565
+ project?: {
1566
+ name?: string | undefined;
1567
+ repository?: string | undefined;
1568
+ branch?: string | undefined;
1569
+ commit?: string | undefined;
1570
+ } | undefined;
1571
+ }>;
1572
+ initialState: z.ZodObject<{
1573
+ files: z.ZodArray<z.ZodObject<{
1574
+ path: z.ZodString;
1575
+ content: z.ZodString;
1576
+ language: z.ZodString;
1577
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
1578
+ hash: z.ZodOptional<z.ZodString>;
1579
+ }, "strip", z.ZodTypeAny, {
1580
+ path: string;
1581
+ content: string;
1582
+ language: string;
1583
+ sizeBytes?: number | undefined;
1584
+ hash?: string | undefined;
1585
+ }, {
1586
+ path: string;
1587
+ content: string;
1588
+ language: string;
1589
+ sizeBytes?: number | undefined;
1590
+ hash?: string | undefined;
1591
+ }>, "many">;
1592
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1593
+ }, "strip", z.ZodTypeAny, {
1594
+ files: {
1595
+ path: string;
1596
+ content: string;
1597
+ language: string;
1598
+ sizeBytes?: number | undefined;
1599
+ hash?: string | undefined;
1600
+ }[];
1601
+ fileTree?: string[] | undefined;
1602
+ }, {
1603
+ files: {
1604
+ path: string;
1605
+ content: string;
1606
+ language: string;
1607
+ sizeBytes?: number | undefined;
1608
+ hash?: string | undefined;
1609
+ }[];
1610
+ fileTree?: string[] | undefined;
1611
+ }>;
1612
+ events: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1613
+ id: z.ZodString;
1614
+ timestamp: z.ZodNumber;
1615
+ sequence: z.ZodNumber;
1616
+ } & {
1617
+ type: z.ZodLiteral<"prompt">;
1618
+ content: z.ZodString;
1619
+ contextFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1620
+ selection: z.ZodOptional<z.ZodObject<{
1621
+ filePath: z.ZodString;
1622
+ startLine: z.ZodNumber;
1623
+ endLine: z.ZodNumber;
1624
+ text: z.ZodString;
1625
+ }, "strip", z.ZodTypeAny, {
1626
+ filePath: string;
1627
+ startLine: number;
1628
+ endLine: number;
1629
+ text: string;
1630
+ }, {
1631
+ filePath: string;
1632
+ startLine: number;
1633
+ endLine: number;
1634
+ text: string;
1635
+ }>>;
1636
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
1637
+ model: z.ZodOptional<z.ZodString>;
1638
+ }, "strip", z.ZodTypeAny, {
1639
+ type: "prompt";
1640
+ content: string;
1641
+ id: string;
1642
+ timestamp: number;
1643
+ sequence: number;
1644
+ contextFiles?: string[] | undefined;
1645
+ selection?: {
1646
+ filePath: string;
1647
+ startLine: number;
1648
+ endLine: number;
1649
+ text: string;
1650
+ } | undefined;
1651
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1652
+ model?: string | undefined;
1653
+ }, {
1654
+ type: "prompt";
1655
+ content: string;
1656
+ id: string;
1657
+ timestamp: number;
1658
+ sequence: number;
1659
+ contextFiles?: string[] | undefined;
1660
+ selection?: {
1661
+ filePath: string;
1662
+ startLine: number;
1663
+ endLine: number;
1664
+ text: string;
1665
+ } | undefined;
1666
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1667
+ model?: string | undefined;
1668
+ }>, z.ZodObject<{
1669
+ id: z.ZodString;
1670
+ timestamp: z.ZodNumber;
1671
+ sequence: z.ZodNumber;
1672
+ } & {
1673
+ type: z.ZodLiteral<"ai_response">;
1674
+ content: z.ZodString;
1675
+ codeBlocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1676
+ language: z.ZodString;
1677
+ code: z.ZodString;
1678
+ filePath: z.ZodOptional<z.ZodString>;
1679
+ startLine: z.ZodOptional<z.ZodNumber>;
1680
+ }, "strip", z.ZodTypeAny, {
1681
+ code: string;
1682
+ language: string;
1683
+ filePath?: string | undefined;
1684
+ startLine?: number | undefined;
1685
+ }, {
1686
+ code: string;
1687
+ language: string;
1688
+ filePath?: string | undefined;
1689
+ startLine?: number | undefined;
1690
+ }>, "many">>;
1691
+ promptEventId: z.ZodOptional<z.ZodString>;
1692
+ provider: z.ZodOptional<z.ZodEnum<["claude", "gpt", "copilot", "gemini", "other"]>>;
1693
+ model: z.ZodOptional<z.ZodString>;
1694
+ tokenUsage: z.ZodOptional<z.ZodObject<{
1695
+ input: z.ZodOptional<z.ZodNumber>;
1696
+ output: z.ZodOptional<z.ZodNumber>;
1697
+ }, "strip", z.ZodTypeAny, {
1698
+ input?: number | undefined;
1699
+ output?: number | undefined;
1700
+ }, {
1701
+ input?: number | undefined;
1702
+ output?: number | undefined;
1703
+ }>>;
1704
+ }, "strip", z.ZodTypeAny, {
1705
+ type: "ai_response";
1706
+ content: string;
1707
+ id: string;
1708
+ timestamp: number;
1709
+ sequence: number;
1710
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1711
+ model?: string | undefined;
1712
+ codeBlocks?: {
1713
+ code: string;
1714
+ language: string;
1715
+ filePath?: string | undefined;
1716
+ startLine?: number | undefined;
1717
+ }[] | undefined;
1718
+ promptEventId?: string | undefined;
1719
+ tokenUsage?: {
1720
+ input?: number | undefined;
1721
+ output?: number | undefined;
1722
+ } | undefined;
1723
+ }, {
1724
+ type: "ai_response";
1725
+ content: string;
1726
+ id: string;
1727
+ timestamp: number;
1728
+ sequence: number;
1729
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
1730
+ model?: string | undefined;
1731
+ codeBlocks?: {
1732
+ code: string;
1733
+ language: string;
1734
+ filePath?: string | undefined;
1735
+ startLine?: number | undefined;
1736
+ }[] | undefined;
1737
+ promptEventId?: string | undefined;
1738
+ tokenUsage?: {
1739
+ input?: number | undefined;
1740
+ output?: number | undefined;
1741
+ } | undefined;
1742
+ }>, z.ZodObject<{
1743
+ id: z.ZodString;
1744
+ timestamp: z.ZodNumber;
1745
+ sequence: z.ZodNumber;
1746
+ } & {
1747
+ type: z.ZodLiteral<"code_change">;
1748
+ filePath: z.ZodString;
1749
+ diff: z.ZodString;
1750
+ source: z.ZodEnum<["manual", "ai_accepted", "ai_partial", "ai_rejected_then_manual"]>;
1751
+ linesChanged: z.ZodOptional<z.ZodObject<{
1752
+ added: z.ZodNumber;
1753
+ removed: z.ZodNumber;
1754
+ }, "strip", z.ZodTypeAny, {
1755
+ added: number;
1756
+ removed: number;
1757
+ }, {
1758
+ added: number;
1759
+ removed: number;
1760
+ }>>;
1761
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
1762
+ }, "strip", z.ZodTypeAny, {
1763
+ type: "code_change";
1764
+ filePath: string;
1765
+ id: string;
1766
+ timestamp: number;
1767
+ sequence: number;
1768
+ diff: string;
1769
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
1770
+ linesChanged?: {
1771
+ added: number;
1772
+ removed: number;
1773
+ } | undefined;
1774
+ aiResponseEventId?: string | undefined;
1775
+ }, {
1776
+ type: "code_change";
1777
+ filePath: string;
1778
+ id: string;
1779
+ timestamp: number;
1780
+ sequence: number;
1781
+ diff: string;
1782
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
1783
+ linesChanged?: {
1784
+ added: number;
1785
+ removed: number;
1786
+ } | undefined;
1787
+ aiResponseEventId?: string | undefined;
1788
+ }>, z.ZodObject<{
1789
+ id: z.ZodString;
1790
+ timestamp: z.ZodNumber;
1791
+ sequence: z.ZodNumber;
1792
+ } & {
1793
+ type: z.ZodLiteral<"file_create">;
1794
+ filePath: z.ZodString;
1795
+ content: z.ZodString;
1796
+ language: z.ZodString;
1797
+ source: z.ZodEnum<["manual", "ai_accepted"]>;
1798
+ aiResponseEventId: z.ZodOptional<z.ZodString>;
1799
+ }, "strip", z.ZodTypeAny, {
1800
+ type: "file_create";
1801
+ content: string;
1802
+ language: string;
1803
+ filePath: string;
1804
+ id: string;
1805
+ timestamp: number;
1806
+ sequence: number;
1807
+ source: "manual" | "ai_accepted";
1808
+ aiResponseEventId?: string | undefined;
1809
+ }, {
1810
+ type: "file_create";
1811
+ content: string;
1812
+ language: string;
1813
+ filePath: string;
1814
+ id: string;
1815
+ timestamp: number;
1816
+ sequence: number;
1817
+ source: "manual" | "ai_accepted";
1818
+ aiResponseEventId?: string | undefined;
1819
+ }>, z.ZodObject<{
1820
+ id: z.ZodString;
1821
+ timestamp: z.ZodNumber;
1822
+ sequence: z.ZodNumber;
1823
+ } & {
1824
+ type: z.ZodLiteral<"file_delete">;
1825
+ filePath: z.ZodString;
1826
+ previousContent: z.ZodOptional<z.ZodString>;
1827
+ }, "strip", z.ZodTypeAny, {
1828
+ type: "file_delete";
1829
+ filePath: string;
1830
+ id: string;
1831
+ timestamp: number;
1832
+ sequence: number;
1833
+ previousContent?: string | undefined;
1834
+ }, {
1835
+ type: "file_delete";
1836
+ filePath: string;
1837
+ id: string;
1838
+ timestamp: number;
1839
+ sequence: number;
1840
+ previousContent?: string | undefined;
1841
+ }>, z.ZodObject<{
1842
+ id: z.ZodString;
1843
+ timestamp: z.ZodNumber;
1844
+ sequence: z.ZodNumber;
1845
+ } & {
1846
+ type: z.ZodLiteral<"file_rename">;
1847
+ fromPath: z.ZodString;
1848
+ toPath: z.ZodString;
1849
+ }, "strip", z.ZodTypeAny, {
1850
+ type: "file_rename";
1851
+ id: string;
1852
+ timestamp: number;
1853
+ sequence: number;
1854
+ fromPath: string;
1855
+ toPath: string;
1856
+ }, {
1857
+ type: "file_rename";
1858
+ id: string;
1859
+ timestamp: number;
1860
+ sequence: number;
1861
+ fromPath: string;
1862
+ toPath: string;
1863
+ }>, z.ZodObject<{
1864
+ id: z.ZodString;
1865
+ timestamp: z.ZodNumber;
1866
+ sequence: z.ZodNumber;
1867
+ } & {
1868
+ type: z.ZodLiteral<"terminal">;
1869
+ command: z.ZodString;
1870
+ output: z.ZodOptional<z.ZodString>;
1871
+ exitCode: z.ZodOptional<z.ZodNumber>;
1872
+ cwd: z.ZodOptional<z.ZodString>;
1873
+ durationSeconds: z.ZodOptional<z.ZodNumber>;
1874
+ }, "strip", z.ZodTypeAny, {
1875
+ type: "terminal";
1876
+ id: string;
1877
+ timestamp: number;
1878
+ sequence: number;
1879
+ command: string;
1880
+ output?: string | undefined;
1881
+ exitCode?: number | undefined;
1882
+ cwd?: string | undefined;
1883
+ durationSeconds?: number | undefined;
1884
+ }, {
1885
+ type: "terminal";
1886
+ id: string;
1887
+ timestamp: number;
1888
+ sequence: number;
1889
+ command: string;
1890
+ output?: string | undefined;
1891
+ exitCode?: number | undefined;
1892
+ cwd?: string | undefined;
1893
+ durationSeconds?: number | undefined;
1894
+ }>, z.ZodObject<{
1895
+ id: z.ZodString;
1896
+ timestamp: z.ZodNumber;
1897
+ sequence: z.ZodNumber;
1898
+ } & {
1899
+ type: z.ZodLiteral<"note">;
1900
+ content: z.ZodString;
1901
+ category: z.ZodOptional<z.ZodEnum<["explanation", "gotcha", "tip", "warning", "todo"]>>;
1902
+ reference: z.ZodOptional<z.ZodObject<{
1903
+ filePath: z.ZodString;
1904
+ startLine: z.ZodOptional<z.ZodNumber>;
1905
+ endLine: z.ZodOptional<z.ZodNumber>;
1906
+ }, "strip", z.ZodTypeAny, {
1907
+ filePath: string;
1908
+ startLine?: number | undefined;
1909
+ endLine?: number | undefined;
1910
+ }, {
1911
+ filePath: string;
1912
+ startLine?: number | undefined;
1913
+ endLine?: number | undefined;
1914
+ }>>;
1915
+ }, "strip", z.ZodTypeAny, {
1916
+ type: "note";
1917
+ content: string;
1918
+ id: string;
1919
+ timestamp: number;
1920
+ sequence: number;
1921
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
1922
+ reference?: {
1923
+ filePath: string;
1924
+ startLine?: number | undefined;
1925
+ endLine?: number | undefined;
1926
+ } | undefined;
1927
+ }, {
1928
+ type: "note";
1929
+ content: string;
1930
+ id: string;
1931
+ timestamp: number;
1932
+ sequence: number;
1933
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
1934
+ reference?: {
1935
+ filePath: string;
1936
+ startLine?: number | undefined;
1937
+ endLine?: number | undefined;
1938
+ } | undefined;
1939
+ }>, z.ZodObject<{
1940
+ id: z.ZodString;
1941
+ timestamp: z.ZodNumber;
1942
+ sequence: z.ZodNumber;
1943
+ } & {
1944
+ type: z.ZodLiteral<"checkpoint">;
1945
+ name: z.ZodString;
1946
+ description: z.ZodOptional<z.ZodString>;
1947
+ state: z.ZodOptional<z.ZodObject<{
1948
+ files: z.ZodArray<z.ZodObject<{
1949
+ path: z.ZodString;
1950
+ content: z.ZodString;
1951
+ language: z.ZodString;
1952
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
1953
+ hash: z.ZodOptional<z.ZodString>;
1954
+ }, "strip", z.ZodTypeAny, {
1955
+ path: string;
1956
+ content: string;
1957
+ language: string;
1958
+ sizeBytes?: number | undefined;
1959
+ hash?: string | undefined;
1960
+ }, {
1961
+ path: string;
1962
+ content: string;
1963
+ language: string;
1964
+ sizeBytes?: number | undefined;
1965
+ hash?: string | undefined;
1966
+ }>, "many">;
1967
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1968
+ }, "strip", z.ZodTypeAny, {
1969
+ files: {
1970
+ path: string;
1971
+ content: string;
1972
+ language: string;
1973
+ sizeBytes?: number | undefined;
1974
+ hash?: string | undefined;
1975
+ }[];
1976
+ fileTree?: string[] | undefined;
1977
+ }, {
1978
+ files: {
1979
+ path: string;
1980
+ content: string;
1981
+ language: string;
1982
+ sizeBytes?: number | undefined;
1983
+ hash?: string | undefined;
1984
+ }[];
1985
+ fileTree?: string[] | undefined;
1986
+ }>>;
1987
+ }, "strip", z.ZodTypeAny, {
1988
+ type: "checkpoint";
1989
+ name: string;
1990
+ id: string;
1991
+ timestamp: number;
1992
+ sequence: number;
1993
+ description?: string | undefined;
1994
+ state?: {
1995
+ files: {
1996
+ path: string;
1997
+ content: string;
1998
+ language: string;
1999
+ sizeBytes?: number | undefined;
2000
+ hash?: string | undefined;
2001
+ }[];
2002
+ fileTree?: string[] | undefined;
2003
+ } | undefined;
2004
+ }, {
2005
+ type: "checkpoint";
2006
+ name: string;
2007
+ id: string;
2008
+ timestamp: number;
2009
+ sequence: number;
2010
+ description?: string | undefined;
2011
+ state?: {
2012
+ files: {
2013
+ path: string;
2014
+ content: string;
2015
+ language: string;
2016
+ sizeBytes?: number | undefined;
2017
+ hash?: string | undefined;
2018
+ }[];
2019
+ fileTree?: string[] | undefined;
2020
+ } | undefined;
2021
+ }>, z.ZodObject<{
2022
+ id: z.ZodString;
2023
+ timestamp: z.ZodNumber;
2024
+ sequence: z.ZodNumber;
2025
+ } & {
2026
+ type: z.ZodLiteral<"error">;
2027
+ message: z.ZodString;
2028
+ category: z.ZodEnum<["build", "runtime", "lint", "type", "test", "other"]>;
2029
+ filePath: z.ZodOptional<z.ZodString>;
2030
+ line: z.ZodOptional<z.ZodNumber>;
2031
+ stackTrace: z.ZodOptional<z.ZodString>;
2032
+ resolved: z.ZodOptional<z.ZodBoolean>;
2033
+ resolvedByEventId: z.ZodOptional<z.ZodString>;
2034
+ }, "strip", z.ZodTypeAny, {
2035
+ type: "error";
2036
+ message: string;
2037
+ id: string;
2038
+ timestamp: number;
2039
+ sequence: number;
2040
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
2041
+ filePath?: string | undefined;
2042
+ line?: number | undefined;
2043
+ stackTrace?: string | undefined;
2044
+ resolved?: boolean | undefined;
2045
+ resolvedByEventId?: string | undefined;
2046
+ }, {
2047
+ type: "error";
2048
+ message: string;
2049
+ id: string;
2050
+ timestamp: number;
2051
+ sequence: number;
2052
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
2053
+ filePath?: string | undefined;
2054
+ line?: number | undefined;
2055
+ stackTrace?: string | undefined;
2056
+ resolved?: boolean | undefined;
2057
+ resolvedByEventId?: string | undefined;
2058
+ }>]>, "many">;
2059
+ finalState: z.ZodObject<{
2060
+ files: z.ZodArray<z.ZodObject<{
2061
+ path: z.ZodString;
2062
+ content: z.ZodString;
2063
+ language: z.ZodString;
2064
+ sizeBytes: z.ZodOptional<z.ZodNumber>;
2065
+ hash: z.ZodOptional<z.ZodString>;
2066
+ }, "strip", z.ZodTypeAny, {
2067
+ path: string;
2068
+ content: string;
2069
+ language: string;
2070
+ sizeBytes?: number | undefined;
2071
+ hash?: string | undefined;
2072
+ }, {
2073
+ path: string;
2074
+ content: string;
2075
+ language: string;
2076
+ sizeBytes?: number | undefined;
2077
+ hash?: string | undefined;
2078
+ }>, "many">;
2079
+ fileTree: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2080
+ }, "strip", z.ZodTypeAny, {
2081
+ files: {
2082
+ path: string;
2083
+ content: string;
2084
+ language: string;
2085
+ sizeBytes?: number | undefined;
2086
+ hash?: string | undefined;
2087
+ }[];
2088
+ fileTree?: string[] | undefined;
2089
+ }, {
2090
+ files: {
2091
+ path: string;
2092
+ content: string;
2093
+ language: string;
2094
+ sizeBytes?: number | undefined;
2095
+ hash?: string | undefined;
2096
+ }[];
2097
+ fileTree?: string[] | undefined;
2098
+ }>;
2099
+ }, "strip", z.ZodTypeAny, {
2100
+ version: "1.0.0";
2101
+ metadata: {
2102
+ id: string;
2103
+ durationSeconds: number;
2104
+ title: string;
2105
+ createdAt: string;
2106
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
2107
+ custom?: Record<string, unknown> | undefined;
2108
+ description?: string | undefined;
2109
+ author?: {
2110
+ name?: string | undefined;
2111
+ username?: string | undefined;
2112
+ url?: string | undefined;
2113
+ avatarUrl?: string | undefined;
2114
+ } | undefined;
2115
+ updatedAt?: string | undefined;
2116
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
2117
+ primaryLanguage?: string | undefined;
2118
+ languages?: string[] | undefined;
2119
+ tags?: string[] | undefined;
2120
+ project?: {
2121
+ name?: string | undefined;
2122
+ repository?: string | undefined;
2123
+ branch?: string | undefined;
2124
+ commit?: string | undefined;
2125
+ } | undefined;
2126
+ };
2127
+ initialState: {
2128
+ files: {
2129
+ path: string;
2130
+ content: string;
2131
+ language: string;
2132
+ sizeBytes?: number | undefined;
2133
+ hash?: string | undefined;
2134
+ }[];
2135
+ fileTree?: string[] | undefined;
2136
+ };
2137
+ events: ({
2138
+ type: "prompt";
2139
+ content: string;
2140
+ id: string;
2141
+ timestamp: number;
2142
+ sequence: number;
2143
+ contextFiles?: string[] | undefined;
2144
+ selection?: {
2145
+ filePath: string;
2146
+ startLine: number;
2147
+ endLine: number;
2148
+ text: string;
2149
+ } | undefined;
2150
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
2151
+ model?: string | undefined;
2152
+ } | {
2153
+ type: "ai_response";
2154
+ content: string;
2155
+ id: string;
2156
+ timestamp: number;
2157
+ sequence: number;
2158
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
2159
+ model?: string | undefined;
2160
+ codeBlocks?: {
2161
+ code: string;
2162
+ language: string;
2163
+ filePath?: string | undefined;
2164
+ startLine?: number | undefined;
2165
+ }[] | undefined;
2166
+ promptEventId?: string | undefined;
2167
+ tokenUsage?: {
2168
+ input?: number | undefined;
2169
+ output?: number | undefined;
2170
+ } | undefined;
2171
+ } | {
2172
+ type: "code_change";
2173
+ filePath: string;
2174
+ id: string;
2175
+ timestamp: number;
2176
+ sequence: number;
2177
+ diff: string;
2178
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
2179
+ linesChanged?: {
2180
+ added: number;
2181
+ removed: number;
2182
+ } | undefined;
2183
+ aiResponseEventId?: string | undefined;
2184
+ } | {
2185
+ type: "file_create";
2186
+ content: string;
2187
+ language: string;
2188
+ filePath: string;
2189
+ id: string;
2190
+ timestamp: number;
2191
+ sequence: number;
2192
+ source: "manual" | "ai_accepted";
2193
+ aiResponseEventId?: string | undefined;
2194
+ } | {
2195
+ type: "file_delete";
2196
+ filePath: string;
2197
+ id: string;
2198
+ timestamp: number;
2199
+ sequence: number;
2200
+ previousContent?: string | undefined;
2201
+ } | {
2202
+ type: "file_rename";
2203
+ id: string;
2204
+ timestamp: number;
2205
+ sequence: number;
2206
+ fromPath: string;
2207
+ toPath: string;
2208
+ } | {
2209
+ type: "terminal";
2210
+ id: string;
2211
+ timestamp: number;
2212
+ sequence: number;
2213
+ command: string;
2214
+ output?: string | undefined;
2215
+ exitCode?: number | undefined;
2216
+ cwd?: string | undefined;
2217
+ durationSeconds?: number | undefined;
2218
+ } | {
2219
+ type: "note";
2220
+ content: string;
2221
+ id: string;
2222
+ timestamp: number;
2223
+ sequence: number;
2224
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
2225
+ reference?: {
2226
+ filePath: string;
2227
+ startLine?: number | undefined;
2228
+ endLine?: number | undefined;
2229
+ } | undefined;
2230
+ } | {
2231
+ type: "checkpoint";
2232
+ name: string;
2233
+ id: string;
2234
+ timestamp: number;
2235
+ sequence: number;
2236
+ description?: string | undefined;
2237
+ state?: {
2238
+ files: {
2239
+ path: string;
2240
+ content: string;
2241
+ language: string;
2242
+ sizeBytes?: number | undefined;
2243
+ hash?: string | undefined;
2244
+ }[];
2245
+ fileTree?: string[] | undefined;
2246
+ } | undefined;
2247
+ } | {
2248
+ type: "error";
2249
+ message: string;
2250
+ id: string;
2251
+ timestamp: number;
2252
+ sequence: number;
2253
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
2254
+ filePath?: string | undefined;
2255
+ line?: number | undefined;
2256
+ stackTrace?: string | undefined;
2257
+ resolved?: boolean | undefined;
2258
+ resolvedByEventId?: string | undefined;
2259
+ })[];
2260
+ finalState: {
2261
+ files: {
2262
+ path: string;
2263
+ content: string;
2264
+ language: string;
2265
+ sizeBytes?: number | undefined;
2266
+ hash?: string | undefined;
2267
+ }[];
2268
+ fileTree?: string[] | undefined;
2269
+ };
2270
+ }, {
2271
+ version: "1.0.0";
2272
+ metadata: {
2273
+ id: string;
2274
+ durationSeconds: number;
2275
+ title: string;
2276
+ createdAt: string;
2277
+ editor: "cursor" | "vscode" | "windsurf" | "zed" | "neovim" | "jetbrains" | "openclaw" | "other";
2278
+ custom?: Record<string, unknown> | undefined;
2279
+ description?: string | undefined;
2280
+ author?: {
2281
+ name?: string | undefined;
2282
+ username?: string | undefined;
2283
+ url?: string | undefined;
2284
+ avatarUrl?: string | undefined;
2285
+ } | undefined;
2286
+ updatedAt?: string | undefined;
2287
+ aiProviders?: ("other" | "claude" | "gpt" | "copilot" | "gemini")[] | undefined;
2288
+ primaryLanguage?: string | undefined;
2289
+ languages?: string[] | undefined;
2290
+ tags?: string[] | undefined;
2291
+ project?: {
2292
+ name?: string | undefined;
2293
+ repository?: string | undefined;
2294
+ branch?: string | undefined;
2295
+ commit?: string | undefined;
2296
+ } | undefined;
2297
+ };
2298
+ initialState: {
2299
+ files: {
2300
+ path: string;
2301
+ content: string;
2302
+ language: string;
2303
+ sizeBytes?: number | undefined;
2304
+ hash?: string | undefined;
2305
+ }[];
2306
+ fileTree?: string[] | undefined;
2307
+ };
2308
+ events: ({
2309
+ type: "prompt";
2310
+ content: string;
2311
+ id: string;
2312
+ timestamp: number;
2313
+ sequence: number;
2314
+ contextFiles?: string[] | undefined;
2315
+ selection?: {
2316
+ filePath: string;
2317
+ startLine: number;
2318
+ endLine: number;
2319
+ text: string;
2320
+ } | undefined;
2321
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
2322
+ model?: string | undefined;
2323
+ } | {
2324
+ type: "ai_response";
2325
+ content: string;
2326
+ id: string;
2327
+ timestamp: number;
2328
+ sequence: number;
2329
+ provider?: "other" | "claude" | "gpt" | "copilot" | "gemini" | undefined;
2330
+ model?: string | undefined;
2331
+ codeBlocks?: {
2332
+ code: string;
2333
+ language: string;
2334
+ filePath?: string | undefined;
2335
+ startLine?: number | undefined;
2336
+ }[] | undefined;
2337
+ promptEventId?: string | undefined;
2338
+ tokenUsage?: {
2339
+ input?: number | undefined;
2340
+ output?: number | undefined;
2341
+ } | undefined;
2342
+ } | {
2343
+ type: "code_change";
2344
+ filePath: string;
2345
+ id: string;
2346
+ timestamp: number;
2347
+ sequence: number;
2348
+ diff: string;
2349
+ source: "manual" | "ai_accepted" | "ai_partial" | "ai_rejected_then_manual";
2350
+ linesChanged?: {
2351
+ added: number;
2352
+ removed: number;
2353
+ } | undefined;
2354
+ aiResponseEventId?: string | undefined;
2355
+ } | {
2356
+ type: "file_create";
2357
+ content: string;
2358
+ language: string;
2359
+ filePath: string;
2360
+ id: string;
2361
+ timestamp: number;
2362
+ sequence: number;
2363
+ source: "manual" | "ai_accepted";
2364
+ aiResponseEventId?: string | undefined;
2365
+ } | {
2366
+ type: "file_delete";
2367
+ filePath: string;
2368
+ id: string;
2369
+ timestamp: number;
2370
+ sequence: number;
2371
+ previousContent?: string | undefined;
2372
+ } | {
2373
+ type: "file_rename";
2374
+ id: string;
2375
+ timestamp: number;
2376
+ sequence: number;
2377
+ fromPath: string;
2378
+ toPath: string;
2379
+ } | {
2380
+ type: "terminal";
2381
+ id: string;
2382
+ timestamp: number;
2383
+ sequence: number;
2384
+ command: string;
2385
+ output?: string | undefined;
2386
+ exitCode?: number | undefined;
2387
+ cwd?: string | undefined;
2388
+ durationSeconds?: number | undefined;
2389
+ } | {
2390
+ type: "note";
2391
+ content: string;
2392
+ id: string;
2393
+ timestamp: number;
2394
+ sequence: number;
2395
+ category?: "explanation" | "gotcha" | "tip" | "warning" | "todo" | undefined;
2396
+ reference?: {
2397
+ filePath: string;
2398
+ startLine?: number | undefined;
2399
+ endLine?: number | undefined;
2400
+ } | undefined;
2401
+ } | {
2402
+ type: "checkpoint";
2403
+ name: string;
2404
+ id: string;
2405
+ timestamp: number;
2406
+ sequence: number;
2407
+ description?: string | undefined;
2408
+ state?: {
2409
+ files: {
2410
+ path: string;
2411
+ content: string;
2412
+ language: string;
2413
+ sizeBytes?: number | undefined;
2414
+ hash?: string | undefined;
2415
+ }[];
2416
+ fileTree?: string[] | undefined;
2417
+ } | undefined;
2418
+ } | {
2419
+ type: "error";
2420
+ message: string;
2421
+ id: string;
2422
+ timestamp: number;
2423
+ sequence: number;
2424
+ category: "other" | "build" | "runtime" | "lint" | "type" | "test";
2425
+ filePath?: string | undefined;
2426
+ line?: number | undefined;
2427
+ stackTrace?: string | undefined;
2428
+ resolved?: boolean | undefined;
2429
+ resolvedByEventId?: string | undefined;
2430
+ })[];
2431
+ finalState: {
2432
+ files: {
2433
+ path: string;
2434
+ content: string;
2435
+ language: string;
2436
+ sizeBytes?: number | undefined;
2437
+ hash?: string | undefined;
2438
+ }[];
2439
+ fileTree?: string[] | undefined;
2440
+ };
2441
+ }>;
2442
+ type BuildlogFileFromSchema = z.infer<typeof BuildlogFileSchema>;
2443
+ type BuildlogEventFromSchema = z.infer<typeof BuildlogEventSchema>;
2444
+
2445
+ /**
2446
+ * Check if a filename has a valid buildlog extension
2447
+ */
2448
+ declare function isBuildlogFile(filename: string): boolean;
2449
+ /**
2450
+ * Get the file extension for buildlog files
2451
+ */
2452
+ declare function getBuildlogExtension(): string;
2453
+ /**
2454
+ * Get the MIME type for buildlog files
2455
+ */
2456
+ declare function getBuildlogMimeType(): string;
2457
+ /**
2458
+ * Validate a buildlog file
2459
+ */
2460
+ declare function validateBuildlog(data: unknown): ValidationResult;
2461
+ /**
2462
+ * Parse and validate a buildlog JSON string
2463
+ */
2464
+ declare function parseBuildlog(json: string): BuildlogFile;
2465
+ /**
2466
+ * Safely parse a buildlog, returning null on failure
2467
+ */
2468
+ declare function safeParseBuildlog(json: string): BuildlogFile | null;
2469
+ /**
2470
+ * Compute statistics from a buildlog
2471
+ */
2472
+ declare function computeStats(buildlog: BuildlogFile): BuildlogStats;
2473
+ /**
2474
+ * Format duration in seconds to human readable string
2475
+ */
2476
+ declare function formatDuration(seconds: number): string;
2477
+ /**
2478
+ * Get event icon for display
2479
+ */
2480
+ declare function getEventIcon(event: BuildlogEvent): string;
2481
+ /**
2482
+ * Get human readable event type label
2483
+ */
2484
+ declare function getEventLabel(event: BuildlogEvent): string;
2485
+ /**
2486
+ * Detect programming language from file path
2487
+ */
2488
+ declare function detectLanguage(filePath: string): string;
2489
+ /**
2490
+ * Generate a slug from a title
2491
+ */
2492
+ declare function slugify(title: string): string;
2493
+
2494
+ /** Current buildlog schema version */
2495
+ declare const BUILDLOG_VERSION = "1.0.0";
2496
+ /** MIME type for buildlog files */
2497
+ declare const BUILDLOG_MIME_TYPE = "application/vnd.buildlog+json";
2498
+ /** Valid file extensions for buildlog files */
2499
+ declare const BUILDLOG_EXTENSIONS: string[];
2500
+ /** Default file extension */
2501
+ declare const BUILDLOG_DEFAULT_EXTENSION = ".buildlog";
2502
+ /** Maximum recommended file size for a single buildlog (10MB) */
2503
+ declare const BUILDLOG_MAX_SIZE_BYTES: number;
2504
+ /** Maximum recommended events per buildlog */
2505
+ declare const BUILDLOG_MAX_EVENTS = 10000;
2506
+ /** Maximum title length */
2507
+ declare const BUILDLOG_MAX_TITLE_LENGTH = 200;
2508
+ /** Maximum description length */
2509
+ declare const BUILDLOG_MAX_DESCRIPTION_LENGTH = 2000;
2510
+ /** Maximum tags */
2511
+ declare const BUILDLOG_MAX_TAGS = 20;
2512
+ /** Maximum tag length */
2513
+ declare const BUILDLOG_MAX_TAG_LENGTH = 50;
2514
+
2515
+ export { type AIProvider, AIProviderSchema, type AIResponseEvent, AIResponseEventSchema, BUILDLOG_DEFAULT_EXTENSION, BUILDLOG_EXTENSIONS, BUILDLOG_MAX_DESCRIPTION_LENGTH, BUILDLOG_MAX_EVENTS, BUILDLOG_MAX_SIZE_BYTES, BUILDLOG_MAX_TAGS, BUILDLOG_MAX_TAG_LENGTH, BUILDLOG_MAX_TITLE_LENGTH, BUILDLOG_MIME_TYPE, BUILDLOG_VERSION, type BaseEvent, type BuildlogAuthor, BuildlogAuthorSchema, type BuildlogEvent, type BuildlogEventFromSchema, BuildlogEventSchema, type BuildlogFile, type BuildlogFileFromSchema, BuildlogFileSchema, type BuildlogMetadata, BuildlogMetadataSchema, type BuildlogProject, BuildlogProjectSchema, type BuildlogState, BuildlogStateSchema, type BuildlogStats, type ChangeSource, ChangeSourceSchema, type CheckpointEvent, CheckpointEventSchema, type CodeBlock, CodeBlockSchema, type CodeChangeEvent, CodeChangeEventSchema, type EditorType, EditorTypeSchema, type ErrorCategory, ErrorCategorySchema, type ErrorEvent, ErrorEventSchema, type EventByType, type EventType, type FileCreateEvent, FileCreateEventSchema, type FileDeleteEvent, FileDeleteEventSchema, type FileRenameEvent, FileRenameEventSchema, type FileSnapshot, FileSnapshotSchema, type LinesChanged, LinesChangedSchema, type NoteCategory, NoteCategorySchema, type NoteEvent, NoteEventSchema, type NoteReference, NoteReferenceSchema, type PromptEvent, PromptEventSchema, type TerminalEvent, TerminalEventSchema, type TextSelection, TextSelectionSchema, type TokenUsage, TokenUsageSchema, type ValidationError, type ValidationResult, computeStats, detectLanguage, formatDuration, getBuildlogExtension, getBuildlogMimeType, getEventIcon, getEventLabel, isBuildlogFile, parseBuildlog, safeParseBuildlog, slugify, validateBuildlog };