@iicp/client 0.7.106 → 0.7.108

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,7 +35,7 @@ npm install @iicp/client@latest
35
35
  ## One-line test
36
36
 
37
37
  ```bash
38
- npm install -g @iicp/client@latest
38
+ npm install -g @iicp/client@0.7.107 --registry=https://registry.npmjs.org
39
39
  iicp-node query "Hello, mesh."
40
40
  ```
41
41
 
@@ -44,7 +44,7 @@ What good looks like:
44
44
  ```bash
45
45
  iicp-node --help # shows query, serve, proxy, mcp-gateway, credits, ...
46
46
  which iicp-node # points to your Node/npm environment
47
- iicp-node --version # prints iicp-node 0.7.106 or newer
47
+ iicp-node --version # prints iicp-node 0.7.108 or newer
48
48
  ```
49
49
 
50
50
  The query command contacts the public directory, discovers a matching live node,
@@ -88,6 +88,18 @@ them. The context is rebuilt on fallback, never includes endpoints, tokens,
88
88
  node identities, candidate sets or scores, and is not a prompt-injection
89
89
  security boundary.
90
90
 
91
+ ## Restricted trust-domain verification foundation
92
+
93
+ The package exports strict, fixture-backed verifiers for the pre-normative
94
+ restricted trust-domain membership and authenticated-gossip envelopes. They
95
+ validate bounded Ed25519/JCS assertions and fail closed on malformed,
96
+ expired, revoked-generation, wrong-domain or replayed evidence.
97
+
98
+ This is a verification foundation, not a claim that the TypeScript runtime
99
+ already provides complete private/CUG operation. Peer admission, credential
100
+ lifecycle, private discovery, no-public-fallback behavior and supervised
101
+ restart evidence remain separate integration work.
102
+
91
103
  Raw `submit()` calls and non-chat intents are unchanged. Disable or require the
92
104
  chat context explicitly:
93
105
 
@@ -146,6 +158,17 @@ not silently fall back to anonymous dispatch if consumer-token acquisition
146
158
  fails. The default remains `"optional"`; `"disabled"` skips token
147
159
  acquisition.
148
160
 
161
+ ### Restricted trust-domain directories
162
+
163
+ Restricted operation is opt-in and fail closed. Supply a
164
+ `restricted_directory` context with membership material resolved from an
165
+ environment variable or a caller-owned provider function. The SDK does not
166
+ persist that material in browser storage. It sends the credential only to the
167
+ configured directory, refuses redirects and legacy discovery fallback, and
168
+ accepts candidates or tokens only after a matching, current operation decision.
169
+ Public behavior is unchanged when the context is absent. Peer-gossip and CIP
170
+ worker participation are not part of this SDK surface.
171
+
149
172
  ### Experimental local candidate rankers
150
173
 
151
174
  Library users may attach a `CandidateRanker` to test a learned or
@@ -178,7 +201,7 @@ const reply = await new IicpClient().chat([
178
201
  Existing OpenAI-compatible tools:
179
202
 
180
203
  ```bash
181
- npm install -g @iicp/client@latest
204
+ npm install -g @iicp/client@0.7.107 --registry=https://registry.npmjs.org
182
205
  iicp-node proxy
183
206
  export OPENAI_BASE_URL=http://127.0.0.1:9483/v1
184
207
  ```
@@ -188,7 +211,7 @@ base URL. Full guide: <https://iicp.network/docs/proxy>
188
211
 
189
212
  ## Keep provider nodes current
190
213
 
191
- The current public release line is **0.7.106**. Upgrade through your package
214
+ The current public release line is **0.7.108**. Upgrade through your package
192
215
  manager before troubleshooting an older installation. Routing profiles can
193
216
  refuse remote dispatch before a prompt leaves the client; use `sensitive` for
194
217
  local-only work, `eu-restricted` for EU/EEA routing, or `strict-policy` when a
@@ -196,8 +219,12 @@ no-retention policy manifest is required.
196
219
 
197
220
  Provider nodes run an hourly official-registry check by default
198
221
  (`IICP_AUTO_UPDATE=1`, `IICP_AUTO_UPDATE_INTERVAL_S=3600`; minimum 300s).
222
+ Failed candidates use persisted, bounded retry backoff (up to 24 hours) instead
223
+ of being reinstalled every check. The non-sensitive retry status is stored under
224
+ `$IICP_HOME/state/update-status.json`; `IICP_UPDATE_STATE_FILE` overrides that
225
+ path for managed or test environments.
199
226
  When npm publishes a newer stable release, `serve` runs
200
- `npm install -g @iicp/client@latest` and re-execs the node so identity and cached
227
+ `npm install -g @iicp/client@X.Y.Z --registry=https://registry.npmjs.org` and re-execs the node so identity and cached
201
228
  node tokens are preserved.
202
229
 
203
230
  If an older supervised node does not update itself, perform one manual upgrade
@@ -659,6 +686,7 @@ npm run build # emit to dist/
659
686
  - [Agent bootstrap guide](https://github.com/RobLe3/IICP/blob/main/docs/agent-bootstrap.md) — connect a consumer or provider agent
660
687
  - [Implementation registry](https://github.com/RobLe3/IICP/blob/main/IMPLEMENTATIONS.md) — supported and preview components
661
688
  - [Node setup guide](https://iicp.network/docs/node-setup) — run your own node
689
+ - [CLI examples](https://iicp.network/docs/cli-examples) — copyable `iicp-node` tasks and operator recipes
662
690
  - [Error reference](https://iicp.network/docs/error-reference) — all error codes
663
691
  - [iicp-client-python](https://github.com/RobLe3/iicp-client-python) — Python SDK
664
692
  - [iicp-client-rust](https://github.com/RobLe3/iicp-client-rust) — Rust SDK
package/dist/cli.js CHANGED
@@ -80,7 +80,7 @@ function startProviderAutoUpdate(options = {}) {
80
80
  const tick = () => {
81
81
  void (async () => {
82
82
  try {
83
- await u.autoUpdateTick(current, await u.latestNpmVersion(), true, () => u.performSelfUpdate(), () => u.reexecCli(), logFn);
83
+ await u.autoUpdateTick(current, await u.latestNpmVersion(), true, (version) => u.performSelfUpdate(version), () => u.reexecCli(), logFn);
84
84
  }
85
85
  catch (err) {
86
86
  u.recordUpdateCheck(null, err instanceof Error ? err.name : "Error");