@nylorun/agents 0.17.0-beta → 0.18.0-beta

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/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @nylorun/agents
2
2
 
3
+ ## 0.18.0-beta
4
+
5
+ ### Major Changes
6
+
7
+ - 50e2f7e: **Protocol 10: MCP credentials come from a session's vaults only.** Nylorun no longer signs the installation in to MCP servers with OAuth and no longer asks a credential resolver. Upgrade every package together; MIGRATION.md has the details.
8
+
9
+ - **Breaking (`@nylorun/runtime`): the MCP OAuth connect is gone.** `POST /v1/tenant/vaults/{vaultId}/oauth/start` and `GET /v1/oauth/callback` answer `404`. The vault credential type `oauth` and its refresh are gone: a credential is a `bearer` token or a `headers` map bound to a URL. Migration `0016_mcp_oauth_removed` drops the table of pending connects and deletes every `oauth` credential, writing one audit row each (actor `migration`); the Runtime logs `oauth_credential_removed` once for each, naming its vault, id and URL.
10
+ - **Breaking (`@nylorun/runtime`): the credential resolver is gone.** The gateway no longer asks the operator's resolver for a person's credential when the session's vaults hold none. A process that still sets a `NYLORUN_RESOLVER_*` variable logs `resolver_removed` and ignores it. Keep a person's own keys in their user vault and attach it to their sessions (`vaultIds`). `TenantConfig.resolver`, `TenantConfig.publicUrl`, `TenantConfig.vaultFetch`, `startEphemeralRuntime({ resolver })`, the `ResolverConfig` export and `VaultService`'s `fetch` option are removed; `NYLORUN_PUBLIC_URL` still sets the protected resource metadata's `resource`.
11
+ - **Breaking (`@nylorun/core`):** `PROTOCOL_VERSION` is 10 and `HOST_PROTOCOL` 4–10. `StartOAuthRequest`, `StartOAuthResponse`, the `oauth` variants of `CreateCredentialRequest` and `RotateCredentialRequest`, `oauth` in `CredentialInfo.type` and `CredentialInfo.expiresAt` are removed, and `ERROR_CODES` drops `oauth_client_required`, `oauth_state_invalid` and `oauth_failed`. `@nylorun/agents` and `@nylorun/cli` send protocol 10.
12
+ - **Breaking (`@nylorun/admin`):** `admin.vaults` loses its OAuth start method.
13
+ - **Breaking (`nylorun`):** the `connect` subcommand of `nylorun mcp` is removed (`nylorun mcp inspect` lists a server's tools instead), and the gateway's Compose service no longer passes the `NYLORUN_RESOLVER_*` variables.
14
+ - `@nylorun/studio`: the Credentials page loses the OAuth type, the Expires column and the OAuth connect hint.
15
+
16
+ ### Patch Changes
17
+
18
+ - fed5e58: **Docs: reaching a person's accounts** (R2b C5). The READMEs describe MCP credentials as protocol 10 has them (a `bearer` token or a `headers` map per URL, with `via` and an identity header for an MCP gateway), and point to "MCP servers and HTTP tools" in DEPLOYMENT.md: the operator's flow from credential to preview, tool settings, deferral, stored results and the error codes a model sees, with gateway recipes for Arcade, ToolHive, Obot and Nylorun Cloud and the proxy pattern for gateways that mint per person. `HttpToolTarget.credential`'s doc (`@nylorun/core`) no longer names the removed credential resolver.
19
+ - Pin core to the tested release.
20
+ - Updated dependencies [50e2f7e]
21
+ - Updated dependencies [e0e39ff]
22
+ - Updated dependencies [fed5e58]
23
+ - Updated dependencies [18f9a2f]
24
+ - Updated dependencies [da93711]
25
+ - Updated dependencies [90a817d]
26
+ - Updated dependencies [b8d10cb]
27
+ - @nylorun/core@0.17.0-beta
28
+
3
29
  ## 0.17.0-beta
4
30
 
5
31
  ### Major Changes
package/README.md CHANGED
@@ -69,8 +69,9 @@ answer was lost with the gateway is `uncertain` and never sent again.
69
69
  `credential` works as for a remote MCP server: the session's attached vaults
70
70
  must hold a credential bound to the tool's exact URL (a `credentialSelections`
71
71
  entry whose `serverName` is the `credential` picks one when several are), else
