@chipschat/hermes 1.0.3 → 1.0.5

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/README.md CHANGED
@@ -29,13 +29,37 @@ Apache-2.0. Not published: a local repository until Chips's SDK is.
29
29
  | Stop | `POST …/stop` |
30
30
  | A steer, a follow-up, an interrupt | `POST …/steer`; the next run of the turn; stop, then the next run with the words |
31
31
  | Trouble on the harness | `GET /health` every 30 s, per profile |
32
+ | Context (ADRs 0134, 0238) | the files Hermes builds the agent from: `SOUL.md` (who it is), `memories/USER.md` and `memories/MEMORY.md` in the profile's home, and the first project file with words in it in the folder Hermes's gateway works in (`.hermes.md`, `HERMES.md`, `AGENTS.md` and the rest Hermes looks for). The first profile's files and the project file are the harness's own set, since every new agent reads them; another profile's files are the agent's own until a fork reads them too. An edit is saved where Hermes reads it, only if the file is still the one the person changed. A memory file is saved as Hermes saves it, under its lock, entries apart by a line with only `§`, and an edit over Hermes's limit (2,200 and 1,375 characters unless `config.yaml` says others) is refused with how much to take out. The page says Hermes reads them when a conversation starts: a space already talking picks up a change after it next compacts |
33
+ | Context window (ADR 0146) | how full the agent's session is, from the webhook below: the last model call's prompt tokens, of its model's window. A sharp drop in a session is a compaction, and a turn past half the window says its peak. Read only: the limit is the profile's `compression.threshold` (75% under 512K tokens unless set higher), and Hermes can't be asked to compact from Chips. Nothing is shown until Hermes's first reading |
32
34
 
33
35
  Not yet:
34
36
  - Hermes's clarify questions (their event isn't documented).
35
37
  - Its cron jobs as Chips schedules (ADR 0157).
36
38
  - Its model list as the agent's Model group.
37
- - Context files.
38
- - A context gauge (Hermes reports no window during a run).
39
+
40
+ **How full each context is: Hermes's webhook.** Hermes's API server reports no window during a
41
+ run, so the bridge adds an outbound webhook to each profile's `config.yaml` when it starts (and
42
+ in the check before a link is taken up):
43
+
44
+ ```yaml
45
+ hooks:
46
+ outbound:
47
+ - name: chips
48
+ url: http://127.0.0.1:<port>/chips-hermes/default
49
+ events: [post_api_request]
50
+ secret_env: CHIPS_HOOK_SECRET
51
+ timeout: 5
52
+ ```
53
+
54
+ It only ever adds: with no `hooks:` it appends this block, and under a `hooks:` with no
55
+ `outbound:` yet it puts `outbound:` first. Anything else it leaves as it is, and its log says the
56
+ lines to add. The secret goes in the profile's `.env`, which Hermes loads into its gateway; a
57
+ profile with no `.env` gets the secret in the entry instead. Hermes reads its hooks when its
58
+ gateway starts, so after the bridge adds one, start `hermes gateway` again once (the setup step
59
+ says so when the gateway was running). After every model call Hermes then POSTs the call's
60
+ numbers, signed, to the bridge on 127.0.0.1. Hermes sends the reply's words too: the bridge
61
+ checks the signature, keeps only the numbers, and drops the rest. The port is chosen the first
62
+ time and kept; `hookPort` in the config fixes one.
39
63
 
40
64
  **Approvals and Hermes v0.20.6.** Hermes's API server counts itself as unattended (issue
41
65
  [#98728](https://github.com/NousResearch/hermes-agent/issues/98728), open on 14 October 2026). So a
@@ -122,8 +146,9 @@ npm test
122
146
  ```
123
147
 
124
148
  They run the bridge against Chips's conformance fake and a scripted Hermes API server
125
- (`test/fake-hermes.ts`), on Hermes's own routes and event names. That includes Chips's golden
126
- scenario. The SDK and the kit are in `vendor/`, packed from a Chips checkout with
149
+ (`test/fake-hermes.ts`), on Hermes's own routes and event names, and its webhook's signed
150
+ readings. That includes Chips's golden scenario. Hermes's own files are in temporary homes: no
151
+ test reads or writes `~/.hermes`. The SDK and the kit are in `vendor/`, packed from a Chips checkout with
127
152
  `pnpm release:sdk <this repo>/vendor`.
128
153
 
129
154
  ```
@@ -1,6 +1,6 @@
1
1
  # Third-party notices
2
2
 
3
- `dist/main.js` in @chipschat/hermes 1.0.3 carries these packages, bundled in. Each one's
3
+ `dist/main.js` in @chipschat/hermes 1.0.5 carries these packages, bundled in. Each one's
4
4
  licence follows.
5
5
 
6
6
  ## @chipschat/harness 0.0.0 (Apache-2.0)