@crvouga/mockingbird-service-hermes 0.1.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,616 @@
1
+ {
2
+ "release": "v2026.8.31",
3
+ "commit": "29112bef099274229cadff79cdff7bf7b99c4b77",
4
+ "sources": {
5
+ "api_server_runs.py": {
6
+ "path": "gateway/platforms/api_server_runs.py",
7
+ "sha256": "048ae843592d701ff47437bd8edd47cd64ca6c0fdf88a71045bdb6fb337fbc63"
8
+ },
9
+ "api_server_run_idempotency.py": {
10
+ "path": "gateway/platforms/api_server_run_idempotency.py",
11
+ "sha256": "746904b3b6ed45d8359655b2e87c1f101394b13f6253e718ac9a83acd46174f2"
12
+ },
13
+ "api_server.py": {
14
+ "path": "gateway/platforms/api_server.py",
15
+ "sha256": "6aec6687d47c81b3567e930882a499c5c5c041ecbe40e1d08f93038212401962"
16
+ },
17
+ "hermes_state.py": {
18
+ "path": "hermes_state.py",
19
+ "sha256": "696fd2d37d66a599228f5b1be5d5b76423b744149c83a2fbd59bf3f45a5f3891"
20
+ },
21
+ "sqlite_runtime.py": {
22
+ "path": "hermes_cli/sqlite_runtime.py",
23
+ "sha256": "682ae7f6a783673b7687377a37f210f5b1f86f54d227baed95df279bdd561310"
24
+ },
25
+ "agent_redact.py": {
26
+ "path": "agent/redact.py",
27
+ "sha256": "db98c5b9cf5727abbb471b5009d19d3f8230863869cde207d53c5e5d8d4831f0"
28
+ },
29
+ "file_safety.py": {
30
+ "path": "agent/file_safety.py",
31
+ "sha256": "f2cb782cda3f091acba507e3af6a31e7326770dfc6b75657cd5adb1006521db9"
32
+ },
33
+ "interrupt_compat.py": {
34
+ "path": "agent/interrupt_compat.py",
35
+ "sha256": "f10ecfe97b6be6d150c3e41d5d377a9ca845e74d454240f2d6506f753dc23441"
36
+ },
37
+ "room_grants.py": {
38
+ "path": "gateway/platforms/api_server_room_grants.py",
39
+ "sha256": "d6e51eae92043ed8ab116e4f555db3c100829c93b61d516e31fc239ff90da204"
40
+ },
41
+ "gateway_status.py": {
42
+ "path": "gateway/status.py",
43
+ "sha256": "c7f2615117643f536f4d678a185dc1f9e6e407daea79e85f351613efac0ecefd"
44
+ },
45
+ "pyproject.toml": {
46
+ "path": "pyproject.toml",
47
+ "sha256": "c70c8b52f6cc08a4e65f0fc1713c26814fd4f19811bc7e01de645009b2a76600"
48
+ }
49
+ },
50
+ "epochs": [
51
+ {
52
+ "commit": "29112bef099274229cadff79cdff7bf7b99c4b77",
53
+ "python": "3.11.16",
54
+ "aiohttp": "3.14.3",
55
+ "sqlite": "3.53.1",
56
+ "pid": 86135,
57
+ "journal_mode": "wal",
58
+ "dependencies": {
59
+ "aiohttp": "3.14.3",
60
+ "aiohappyeyeballs": "2.7.1",
61
+ "aiosignal": "1.4.0",
62
+ "attrs": "26.1.0",
63
+ "frozenlist": "1.8.0",
64
+ "idna": "3.20",
65
+ "multidict": "6.9.1",
66
+ "propcache": "0.5.4",
67
+ "typing-extensions": "4.16.0",
68
+ "yarl": "1.25.1"
69
+ },
70
+ "definitions": {
71
+ "file_safety.py": ["_BLOCKED_PROJECT_ENV_BASENAMES"],
72
+ "hermes_state.py": [
73
+ "WalUnsupportedError",
74
+ "_WAL_INCOMPAT_MARKERS",
75
+ "_WAL_SIZE_LIMIT_BYTES",
76
+ "_apply_delete_for_wal_reset_bug",
77
+ "_apply_macos_checkpoint_barrier",
78
+ "_apply_wal_size_limit",
79
+ "_database_has_content",
80
+ "_delete_overridden_warned_lock",
81
+ "_delete_overridden_warned_paths",
82
+ "_enforce_macos_synchronous_full",
83
+ "_journal_upgrade_warned_lock",
84
+ "_journal_upgrade_warned_paths",
85
+ "_log_configured_delete_overridden_once",
86
+ "_log_journal_mode_upgrade_once",
87
+ "_log_wal_fallback_once",
88
+ "_log_wal_reset_bug_once",
89
+ "_on_disk_journal_mode",
90
+ "_set_journal_mode_no_wait",
91
+ "_wal_fallback_warned_lock",
92
+ "_wal_fallback_warned_paths",
93
+ "_wal_reset_bug_warned_lock",
94
+ "_wal_reset_bug_warned_paths",
95
+ "_wal_reset_repair_hint",
96
+ "apply_wal_with_fallback",
97
+ "is_sqlite_wal_reset_vulnerable",
98
+ "resolve_journal_mode"
99
+ ],
100
+ "gateway_status.py": [
101
+ "_IS_WINDOWS",
102
+ "_get_process_start_time",
103
+ "_pid_exists",
104
+ "get_process_start_time"
105
+ ],
106
+ "api_server.py": [
107
+ "_api_request_profile",
108
+ "_approval_event_choices",
109
+ "_check_auth",
110
+ "_clean_request_string",
111
+ "_expected_api_key",
112
+ "_openai_error",
113
+ "_parse_session_key_header",
114
+ "_redact_api_error_text",
115
+ "_request_agent_overrides"
116
+ ],
117
+ "room_grants.py": ["_room_grant_token"]
118
+ }
119
+ },
120
+ {
121
+ "commit": "29112bef099274229cadff79cdff7bf7b99c4b77",
122
+ "python": "3.11.16",
123
+ "aiohttp": "3.14.3",
124
+ "sqlite": "3.53.1",
125
+ "pid": 86144,
126
+ "journal_mode": "wal",
127
+ "dependencies": {
128
+ "aiohttp": "3.14.3",
129
+ "aiohappyeyeballs": "2.7.1",
130
+ "aiosignal": "1.4.0",
131
+ "attrs": "26.1.0",
132
+ "frozenlist": "1.8.0",
133
+ "idna": "3.20",
134
+ "multidict": "6.9.1",
135
+ "propcache": "0.5.4",
136
+ "typing-extensions": "4.16.0",
137
+ "yarl": "1.25.1"
138
+ },
139
+ "definitions": {
140
+ "file_safety.py": ["_BLOCKED_PROJECT_ENV_BASENAMES"],
141
+ "hermes_state.py": [
142
+ "WalUnsupportedError",
143
+ "_WAL_INCOMPAT_MARKERS",
144
+ "_WAL_SIZE_LIMIT_BYTES",
145
+ "_apply_delete_for_wal_reset_bug",
146
+ "_apply_macos_checkpoint_barrier",
147
+ "_apply_wal_size_limit",
148
+ "_database_has_content",
149
+ "_delete_overridden_warned_lock",
150
+ "_delete_overridden_warned_paths",
151
+ "_enforce_macos_synchronous_full",
152
+ "_journal_upgrade_warned_lock",
153
+ "_journal_upgrade_warned_paths",
154
+ "_log_configured_delete_overridden_once",
155
+ "_log_journal_mode_upgrade_once",
156
+ "_log_wal_fallback_once",
157
+ "_log_wal_reset_bug_once",
158
+ "_on_disk_journal_mode",
159
+ "_set_journal_mode_no_wait",
160
+ "_wal_fallback_warned_lock",
161
+ "_wal_fallback_warned_paths",
162
+ "_wal_reset_bug_warned_lock",
163
+ "_wal_reset_bug_warned_paths",
164
+ "_wal_reset_repair_hint",
165
+ "apply_wal_with_fallback",
166
+ "is_sqlite_wal_reset_vulnerable",
167
+ "resolve_journal_mode"
168
+ ],
169
+ "gateway_status.py": [
170
+ "_IS_WINDOWS",
171
+ "_get_process_start_time",
172
+ "_pid_exists",
173
+ "get_process_start_time"
174
+ ],
175
+ "api_server.py": [
176
+ "_api_request_profile",
177
+ "_approval_event_choices",
178
+ "_check_auth",
179
+ "_clean_request_string",
180
+ "_expected_api_key",
181
+ "_openai_error",
182
+ "_parse_session_key_header",
183
+ "_redact_api_error_text",
184
+ "_request_agent_overrides"
185
+ ],
186
+ "room_grants.py": ["_room_grant_token"]
187
+ }
188
+ }
189
+ ],
190
+ "comparisons": [
191
+ {
192
+ "label": "cancelled:admission",
193
+ "status": 202,
194
+ "observation": {
195
+ "run_id": "cancelled",
196
+ "status": "started",
197
+ "replayed": false
198
+ }
199
+ },
200
+ {
201
+ "label": "cancelled:running",
202
+ "status": 200,
203
+ "observation": {
204
+ "object": "hermes.run",
205
+ "run_id": "cancelled",
206
+ "status": "running",
207
+ "updated_at": 1700000000,
208
+ "created_at": 1700000000,
209
+ "session_id": "cancelled",
210
+ "model": "hermes-agent"
211
+ }
212
+ },
213
+ {
214
+ "label": "active replay",
215
+ "status": 202,
216
+ "observation": {
217
+ "run_id": "cancelled",
218
+ "status": "running",
219
+ "replayed": true
220
+ }
221
+ },
222
+ {
223
+ "label": "changed body conflicts",
224
+ "status": 409,
225
+ "observation": {
226
+ "error": {
227
+ "message": "Idempotency-Key was already used with a different request payload",
228
+ "type": "invalid_request_error",
229
+ "param": null,
230
+ "code": "idempotency_key_conflict"
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "label": "cancelled:stop",
236
+ "status": 200,
237
+ "observation": {
238
+ "run_id": "cancelled",
239
+ "status": "stopping"
240
+ }
241
+ },
242
+ {
243
+ "label": "cancelled:cancelled",
244
+ "status": 200,
245
+ "observation": {
246
+ "object": "hermes.run",
247
+ "run_id": "cancelled",
248
+ "status": "cancelled",
249
+ "updated_at": 1700000000,
250
+ "created_at": 1700000000,
251
+ "session_id": "cancelled",
252
+ "model": "hermes-agent",
253
+ "last_event": "run.cancelled"
254
+ }
255
+ },
256
+ {
257
+ "label": "terminal replay",
258
+ "status": 202,
259
+ "observation": {
260
+ "run_id": "cancelled",
261
+ "status": "cancelled",
262
+ "replayed": true
263
+ }
264
+ },
265
+ {
266
+ "label": "completion-race:admission",
267
+ "status": 202,
268
+ "observation": {
269
+ "run_id": "completion-race",
270
+ "status": "started",
271
+ "replayed": false
272
+ }
273
+ },
274
+ {
275
+ "label": "completion-race:running",
276
+ "status": 200,
277
+ "observation": {
278
+ "object": "hermes.run",
279
+ "run_id": "completion-race",
280
+ "status": "running",
281
+ "updated_at": 1700000000,
282
+ "created_at": 1700000000,
283
+ "session_id": "completion-race",
284
+ "model": "hermes-agent"
285
+ }
286
+ },
287
+ {
288
+ "label": "completion-race:stop",
289
+ "status": 200,
290
+ "observation": {
291
+ "run_id": "completion-race",
292
+ "status": "stopping"
293
+ }
294
+ },
295
+ {
296
+ "label": "completion-race:completed",
297
+ "status": 200,
298
+ "observation": {
299
+ "object": "hermes.run",
300
+ "run_id": "completion-race",
301
+ "status": "completed",
302
+ "updated_at": 1700000000,
303
+ "created_at": 1700000000,
304
+ "session_id": "completion-race",
305
+ "model": "hermes-agent",
306
+ "last_event": "run.completed",
307
+ "output": "synthetic output",
308
+ "usage": {
309
+ "input_tokens": 0,
310
+ "output_tokens": 0,
311
+ "total_tokens": 0
312
+ }
313
+ }
314
+ },
315
+ {
316
+ "label": "failure:admission",
317
+ "status": 202,
318
+ "observation": {
319
+ "run_id": "failure",
320
+ "status": "started",
321
+ "replayed": false
322
+ }
323
+ },
324
+ {
325
+ "label": "failure:running",
326
+ "status": 200,
327
+ "observation": {
328
+ "object": "hermes.run",
329
+ "run_id": "failure",
330
+ "status": "running",
331
+ "updated_at": 1700000000,
332
+ "created_at": 1700000000,
333
+ "session_id": "failure",
334
+ "model": "hermes-agent"
335
+ }
336
+ },
337
+ {
338
+ "label": "failure:failed",
339
+ "status": 200,
340
+ "observation": {
341
+ "object": "hermes.run",
342
+ "run_id": "failure",
343
+ "status": "failed",
344
+ "updated_at": 1700000000,
345
+ "created_at": 1700000000,
346
+ "session_id": "failure",
347
+ "model": "hermes-agent",
348
+ "error": "synthetic failure",
349
+ "last_event": "run.failed"
350
+ }
351
+ },
352
+ {
353
+ "label": "cache-boundary:admission",
354
+ "status": 202,
355
+ "observation": {
356
+ "run_id": "cache-boundary",
357
+ "status": "started",
358
+ "replayed": false
359
+ }
360
+ },
361
+ {
362
+ "label": "cache-boundary:running",
363
+ "status": 200,
364
+ "observation": {
365
+ "object": "hermes.run",
366
+ "run_id": "cache-boundary",
367
+ "status": "running",
368
+ "updated_at": 1700000000,
369
+ "created_at": 1700000000,
370
+ "session_id": "cache-boundary",
371
+ "model": "hermes-agent"
372
+ }
373
+ },
374
+ {
375
+ "label": ":completed",
376
+ "status": 200,
377
+ "observation": {
378
+ "object": "hermes.run",
379
+ "run_id": "cache-boundary",
380
+ "status": "completed",
381
+ "updated_at": 1700000000,
382
+ "created_at": 1700000000,
383
+ "session_id": "cache-boundary",
384
+ "model": "hermes-agent",
385
+ "output": "synthetic output",
386
+ "usage": {
387
+ "input_tokens": 0,
388
+ "output_tokens": 0,
389
+ "total_tokens": 0
390
+ },
391
+ "last_event": "run.completed"
392
+ }
393
+ },
394
+ {
395
+ "label": "cache TTL equality retains keyless terminal observation",
396
+ "status": 200,
397
+ "observation": {
398
+ "object": "hermes.run",
399
+ "run_id": "cache-boundary",
400
+ "status": "completed",
401
+ "updated_at": 1700000000,
402
+ "created_at": 1700000000,
403
+ "session_id": "cache-boundary",
404
+ "model": "hermes-agent",
405
+ "output": "synthetic output",
406
+ "usage": {
407
+ "input_tokens": 0,
408
+ "output_tokens": 0,
409
+ "total_tokens": 0
410
+ },
411
+ "last_event": "run.completed"
412
+ }
413
+ },
414
+ {
415
+ "label": "cache TTL strictly greater expires keyless terminal observation",
416
+ "status": 404,
417
+ "observation": {
418
+ "error": {
419
+ "message": "Run not found: cache-boundary",
420
+ "type": "invalid_request_error",
421
+ "param": null,
422
+ "code": "run_not_found"
423
+ }
424
+ }
425
+ },
426
+ {
427
+ "label": "unfinished:admission",
428
+ "status": 202,
429
+ "observation": {
430
+ "run_id": "unfinished",
431
+ "status": "started",
432
+ "replayed": false
433
+ }
434
+ },
435
+ {
436
+ "label": "unfinished:running",
437
+ "status": 200,
438
+ "observation": {
439
+ "object": "hermes.run",
440
+ "run_id": "unfinished",
441
+ "status": "running",
442
+ "updated_at": 1700003600.001,
443
+ "created_at": 1700003600.001,
444
+ "session_id": "unfinished",
445
+ "model": "hermes-agent"
446
+ }
447
+ },
448
+ {
449
+ "label": "keyless:admission",
450
+ "status": 202,
451
+ "observation": {
452
+ "run_id": "keyless",
453
+ "status": "started",
454
+ "replayed": false
455
+ }
456
+ },
457
+ {
458
+ "label": "keyless:running",
459
+ "status": 200,
460
+ "observation": {
461
+ "object": "hermes.run",
462
+ "run_id": "keyless",
463
+ "status": "running",
464
+ "updated_at": 1700003600.001,
465
+ "created_at": 1700003600.001,
466
+ "session_id": "keyless",
467
+ "model": "hermes-agent"
468
+ }
469
+ },
470
+ {
471
+ "label": "terminal survives real process restart",
472
+ "status": 200,
473
+ "observation": {
474
+ "created_at": 1700000000,
475
+ "last_event": "run.completed",
476
+ "model": "hermes-agent",
477
+ "object": "hermes.run",
478
+ "output": "synthetic output",
479
+ "run_id": "completion-race",
480
+ "session_id": "completion-race",
481
+ "status": "completed",
482
+ "updated_at": 1700000000,
483
+ "usage": {
484
+ "input_tokens": 0,
485
+ "output_tokens": 0,
486
+ "total_tokens": 0
487
+ }
488
+ }
489
+ },
490
+ {
491
+ "label": "unfinished run interrupted after real process restart",
492
+ "status": 200,
493
+ "observation": {
494
+ "created_at": 1700003600.001,
495
+ "model": "hermes-agent",
496
+ "object": "hermes.run",
497
+ "run_id": "unfinished",
498
+ "session_id": "unfinished",
499
+ "status": "interrupted",
500
+ "updated_at": 1700003600.001,
501
+ "error": "The gateway restarted before this run settled.",
502
+ "last_event": "run.interrupted"
503
+ }
504
+ },
505
+ {
506
+ "label": "keyless run lost after real process restart",
507
+ "status": 404,
508
+ "observation": {
509
+ "error": {
510
+ "message": "Run not found: keyless",
511
+ "type": "invalid_request_error",
512
+ "param": null,
513
+ "code": "run_not_found"
514
+ }
515
+ }
516
+ },
517
+ {
518
+ "label": "interrupted reservation replay",
519
+ "status": 202,
520
+ "observation": {
521
+ "run_id": "unfinished",
522
+ "status": "interrupted",
523
+ "replayed": true
524
+ }
525
+ },
526
+ {
527
+ "label": "durable TTL equality retains reservation",
528
+ "status": 202,
529
+ "observation": {
530
+ "run_id": "completion-race",
531
+ "status": "completed",
532
+ "replayed": true
533
+ }
534
+ },
535
+ {
536
+ "label": "GET alone does not prune durable history",
537
+ "status": 200,
538
+ "observation": {
539
+ "created_at": 1700000000,
540
+ "last_event": "run.completed",
541
+ "model": "hermes-agent",
542
+ "object": "hermes.run",
543
+ "output": "synthetic output",
544
+ "run_id": "completion-race",
545
+ "session_id": "completion-race",
546
+ "status": "completed",
547
+ "updated_at": 1700000000,
548
+ "usage": {
549
+ "input_tokens": 0,
550
+ "output_tokens": 0,
551
+ "total_tokens": 0
552
+ }
553
+ }
554
+ },
555
+ {
556
+ "label": "renewed:admission",
557
+ "status": 202,
558
+ "observation": {
559
+ "run_id": "renewed",
560
+ "status": "started",
561
+ "replayed": false
562
+ }
563
+ },
564
+ {
565
+ "label": "renewed:running",
566
+ "status": 200,
567
+ "observation": {
568
+ "object": "hermes.run",
569
+ "run_id": "renewed",
570
+ "status": "running",
571
+ "updated_at": 1700086400.001,
572
+ "created_at": 1700086400.001,
573
+ "session_id": "renewed",
574
+ "model": "hermes-agent"
575
+ }
576
+ },
577
+ {
578
+ "label": "pruned and swept result returns ordinary404",
579
+ "status": 404,
580
+ "observation": {
581
+ "error": {
582
+ "message": "Run not found: completion-race",
583
+ "type": "invalid_request_error",
584
+ "param": null,
585
+ "code": "run_not_found"
586
+ }
587
+ }
588
+ },
589
+ {
590
+ "label": "completion-race:completed",
591
+ "status": 200,
592
+ "observation": {
593
+ "object": "hermes.run",
594
+ "run_id": "renewed",
595
+ "status": "completed",
596
+ "updated_at": 1700086400.001,
597
+ "created_at": 1700086400.001,
598
+ "session_id": "renewed",
599
+ "model": "hermes-agent",
600
+ "output": "synthetic output",
601
+ "usage": {
602
+ "input_tokens": 0,
603
+ "output_tokens": 0,
604
+ "total_tokens": 0
605
+ },
606
+ "last_event": "run.completed"
607
+ }
608
+ }
609
+ ],
610
+ "limitations": [
611
+ "scripted executor; no inference",
612
+ "ordinary default test listener; no credential enforcement claim",
613
+ "routing/session/approval/process-tool integrations substituted; no hosted rooms",
614
+ "controlled clock and explicit sweep; no background timing claim"
615
+ ]
616
+ }