72
- the operator's credential resolver is asked; without one the call fails before
73
- it is sent. `approval: "always"` pauses the turn for `session.approve()`; a
72
+ the call fails before it is sent (`http.credential`). A credential with `via`
73
+ sends the call there instead, such as a gateway, with the session owner in its
74
+ identity header, and a `401` is `credential_rejected` to the model, not retried. `approval: "always"` pauses the turn for `session.approve()`; a
74
75
  denied call never runs and the model sees the denial. A remote MCP server takes
75
76
  `approval: "always"` too, for every one of its tools:
76
77
  `.mcp({ shop: { type: "streamable-http", url, approval: "always" } })`.
@@ -163,6 +164,10 @@ const assistant = Agent({ id: "assistant", name: "Assistant" })
163
164
 
164
165
  Each key names a server; its `name` defaults to the key and, when given, must equal it. Repeated `.mcp()` calls add servers to the same capability. Nylorun accepts remote servers only: `streamable-http` and `sse` ([Agent Plugins MCP servers](https://agent-plugins.org/plugin-authors/mcp-servers)); a `stdio` server is refused, so run it behind an HTTP transport and declare its URL. Attach an Agent Plugin package with `.plugin(path)`: its skills and remote MCP servers join the agent, and a stdio server in its `mcp.json` throws.
165
166
 
167
+ Set a server's tools one by one with `tools`, keyed by the server's own tool names, `"*"` for the rest: `{ "*": { enabled: false }, search_issues: { enabled: true }, create_issue: { enabled: true, approval: "always" } }` is an allowlist with one approval. When an agent's MCP tools would fill more than a tenth of the model's context window, the Runtime defers them: the model finds them with `tool_search` and runs them with `tool_call`. `deferred: true` or `false`, on a tool or on the server, decides instead. Either setting makes the manifest v6 (see MIGRATION.md).
168
+
169
+ A manifest never carries a server's credential, and its `headers` hold no secret. The operator gives the server's URL a vault credential (a token or a header map, or a gateway's key with `via` and an identity header for servers that need each person's sign-in), and the session's attached vaults supply it: [DEPLOYMENT.md](../DEPLOYMENT.md#mcp-servers-and-http-tools), which also shows `nylorun mcp inspect` for listing a server's tools first. The model knows each tool as `server__tool`, with characters outside `[A-Za-z0-9_-]` replaced by `_`; a failed call reaches it with a code (`credential_rejected` on a `401`, `mcp.unreachable`, …), and a result past 32 KiB, or an image, becomes an artifact of the session that it reads with `read_artifact`.
170
+
166
171
  Give a session a sandbox when you open it. The agent declares nothing, so the same agent runs with or without one, in any Tenant:
167
172
 
168
173
  ```ts
@@ -618,7 +623,7 @@ nothing, and no subject reaches the Management API (`/v1/tenant/*`). Vaults are
618
623
  the installation's, created through the Management API with a management key
619
624
  (`admin.vaults.create({ scope: "installation", … })` in
620
625
  [`@nylorun/admin`](../admin/README.md)); a session attaches them with
621
- `vaultIds`, and a person's own credentials come from your credential resolver
626
+ `vaultIds`, and a person's own keys go in their user vault
622
627
  ([DEPLOYMENT.md](../DEPLOYMENT.md#credentials)). A subject is 1–200 visible ASCII
623
628
  characters (spaces only inside) and `host` is reserved. Your server must drop
624
629
  any `Nylorun-*` header its own clients send, and only an application key can act
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nylorun/agents",
3
- "version": "0.17.0-beta",
3
+ "version": "0.18.0-beta",
4
4
  "description": "Nylorun agent definitions and session client",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -43,7 +43,7 @@
43
43
  "test": "vitest run --passWithNoTests"
44
44
  },
45
45
  "dependencies": {
46
- "@nylorun/core": "0.16.0-beta",
46
+ "@nylorun/core": "0.17.0-beta",
47
47
  "gray-matter": "^4.0.3"
48
48
  },
49
49
  "peerDependencies": {