@crvouga/mockingbird-service-hermes 0.1.0 → 1.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.
package/API_EVIDENCE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Hermes peer-run API evidence
2
2
 
3
- Research for the public tracked-run mock; no Hermes runtime, inference, provider
3
+ Research for the public tracked-run emulator; no Hermes runtime, inference, provider
4
4
  credentials, or Kanban dispatcher was executed. Source inspection is not observed
5
5
  parity. The package remains unimplemented until the later implementation stories.
6
6
 
@@ -69,7 +69,7 @@ A `_request_agent_overrides`. Explicit truthy history must be an array of object
69
69
  with `role` and `content`; those values are coerced to strings. Explicit history
70
70
  wins over previous-response history. A missing previous-response record is ignored
71
71
  by this pinned run handler, unlike the separate Responses API. Transcript loading,
72
- model routing and execution are not inference requirements for the mock; retain
72
+ model routing and execution are not inference requirements for the emulator; retain
73
73
  synthetic metadata and script public observations without executing them.
74
74
 
75
75
  A new run has an opaque `run_` plus UUID-hex ID. The POST response is exactly
@@ -94,7 +94,7 @@ adds `error`; approval state can add `approval`; completion can include
94
94
 
95
95
  Public states observed in source are `queued`, `running`, `waiting_for_approval`,
96
96
  `stopping`, `completed`, `failed`, `cancelled`, and `interrupted`. Only the latter
97
- four are terminal for durable replay. The mock can script observations without
97
+ four are terminal for durable replay. The emulator can script observations without
98
98
  implementing tools, approval resolution, SSE, steering, or agent execution.
99
99
 
100
100
  ## Errors and overload
@@ -147,7 +147,7 @@ For ordinary API calls the ownership/replay scope is SHA-256 of
147
147
  the expected configured API key or the literal unauthenticated-listener fallback.
148
148
  It is not derived from arbitrary supplied bearer text. Hosted-room requests use a
149
149
  separate verified-claims scope (room/install/authority epoch/member/target/profile);
150
- room token generation and validation are excluded. The mock must model isolation
150
+ room token generation and validation are excluded. The emulator must model isolation
151
151
  using explicit synthetic profile/identity controls, without persisting credentials
152
152
  or changing consumer authorization. [R `_run_idempotency_scope`.]
153
153
 
@@ -187,7 +187,7 @@ returns409 as above. [R lines1353–1422.]
187
187
  When a stopped executor returns `interrupted: true`, status becomes `cancelled`.
188
188
  If completion wins and returns a normal final result, it becomes `completed`,
189
189
  even after a stop request. Structured execution failure remains `failed`.
190
- Stopping queued work before agent creation also ends as cancelled. The mock must
190
+ Stopping queued work before agent creation also ends as cancelled. The emulator must
191
191
  script these distinct outcomes and preserve pending work between acceptance and
192
192
  settlement. [R lines705–719 and858–927; T
193
193
  `test_completion_wins_before_uncooperative_stop_is_acknowledged`.]
@@ -263,7 +263,7 @@ Resolved `/nousresearch/hermes-agent` again and queried submission/polling field
263
263
  and validation. Context7 still lacks `v2026.8.31`; results cite current-main run
264
264
  handlers and programmatic-integration documentation. Its newer terminal flags
265
265
  (`completed`, `partial`, `turn_exit_reason`) and shutdown wording are not imported
266
- into this pinned mock. Re-fetched R at immutable commit
266
+ into this pinned emulator. Re-fetched R at immutable commit
267
267
  `29112bef099274229cadff79cdff7bf7b99c4b77`; SHA-256 remains
268
268
  `048ae843592d701ff47437bd8edd47cd64ca6c0fdf88a71045bdb6fb337fbc63`.
269
269
  Re-read admission, `_set_run_status`, completion/failure and GET branches.
@@ -271,7 +271,7 @@ Re-read admission, `_set_run_status`, completion/failure and GET branches.
271
271
  The implemented subset admits keyless ordinary submissions, preserves session/model
272
272
  metadata, and polls stored public observations. Python JSON truthiness is retained
273
273
  for input/history validation. Non-object roots and malformed final message elements
274
- return explicit mock-only 501 responses because their upstream error behavior is
274
+ return explicit emulator-only 501 responses because their upstream error behavior is
275
275
  not verified. Hosted rooms, nonempty idempotency keys and invalid memory headers
276
276
  also return explicit 501 responses at this stage. Valid memory keys are echoed;
277
277
  no credentials are checked or used as namespace identity.
@@ -379,7 +379,7 @@ conflict is returned. Hosted-room retention and SSE buffer expiry are excluded.
379
379
 
380
380
  Tests exercise exact equality and one millisecond beyond, cache recovery from
