@basou/core 0.41.0 → 0.42.1

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,1477 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://basou.dev/schemas/0.1.0/event.schema.json",
4
+ "title": "Basou Event",
5
+ "description": "One line of a `.basou/sessions/<id>/events.jsonl` stream (a discriminated union over the event `type`).",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "schema_version": {
11
+ "type": "string",
12
+ "pattern": "^0\\.\\d+\\.\\d+$"
13
+ },
14
+ "id": {
15
+ "type": "string",
16
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
17
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
18
+ },
19
+ "session_id": {
20
+ "type": "string",
21
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
22
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
23
+ },
24
+ "occurred_at": {
25
+ "type": "string",
26
+ "format": "date-time",
27
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
28
+ },
29
+ "source": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "prev_hash": {
34
+ "type": "string"
35
+ },
36
+ "type": {
37
+ "type": "string",
38
+ "const": "session_started"
39
+ }
40
+ },
41
+ "required": [
42
+ "schema_version",
43
+ "id",
44
+ "session_id",
45
+ "occurred_at",
46
+ "source",
47
+ "type"
48
+ ]
49
+ },
50
+ {
51
+ "type": "object",
52
+ "properties": {
53
+ "schema_version": {
54
+ "type": "string",
55
+ "pattern": "^0\\.\\d+\\.\\d+$"
56
+ },
57
+ "id": {
58
+ "type": "string",
59
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
60
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
61
+ },
62
+ "session_id": {
63
+ "type": "string",
64
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
65
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
66
+ },
67
+ "occurred_at": {
68
+ "type": "string",
69
+ "format": "date-time",
70
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
71
+ },
72
+ "source": {
73
+ "type": "string",
74
+ "minLength": 1
75
+ },
76
+ "prev_hash": {
77
+ "type": "string"
78
+ },
79
+ "type": {
80
+ "type": "string",
81
+ "const": "session_ended"
82
+ },
83
+ "exit_code": {
84
+ "type": "integer",
85
+ "minimum": -9007199254740991,
86
+ "maximum": 9007199254740991
87
+ }
88
+ },
89
+ "required": [
90
+ "schema_version",
91
+ "id",
92
+ "session_id",
93
+ "occurred_at",
94
+ "source",
95
+ "type"
96
+ ]
97
+ },
98
+ {
99
+ "type": "object",
100
+ "properties": {
101
+ "schema_version": {
102
+ "type": "string",
103
+ "pattern": "^0\\.\\d+\\.\\d+$"
104
+ },
105
+ "id": {
106
+ "type": "string",
107
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
108
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
109
+ },
110
+ "session_id": {
111
+ "type": "string",
112
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
113
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
114
+ },
115
+ "occurred_at": {
116
+ "type": "string",
117
+ "format": "date-time",
118
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
119
+ },
120
+ "source": {
121
+ "type": "string",
122
+ "minLength": 1
123
+ },
124
+ "prev_hash": {
125
+ "type": "string"
126
+ },
127
+ "type": {
128
+ "type": "string",
129
+ "const": "session_status_changed"
130
+ },
131
+ "from": {
132
+ "type": "string"
133
+ },
134
+ "to": {
135
+ "type": "string"
136
+ }
137
+ },
138
+ "required": [
139
+ "schema_version",
140
+ "id",
141
+ "session_id",
142
+ "occurred_at",
143
+ "source",
144
+ "type",
145
+ "from",
146
+ "to"
147
+ ]
148
+ },
149
+ {
150
+ "type": "object",
151
+ "properties": {
152
+ "schema_version": {
153
+ "type": "string",
154
+ "pattern": "^0\\.\\d+\\.\\d+$"
155
+ },
156
+ "id": {
157
+ "type": "string",
158
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
159
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
160
+ },
161
+ "session_id": {
162
+ "type": "string",
163
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
164
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
165
+ },
166
+ "occurred_at": {
167
+ "type": "string",
168
+ "format": "date-time",
169
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
170
+ },
171
+ "source": {
172
+ "type": "string",
173
+ "minLength": 1
174
+ },
175
+ "prev_hash": {
176
+ "type": "string"
177
+ },
178
+ "type": {
179
+ "type": "string",
180
+ "const": "approval_requested"
181
+ },
182
+ "approval_id": {
183
+ "type": "string",
184
+ "pattern": "^appr_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
185
+ "description": "Basou appr id: `appr_` followed by a 26-character Crockford Base32 ULID."
186
+ },
187
+ "expires_at": {
188
+ "default": null,
189
+ "anyOf": [
190
+ {
191
+ "type": "string",
192
+ "format": "date-time",
193
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
194
+ },
195
+ {
196
+ "type": "null"
197
+ }
198
+ ]
199
+ },
200
+ "risk_level": {
201
+ "type": "string",
202
+ "enum": [
203
+ "low",
204
+ "medium",
205
+ "high",
206
+ "critical"
207
+ ]
208
+ },
209
+ "action": {
210
+ "type": "object",
211
+ "properties": {
212
+ "kind": {
213
+ "type": "string"
214
+ }
215
+ },
216
+ "required": [
217
+ "kind"
218
+ ],
219
+ "additionalProperties": {}
220
+ },
221
+ "reason": {
222
+ "type": "string"
223
+ },
224
+ "status": {
225
+ "type": "string",
226
+ "const": "pending"
227
+ }
228
+ },
229
+ "required": [
230
+ "schema_version",
231
+ "id",
232
+ "session_id",
233
+ "occurred_at",
234
+ "source",
235
+ "type",
236
+ "approval_id",
237
+ "risk_level",
238
+ "action",
239
+ "reason",
240
+ "status"
241
+ ]
242
+ },
243
+ {
244
+ "type": "object",
245
+ "properties": {
246
+ "schema_version": {
247
+ "type": "string",
248
+ "pattern": "^0\\.\\d+\\.\\d+$"
249
+ },
250
+ "id": {
251
+ "type": "string",
252
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
253
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
254
+ },
255
+ "session_id": {
256
+ "type": "string",
257
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
258
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
259
+ },
260
+ "occurred_at": {
261
+ "type": "string",
262
+ "format": "date-time",
263
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
264
+ },
265
+ "source": {
266
+ "type": "string",
267
+ "minLength": 1
268
+ },
269
+ "prev_hash": {
270
+ "type": "string"
271
+ },
272
+ "type": {
273
+ "type": "string",
274
+ "const": "approval_approved"
275
+ },
276
+ "approval_id": {
277
+ "type": "string",
278
+ "pattern": "^appr_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
279
+ "description": "Basou appr id: `appr_` followed by a 26-character Crockford Base32 ULID."
280
+ },
281
+ "resolver": {
282
+ "type": "string"
283
+ },
284
+ "note": {
285
+ "anyOf": [
286
+ {
287
+ "type": "string"
288
+ },
289
+ {
290
+ "type": "null"
291
+ }
292
+ ]
293
+ }
294
+ },
295
+ "required": [
296
+ "schema_version",
297
+ "id",
298
+ "session_id",
299
+ "occurred_at",
300
+ "source",
301
+ "type",
302
+ "approval_id"
303
+ ]
304
+ },
305
+ {
306
+ "type": "object",
307
+ "properties": {
308
+ "schema_version": {
309
+ "type": "string",
310
+ "pattern": "^0\\.\\d+\\.\\d+$"
311
+ },
312
+ "id": {
313
+ "type": "string",
314
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
315
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
316
+ },
317
+ "session_id": {
318
+ "type": "string",
319
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
320
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
321
+ },
322
+ "occurred_at": {
323
+ "type": "string",
324
+ "format": "date-time",
325
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
326
+ },
327
+ "source": {
328
+ "type": "string",
329
+ "minLength": 1
330
+ },
331
+ "prev_hash": {
332
+ "type": "string"
333
+ },
334
+ "type": {
335
+ "type": "string",
336
+ "const": "approval_rejected"
337
+ },
338
+ "approval_id": {
339
+ "type": "string",
340
+ "pattern": "^appr_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
341
+ "description": "Basou appr id: `appr_` followed by a 26-character Crockford Base32 ULID."
342
+ },
343
+ "resolver": {
344
+ "type": "string"
345
+ },
346
+ "reason": {
347
+ "type": "string"
348
+ }
349
+ },
350
+ "required": [
351
+ "schema_version",
352
+ "id",
353
+ "session_id",
354
+ "occurred_at",
355
+ "source",
356
+ "type",
357
+ "approval_id",
358
+ "reason"
359
+ ]
360
+ },
361
+ {
362
+ "type": "object",
363
+ "properties": {
364
+ "schema_version": {
365
+ "type": "string",
366
+ "pattern": "^0\\.\\d+\\.\\d+$"
367
+ },
368
+ "id": {
369
+ "type": "string",
370
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
371
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
372
+ },
373
+ "session_id": {
374
+ "type": "string",
375
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
376
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
377
+ },
378
+ "occurred_at": {
379
+ "type": "string",
380
+ "format": "date-time",
381
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
382
+ },
383
+ "source": {
384
+ "type": "string",
385
+ "minLength": 1
386
+ },
387
+ "prev_hash": {
388
+ "type": "string"
389
+ },
390
+ "type": {
391
+ "type": "string",
392
+ "const": "approval_expired"
393
+ },
394
+ "approval_id": {
395
+ "type": "string",
396
+ "pattern": "^appr_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
397
+ "description": "Basou appr id: `appr_` followed by a 26-character Crockford Base32 ULID."
398
+ }
399
+ },
400
+ "required": [
401
+ "schema_version",
402
+ "id",
403
+ "session_id",
404
+ "occurred_at",
405
+ "source",
406
+ "type",
407
+ "approval_id"
408
+ ]
409
+ },
410
+ {
411
+ "type": "object",
412
+ "properties": {
413
+ "schema_version": {
414
+ "type": "string",
415
+ "pattern": "^0\\.\\d+\\.\\d+$"
416
+ },
417
+ "id": {
418
+ "type": "string",
419
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
420
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
421
+ },
422
+ "session_id": {
423
+ "type": "string",
424
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
425
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
426
+ },
427
+ "occurred_at": {
428
+ "type": "string",
429
+ "format": "date-time",
430
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
431
+ },
432
+ "source": {
433
+ "type": "string",
434
+ "minLength": 1
435
+ },
436
+ "prev_hash": {
437
+ "type": "string"
438
+ },
439
+ "type": {
440
+ "type": "string",
441
+ "const": "command_executed"
442
+ },
443
+ "command": {
444
+ "anyOf": [
445
+ {
446
+ "type": "string"
447
+ },
448
+ {
449
+ "type": "null"
450
+ }
451
+ ]
452
+ },
453
+ "args": {
454
+ "type": "array",
455
+ "items": {
456
+ "type": "string"
457
+ }
458
+ },
459
+ "cwd": {
460
+ "anyOf": [
461
+ {
462
+ "type": "string"
463
+ },
464
+ {
465
+ "type": "null"
466
+ }
467
+ ]
468
+ },
469
+ "exit_code": {
470
+ "anyOf": [
471
+ {
472
+ "type": "integer",
473
+ "minimum": -9007199254740991,
474
+ "maximum": 9007199254740991
475
+ },
476
+ {
477
+ "type": "null"
478
+ }
479
+ ]
480
+ },
481
+ "signal": {
482
+ "anyOf": [
483
+ {
484
+ "type": "string"
485
+ },
486
+ {
487
+ "type": "null"
488
+ }
489
+ ]
490
+ },
491
+ "received_signal": {
492
+ "anyOf": [
493
+ {
494
+ "type": "string"
495
+ },
496
+ {
497
+ "type": "null"
498
+ }
499
+ ]
500
+ },
501
+ "duration_ms": {
502
+ "type": "integer",
503
+ "minimum": 0,
504
+ "maximum": 9007199254740991
505
+ }
506
+ },
507
+ "required": [
508
+ "schema_version",
509
+ "id",
510
+ "session_id",
511
+ "occurred_at",
512
+ "source",
513
+ "type",
514
+ "command",
515
+ "args",
516
+ "cwd",
517
+ "exit_code",
518
+ "duration_ms"
519
+ ]
520
+ },
521
+ {
522
+ "type": "object",
523
+ "properties": {
524
+ "schema_version": {
525
+ "type": "string",
526
+ "pattern": "^0\\.\\d+\\.\\d+$"
527
+ },
528
+ "id": {
529
+ "type": "string",
530
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
531
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
532
+ },
533
+ "session_id": {
534
+ "type": "string",
535
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
536
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
537
+ },
538
+ "occurred_at": {
539
+ "type": "string",
540
+ "format": "date-time",
541
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
542
+ },
543
+ "source": {
544
+ "type": "string",
545
+ "minLength": 1
546
+ },
547
+ "prev_hash": {
548
+ "type": "string"
549
+ },
550
+ "type": {
551
+ "type": "string",
552
+ "const": "git_snapshot"
553
+ },
554
+ "head": {
555
+ "type": "string"
556
+ },
557
+ "branch": {
558
+ "type": "string"
559
+ },
560
+ "dirty": {
561
+ "type": "boolean"
562
+ },
563
+ "staged": {
564
+ "type": "array",
565
+ "items": {
566
+ "type": "string"
567
+ }
568
+ },
569
+ "unstaged": {
570
+ "type": "array",
571
+ "items": {
572
+ "type": "string"
573
+ }
574
+ },
575
+ "untracked": {
576
+ "type": "array",
577
+ "items": {
578
+ "type": "string"
579
+ }
580
+ },
581
+ "ahead": {
582
+ "type": "integer",
583
+ "minimum": 0,
584
+ "maximum": 9007199254740991
585
+ },
586
+ "behind": {
587
+ "type": "integer",
588
+ "minimum": 0,
589
+ "maximum": 9007199254740991
590
+ }
591
+ },
592
+ "required": [
593
+ "schema_version",
594
+ "id",
595
+ "session_id",
596
+ "occurred_at",
597
+ "source",
598
+ "type",
599
+ "head",
600
+ "branch",
601
+ "dirty",
602
+ "staged",
603
+ "unstaged",
604
+ "untracked"
605
+ ]
606
+ },
607
+ {
608
+ "type": "object",
609
+ "properties": {
610
+ "schema_version": {
611
+ "type": "string",
612
+ "pattern": "^0\\.\\d+\\.\\d+$"
613
+ },
614
+ "id": {
615
+ "type": "string",
616
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
617
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
618
+ },
619
+ "session_id": {
620
+ "type": "string",
621
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
622
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
623
+ },
624
+ "occurred_at": {
625
+ "type": "string",
626
+ "format": "date-time",
627
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
628
+ },
629
+ "source": {
630
+ "type": "string",
631
+ "minLength": 1
632
+ },
633
+ "prev_hash": {
634
+ "type": "string"
635
+ },
636
+ "type": {
637
+ "type": "string",
638
+ "const": "file_changed"
639
+ },
640
+ "path": {
641
+ "type": "string"
642
+ },
643
+ "change_type": {
644
+ "type": "string",
645
+ "enum": [
646
+ "added",
647
+ "modified",
648
+ "deleted",
649
+ "renamed"
650
+ ]
651
+ },
652
+ "old_path": {
653
+ "anyOf": [
654
+ {
655
+ "type": "string"
656
+ },
657
+ {
658
+ "type": "null"
659
+ }
660
+ ]
661
+ }
662
+ },
663
+ "required": [
664
+ "schema_version",
665
+ "id",
666
+ "session_id",
667
+ "occurred_at",
668
+ "source",
669
+ "type",
670
+ "path",
671
+ "change_type"
672
+ ]
673
+ },
674
+ {
675
+ "type": "object",
676
+ "properties": {
677
+ "schema_version": {
678
+ "type": "string",
679
+ "pattern": "^0\\.\\d+\\.\\d+$"
680
+ },
681
+ "id": {
682
+ "type": "string",
683
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
684
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
685
+ },
686
+ "session_id": {
687
+ "type": "string",
688
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
689
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
690
+ },
691
+ "occurred_at": {
692
+ "type": "string",
693
+ "format": "date-time",
694
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
695
+ },
696
+ "source": {
697
+ "type": "string",
698
+ "minLength": 1
699
+ },
700
+ "prev_hash": {
701
+ "type": "string"
702
+ },
703
+ "type": {
704
+ "type": "string",
705
+ "const": "decision_recorded"
706
+ },
707
+ "decision_id": {
708
+ "type": "string",
709
+ "pattern": "^decision_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
710
+ "description": "Basou decision id: `decision_` followed by a 26-character Crockford Base32 ULID."
711
+ },
712
+ "title": {
713
+ "type": "string"
714
+ },
715
+ "rationale": {
716
+ "anyOf": [
717
+ {
718
+ "type": "string"
719
+ },
720
+ {
721
+ "type": "null"
722
+ }
723
+ ]
724
+ },
725
+ "alternatives": {
726
+ "type": "array",
727
+ "items": {
728
+ "type": "string",
729
+ "minLength": 1
730
+ }
731
+ },
732
+ "rejected_reason": {
733
+ "anyOf": [
734
+ {
735
+ "type": "string"
736
+ },
737
+ {
738
+ "type": "null"
739
+ }
740
+ ]
741
+ },
742
+ "linked_events": {
743
+ "type": "array",
744
+ "items": {
745
+ "type": "string",
746
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
747
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
748
+ }
749
+ },
750
+ "linked_files": {
751
+ "type": "array",
752
+ "items": {
753
+ "type": "string",
754
+ "minLength": 1,
755
+ "maxLength": 4096
756
+ }
757
+ },
758
+ "kind": {
759
+ "type": "string",
760
+ "enum": [
761
+ "decision",
762
+ "track"
763
+ ]
764
+ }
765
+ },
766
+ "required": [
767
+ "schema_version",
768
+ "id",
769
+ "session_id",
770
+ "occurred_at",
771
+ "source",
772
+ "type",
773
+ "decision_id",
774
+ "title"
775
+ ]
776
+ },
777
+ {
778
+ "type": "object",
779
+ "properties": {
780
+ "schema_version": {
781
+ "type": "string",
782
+ "pattern": "^0\\.\\d+\\.\\d+$"
783
+ },
784
+ "id": {
785
+ "type": "string",
786
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
787
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
788
+ },
789
+ "session_id": {
790
+ "type": "string",
791
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
792
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
793
+ },
794
+ "occurred_at": {
795
+ "type": "string",
796
+ "format": "date-time",
797
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
798
+ },
799
+ "source": {
800
+ "type": "string",
801
+ "minLength": 1
802
+ },
803
+ "prev_hash": {
804
+ "type": "string"
805
+ },
806
+ "type": {
807
+ "type": "string",
808
+ "const": "decision_voided"
809
+ },
810
+ "decision_id": {
811
+ "type": "string",
812
+ "pattern": "^decision_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
813
+ "description": "Basou decision id: `decision_` followed by a 26-character Crockford Base32 ULID."
814
+ },
815
+ "reason": {
816
+ "anyOf": [
817
+ {
818
+ "type": "string"
819
+ },
820
+ {
821
+ "type": "null"
822
+ }
823
+ ]
824
+ },
825
+ "superseded_by": {
826
+ "type": "string",
827
+ "pattern": "^decision_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
828
+ "description": "Basou decision id: `decision_` followed by a 26-character Crockford Base32 ULID."
829
+ }
830
+ },
831
+ "required": [
832
+ "schema_version",
833
+ "id",
834
+ "session_id",
835
+ "occurred_at",
836
+ "source",
837
+ "type",
838
+ "decision_id"
839
+ ]
840
+ },
841
+ {
842
+ "type": "object",
843
+ "properties": {
844
+ "schema_version": {
845
+ "type": "string",
846
+ "pattern": "^0\\.\\d+\\.\\d+$"
847
+ },
848
+ "id": {
849
+ "type": "string",
850
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
851
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
852
+ },
853
+ "session_id": {
854
+ "type": "string",
855
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
856
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
857
+ },
858
+ "occurred_at": {
859
+ "type": "string",
860
+ "format": "date-time",
861
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
862
+ },
863
+ "source": {
864
+ "type": "string",
865
+ "minLength": 1
866
+ },
867
+ "prev_hash": {
868
+ "type": "string"
869
+ },
870
+ "type": {
871
+ "type": "string",
872
+ "const": "task_created"
873
+ },
874
+ "task_id": {
875
+ "type": "string",
876
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
877
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
878
+ },
879
+ "title": {
880
+ "type": "string"
881
+ }
882
+ },
883
+ "required": [
884
+ "schema_version",
885
+ "id",
886
+ "session_id",
887
+ "occurred_at",
888
+ "source",
889
+ "type",
890
+ "task_id",
891
+ "title"
892
+ ]
893
+ },
894
+ {
895
+ "type": "object",
896
+ "properties": {
897
+ "schema_version": {
898
+ "type": "string",
899
+ "pattern": "^0\\.\\d+\\.\\d+$"
900
+ },
901
+ "id": {
902
+ "type": "string",
903
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
904
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
905
+ },
906
+ "session_id": {
907
+ "type": "string",
908
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
909
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
910
+ },
911
+ "occurred_at": {
912
+ "type": "string",
913
+ "format": "date-time",
914
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
915
+ },
916
+ "source": {
917
+ "type": "string",
918
+ "minLength": 1
919
+ },
920
+ "prev_hash": {
921
+ "type": "string"
922
+ },
923
+ "type": {
924
+ "type": "string",
925
+ "const": "task_status_changed"
926
+ },
927
+ "task_id": {
928
+ "type": "string",
929
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
930
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
931
+ },
932
+ "from": {
933
+ "type": "string"
934
+ },
935
+ "to": {
936
+ "type": "string"
937
+ }
938
+ },
939
+ "required": [
940
+ "schema_version",
941
+ "id",
942
+ "session_id",
943
+ "occurred_at",
944
+ "source",
945
+ "type",
946
+ "task_id",
947
+ "from",
948
+ "to"
949
+ ]
950
+ },
951
+ {
952
+ "type": "object",
953
+ "properties": {
954
+ "schema_version": {
955
+ "type": "string",
956
+ "pattern": "^0\\.\\d+\\.\\d+$"
957
+ },
958
+ "id": {
959
+ "type": "string",
960
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
961
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
962
+ },
963
+ "session_id": {
964
+ "type": "string",
965
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
966
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
967
+ },
968
+ "occurred_at": {
969
+ "type": "string",
970
+ "format": "date-time",
971
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
972
+ },
973
+ "source": {
974
+ "type": "string",
975
+ "minLength": 1
976
+ },
977
+ "prev_hash": {
978
+ "type": "string"
979
+ },
980
+ "type": {
981
+ "type": "string",
982
+ "const": "task_reconciled"
983
+ },
984
+ "task_id": {
985
+ "type": "string",
986
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
987
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
988
+ },
989
+ "removed_created_in_session": {
990
+ "default": null,
991
+ "anyOf": [
992
+ {
993
+ "type": "string",
994
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
995
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
996
+ },
997
+ {
998
+ "type": "null"
999
+ }
1000
+ ]
1001
+ },
1002
+ "created_in_session_replacement": {
1003
+ "default": null,
1004
+ "anyOf": [
1005
+ {
1006
+ "type": "string",
1007
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1008
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1009
+ },
1010
+ {
1011
+ "type": "null"
1012
+ }
1013
+ ]
1014
+ },
1015
+ "removed_linked_sessions": {
1016
+ "default": [],
1017
+ "type": "array",
1018
+ "items": {
1019
+ "type": "string",
1020
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1021
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1022
+ }
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "schema_version",
1027
+ "id",
1028
+ "session_id",
1029
+ "occurred_at",
1030
+ "source",
1031
+ "type",
1032
+ "task_id"
1033
+ ],
1034
+ "additionalProperties": false
1035
+ },
1036
+ {
1037
+ "type": "object",
1038
+ "properties": {
1039
+ "schema_version": {
1040
+ "type": "string",
1041
+ "pattern": "^0\\.\\d+\\.\\d+$"
1042
+ },
1043
+ "id": {
1044
+ "type": "string",
1045
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1046
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1047
+ },
1048
+ "session_id": {
1049
+ "type": "string",
1050
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1051
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1052
+ },
1053
+ "occurred_at": {
1054
+ "type": "string",
1055
+ "format": "date-time",
1056
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1057
+ },
1058
+ "source": {
1059
+ "type": "string",
1060
+ "minLength": 1
1061
+ },
1062
+ "prev_hash": {
1063
+ "type": "string"
1064
+ },
1065
+ "type": {
1066
+ "type": "string",
1067
+ "const": "task_linkage_refreshed"
1068
+ },
1069
+ "task_id": {
1070
+ "type": "string",
1071
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1072
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
1073
+ },
1074
+ "added_linked_sessions": {
1075
+ "default": [],
1076
+ "type": "array",
1077
+ "items": {
1078
+ "type": "string",
1079
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1080
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1081
+ }
1082
+ },
1083
+ "removed_linked_sessions": {
1084
+ "default": [],
1085
+ "type": "array",
1086
+ "items": {
1087
+ "type": "string",
1088
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1089
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1090
+ }
1091
+ },
1092
+ "final_count": {
1093
+ "type": "integer",
1094
+ "minimum": 0,
1095
+ "maximum": 9007199254740991
1096
+ }
1097
+ },
1098
+ "required": [
1099
+ "schema_version",
1100
+ "id",
1101
+ "session_id",
1102
+ "occurred_at",
1103
+ "source",
1104
+ "type",
1105
+ "task_id"
1106
+ ],
1107
+ "additionalProperties": false
1108
+ },
1109
+ {
1110
+ "type": "object",
1111
+ "properties": {
1112
+ "schema_version": {
1113
+ "type": "string",
1114
+ "pattern": "^0\\.\\d+\\.\\d+$"
1115
+ },
1116
+ "id": {
1117
+ "type": "string",
1118
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1119
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1120
+ },
1121
+ "session_id": {
1122
+ "type": "string",
1123
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1124
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1125
+ },
1126
+ "occurred_at": {
1127
+ "type": "string",
1128
+ "format": "date-time",
1129
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1130
+ },
1131
+ "source": {
1132
+ "type": "string",
1133
+ "minLength": 1
1134
+ },
1135
+ "prev_hash": {
1136
+ "type": "string"
1137
+ },
1138
+ "type": {
1139
+ "type": "string",
1140
+ "const": "task_deleted"
1141
+ },
1142
+ "task_id": {
1143
+ "type": "string",
1144
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1145
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
1146
+ },
1147
+ "title": {
1148
+ "type": "string",
1149
+ "minLength": 1
1150
+ }
1151
+ },
1152
+ "required": [
1153
+ "schema_version",
1154
+ "id",
1155
+ "session_id",
1156
+ "occurred_at",
1157
+ "source",
1158
+ "type",
1159
+ "task_id",
1160
+ "title"
1161
+ ],
1162
+ "additionalProperties": false
1163
+ },
1164
+ {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "schema_version": {
1168
+ "type": "string",
1169
+ "pattern": "^0\\.\\d+\\.\\d+$"
1170
+ },
1171
+ "id": {
1172
+ "type": "string",
1173
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1174
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1175
+ },
1176
+ "session_id": {
1177
+ "type": "string",
1178
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1179
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1180
+ },
1181
+ "occurred_at": {
1182
+ "type": "string",
1183
+ "format": "date-time",
1184
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1185
+ },
1186
+ "source": {
1187
+ "type": "string",
1188
+ "minLength": 1
1189
+ },
1190
+ "prev_hash": {
1191
+ "type": "string"
1192
+ },
1193
+ "type": {
1194
+ "type": "string",
1195
+ "const": "task_archived"
1196
+ },
1197
+ "task_id": {
1198
+ "type": "string",
1199
+ "pattern": "^task_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1200
+ "description": "Basou task id: `task_` followed by a 26-character Crockford Base32 ULID."
1201
+ },
1202
+ "title": {
1203
+ "type": "string",
1204
+ "minLength": 1
1205
+ }
1206
+ },
1207
+ "required": [
1208
+ "schema_version",
1209
+ "id",
1210
+ "session_id",
1211
+ "occurred_at",
1212
+ "source",
1213
+ "type",
1214
+ "task_id",
1215
+ "title"
1216
+ ],
1217
+ "additionalProperties": false
1218
+ },
1219
+ {
1220
+ "type": "object",
1221
+ "properties": {
1222
+ "schema_version": {
1223
+ "type": "string",
1224
+ "pattern": "^0\\.\\d+\\.\\d+$"
1225
+ },
1226
+ "id": {
1227
+ "type": "string",
1228
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1229
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1230
+ },
1231
+ "session_id": {
1232
+ "type": "string",
1233
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1234
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1235
+ },
1236
+ "occurred_at": {
1237
+ "type": "string",
1238
+ "format": "date-time",
1239
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1240
+ },
1241
+ "source": {
1242
+ "type": "string",
1243
+ "minLength": 1
1244
+ },
1245
+ "prev_hash": {
1246
+ "type": "string"
1247
+ },
1248
+ "type": {
1249
+ "type": "string",
1250
+ "const": "note_added"
1251
+ },
1252
+ "body": {
1253
+ "type": "string"
1254
+ },
1255
+ "kind": {
1256
+ "type": "string",
1257
+ "enum": [
1258
+ "note",
1259
+ "next_step"
1260
+ ]
1261
+ }
1262
+ },
1263
+ "required": [
1264
+ "schema_version",
1265
+ "id",
1266
+ "session_id",
1267
+ "occurred_at",
1268
+ "source",
1269
+ "type",
1270
+ "body"
1271
+ ]
1272
+ },
1273
+ {
1274
+ "type": "object",
1275
+ "properties": {
1276
+ "schema_version": {
1277
+ "type": "string",
1278
+ "pattern": "^0\\.\\d+\\.\\d+$"
1279
+ },
1280
+ "id": {
1281
+ "type": "string",
1282
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1283
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1284
+ },
1285
+ "session_id": {
1286
+ "type": "string",
1287
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1288
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1289
+ },
1290
+ "occurred_at": {
1291
+ "type": "string",
1292
+ "format": "date-time",
1293
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1294
+ },
1295
+ "source": {
1296
+ "type": "string",
1297
+ "minLength": 1
1298
+ },
1299
+ "prev_hash": {
1300
+ "type": "string"
1301
+ },
1302
+ "type": {
1303
+ "type": "string",
1304
+ "const": "review_recorded"
1305
+ },
1306
+ "reviewer": {
1307
+ "type": "string",
1308
+ "minLength": 1
1309
+ },
1310
+ "target": {
1311
+ "type": "string",
1312
+ "minLength": 1
1313
+ },
1314
+ "repos": {
1315
+ "type": "array",
1316
+ "items": {
1317
+ "type": "string",
1318
+ "minLength": 1
1319
+ }
1320
+ },
1321
+ "repos_resolved": {
1322
+ "type": "array",
1323
+ "items": {
1324
+ "type": "string",
1325
+ "minLength": 1
1326
+ }
1327
+ },
1328
+ "commits": {
1329
+ "type": "array",
1330
+ "items": {
1331
+ "type": "string",
1332
+ "minLength": 1
1333
+ }
1334
+ },
1335
+ "verdict": {
1336
+ "type": "string",
1337
+ "enum": [
1338
+ "pass",
1339
+ "needs-attention",
1340
+ "fail"
1341
+ ]
1342
+ },
1343
+ "findings": {
1344
+ "type": "array",
1345
+ "items": {
1346
+ "type": "object",
1347
+ "properties": {
1348
+ "title": {
1349
+ "type": "string",
1350
+ "minLength": 1
1351
+ },
1352
+ "severity": {
1353
+ "type": "string",
1354
+ "enum": [
1355
+ "high",
1356
+ "medium",
1357
+ "low"
1358
+ ]
1359
+ },
1360
+ "location": {
1361
+ "type": "string",
1362
+ "minLength": 1
1363
+ },
1364
+ "summary": {
1365
+ "type": "string",
1366
+ "minLength": 1
1367
+ }
1368
+ },
1369
+ "required": [
1370
+ "title"
1371
+ ]
1372
+ }
1373
+ },
1374
+ "blocked": {
1375
+ "type": "array",
1376
+ "items": {
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "title": {
1380
+ "type": "string",
1381
+ "minLength": 1
1382
+ },
1383
+ "reason": {
1384
+ "type": "string",
1385
+ "enum": [
1386
+ "spec-deviation",
1387
+ "design-reversal"
1388
+ ]
1389
+ },
1390
+ "why": {
1391
+ "type": "string",
1392
+ "minLength": 1
1393
+ }
1394
+ },
1395
+ "required": [
1396
+ "title",
1397
+ "reason"
1398
+ ]
1399
+ }
1400
+ }
1401
+ },
1402
+ "required": [
1403
+ "schema_version",
1404
+ "id",
1405
+ "session_id",
1406
+ "occurred_at",
1407
+ "source",
1408
+ "type",
1409
+ "reviewer",
1410
+ "target"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "type": "object",
1415
+ "properties": {
1416
+ "schema_version": {
1417
+ "type": "string",
1418
+ "pattern": "^0\\.\\d+\\.\\d+$"
1419
+ },
1420
+ "id": {
1421
+ "type": "string",
1422
+ "pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1423
+ "description": "Basou evt id: `evt_` followed by a 26-character Crockford Base32 ULID."
1424
+ },
1425
+ "session_id": {
1426
+ "type": "string",
1427
+ "pattern": "^ses_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
1428
+ "description": "Basou ses id: `ses_` followed by a 26-character Crockford Base32 ULID."
1429
+ },
1430
+ "occurred_at": {
1431
+ "type": "string",
1432
+ "format": "date-time",
1433
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1434
+ },
1435
+ "source": {
1436
+ "type": "string",
1437
+ "minLength": 1
1438
+ },
1439
+ "prev_hash": {
1440
+ "type": "string"
1441
+ },
1442
+ "type": {
1443
+ "type": "string",
1444
+ "const": "adapter_output"
1445
+ },
1446
+ "stream": {
1447
+ "type": "string",
1448
+ "enum": [
1449
+ "stdout",
1450
+ "stderr"
1451
+ ]
1452
+ },
1453
+ "summary": {
1454
+ "type": "string"
1455
+ },
1456
+ "raw_ref": {
1457
+ "type": "string"
1458
+ },
1459
+ "redacted": {
1460
+ "type": "boolean"
1461
+ }
1462
+ },
1463
+ "required": [
1464
+ "schema_version",
1465
+ "id",
1466
+ "session_id",
1467
+ "occurred_at",
1468
+ "source",
1469
+ "type",
1470
+ "stream",
1471
+ "summary",
1472
+ "raw_ref"
1473
+ ],
1474
+ "additionalProperties": false
1475
+ }
1476
+ ]
1477
+ }