@hasna/recordings 0.3.13 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +279 -43
  2. package/bun.lock +37 -38
  3. package/contracts/v1/fixtures.json +1206 -0
  4. package/dist/cli/index.js +1909 -619
  5. package/dist/cli/macos-shortcut.d.ts +2 -2
  6. package/dist/contracts/hosted-v1.d.ts +105 -0
  7. package/dist/contracts/hosted-v1.d.ts.map +1 -0
  8. package/dist/contracts/hosted-v1.js +41 -0
  9. package/dist/contracts/stream-v1.d.ts +117 -0
  10. package/dist/contracts/stream-v1.d.ts.map +1 -0
  11. package/dist/contracts/stream-v1.js +35 -0
  12. package/dist/db/database.d.ts.map +1 -1
  13. package/dist/db/pg-migrations.d.ts.map +1 -1
  14. package/dist/db/recordings.d.ts +6 -0
  15. package/dist/db/recordings.d.ts.map +1 -1
  16. package/dist/hosted/index.d.ts +58 -0
  17. package/dist/hosted/index.d.ts.map +1 -0
  18. package/dist/hosted/index.js +266 -0
  19. package/dist/hosted/transport.d.ts +36 -0
  20. package/dist/hosted/transport.d.ts.map +1 -0
  21. package/dist/hosted-v1-aavn7ktb.js +4114 -0
  22. package/dist/hosted-v1-gdr9extc.js +84 -0
  23. package/dist/http/client.d.ts +183 -22
  24. package/dist/http/client.d.ts.map +1 -1
  25. package/dist/index.d.ts +3 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2879 -2288
  28. package/dist/lib/audio-artifact-storage.d.ts +98 -0
  29. package/dist/lib/audio-artifact-storage.d.ts.map +1 -0
  30. package/dist/lib/capture-probe.d.ts +3 -3
  31. package/dist/lib/capture-probe.d.ts.map +1 -1
  32. package/dist/lib/config.d.ts.map +1 -1
  33. package/dist/lib/local-opt-in.d.ts +132 -0
  34. package/dist/lib/local-opt-in.d.ts.map +1 -0
  35. package/dist/lib/macos-bundle.d.ts +1 -1
  36. package/dist/lib/persistence-probe.d.ts +56 -17
  37. package/dist/lib/persistence-probe.d.ts.map +1 -1
  38. package/dist/lib/transcriber.d.ts.map +1 -1
  39. package/dist/mcp/index.d.ts.map +1 -1
  40. package/dist/mcp/index.js +1713 -459
  41. package/dist/sdk/index.d.ts +13 -5
  42. package/dist/sdk/index.d.ts.map +1 -1
  43. package/dist/sdk/index.js +904 -1
  44. package/dist/sdk/resolve.d.ts +53 -0
  45. package/dist/sdk/resolve.d.ts.map +1 -0
  46. package/dist/sdk/v1.generated.d.ts +6 -0
  47. package/dist/sdk/v1.generated.d.ts.map +1 -1
  48. package/dist/server/client-ip.d.ts +39 -0
  49. package/dist/server/client-ip.d.ts.map +1 -0
  50. package/dist/server/cloud-config.d.ts +12 -0
  51. package/dist/server/cloud-config.d.ts.map +1 -1
  52. package/dist/server/cloud-readiness.d.ts.map +1 -1
  53. package/dist/server/cloud.d.ts +20 -2
  54. package/dist/server/cloud.d.ts.map +1 -1
  55. package/dist/server/index.js +590 -287
  56. package/dist/server/migrate-command.d.ts +1 -1
  57. package/dist/server/migrate-command.d.ts.map +1 -1
  58. package/dist/server/openapi.d.ts +21 -0
  59. package/dist/server/openapi.d.ts.map +1 -1
  60. package/dist/server/repo.d.ts.map +1 -1
  61. package/dist/server/serve.d.ts.map +1 -1
  62. package/dist/storage.d.ts +2 -2
  63. package/dist/storage.d.ts.map +1 -1
  64. package/dist/storage.js +1358 -874
  65. package/dist/store.d.ts +12 -3
  66. package/dist/store.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +15 -0
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/docs/hosted-sdk.md +71 -0
  70. package/docs/wire-contracts.md +24 -0
  71. package/package.json +33 -11
  72. package/packaging/macos/build_release_pkg.sh +3 -3
  73. package/packaging/macos/managed_bootstrap.sh +4 -4
  74. package/packaging/macos/scripts/postinstall +2 -2
  75. package/packaging/macos/scripts/preinstall +2 -2
  76. package/scripts/build_companion_cli.sh +7 -1
  77. package/scripts/ci-linux-suite.ts +23 -13
  78. package/scripts/install_macos_app.sh +27 -24
  79. package/scripts/macos_artifact.ts +60 -49
  80. package/scripts/migrate.ts +4 -20
  81. package/scripts/native/prebuilds/darwin-universal/recordings_fs_guard.node +0 -0
  82. package/scripts/native/recordings_fs_guard.c +36 -4
  83. package/scripts/native-core-receipt.py +171 -0
  84. package/scripts/native_fs_guard.ts +2 -0
  85. package/scripts/release-suite-gate.ts +227 -150
  86. package/scripts/resolve_tailscale_cli.sh +24 -3
  87. package/scripts/smoke_macos_app.sh +21 -21
  88. package/src/native/Recordings/App/ContentView.swift +53 -68
  89. package/src/native/Recordings/App/MenuBarStatusView.swift +171 -61
  90. package/src/native/Recordings/App/RecordWorkspaceView.swift +47 -449
  91. package/src/native/Recordings/App/RecorderSettingsView.swift +75 -0
  92. package/src/native/Recordings/App/RecordingDetailView.swift +3 -4
  93. package/src/native/Recordings/App/RecordingsApp.swift +185 -9
  94. package/src/native/Recordings/App/RecordingsListView.swift +60 -112
  95. package/src/native/Recordings/App/RecordingsStore.swift +124 -109
  96. package/src/native/Recordings/App/Theme.swift +73 -61
  97. package/src/native/Recordings/Package.swift +1 -0
  98. package/src/native/Recordings/RecordingsLib/BlockingOperation.swift +29 -0
  99. package/src/native/Recordings/RecordingsLib/CaptureMonitor.swift +65 -0
  100. package/src/native/Recordings/RecordingsLib/Info.plist +3 -3
  101. package/src/native/Recordings/RecordingsLib/OpenAIAPIKeyStore.swift +75 -21
  102. package/src/native/Recordings/RecordingsLib/ProjectStore.swift +4 -4
  103. package/src/native/Recordings/RecordingsLib/Recording.swift +14 -2
  104. package/src/native/Recordings/RecordingsLib/RecordingEngine.swift +539 -89
  105. package/src/native/Recordings/RecordingsLib/RecordingGlassBackground.swift +34 -0
  106. package/src/native/Recordings/RecordingsLib/RecordingPasteTarget.swift +114 -0
  107. package/src/native/Recordings/RecordingsLib/RecordingProvider.swift +112 -0
  108. package/src/native/Recordings/RecordingsLib/RecordingsCLI.swift +17 -10
  109. package/src/native/Recordings/RecordingsLib/ServiceAPIConfiguration.swift +107 -0
  110. package/src/native/Recordings/RecordingsLib/ServiceConnectionView.swift +76 -0
  111. package/src/native/Recordings/RecordingsLib/SettingsView.swift +45 -149
  112. package/src/native/Recordings/RecordingsLib/SettingsWindowController.swift +48 -0
  113. package/src/native/Recordings/RecordingsTests/BlockingOperationTests.swift +85 -0
  114. package/src/native/Recordings/RecordingsTests/CLIRunnerTests.swift +454 -76
  115. package/src/native/Recordings/RecordingsTests/OpenAIAPIKeyStoreTests.swift +43 -38
  116. package/src/native/Recordings/RecordingsTests/PipeClosureFixture.swift +215 -0
  117. package/src/native/Recordings/RecordingsTests/ProjectStoreTests.swift +10 -10
  118. package/src/native/Recordings/RecordingsTests/RecorderSurfaceTests.swift +60 -0
  119. package/src/native/Recordings/RecordingsTests/RecordingDateTests.swift +26 -0
  120. package/src/native/Recordings/RecordingsTests/RecordingEngineDeliveryTests.swift +1 -1
  121. package/src/native/Recordings/RecordingsTests/RecordingFrozenPasteTargetTests.swift +50 -0
  122. package/src/native/Recordings/RecordingsTests/RecordingPasteTargetTrackerTests.swift +48 -0
  123. package/src/native/Recordings/RecordingsTests/RecordingProviderTests.swift +308 -0
  124. package/src/native/Recordings/RecordingsTests/RecordingStartGateTests.swift +1 -1
  125. package/src/native/Recordings/RecordingsTests/RecordingStartTimingTests.swift +123 -21
  126. package/src/native/Recordings/RecordingsTests/ServiceAPIConfigurationTests.swift +75 -0
  127. package/src/native/Recordings/RecordingsTests/SettingsWindowControllerTests.swift +28 -0
  128. package/src/native/Recordings/RecordingsTests/TestHomeDirectory.swift +5 -1
  129. package/src/native/Recordings/Updater/BootstrapPreflight/BootstrapPreflightMain.swift +1 -1
  130. package/src/native/Recordings/Updater/Broker/ApplicationNamespace.swift +2 -2
  131. package/src/native/Recordings/Updater/Broker/BrokerMain.swift +1 -1
  132. package/src/native/Recordings/Updater/Broker/CanonicalTreeCopy.swift +1 -1
  133. package/src/native/Recordings/Updater/Broker/InstallJournal.swift +1 -1
  134. package/src/native/Recordings/Updater/BrokerTests/ActivationRecoveryPolicyTests.swift +2 -2
  135. package/src/native/Recordings/Updater/Protocol/UpdateProtocol.swift +1 -1
  136. package/src/native/Recordings/Updater/VerifierLauncher/RecordingsVerifierLauncher.c +2 -2
  137. package/src/native/Recordings/build.sh +8 -7
  138. package/dist/__tests__/helpers/installer-guard-execution.d.ts +0 -22
  139. package/dist/__tests__/helpers/installer-guard-execution.d.ts.map +0 -1
  140. package/dist/__tests__/helpers/installer-preflight.d.ts +0 -22
  141. package/dist/__tests__/helpers/installer-preflight.d.ts.map +0 -1
  142. package/dist/__tests__/helpers/native-fs-guard.d.ts +0 -2
  143. package/dist/__tests__/helpers/native-fs-guard.d.ts.map +0 -1
  144. package/dist/__tests__/helpers/source-assertions.d.ts +0 -171
  145. package/dist/__tests__/helpers/source-assertions.d.ts.map +0 -1
  146. package/dist/__tests__/preload.d.ts +0 -2
  147. package/dist/__tests__/preload.d.ts.map +0 -1
  148. package/src/native/Recordings/App/SidebarView.swift +0 -212
