@securecoms/agent-bridge 0.30.1 → 0.30.3

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
@@ -35,13 +35,9 @@ The server still sees ciphertext only. The trust boundary is the machine running
35
35
  - **Node.js 24 LTS or newer.** The daemon requires >= 24 (node:sqlite stable API).
36
36
  - A valid SecureComs agent credential (`agent.json`, `chmod 600`)
37
37
 
38
- You don't have to check your Node version yourself. The installer self-checks before anything else runs: on an older Node it prints a clear diagnosis instead of crashing, and on macOS it offers to install Node 24 LTS for you. The install is consent-gated and names its source before asking. If Homebrew is present it runs `brew install node` (user-space, no sudo); otherwise it downloads the official installer from nodejs.org over TLS and verifies the published SHA-256 checksum (an integrity check on the download) before running it.
38
+ You don't have to check your Node version yourself. The installer checks it before anything else runs. On an older Node it says so plainly, and on macOS it offers to install Node 24 from nodejs.org after asking you. That step needs your computer's administrator password. It checks the download's published SHA-256 checksum before running it.
39
39
 
40
- To install Node 24 manually instead:
41
-
42
- 1. Official installer (recommended): download the Node 24 LTS installer from [nodejs.org](https://nodejs.org) and run it.
43
- 2. Homebrew (macOS): `brew install node`
44
- 3. nvm: `nvm install 24 && nvm use 24`
40
+ To install Node 24 yourself, download the Node 24 LTS installer from [nodejs.org](https://nodejs.org) and run it. Then run the install command again.
45
41
 
46
42
  Always re-run the install command after upgrading Node — the background service pins the Node path it was installed with.
47
43
 
@@ -935,6 +931,81 @@ copied after the owner's next typed message.
935
931
 
936
932
  ---
937
933
 
934
+ ## Release notes: 0.30.3
935
+
936
+ <!-- [COPY, approved by Eric 2026-10-17 (search release notes) and 2026-10-16 (held items); adapted to 0.30.3 on 2026-10-18] -->
937
+
938
+ 0.30.3 enforces the owner's signed search provider and daily limit, gates the
939
+ new page reading tool, and keeps older runtimes from using a provider the
940
+ owner did not sign. Install it together with `@securecoms/agent-runtime`
941
+ 0.14.0 and restart both.
942
+
943
+ - **Upgrade the bridge and the runtime together.** An older bridge with a new
944
+ runtime can still use install-time search keys after a search setup
945
+ mismatch.
946
+ - **Signed search settings.** An owner may sign one of five search providers
947
+ (Brave, Tavily, Parallel, Exa, Firecrawl) and a daily search limit from 0 to
948
+ 2000 for the private chat. An older bridge reads a manifest with a new
949
+ provider or a limit as invalid and keeps its last good one.
950
+ - **Read web pages.** `web_extract` is offered in the owner's private chat only
951
+ when every attached runtime supports it. An attached harness connector,
952
+ such as OpenClaw or Hermes, turns it off.
953
+ - **Older runtimes.** On an agent whose owner signed any provider other than
954
+ Brave (Tavily included) and that runs an older runtime, web search is
955
+ withheld everywhere until the runtime is updated. The owner sees "Update the
956
+ agent to use this search provider."
957
+ - **No fallback after a mismatch.** When the server's search setting does not
958
+ match the signed provider and no earlier good setting was saved, the agent
959
+ gets the signed provider with no key file, so a new runtime has no search
960
+ instead of using install-time keys.
961
+ - **Linux reinstall.** Install on Linux now restarts a running service, so the
962
+ new version starts.
963
+ - **Release check.** The publish workflow refuses to publish when the live Node
964
+ 24 checksum list no longer parses.
965
+
966
+ Each runtime restart on an agent with signed tool settings causes one or two
967
+ extra config refreshes. You do not need to change anything after the upgrade.
968
+
969
+ ---
970
+
971
+ ## Release notes: 0.30.2
972
+
973
+ <!-- [COPY, approved by Eric 2026-10-15] -->
974
+
975
+ 0.30.2 fixes the guided Node upgrade, makes reinstall safe while the agent is
976
+ running, and prints plain messages when the agent cannot start.
977
+
978
+ - **The Node upgrade works again on macOS.** When this computer has an older
979
+ Node, install offers to install Node 24 from nodejs.org. Before 0.30.2 this
980
+ step could not find the installer and stopped without saying why. It now
981
+ finds it, checks its published SHA-256 checksum, and asks first:
982
+ `SecureComs needs Node 24. Install it now from nodejs.org? This needs your
983
+ computer's administrator password. [y/N]`. If the step fails after you say
984
+ yes, it prints: `Couldn't install Node 24 from nodejs.org.`
985
+ - **Homebrew is no longer used.** The guided upgrade always uses the
986
+ nodejs.org installer.
987
+ - **Reinstall while the agent runs.** Install now waits up to 10 seconds for
988
+ the running Connector to stop before it starts the new one. Before, the new
989
+ copy could start too early, find the old copy still running, and stay
990
+ stopped. If the old copy does not stop in time, install starts nothing and
991
+ tells you to run install again.
992
+ - **Plain messages when the agent cannot start.** A missing, unreadable or
993
+ invalid key file, or a bad setting in it, now each print one short line
994
+ that says what to do. File paths are printed only in a terminal, not in the
995
+ service log.
996
+ - **No key file found.** If the copied install command finds no key file, it
997
+ prints: `No key file was found in your Downloads folder. Download the key
998
+ file again from SecureComs, or add --credential <path>.` An empty
999
+ `--credential` no longer falls back to the `SECURECOMS_CREDENTIAL`
1000
+ environment variable.
1001
+ - **Node 24 or newer.** The package now declares `node >= 24`, which the
1002
+ Connector already required to run.
1003
+
1004
+ You do not need to change anything after the upgrade. Run the install command
1005
+ again only if you want the new install behavior now.
1006
+
1007
+ ---
1008
+
938
1009
  ## Release notes: 0.30.1
939
1010
 
940
1011
  <!-- [COPY, approved by Eric 2026-10-14] -->
package/dist/bin.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * token, its fingerprint, or its path. This prevents the former
8
8
  * `BRIDGE_TOKEN=<value>` leak into journald/launchd logs.
9
9
  */
10
- import { type BridgeConfig } from "./config.js";
10
+ import { type BridgeConfig, type ConfigErrorReason } from "./config.js";
11
11
  import { BridgeAgent } from "./bridge-agent.js";
12
12
  import { createHttpServer } from "./http-server.js";
13
13
  import { attachAgentWebSocket } from "./ws-server.js";
@@ -98,8 +98,27 @@ export interface RunModeDeps {
98
98
  exit(code: number): void;
99
99
  /** One line of approved user-facing copy (spec §8). */
100
100
  print(line: string): void;
101
+ /**
102
+ * Whether stderr is a terminal. Under launchd and systemd stderr IS the
103
+ * service log, so a printed line may carry a path only when this is true
104
+ * (spec 2026-10-15 §5.3 path rule).
105
+ */
106
+ isTTY: boolean;
101
107
  log: ServiceLog;
102
108
  }
109
+ export type StartupConfigReason = ConfigErrorReason | "identity_id_invalid" | "bind_refused" | "unknown";
110
+ /**
111
+ * The one human line for a run-mode config refusal (spec 2026-10-15 §5.3,
112
+ * E1-E7 approved; E5 with source=env is the BT-5 draft). The path is shown
113
+ * only on a TTY; `field` is one of the six fixed REQUIRED names. `unknown`
114
+ * has no line. Never built from an error message.
115
+ */
116
+ export declare function configErrorLine(reason: StartupConfigReason, o: {
117
+ path: string;
118
+ isTTY: boolean;
119
+ field?: string;
120
+ source?: "file" | "env";
121
+ }): string | undefined;
103
122
  /**
104
123
  * The daemon's run mode (spec §4.1.1). Order, each step gated on the last:
105
124
  * 1. loadConfig (+ daemon args, bind check);