noisegate-hermes 0.1.2 → 0.2.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/README.md CHANGED
@@ -10,9 +10,9 @@ Noisegate itself is a Python Hermes Agent plugin and CLI. The Python package is
10
10
  npx -p noisegate-hermes noisegate install-hermes
11
11
  ```
12
12
 
13
- Use the same command for first install and updates. It finds `hermes` on `PATH`, resolves the Python environment that runs Hermes, installs the matching `noisegate-hermes` Python package there, enables the `noisegate` plugin, and runs `noisegate doctor`.
13
+ Use the same command for first install and updates. It finds `hermes` on `PATH`, verifies the launcher resolves to a Hermes Python console script or supported Hermes shim inside a virtual environment, installs the matching `noisegate-hermes` Python package there, enables the `noisegate` plugin, removes any stale disabled entry, and runs `noisegate doctor`. Native Windows launchers are opaque binaries, so Noisegate validates those by requiring an adjacent virtual-environment Python.
14
14
 
15
- Preview the exact commands first:
15
+ Preview the exact commands first. Dry-run mode does not run the install/enable/doctor commands and does not restart or reload Hermes:
16
16
 
17
17
  ```bash
18
18
  npx -p noisegate-hermes noisegate install-hermes --dry-run
@@ -0,0 +1,57 @@
1
+ # Noisegate product contract
2
+
3
+ Noisegate exists to improve agent context value, not to make output shorter at any cost. Use this checklist before changing reducers, Hermes hooks, artifact handling, installers, or operator docs.
4
+
5
+ ## Maintainer checklist
6
+
7
+ ### 1. Context value over byte-count wins
8
+
9
+ - [ ] The compacted output makes the next agent turn more useful, not merely smaller.
10
+ - [ ] Important failure lines, tracebacks, resolver conflicts, denied/not-found messages, and exit codes stay visible.
11
+ - [ ] Generic head/tail fallback is used only when no safer reducer applies.
12
+
13
+ ### 2. Exact context stays exact
14
+
15
+ - [ ] File reads and source-like terminal commands stay byte-for-byte unchanged.
16
+ - [ ] Diffs, patches, code-search output, retrieved context, skills, memory, Hindsight, LCM, MCP, web extraction, and unknown future tools remain protected by default.
17
+ - [ ] If a command mixes source inspection with words like `ERROR` or `failed`, Noisegate does not reinterpret that source as a build/test failure.
18
+
19
+ ### 3. Slop reducers stay deterministic and scoped
20
+
21
+ - [ ] Package/build/test reducers cover common agent slop: `apt`/`apt-get`, `pip`, `uv`, `npm`/`pnpm`/`yarn`, pytest/unittest, and Docker build-style logs.
22
+ - [ ] Docker runtime logs are only compacted when command intent is explicitly log-like, such as `docker logs` or `docker compose logs`; other Docker commands are not silently treated as build logs.
23
+ - [ ] No LLM summaries, semantic memory writes, or broad host-framework adapters are introduced.
24
+
25
+ ### 4. Fail-open is real
26
+
27
+ - [ ] Any reducer/plugin/install helper exception preserves original output or exits with a controlled error before side effects.
28
+ - [ ] If metadata, omission notices, or recovery notices would exceed the budget or make JSON larger, the hook returns no change.
29
+ - [ ] Hook failures never block Hermes tool execution.
30
+
31
+ ### 5. Artifacts are recovery, not an archive
32
+
33
+ - [ ] Raw artifacts stay off by default.
34
+ - [ ] Artifact mode remains explicit, private filesystem only, size-capped, path-contained, symlink-safe, and permissioned `0700`/`0600`.
35
+ - [ ] `transform_terminal_output` never stores pre-redaction raw output.
36
+ - [ ] Docs describe artifact privacy honestly and do not imply Noisegate is a log archive.
37
+
38
+ ### 6. Hermes integration stays thin and safe
39
+
40
+ - [ ] Hermes hook compaction remains limited to noisy terminal-like surfaces: `terminal`, `process`, `read_terminal`, and `browser_console`.
41
+ - [ ] Useful-context tools are protected by name/prefix, and unknown future tools fail closed.
42
+ - [ ] Noisegate stays independent from Hermes-LCM and Hindsight.
43
+
44
+ ### 7. install-hermes stays environment-safe
45
+
46
+ - [ ] The installer rejects bare/system Python interpreters and only installs into the actual Hermes virtualenv.
47
+ - [ ] Shell launchers, env assignments, and Windows launchers are resolved fail-closed.
48
+ - [ ] Installer subprocesses scrub caller `PYTHONHOME`/`PYTHONPATH`.
49
+ - [ ] Dry-run shows planned install/config/doctor commands before changing Hermes.
50
+
51
+ ### 8. Docs match behavior
52
+
53
+ - [ ] README/operator docs say what Noisegate does and does not compact.
54
+ - [ ] Any new flag, env var, bypass marker, hook behavior, artifact behavior, installer behavior, or protected surface is documented.
55
+ - [ ] Boundaries are documented instead of hidden behind optimistic product claims.
56
+
57
+ If a proposed change cannot satisfy this checklist, keep it out of Noisegate or document the deliberate boundary explicitly.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noisegate-hermes",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Thin npm installer wrapper for the Noisegate Hermes Agent plugin and CLI.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,6 +11,7 @@
11
11
  },
12
12
  "files": [
13
13
  "bin/",
14
+ "docs/product-contract.md",
14
15
  "README.md"
15
16
  ],
16
17
  "repository": {