@@ -0,0 +1,1206 @@
1
+ {
2
+ "fixtureVersion": 1,
3
+ "cases": [
4
+ {
5
+ "parser": "recordingInputParser",
6
+ "name": "recording",
7
+ "valid": true,
8
+ "value": {
9
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
10
+ "title": "Fictional recording",
11
+ "transcript": "A blue notebook is on the desk.",
12
+ "durationMs": 1000
13
+ }
14
+ },
15
+ {
16
+ "parser": "recordingInputParser",
17
+ "name": "trim title",
18
+ "valid": true,
19
+ "value": {
20
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
21
+ "title": " Fictional title ",
22
+ "transcript": "A blue notebook is on the desk.",
23
+ "durationMs": 1000
24
+ }
25
+ },
26
+ {
27
+ "parser": "recordingInputParser",
28
+ "name": "unknown input",
29
+ "valid": false,
30
+ "value": {
31
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
32
+ "title": "Fictional recording",
33
+ "transcript": "A blue notebook is on the desk.",
34
+ "durationMs": 1000,
35
+ "extra": true
36
+ }
37
+ },
38
+ {
39
+ "parser": "recordingInputParser",
40
+ "name": "invalid UUID",
41
+ "valid": false,
42
+ "value": {
43
+ "id": "legacy-local-id",
44
+ "title": "Fictional recording",
45
+ "transcript": "A blue notebook is on the desk.",
46
+ "durationMs": 1000
47
+ }
48
+ },
49
+ {
50
+ "parser": "recordingInputParser",
51
+ "name": "negative duration",
52
+ "valid": false,
53
+ "value": {
54
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
55
+ "title": "Fictional recording",
56
+ "transcript": "A blue notebook is on the desk.",
57
+ "durationMs": -1
58
+ }
59
+ },
60
+ {
61
+ "parser": "recordingInputParser",
62
+ "name": "too long duration",
63
+ "valid": false,
64
+ "value": {
65
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
66
+ "title": "Fictional recording",
67
+ "transcript": "A blue notebook is on the desk.",
68
+ "durationMs": 1800001
69
+ }
70
+ },
71
+ {
72
+ "parser": "recordingInputParser",
73
+ "name": "empty title",
74
+ "valid": false,
75
+ "value": {
76
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
77
+ "title": " ",
78
+ "transcript": "A blue notebook is on the desk.",
79
+ "durationMs": 1000
80
+ }
81
+ },
82
+ {
83
+ "parser": "recordingResponseParser",
84
+ "name": "future nested response fields",
85
+ "valid": true,
86
+ "value": {
87
+ "recording": {
88
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
89
+ "title": "Fictional recording",
90
+ "transcript": "A blue notebook is on the desk.",
91
+ "durationMs": 1000,
92
+ "createdAt": "2026-01-02T03:04:05Z",
93
+ "updatedAt": "2026-01-02T03:04:05Z",
94
+ "future": {
95
+ "notes": [
96
+ "fictional",
97
+ null,
98
+ 3
99
+ ]
100
+ }
101
+ },
102
+ "nextContract": true
103
+ }
104
+ },
105
+ {
106
+ "parser": "recordingResponseParser",
107
+ "name": "missing timestamp",
108
+ "valid": false,
109
+ "value": {
110
+ "recording": {
111
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
112
+ "title": "Fictional recording",
113
+ "transcript": "A blue notebook is on the desk.",
114
+ "durationMs": 1000
115
+ }
116
+ }
117
+ },
118
+ {
119
+ "parser": "pasteInputParser",
120
+ "name": "UTC client report",
121
+ "valid": true,
122
+ "value": {
123
+ "id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
124
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
125
+ "text": "Fictional text",
126
+ "status": "confirmed",
127
+ "occurredAt": "2026-01-02T03:04:05Z"
128
+ }
129
+ },
130
+ {
131
+ "parser": "pasteInputParser",
132
+ "name": "reject offset input",
133
+ "valid": false,
134
+ "value": {
135
+ "id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
136
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
137
+ "text": "Fictional text",
138
+ "status": "confirmed",
139
+ "occurredAt": "2026-01-02T03:04:05+02:00"
140
+ }
141
+ },
142
+ {
143
+ "parser": "pasteInputParser",
144
+ "name": "reject claimed server evidence",
145
+ "valid": false,
146
+ "value": {
147
+ "id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
148
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
149
+ "text": "Fictional text",
150
+ "status": "confirmed",
151
+ "occurredAt": "2026-01-02T03:04:05Z",
152
+ "evidenceSource": "server_verified"
153
+ }
154
+ },
155
+ {
156
+ "parser": "pasteReceiptParser",
157
+ "name": "offset response and client reported evidence",
158
+ "valid": true,
159
+ "value": {
160
+ "id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
161
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
162
+ "text": "Fictional text",
163
+ "status": "confirmed",
164
+ "occurredAt": "2026-01-02T03:04:05+02:00",
165
+ "createdAt": "2026-01-02T03:04:05Z",
166
+ "updatedAt": "2026-01-02T03:04:05Z",
167
+ "evidenceSource": "client_reported",
168
+ "future": true
169
+ }
170
+ },
171
+ {
172
+ "parser": "pasteReceiptParser",
173
+ "name": "reject server verification claim",
174
+ "valid": false,
175
+ "value": {
176
+ "id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
177
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
178
+ "text": "Fictional text",
179
+ "status": "confirmed",
180
+ "occurredAt": "2026-01-02T03:04:05Z",
181
+ "createdAt": "2026-01-02T03:04:05Z",
182
+ "updatedAt": "2026-01-02T03:04:05Z",
183
+ "evidenceSource": "server_verified"
184
+ }
185
+ },
186
+ {
187
+ "parser": "pageOptionsParser",
188
+ "name": "empty page",
189
+ "valid": true,
190
+ "value": {}
191
+ },
192
+ {
193
+ "parser": "pageOptionsParser",
194
+ "name": "paired cursor",
195
+ "valid": true,
196
+ "value": {
197
+ "before": "2026-01-02T03:04:05Z",
198
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
199
+ }
200
+ },
201
+ {
202
+ "parser": "pageOptionsParser",
203
+ "name": "time only cursor",
204
+ "valid": false,
205
+ "value": {
206
+ "before": "2026-01-02T03:04:05Z"
207
+ }
208
+ },
209
+ {
210
+ "parser": "pageOptionsParser",
211
+ "name": "id alone cursor",
212
+ "valid": false,
213
+ "value": {
214
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
215
+ }
216
+ },
217
+ {
218
+ "parser": "pageOptionsParser",
219
+ "name": "oversized page",
220
+ "valid": false,
221
+ "value": {
222
+ "limit": 101
223
+ }
224
+ },
225
+ {
226
+ "parser": "pageOptionsParser",
227
+ "name": "legacy offset is not hosted cursor",
228
+ "valid": false,
229
+ "value": {
230
+ "offset": 20
231
+ }
232
+ },
233
+ {
234
+ "parser": "accountResponseParser",
235
+ "name": "legacy account without metadata",
236
+ "valid": true,
237
+ "value": {
238
+ "account": {
239
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
240
+ "displayName": "Fictional account",
241
+ "email": "person@example.invalid",
242
+ "createdAt": "2026-01-02T03:04:05Z"
243
+ }
244
+ }
245
+ },
246
+ {
247
+ "parser": "accountResponseParser",
248
+ "name": "modern account",
249
+ "valid": true,
250
+ "value": {
251
+ "account": {
252
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
253
+ "displayName": "Fictional account",
254
+ "email": "person@example.invalid",
255
+ "createdAt": "2026-01-02T03:04:05Z"
256
+ },
257
+ "wireVersion": "1.0",
258
+ "capabilities": [
259
+ "version-negotiation",
260
+ "pcm-s16le-24000-mono",
261
+ "audio-ack",
262
+ "session-authorize"
263
+ ]
264
+ }
265
+ },
266
+ {
267
+ "parser": "versionResponseParser",
268
+ "name": "new compatible minor and capability",
269
+ "valid": true,
270
+ "value": {
271
+ "name": "recordings",
272
+ "version": "fictional",
273
+ "apiVersion": "v1",
274
+ "wireVersion": "1.12",
275
+ "capabilities": [
276
+ "version-negotiation",
277
+ "pcm-s16le-24000-mono",
278
+ "audio-ack",
279
+ "session-authorize",
280
+ "future-feature"
281
+ ]
282
+ }
283
+ },
284
+ {
285
+ "parser": "accountResponseParser",
286
+ "name": "partial metadata",
287
+ "valid": false,
288
+ "value": {
289
+ "account": {
290
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
291
+ "displayName": "Fictional account",
292
+ "email": "person@example.invalid",
293
+ "createdAt": "2026-01-02T03:04:05Z"
294
+ },
295
+ "wireVersion": "1.0"
296
+ }
297
+ },
298
+ {
299
+ "parser": "accountResponseParser",
300
+ "name": "missing required capability",
301
+ "valid": false,
302
+ "value": {
303
+ "account": {
304
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
305
+ "displayName": "Fictional account",
306
+ "email": "person@example.invalid",
307
+ "createdAt": "2026-01-02T03:04:05Z"
308
+ },
309
+ "wireVersion": "1.0",
310
+ "capabilities": [
311
+ "version-negotiation",
312
+ "pcm-s16le-24000-mono",
313
+ "audio-ack"
314
+ ]
315
+ }
316
+ },
317
+ {
318
+ "parser": "accountResponseParser",
319
+ "name": "duplicate capability",
320
+ "valid": false,
321
+ "value": {
322
+ "account": {
323
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
324
+ "displayName": "Fictional account",
325
+ "email": "person@example.invalid",
326
+ "createdAt": "2026-01-02T03:04:05Z"
327
+ },
328
+ "wireVersion": "1.0",
329
+ "capabilities": [
330
+ "version-negotiation",
331
+ "pcm-s16le-24000-mono",
332
+ "audio-ack",
333
+ "session-authorize",
334
+ "version-negotiation",
335
+ "pcm-s16le-24000-mono",
336
+ "audio-ack",
337
+ "session-authorize"
338
+ ]
339
+ }
340
+ },
341
+ {
342
+ "parser": "accountResponseParser",
343
+ "name": "bad capability",
344
+ "valid": false,
345
+ "value": {
346
+ "account": {
347
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
348
+ "displayName": "Fictional account",
349
+ "email": "person@example.invalid",
350
+ "createdAt": "2026-01-02T03:04:05Z"
351
+ },
352
+ "wireVersion": "1.0",
353
+ "capabilities": [
354
+ "version-negotiation",
355
+ "pcm-s16le-24000-mono",
356
+ "audio-ack",
357
+ "session-authorize",
358
+ "Not valid"
359
+ ]
360
+ }
361
+ },
362
+ {
363
+ "parser": "accountResponseParser",
364
+ "name": "unsupported major",
365
+ "valid": false,
366
+ "value": {
367
+ "account": {
368
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
369
+ "displayName": "Fictional account",
370
+ "email": "person@example.invalid",
371
+ "createdAt": "2026-01-02T03:04:05Z"
372
+ },
373
+ "wireVersion": "2.0",
374
+ "capabilities": [
375
+ "version-negotiation",
376
+ "pcm-s16le-24000-mono",
377
+ "audio-ack",
378
+ "session-authorize"
379
+ ]
380
+ }
381
+ },
382
+ {
383
+ "parser": "accountResponseParser",
384
+ "name": "trailing newline",
385
+ "valid": false,
386
+ "value": {
387
+ "account": {
388
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
389
+ "displayName": "Fictional account",
390
+ "email": "person@example.invalid",
391
+ "createdAt": "2026-01-02T03:04:05Z"
392
+ },
393
+ "wireVersion": "1.0\n",
394
+ "capabilities": [
395
+ "version-negotiation",
396
+ "pcm-s16le-24000-mono",
397
+ "audio-ack",
398
+ "session-authorize"
399
+ ]
400
+ }
401
+ },
402
+ {
403
+ "parser": "bootstrapInputParser",
404
+ "name": "empty bootstrap",
405
+ "valid": true,
406
+ "value": {}
407
+ },
408
+ {
409
+ "parser": "bootstrapInputParser",
410
+ "name": "no profile authority input",
411
+ "valid": false,
412
+ "value": {
413
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
414
+ }
415
+ },
416
+ {
417
+ "parser": "renameInputParser",
418
+ "name": "rename",
419
+ "valid": true,
420
+ "value": {
421
+ "title": "Fictional title"
422
+ }
423
+ },
424
+ {
425
+ "parser": "pendingDeletionParser",
426
+ "name": "pending cleanup with future metadata",
427
+ "valid": true,
428
+ "value": {
429
+ "audioCleanup": {
430
+ "state": "pending",
431
+ "future": true
432
+ }
433
+ }
434
+ },
435
+ {
436
+ "parser": "streamControlParser",
437
+ "name": "legacy session start",
438
+ "valid": true,
439
+ "value": {
440
+ "type": "session.start",
441
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
442
+ }
443
+ },
444
+ {
445
+ "parser": "streamControlParser",
446
+ "name": "modern session start",
447
+ "valid": true,
448
+ "value": {
449
+ "type": "session.start",
450
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
451
+ "wireVersion": "1.0",
452
+ "capabilities": [
453
+ "version-negotiation",
454
+ "pcm-s16le-24000-mono",
455
+ "audio-ack",
456
+ "session-authorize"
457
+ ],
458
+ "language": "en",
459
+ "model": "fictional-model"
460
+ }
461
+ },
462
+ {
463
+ "parser": "streamControlParser",
464
+ "name": "finish",
465
+ "valid": true,
466
+ "value": {
467
+ "type": "input.finish"
468
+ }
469
+ },
470
+ {
471
+ "parser": "streamControlParser",
472
+ "name": "cancel",
473
+ "valid": true,
474
+ "value": {
475
+ "type": "session.cancel"
476
+ }
477
+ },
478
+ {
479
+ "parser": "streamControlParser",
480
+ "name": "authorize",
481
+ "valid": true,
482
+ "value": {
483
+ "type": "session.authorize",
484
+ "accessToken": "fictional-bearer"
485
+ }
486
+ },
487
+ {
488
+ "parser": "streamControlParser",
489
+ "name": "start future key",
490
+ "valid": false,
491
+ "value": {
492
+ "type": "session.start",
493
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
494
+ "future": true
495
+ }
496
+ },
497
+ {
498
+ "parser": "streamControlParser",
499
+ "name": "partial start metadata",
500
+ "valid": false,
501
+ "value": {
502
+ "type": "session.start",
503
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
504
+ "wireVersion": "1.0"
505
+ }
506
+ },
507
+ {
508
+ "parser": "streamControlParser",
509
+ "name": "uppercase language",
510
+ "valid": false,
511
+ "value": {
512
+ "type": "session.start",
513
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
514
+ "language": "EN"
515
+ }
516
+ },
517
+ {
518
+ "parser": "streamControlParser",
519
+ "name": "wrong major",
520
+ "valid": false,
521
+ "value": {
522
+ "type": "session.start",
523
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
524
+ "wireVersion": "2.0",
525
+ "capabilities": [
526
+ "version-negotiation",
527
+ "pcm-s16le-24000-mono",
528
+ "audio-ack",
529
+ "session-authorize"
530
+ ]
531
+ }
532
+ },
533
+ {
534
+ "parser": "streamControlParser",
535
+ "name": "finish fields",
536
+ "valid": false,
537
+ "value": {
538
+ "type": "input.finish",
539
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
540
+ }
541
+ },
542
+ {
543
+ "parser": "streamControlParser",
544
+ "name": "empty authorization",
545
+ "valid": false,
546
+ "value": {
547
+ "type": "session.authorize",
548
+ "accessToken": ""
549
+ }
550
+ },
551
+ {
552
+ "parser": "streamEventParser",
553
+ "name": "legacy ready",
554
+ "valid": true,
555
+ "value": {
556
+ "type": "session.ready",
557
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
558
+ "format": {
559
+ "encoding": "pcm_s16le",
560
+ "sampleRateHz": 24000,
561
+ "channels": 1
562
+ },
563
+ "maxInFlightAudioBytes": 96000
564
+ }
565
+ },
566
+ {
567
+ "parser": "streamEventParser",
568
+ "name": "modern ready",
569
+ "valid": true,
570
+ "value": {
571
+ "type": "session.ready",
572
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
573
+ "format": {
574
+ "encoding": "pcm_s16le",
575
+ "sampleRateHz": 24000,
576
+ "channels": 1
577
+ },
578
+ "maxInFlightAudioBytes": 96000,
579
+ "wireVersion": "1.0",
580
+ "capabilities": [
581
+ "version-negotiation",
582
+ "pcm-s16le-24000-mono",
583
+ "audio-ack",
584
+ "session-authorize"
585
+ ],
586
+ "future": {
587
+ "enabled": true
588
+ }
589
+ }
590
+ },
591
+ {
592
+ "parser": "streamEventParser",
593
+ "name": "future minor ready",
594
+ "valid": true,
595
+ "value": {
596
+ "type": "session.ready",
597
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
598
+ "format": {
599
+ "encoding": "pcm_s16le",
600
+ "sampleRateHz": 24000,
601
+ "channels": 1
602
+ },
603
+ "maxInFlightAudioBytes": 96000,
604
+ "wireVersion": "1.1",
605
+ "capabilities": [
606
+ "version-negotiation",
607
+ "pcm-s16le-24000-mono",
608
+ "audio-ack",
609
+ "session-authorize"
610
+ ]
611
+ }
612
+ },
613
+ {
614
+ "parser": "streamEventParser",
615
+ "name": "audio accepted",
616
+ "valid": true,
617
+ "value": {
618
+ "type": "audio.accepted",
619
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
620
+ "bytes": 4800,
621
+ "totalBytes": 9600
622
+ }
623
+ },
624
+ {
625
+ "parser": "streamEventParser",
626
+ "name": "authorized",
627
+ "valid": true,
628
+ "value": {
629
+ "type": "session.authorized",
630
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
631
+ "expiresAt": 2000000000
632
+ }
633
+ },
634
+ {
635
+ "parser": "streamEventParser",
636
+ "name": "partial",
637
+ "valid": true,
638
+ "value": {
639
+ "type": "partial",
640
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
641
+ "sequence": 1,
642
+ "segment": {
643
+ "id": "segment-1",
644
+ "text": "Fictional partial.",
645
+ "startSecond": 0,
646
+ "future": true
647
+ }
648
+ }
649
+ },
650
+ {
651
+ "parser": "streamEventParser",
652
+ "name": "committed",
653
+ "valid": true,
654
+ "value": {
655
+ "type": "committed",
656
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
657
+ "sequence": 1,
658
+ "segment": {
659
+ "id": "segment-1",
660
+ "text": "Fictional partial.",
661
+ "startSecond": 0,
662
+ "future": true
663
+ }
664
+ }
665
+ },
666
+ {
667
+ "parser": "streamEventParser",
668
+ "name": "minimal legacy final",
669
+ "valid": true,
670
+ "value": {
671
+ "type": "final",
672
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
673
+ "transcript": {
674
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
675
+ "text": "Fictional final."
676
+ }
677
+ }
678
+ },
679
+ {
680
+ "parser": "streamEventParser",
681
+ "name": "final",
682
+ "valid": true,
683
+ "value": {
684
+ "type": "final",
685
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
686
+ "sequence": 2,
687
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
688
+ "transcript": {
689
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
690
+ "text": "Fictional final transcript.",
691
+ "segments": [
692
+ {
693
+ "id": "segment-1",
694
+ "text": "Fictional final transcript."
695
+ }
696
+ ]
697
+ }
698
+ }
699
+ },
700
+ {
701
+ "parser": "streamEventParser",
702
+ "name": "future safe error code",
703
+ "valid": true,
704
+ "value": {
705
+ "type": "error",
706
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
707
+ "code": "future_error",
708
+ "message": "Fictional refusal."
709
+ }
710
+ },
711
+ {
712
+ "parser": "streamEventParser",
713
+ "name": "wrong sample rate",
714
+ "valid": false,
715
+ "value": {
716
+ "type": "session.ready",
717
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
718
+ "format": {
719
+ "encoding": "pcm_s16le",
720
+ "sampleRateHz": 48000,
721
+ "channels": 1
722
+ },
723
+ "maxInFlightAudioBytes": 96000
724
+ }
725
+ },
726
+ {
727
+ "parser": "streamEventParser",
728
+ "name": "oversized audio window",
729
+ "valid": false,
730
+ "value": {
731
+ "type": "session.ready",
732
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
733
+ "format": {
734
+ "encoding": "pcm_s16le",
735
+ "sampleRateHz": 24000,
736
+ "channels": 1
737
+ },
738
+ "maxInFlightAudioBytes": 192001
739
+ }
740
+ },
741
+ {
742
+ "parser": "streamEventParser",
743
+ "name": "partial ready metadata",
744
+ "valid": false,
745
+ "value": {
746
+ "type": "session.ready",
747
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
748
+ "format": {
749
+ "encoding": "pcm_s16le",
750
+ "sampleRateHz": 24000,
751
+ "channels": 1
752
+ },
753
+ "maxInFlightAudioBytes": 96000,
754
+ "wireVersion": "1.0"
755
+ }
756
+ },
757
+ {
758
+ "parser": "streamEventParser",
759
+ "name": "unsupported ready major",
760
+ "valid": false,
761
+ "value": {
762
+ "type": "session.ready",
763
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
764
+ "format": {
765
+ "encoding": "pcm_s16le",
766
+ "sampleRateHz": 24000,
767
+ "channels": 1
768
+ },
769
+ "maxInFlightAudioBytes": 96000,
770
+ "wireVersion": "2.0",
771
+ "capabilities": [
772
+ "version-negotiation",
773
+ "pcm-s16le-24000-mono",
774
+ "audio-ack",
775
+ "session-authorize"
776
+ ]
777
+ }
778
+ },
779
+ {
780
+ "parser": "streamEventParser",
781
+ "name": "odd ack",
782
+ "valid": false,
783
+ "value": {
784
+ "type": "audio.accepted",
785
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
786
+ "bytes": 3,
787
+ "totalBytes": 3
788
+ }
789
+ },
790
+ {
791
+ "parser": "streamEventParser",
792
+ "name": "ack exceeds total",
793
+ "valid": false,
794
+ "value": {
795
+ "type": "audio.accepted",
796
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
797
+ "bytes": 4800,
798
+ "totalBytes": 2400
799
+ }
800
+ },
801
+ {
802
+ "parser": "streamEventParser",
803
+ "name": "negative sequence",
804
+ "valid": false,
805
+ "value": {
806
+ "type": "partial",
807
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
808
+ "sequence": -1,
809
+ "segment": {
810
+ "id": "one",
811
+ "text": "Fictional"
812
+ }
813
+ }
814
+ },
815
+ {
816
+ "parser": "streamEventParser",
817
+ "name": "foreign final identity",
818
+ "valid": false,
819
+ "value": {
820
+ "type": "final",
821
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
822
+ "sequence": 2,
823
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
824
+ "transcript": {
825
+ "sessionId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
826
+ "text": "Fictional final transcript.",
827
+ "segments": [
828
+ {
829
+ "id": "segment-1",
830
+ "text": "Fictional final transcript."
831
+ }
832
+ ]
833
+ }
834
+ }
835
+ },
836
+ {
837
+ "parser": "streamEventParser",
838
+ "name": "foreign recording identity",
839
+ "valid": false,
840
+ "value": {
841
+ "type": "final",
842
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
843
+ "sequence": 2,
844
+ "recordingId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
845
+ "transcript": {
846
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
847
+ "text": "Fictional final transcript.",
848
+ "segments": [
849
+ {
850
+ "id": "segment-1",
851
+ "text": "Fictional final transcript."
852
+ }
853
+ ]
854
+ }
855
+ }
856
+ },
857
+ {
858
+ "parser": "streamEventParser",
859
+ "name": "empty final",
860
+ "valid": false,
861
+ "value": {
862
+ "type": "final",
863
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
864
+ "sequence": 2,
865
+ "recordingId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
866
+ "transcript": {
867
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
868
+ "text": " ",
869
+ "segments": [
870
+ {
871
+ "id": "segment-1",
872
+ "text": "Fictional final transcript."
873
+ }
874
+ ]
875
+ }
876
+ }
877
+ },
878
+ {
879
+ "parser": "streamEventParser",
880
+ "name": "unknown event kind",
881
+ "valid": false,
882
+ "value": {
883
+ "type": "unrecognized.event",
884
+ "sessionId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
885
+ }
886
+ },
887
+ {
888
+ "parser": "recordingIDParser",
889
+ "name": "UUID standard",
890
+ "value": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
891
+ "valid": true
892
+ },
893
+ {
894
+ "parser": "recordingIDParser",
895
+ "name": "UUID uppercase standard",
896
+ "value": "AAAAAAAA-AAAA-4AAA-8AAA-AAAAAAAAAAAA",
897
+ "valid": true
898
+ },
899
+ {
900
+ "parser": "recordingIDParser",
901
+ "name": "UUID nil",
902
+ "value": "00000000-0000-0000-0000-000000000000",
903
+ "valid": true
904
+ },
905
+ {
906
+ "parser": "recordingIDParser",
907
+ "name": "UUID max",
908
+ "value": "ffffffff-ffff-ffff-ffff-ffffffffffff",
909
+ "valid": true
910
+ },
911
+ {
912
+ "parser": "recordingIDParser",
913
+ "name": "UUID uppercase max rejected",
914
+ "value": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
915
+ "valid": false
916
+ },
917
+ {
918
+ "parser": "recordingIDParser",
919
+ "name": "UUID version zero rejected",
920
+ "value": "aaaaaaaa-aaaa-0aaa-8aaa-aaaaaaaaaaaa",
921
+ "valid": false
922
+ },
923
+ {
924
+ "parser": "recordingIDParser",
925
+ "name": "UUID newline rejected",
926
+ "value": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa\n",
927
+ "valid": false
928
+ },
929
+ {
930
+ "parser": "pasteInputParser",
931
+ "name": "UTC qualified timestamp 2026-01-02T03:04Z",
932
+ "value": {
933
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
934
+ "text": "Fictional",
935
+ "status": "attempted",
936
+ "occurredAt": "2026-01-02T03:04Z"
937
+ },
938
+ "valid": false
939
+ },
940
+ {
941
+ "parser": "pageOptionsParser",
942
+ "name": "Cursor qualified timestamp 2026-01-02T03:04Z",
943
+ "value": {
944
+ "before": "2026-01-02T03:04Z",
945
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
946
+ },
947
+ "valid": false
948
+ },
949
+ {
950
+ "parser": "pasteInputParser",
951
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05Z",
952
+ "value": {
953
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
954
+ "text": "Fictional",
955
+ "status": "attempted",
956
+ "occurredAt": "2026-01-02T03:04:05Z"
957
+ },
958
+ "valid": true
959
+ },
960
+ {
961
+ "parser": "pageOptionsParser",
962
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05Z",
963
+ "value": {
964
+ "before": "2026-01-02T03:04:05Z",
965
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
966
+ },
967
+ "valid": true
968
+ },
969
+ {
970
+ "parser": "pasteInputParser",
971
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05.123Z",
972
+ "value": {
973
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
974
+ "text": "Fictional",
975
+ "status": "attempted",
976
+ "occurredAt": "2026-01-02T03:04:05.123Z"
977
+ },
978
+ "valid": true
979
+ },
980
+ {
981
+ "parser": "pageOptionsParser",
982
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05.123Z",
983
+ "value": {
984
+ "before": "2026-01-02T03:04:05.123Z",
985
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
986
+ },
987
+ "valid": true
988
+ },
989
+ {
990
+ "parser": "pasteInputParser",
991
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+02:00",
992
+ "value": {
993
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
994
+ "text": "Fictional",
995
+ "status": "attempted",
996
+ "occurredAt": "2026-01-02T03:04:05+02:00"
997
+ },
998
+ "valid": false
999
+ },
1000
+ {
1001
+ "parser": "pageOptionsParser",
1002
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+02:00",
1003
+ "value": {
1004
+ "before": "2026-01-02T03:04:05+02:00",
1005
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1006
+ },
1007
+ "valid": true
1008
+ },
1009
+ {
1010
+ "parser": "pasteInputParser",
1011
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+0200",
1012
+ "value": {
1013
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1014
+ "text": "Fictional",
1015
+ "status": "attempted",
1016
+ "occurredAt": "2026-01-02T03:04:05+0200"
1017
+ },
1018
+ "valid": false
1019
+ },
1020
+ {
1021
+ "parser": "pageOptionsParser",
1022
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+0200",
1023
+ "value": {
1024
+ "before": "2026-01-02T03:04:05+0200",
1025
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1026
+ },
1027
+ "valid": false
1028
+ },
1029
+ {
1030
+ "parser": "pasteInputParser",
1031
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+02",
1032
+ "value": {
1033
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1034
+ "text": "Fictional",
1035
+ "status": "attempted",
1036
+ "occurredAt": "2026-01-02T03:04:05+02"
1037
+ },
1038
+ "valid": false
1039
+ },
1040
+ {
1041
+ "parser": "pageOptionsParser",
1042
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+02",
1043
+ "value": {
1044
+ "before": "2026-01-02T03:04:05+02",
1045
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1046
+ },
1047
+ "valid": false
1048
+ },
1049
+ {
1050
+ "parser": "pasteInputParser",
1051
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+23:59",
1052
+ "value": {
1053
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1054
+ "text": "Fictional",
1055
+ "status": "attempted",
1056
+ "occurredAt": "2026-01-02T03:04:05+23:59"
1057
+ },
1058
+ "valid": false
1059
+ },
1060
+ {
1061
+ "parser": "pageOptionsParser",
1062
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+23:59",
1063
+ "value": {
1064
+ "before": "2026-01-02T03:04:05+23:59",
1065
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1066
+ },
1067
+ "valid": true
1068
+ },
1069
+ {
1070
+ "parser": "pasteInputParser",
1071
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+24:00",
1072
+ "value": {
1073
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1074
+ "text": "Fictional",
1075
+ "status": "attempted",
1076
+ "occurredAt": "2026-01-02T03:04:05+24:00"
1077
+ },
1078
+ "valid": false
1079
+ },
1080
+ {
1081
+ "parser": "pageOptionsParser",
1082
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+24:00",
1083
+ "value": {
1084
+ "before": "2026-01-02T03:04:05+24:00",
1085
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1086
+ },
1087
+ "valid": false
1088
+ },
1089
+ {
1090
+ "parser": "pasteInputParser",
1091
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05+02:60",
1092
+ "value": {
1093
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1094
+ "text": "Fictional",
1095
+ "status": "attempted",
1096
+ "occurredAt": "2026-01-02T03:04:05+02:60"
1097
+ },
1098
+ "valid": false
1099
+ },
1100
+ {
1101
+ "parser": "pageOptionsParser",
1102
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05+02:60",
1103
+ "value": {
1104
+ "before": "2026-01-02T03:04:05+02:60",
1105
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1106
+ },
1107
+ "valid": false
1108
+ },
1109
+ {
1110
+ "parser": "pasteInputParser",
1111
+ "name": "UTC qualified timestamp 2026-02-30T03:04:05Z",
1112
+ "value": {
1113
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1114
+ "text": "Fictional",
1115
+ "status": "attempted",
1116
+ "occurredAt": "2026-02-30T03:04:05Z"
1117
+ },
1118
+ "valid": false
1119
+ },
1120
+ {
1121
+ "parser": "pageOptionsParser",
1122
+ "name": "Cursor qualified timestamp 2026-02-30T03:04:05Z",
1123
+ "value": {
1124
+ "before": "2026-02-30T03:04:05Z",
1125
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1126
+ },
1127
+ "valid": false
1128
+ },
1129
+ {
1130
+ "parser": "pasteInputParser",
1131
+ "name": "UTC qualified timestamp 2024-02-29T03:04:05Z",
1132
+ "value": {
1133
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1134
+ "text": "Fictional",
1135
+ "status": "attempted",
1136
+ "occurredAt": "2024-02-29T03:04:05Z"
1137
+ },
1138
+ "valid": true
1139
+ },
1140
+ {
1141
+ "parser": "pageOptionsParser",
1142
+ "name": "Cursor qualified timestamp 2024-02-29T03:04:05Z",
1143
+ "value": {
1144
+ "before": "2024-02-29T03:04:05Z",
1145
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1146
+ },
1147
+ "valid": true
1148
+ },
1149
+ {
1150
+ "parser": "pasteInputParser",
1151
+ "name": "UTC qualified timestamp 2026-01-02T03:04:05Z [newline]",
1152
+ "value": {
1153
+ "id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
1154
+ "text": "Fictional",
1155
+ "status": "attempted",
1156
+ "occurredAt": "2026-01-02T03:04:05Z\n"
1157
+ },
1158
+ "valid": false
1159
+ },
1160
+ {
1161
+ "parser": "pageOptionsParser",
1162
+ "name": "Cursor qualified timestamp 2026-01-02T03:04:05Z [newline]",
1163
+ "value": {
1164
+ "before": "2026-01-02T03:04:05Z\n",
1165
+ "beforeId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
1166
+ },
1167
+ "valid": false
1168
+ },
1169
+ {
1170
+ "parser": "healthResponseParser",
1171
+ "name": "healthy status preserves future JSON",
1172
+ "valid": true,
1173
+ "value": {
1174
+ "status": "ok",
1175
+ "future": {
1176
+ "available": true
1177
+ }
1178
+ }
1179
+ },
1180
+ {
1181
+ "parser": "healthResponseParser",
1182
+ "name": "unknown health status refused",
1183
+ "valid": false,
1184
+ "value": {
1185
+ "status": "ready"
1186
+ }
1187
+ },
1188
+ {
1189
+ "parser": "readyResponseParser",
1190
+ "name": "ready status preserves future JSON",
1191
+ "valid": true,
1192
+ "value": {
1193
+ "status": "ready",
1194
+ "future": {
1195
+ "available": true
1196
+ }
1197
+ }
1198
+ },
1199
+ {
1200
+ "parser": "readyResponseParser",
1201
+ "name": "missing ready status refused",
1202
+ "valid": false,
1203
+ "value": {}
1204
+ }
1205
+ ]
1206
+ }