381
381
  durable rows, pruning versus cached survivors, active and interrupted states,
382
- progress persistence, restart and Timeline. The mock folds elapsed sweep ticks
382
+ progress persistence, restart and Timeline. The emulator folds elapsed sweep ticks
383
383
  into the next admission/observation and offers an explicit single-sweep control;
384
384
  it does not start a background worker. This source-backed model remains subject
385
385
  to the independent runtime comparison in US-022.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog — @crvouga/mockingbird-service-hermes
2
2
 
3
+ ## 1.1.0 (2026-10-09)
4
+
5
+ ### Features
6
+
7
+ - redesign emulator experience ([d6038c2](https://github.com/crvouga/mockingbird/commit/d6038c27eebbaa1751f02bc9305002a5b1304779))
8
+
9
+ ## 1.0.0 (2026-10-07)
10
+
11
+ ### ⚠️ Breaking changes
12
+
13
+ - point the repo at crvouga/mockingbird ([1bf35a4](https://github.com/crvouga/mockingbird/commit/1bf35a422b84a85b50b09b72bd7cc7093082a86e))
14
+ - point the repo at crvouga/emulates ([cdb5e53](https://github.com/crvouga/mockingbird/commit/cdb5e536ed8c1f52345e3984f089001c25fdb08a))
15
+ - rename Emulators to Emulates ([2e10d9c](https://github.com/crvouga/mockingbird/commit/2e10d9cff84c54ac37768fc9a19d1aefd3943744))
16
+ - rebrand Mockingbird to Emulators ([1adca65](https://github.com/crvouga/mockingbird/commit/1adca65ce28242f11cff98eac05d2be88f680cbe))
17
+
18
+ ### Fixes and improvements
19
+
20
+ - typecheck the brand gate before builds ([fc36095](https://github.com/crvouga/mockingbird/commit/fc3609514de70ffe3170a5d216fb8a49f9ce7cbb))
21
+ - format the emulates records query ([8698872](https://github.com/crvouga/mockingbird/commit/8698872509d06002be5a8fcdc85d79f8462320c3))
22
+
3
23
  ## 0.1.0 (2026-10-05)
4
24
 
5
25
  Initial release.
package/DISCOVERY.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @crvouga/mockingbird-service-hermes discovery
2
2
 
3
3
  This is the installed-package index for coding agents and tooling. All relative links resolve
4
- inside `node_modules/@crvouga/mockingbird-service-hermes/`; no repository checkout is needed to discover the mock's
4
+ inside `node_modules/@crvouga/mockingbird-service-hermes/`; no repository checkout is needed to discover the emulator's
5
5
  supported surface or documented behavior.
6
6
 
7
7
  ## Capability and behavior sources
@@ -47,7 +47,7 @@ designed for assertions and diagnosis by consuming test suites.
47
47
  ## Report a mismatch or missing capability
48
48
 
49
49
  Follow the [agent reporting contract](https://github.com/crvouga/mockingbird/blob/main/docs/REPORTING_ISSUES.md). Include package version,
50
- operation/command, a minimal redacted request, actual mock result, expected oracle result or vendor
50
+ operation/command, a minimal redacted request, actual emulator result, expected oracle result or vendor
51
51
  documentation, and whether the mismatch appears in the matrix. Never include keys, tokens,
52
52
  customer data, prompts, PHI, card data, or unredacted recordings.
53
53
 
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @crvouga/mockingbird-service-hermes
2
2
 
3
- > Familiar calls. Faithful echoes. Part of [Mockingbird](https://github.com/crvouga/mockingbird).
3
+ > Local emulators. Real API contracts. Part of [Mockingbird](https://github.com/crvouga/mockingbird).
4
4
 
5
- Work-in-progress mock for the Hermes Agent public peer-run API pinned to
5
+ Work-in-progress emulator for the Hermes Agent public peer-run API pinned to
6
6
  `v2026.8.31`. Submission, polling and stop work with explicit synthetic lifecycle observations.
7
7
  Events, approval and steer remain unsupported. No agent or inference runs.
8
8
  [API_EVIDENCE.md](API_EVIDENCE.md) records source-backed semantics and gaps;
@@ -50,10 +50,10 @@ The Node entry is separate from the portable Fetch entry.
50
50
 
51
51
  `POST /v1/runs` admits a run and `GET /v1/runs/{run_id}` polls it.
52
52
  `POST /v1/runs/{run_id}/stop` requests interruption. Events, approval and steer
53
- return a mock-only 501 envelope with `error.type` of
53
+ return an emulator-only 501 envelope with `error.type` of
54
54
  `mockingbird_unsupported` and `error.code` of `operation_not_implemented`.
55
55
  Missing runs use the pinned `run_not_found` 404 envelope. Unknown paths return
56
- 404. Mock-only errors do not claim real Hermes rejection behavior.
56
+ 404. Emulator-only errors do not claim real Hermes rejection behavior.
57
57
 
58
58
  - `GET /__admin/health` identifies the `hermes` runtime.
59
59
  - Select isolated namespaces with `x-mockingbird-namespace` or `/__admin/ns/<name>/…`.
@@ -128,13 +128,13 @@ The observation control accepts `status`: `queued`, `running`,
128
128
  for completed. Usage has three nonnegative integer counts: `input_tokens`,
129
129
  `output_tokens`, `total_tokens`. Completion defaults to empty output and zero counts.
130
130
  Terminal observations cannot be changed (409); invalid control payloads return 400
131
- without changing state. These are mock controls, not additional Hermes routes.
131
+ without changing state. These are emulator controls, not additional Hermes routes.
132
132
 
133
133
  Timestamps are Unix seconds from the shared clock. Run records and their identity
134
134
  sequence use shared storage and Timeline; reset clears them. No timers, agent
135
135
  handles or prompts are stored. Polling result content stays out of journals.
136
136
  Malformed roots/final input elements, hosted rooms and invalid memory-scope headers
137
- currently return explicit mock-only 501 responses. See evidence for these limits.
137
+ currently return explicit emulator-only 501 responses. See evidence for these limits.
138
138
 
139
139
  ## Idempotent submission and synthetic scope
140
140
 
@@ -149,7 +149,7 @@ The fingerprint covers the entire parsed JSON body, including unknown fields,
149
149
  and the trimmed `X-Hermes-Session-Key`. Object key order does not matter; array
150
150
  order and session/body changes do. Raw integer/float forms follow Python:
151
151
  `1` and `1.0` conflict, `1.0` and `1e0` replay, and negative floating zero differs
152
- from positive zero. Lone Unicode surrogates return an explicit mock-only 501;
152
+ from positive zero. Lone Unicode surrogates return an explicit emulator-only 501;
153
153
  Python cannot UTF-8 encode that fingerprint either.
154
154
 
155
155
  `POST /__admin/hermes/scope` with `{ "profile": "synthetic-profile",
@@ -197,7 +197,7 @@ restores the owner flags and run/reservation state together.
197
197
 
198
198
  The controlled clock governs two independent retention layers. Cached `completed`,
199
199
  `failed` and `cancelled` results expire when their update age is strictly greater
200
- than one hour; equality survives and `interrupted` is excluded. The mock evaluates
200
+ than one hour; equality survives and `interrupted` is excluded. The emulator evaluates
201
201
  elapsed 60-second sweep ticks on admission or observation, without a background
202
202
  process. `POST /__admin/hermes/sweep` with `{}` explicitly executes one sweep at the
203
203
  current clock, returning `cacheRemoved` and `simulated: true`.
package/SUPPORT.md CHANGED
@@ -3,14 +3,14 @@
3
3
  Generated from `openapi.yaml`; do not edit by hand.
4
4
 
5
5
  - operations in spec: **6**
6
- - supported by the mock: **3**
6
+ - supported by the emulator: **3**
7
7
  - parity enabled: **3**
8
8
 
9
- | operationId | route | mock | parity | notes |
9
+ | operationId | route | emulator | parity | notes |
10
10
  | --- | --- | --- | --- | --- |
11
11
  | `RunCreate` | `POST /v1/runs` | ✅ supported | ⚠️ unsafe (opt-in) | |
12
12
  | `RunGet` | `GET /v1/runs/{run_id}` | ✅ supported | ✅ | |
13
13
  | `RunStop` | `POST /v1/runs/{run_id}/stop` | ✅ supported | ⚠️ unsafe (opt-in) | |
14
- | `RunEvents` | `GET /v1/runs/{run_id}/events` | ❌ unsupported | — | SSE is outside the public peer-run mock subset. |
15
- | `RunApproval` | `POST /v1/runs/{run_id}/approval` | ❌ unsupported | — | Host tool approval execution is outside this mock. |
16
- | `RunSteer` | `POST /v1/runs/{run_id}/steer` | ❌ unsupported | — | Agent execution and steering are outside this mock. |
14
+ | `RunEvents` | `GET /v1/runs/{run_id}/events` | ❌ unsupported | — | SSE is outside the public peer-run emulator subset. |
15
+ | `RunApproval` | `POST /v1/runs/{run_id}/approval` | ❌ unsupported | — | Host tool approval execution is outside this emulator. |
16
+ | `RunSteer` | `POST /v1/runs/{run_id}/steer` | ❌ unsupported | — | Agent execution and steering are outside this emulator. |