From 3f958f20d8b899d3c886d29748169e353fcf81ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 19:37:13 +0000 Subject: [PATCH] chore: version packages --- .changeset/browser-pay-event-redaction.md | 5 --- .../mcp-platform-events-subscribable.md | 5 --- .changeset/sdk-shared-credential-transport.md | 38 ------------------ packages/agent-core/CHANGELOG.md | 40 +++++++++++++++++++ packages/agent-core/package.json | 2 +- .../src/version-fallback.generated.ts | 2 +- packages/agent-studio/CHANGELOG.md | 6 +++ packages/agent-studio/package.json | 2 +- packages/analytics-core/CHANGELOG.md | 34 ++++++++++++++++ packages/analytics-core/package.json | 2 +- packages/axios/CHANGELOG.md | 7 ++++ packages/axios/package.json | 2 +- packages/browser-pay/CHANGELOG.md | 40 +++++++++++++++++++ packages/browser-pay/package.json | 2 +- packages/cli/CHANGELOG.md | 9 +++++ packages/cli/package.json | 4 +- packages/core/CHANGELOG.md | 39 ++++++++++++++++++ packages/core/package.json | 2 +- packages/fetch/CHANGELOG.md | 7 ++++ packages/fetch/package.json | 2 +- packages/harness/CHANGELOG.md | 10 +++++ packages/harness/package.json | 2 +- packages/langchain-classic/CHANGELOG.md | 8 ++++ packages/langchain-classic/package.json | 2 +- packages/langchain/CHANGELOG.md | 8 ++++ packages/langchain/package.json | 2 +- packages/mcp/CHANGELOG.md | 39 ++++++++++++++++++ packages/mcp/package.json | 2 +- packages/node-http/CHANGELOG.md | 7 ++++ packages/node-http/package.json | 2 +- packages/sandbox/CHANGELOG.md | 6 +++ packages/sandbox/package.json | 2 +- packages/tools/CHANGELOG.md | 37 +++++++++++++++++ packages/tools/package.json | 2 +- pnpm-lock.yaml | 2 +- 35 files changed, 315 insertions(+), 66 deletions(-) delete mode 100644 .changeset/browser-pay-event-redaction.md delete mode 100644 .changeset/mcp-platform-events-subscribable.md delete mode 100644 .changeset/sdk-shared-credential-transport.md diff --git a/.changeset/browser-pay-event-redaction.md b/.changeset/browser-pay-event-redaction.md deleted file mode 100644 index f33c02153..000000000 --- a/.changeset/browser-pay-event-redaction.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/browser-pay": minor ---- - -Interceptor event URLs now expose only the request origin, and refusal reasons are restricted to known relay values (exported as the `RefusalReason` type). CDP attach errors use fixed messages to avoid forwarding transport details. diff --git a/.changeset/mcp-platform-events-subscribable.md b/.changeset/mcp-platform-events-subscribable.md deleted file mode 100644 index 364e9a674..000000000 --- a/.changeset/mcp-platform-events-subscribable.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@sapiom/mcp": patch ---- - -The schedule tool now says `sapiom.*` platform events can be subscribed to with an `event` trigger (never emitted) and points to the server instructions for the list; the bundled primer now documents `sapiom.run.failed`. diff --git a/.changeset/sdk-shared-credential-transport.md b/.changeset/sdk-shared-credential-transport.md deleted file mode 100644 index 212587a9c..000000000 --- a/.changeset/sdk-shared-credential-transport.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -"@sapiom/analytics-core": minor -"@sapiom/core": minor -"@sapiom/agent-core": minor -"@sapiom/browser-pay": minor -"@sapiom/mcp": patch -"@sapiom/tools": patch ---- - -The tenant API key now only travels over HTTPS, or plain HTTP to a loopback -host, from every SDK client, and never follows a redirect to another origin. -One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` -subpath, is the only code that sets the key header. - -Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a -non-loopback host is now refused, and the key headers are stripped on a -cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their -first runtime dependency, `@sapiom/analytics-core`. - -- `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` - URL to a non-loopback host (for example a Docker service name or a LAN IP) - now fails before the request is sent. On a trusted private network, opt in - with `new SapiomClient({ allowInsecureHttp: true })` (core), - `createClient({ allowInsecureHttp: true })` (agent-core) or - `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, - `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. -- `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without - the key. A redirect to a refused channel drops the batch. -- Every client follows redirects itself: the first hop to another origin drops - `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. -- `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; - read `defaults.credential` instead. -- `@sapiom/browser-pay`: the payment relay uses the shared rule, so a - `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and - a refused base URL throws a `CredentialChannelError`. Redirects are still - refused. -- `@sapiom/tools`: no behavior change. A refused call now throws a - `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. diff --git a/packages/agent-core/CHANGELOG.md b/packages/agent-core/CHANGELOG.md index d039da052..8534b4ca1 100644 --- a/packages/agent-core/CHANGELOG.md +++ b/packages/agent-core/CHANGELOG.md @@ -1,5 +1,45 @@ # @sapiom/orchestration-core +## 0.16.0 + +### Minor Changes + +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + - @sapiom/tools@0.47.1 + ## 0.15.7 ### Patch Changes diff --git a/packages/agent-core/package.json b/packages/agent-core/package.json index 7a487d3f4..f92425d71 100644 --- a/packages/agent-core/package.json +++ b/packages/agent-core/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/agent-core", - "version": "0.15.7", + "version": "0.16.0", "description": "Pure, stateless core functions for scaffolding, validating, and operating Sapiom agents — shared by the CLI and MCP packages.", "license": "MIT", "author": "Sapiom", diff --git a/packages/agent-core/src/version-fallback.generated.ts b/packages/agent-core/src/version-fallback.generated.ts index 243a0cbad..a857f113e 100644 --- a/packages/agent-core/src/version-fallback.generated.ts +++ b/packages/agent-core/src/version-fallback.generated.ts @@ -5,5 +5,5 @@ // longer drift. export const VERSION_FALLBACK = { agent: "0.14.11", - tools: "0.47.0", + tools: "0.47.1", } as const; diff --git a/packages/agent-studio/CHANGELOG.md b/packages/agent-studio/CHANGELOG.md index 12f6f19cb..2700d4c9d 100644 --- a/packages/agent-studio/CHANGELOG.md +++ b/packages/agent-studio/CHANGELOG.md @@ -1,5 +1,11 @@ # @sapiom/agent-studio +## 0.1.39 + +### Patch Changes + +- @sapiom/harness@0.22.1 + ## 0.1.38 ### Patch Changes diff --git a/packages/agent-studio/package.json b/packages/agent-studio/package.json index 3ffb2d0fe..6a7c5f83e 100644 --- a/packages/agent-studio/package.json +++ b/packages/agent-studio/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/agent-studio", - "version": "0.1.38", + "version": "0.1.39", "description": "Agent Studio — build, test, deploy, and run Sapiom agents with your coding agent in a local workspace.", "keywords": [ "sapiom", diff --git a/packages/analytics-core/CHANGELOG.md b/packages/analytics-core/CHANGELOG.md index e8de1e0f3..b01c5527c 100644 --- a/packages/analytics-core/CHANGELOG.md +++ b/packages/analytics-core/CHANGELOG.md @@ -1,5 +1,39 @@ # @sapiom/analytics-core +## 0.3.0 + +### Minor Changes + +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + ## 0.2.1 ### Patch Changes diff --git a/packages/analytics-core/package.json b/packages/analytics-core/package.json index fa29ff412..ed840b1b1 100644 --- a/packages/analytics-core/package.json +++ b/packages/analytics-core/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/analytics-core", - "version": "0.2.1", + "version": "0.3.0", "description": "Zero-dependency usage analytics emitter shared by Sapiom SDK packages — consent-aware, batched, and guaranteed to never throw or block the host application.", "license": "MIT", "author": "Sapiom", diff --git a/packages/axios/CHANGELOG.md b/packages/axios/CHANGELOG.md index 6798696fe..dd5279e2a 100644 --- a/packages/axios/CHANGELOG.md +++ b/packages/axios/CHANGELOG.md @@ -1,5 +1,12 @@ # @sapiom/axios +## 0.5.2 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/core@0.6.0 + ## 0.5.1 ### Patch Changes diff --git a/packages/axios/package.json b/packages/axios/package.json index 1505821ee..8d0eca081 100644 --- a/packages/axios/package.json +++ b/packages/axios/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/axios", - "version": "0.5.1", + "version": "0.5.2", "description": "Axios integration for Sapiom SDK", "keywords": [ "sapiom", diff --git a/packages/browser-pay/CHANGELOG.md b/packages/browser-pay/CHANGELOG.md index eb8a14d94..d38b0ffd1 100644 --- a/packages/browser-pay/CHANGELOG.md +++ b/packages/browser-pay/CHANGELOG.md @@ -1,5 +1,45 @@ # @sapiom/browser-pay +## 0.2.0 + +### Minor Changes + +- b386258: Interceptor event URLs now expose only the request origin, and refusal reasons are restricted to known relay values (exported as the `RefusalReason` type). CDP attach errors use fixed messages to avoid forwarding transport details. +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + ## 0.1.1 ### Patch Changes diff --git a/packages/browser-pay/package.json b/packages/browser-pay/package.json index 76dafca66..8163739be 100644 --- a/packages/browser-pay/package.json +++ b/packages/browser-pay/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/browser-pay", - "version": "0.1.1", + "version": "0.2.0", "description": "Browser-side payment interceptor. Pause a placeholder card request over CDP and relay it.", "keywords": [ "sapiom", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 395fb40f7..403120131 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,14 @@ # @sapiom/cli +## 21.0.1 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + - @sapiom/agent-core@0.16.0 + - @sapiom/harness@0.22.1 + ## 21.0.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 26af0a494..21da63b85 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/cli", - "version": "21.0.0", + "version": "21.0.1", "description": "The Sapiom command-line interface — scaffold, validate, and ship Sapiom agents.", "license": "MIT", "author": "Sapiom", @@ -46,7 +46,7 @@ "zod": "^3.25.76" }, "peerDependencies": { - "@sapiom/harness": ">=0.22.0" + "@sapiom/harness": ">=0.22.1" }, "peerDependenciesMeta": { "@sapiom/harness": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index d90f39feb..002998a09 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,44 @@ # @sapiom/core +## 0.6.0 + +### Minor Changes + +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 0f049fcef..a3ec5f8f4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/core", - "version": "0.5.0", + "version": "0.6.0", "description": "Core SDK for Sapiom API - Transaction management and core utilities", "keywords": [ "sapiom", diff --git a/packages/fetch/CHANGELOG.md b/packages/fetch/CHANGELOG.md index b41c14cbf..fbe2ae12d 100644 --- a/packages/fetch/CHANGELOG.md +++ b/packages/fetch/CHANGELOG.md @@ -1,5 +1,12 @@ # @sapiom/fetch +## 0.5.1 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/core@0.6.0 + ## 0.5.0 ### Minor Changes diff --git a/packages/fetch/package.json b/packages/fetch/package.json index 1b029a616..c99b0a4c2 100644 --- a/packages/fetch/package.json +++ b/packages/fetch/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/fetch", - "version": "0.5.0", + "version": "0.5.1", "description": "Fetch API integration for Sapiom SDK", "keywords": [ "sapiom", diff --git a/packages/harness/CHANGELOG.md b/packages/harness/CHANGELOG.md index 92e6d6f39..8f8de27aa 100644 --- a/packages/harness/CHANGELOG.md +++ b/packages/harness/CHANGELOG.md @@ -1,5 +1,15 @@ # @sapiom/harness +## 0.22.1 + +### Patch Changes + +- Updated dependencies [085a3c4] +- Updated dependencies [a76b8bd] + - @sapiom/mcp@0.20.2 + - @sapiom/analytics-core@0.3.0 + - @sapiom/agent-core@0.16.0 + ## 0.22.0 ### Minor Changes diff --git a/packages/harness/package.json b/packages/harness/package.json index 560b5a15b..debc0d23a 100644 --- a/packages/harness/package.json +++ b/packages/harness/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/harness", - "version": "0.22.0", + "version": "0.22.1", "description": "Agent Studio — a CLI-launched local web app that runs your coding agent (Claude Code or Codex) in a Sapiom-configured environment: MCP pre-wired, agents tracked, one-click deploy/run, and a live canvas for previews.", "keywords": [ "sapiom", diff --git a/packages/langchain-classic/CHANGELOG.md b/packages/langchain-classic/CHANGELOG.md index 90bf623ef..3943b6e1f 100644 --- a/packages/langchain-classic/CHANGELOG.md +++ b/packages/langchain-classic/CHANGELOG.md @@ -1,5 +1,13 @@ # @sapiom/langchain-classic +## 0.5.2 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + - @sapiom/core@0.6.0 + ## 0.5.1 ### Patch Changes diff --git a/packages/langchain-classic/package.json b/packages/langchain-classic/package.json index d5fa3081a..eedfc2c90 100644 --- a/packages/langchain-classic/package.json +++ b/packages/langchain-classic/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/langchain-classic", - "version": "0.5.1", + "version": "0.5.2", "private": true, "description": "LangChain v0.x integration for Sapiom SDK (legacy)", "keywords": [ diff --git a/packages/langchain/CHANGELOG.md b/packages/langchain/CHANGELOG.md index 73f07741b..678c0aca3 100644 --- a/packages/langchain/CHANGELOG.md +++ b/packages/langchain/CHANGELOG.md @@ -1,5 +1,13 @@ # @sapiom/langchain +## 0.5.2 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + - @sapiom/core@0.6.0 + ## 0.5.1 ### Patch Changes diff --git a/packages/langchain/package.json b/packages/langchain/package.json index ce7fb9568..4d030f475 100644 --- a/packages/langchain/package.json +++ b/packages/langchain/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/langchain", - "version": "0.5.1", + "version": "0.5.2", "private": true, "description": "LangChain v1.x integration for Sapiom SDK", "keywords": [ diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 7ac9f8f59..14b7b1557 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,44 @@ # @sapiom/mcp +## 0.20.2 + +### Patch Changes + +- 085a3c4: The schedule tool now says `sapiom.*` platform events can be subscribed to with an `event` trigger (never emitted) and points to the server instructions for the list; the bundled primer now documents `sapiom.run.failed`. +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + - @sapiom/agent-core@0.16.0 + ## 0.20.1 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 022c71c95..5999614cf 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/mcp", - "version": "0.20.1", + "version": "0.20.2", "description": "Local Sapiom developer MCP server (sapiom-dev) — the unmetered surface for building and operating on Sapiom; today it scaffolds, tests, deploys, and inspects orchestrations. Not the remote Sapiom capability MCP.", "mcpName": "io.github.sapiom/mcp", "keywords": [ diff --git a/packages/node-http/CHANGELOG.md b/packages/node-http/CHANGELOG.md index 14460b730..b44e2dd44 100644 --- a/packages/node-http/CHANGELOG.md +++ b/packages/node-http/CHANGELOG.md @@ -1,5 +1,12 @@ # @sapiom/node-http +## 0.4.2 + +### Patch Changes + +- Updated dependencies [a76b8bd] + - @sapiom/core@0.6.0 + ## 0.4.1 ### Patch Changes diff --git a/packages/node-http/package.json b/packages/node-http/package.json index 3f5a88243..69901093a 100644 --- a/packages/node-http/package.json +++ b/packages/node-http/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/node-http", - "version": "0.4.1", + "version": "0.4.2", "description": "Node.js HTTP/HTTPS integration for Sapiom SDK", "keywords": [ "sapiom", diff --git a/packages/sandbox/CHANGELOG.md b/packages/sandbox/CHANGELOG.md index 819a1a37b..4a06478fa 100644 --- a/packages/sandbox/CHANGELOG.md +++ b/packages/sandbox/CHANGELOG.md @@ -1,5 +1,11 @@ # @sapiom/sandbox +## 0.8.6 + +### Patch Changes + +- @sapiom/fetch@0.5.1 + ## 0.8.5 ### Patch Changes diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index 556e4a8fe..510555659 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/sandbox", - "version": "0.8.5", + "version": "0.8.6", "description": "Sandbox environment management for Sapiom SDK", "repository": { "type": "git", diff --git a/packages/tools/CHANGELOG.md b/packages/tools/CHANGELOG.md index cf65544f6..3fef93629 100644 --- a/packages/tools/CHANGELOG.md +++ b/packages/tools/CHANGELOG.md @@ -1,5 +1,42 @@ # @sapiom/tools +## 0.47.1 + +### Patch Changes + +- a76b8bd: The tenant API key now only travels over HTTPS, or plain HTTP to a loopback + host, from every SDK client, and never follows a redirect to another origin. + One function, `credentialFetch` from the new `@sapiom/analytics-core/credential` + subpath, is the only code that sets the key header. + + Behavior changes, shipped as 0.x minor bumps: a plain `http://` URL to a + non-loopback host is now refused, and the key headers are stripped on a + cross-origin redirect. `@sapiom/core` and `@sapiom/browser-pay` gain their + first runtime dependency, `@sapiom/analytics-core`. + + - `@sapiom/core`, `@sapiom/agent-core` and `@sapiom/mcp`: a plain `http://` + URL to a non-loopback host (for example a Docker service name or a LAN IP) + now fails before the request is sent. On a trusted private network, opt in + with `new SapiomClient({ allowInsecureHttp: true })` (core), + `createClient({ allowInsecureHttp: true })` (agent-core) or + `SAPIOM_ALLOW_INSECURE_HTTP=1` (all clients). `localhost`, `*.localhost`, + `127.0.0.1` and `[::1]` work as before. Core does not retry a refused channel. + - `@sapiom/analytics-core`: on such an endpoint the batch is still sent, without + the key. A redirect to a refused channel drops the batch. + - Every client follows redirects itself: the first hop to another origin drops + `x-api-key`, `x-sapiom-api-key` and every `x-sapiom-*` header. + - `@sapiom/core`: `getHttpClient().defaults.headers` no longer carries the key; + read `defaults.credential` instead. + - `@sapiom/browser-pay`: the payment relay uses the shared rule, so a + `*.localhost` base URL and `SAPIOM_ALLOW_INSECURE_HTTP=1` are now accepted, and + a refused base URL throws a `CredentialChannelError`. Redirects are still + refused. + - `@sapiom/tools`: no behavior change. A refused call now throws a + `CredentialChannelError`, a `TypeError` subclass that keeps `name: "TypeError"`. + +- Updated dependencies [a76b8bd] + - @sapiom/analytics-core@0.3.0 + ## 0.47.0 ### Minor Changes diff --git a/packages/tools/package.json b/packages/tools/package.json index 52615dbf7..aa5dde15e 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,6 +1,6 @@ { "name": "@sapiom/tools", - "version": "0.47.0", + "version": "0.47.1", "description": "Typed client for Sapiom capabilities (sandboxes, repositories, agent, file storage, …) — the same tools your agents call over MCP, callable from your code, auth'd to your tenant.", "license": "MIT", "author": "Sapiom", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3955c6475..50da7ad70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -335,7 +335,7 @@ importers: specifier: workspace:^ version: link:../analytics-core '@sapiom/harness': - specifier: '>=0.22.0' + specifier: '>=0.22.1' version: link:../harness '@sapiom/sandbox-preview': specifier: workspace:^