@sigrun/ext-mcp 0.2.1 → 0.2.2

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
@@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ## [Unreleased]
9
+ ### Changed
10
+ - Forward-compatible with pi-durable 1.4.0 (explicit `checkpointWhen`;
11
+ widened peer range). No behaviour change.
12
+ - Block-validator tests now compile against core's real generated
13
+ `@sigrun/sigrun/blocks` declarations instead of a local ambient shim.
14
+ A content-hash build stamp rejects missing or stale sibling output with
15
+ an explicit core rebuild instruction; the sibling CI path builds core
16
+ before the validator-form test.
17
+
9
18
  ### Security
10
19
  - **stdio MCP servers receive an allowlisted environment instead of sigrun's
11
20
  process environment.** `SIGRUN_API_TOKEN` and provider keys were inherited
package/dist/config.js CHANGED
@@ -144,6 +144,13 @@ export function parseMcpConfig(text, source) {
144
144
  if (name.startsWith("u_")) {
145
145
  throw new Error(`mcp config ${source}: server "${name}" uses the reserved "u_" prefix`);
146
146
  }
147
+ // The tool namespace is `<server>/<tool>` and settings keys use dots
148
+ // for paths, so a server named `acme.tools` or `acme/tools` would
149
+ // produce ambiguous or conflicting keys. Reject at the source, before
150
+ // any settings section can be generated from the bad name.
151
+ if (name.includes(".") || name.includes("/")) {
152
+ throw new Error(`mcp config ${source}: server "${name}" contains forbidden characters ("." or "/") — dots conflict with settings key paths and slashes conflict with the <server>/<tool> namespace`);
153
+ }
147
154
  if (!isRecord(entry)) {
148
155
  throw new Error(`mcp config ${source}: server "${name}" must be an object`);
149
156
  }
package/dist/extension.js CHANGED
@@ -17,6 +17,7 @@ const SessionOwnerDoc = defineDoc({
17
17
  history: "latest",
18
18
  fork: "current",
19
19
  initial: () => ({}),
20
+ checkpointWhen: () => false,
20
21
  });
21
22
  function denied(message) {
22
23
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigrun/ext-mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "MCP extension for sigrun (pi-durable): registers MCP server tools as <server>/<toolname> tools",
5
5
  "type": "module",
6
6
  "engines": {
@@ -28,9 +28,9 @@
28
28
  "prepublishOnly": "npm run build"
29
29
  },
30
30
  "peerDependencies": {
31
- "@earendil-works/chord": "1.3.0",
32
- "@earendil-works/pi-ai": "1.3.0",
33
- "@earendil-works/pi-durable": "1.3.0",
31
+ "@earendil-works/chord": "1.3.0 || 1.4.0",
32
+ "@earendil-works/pi-ai": "1.3.0 || 1.4.0",
33
+ "@earendil-works/pi-durable": "1.3.0 || 1.4.0",
34
34
  "typebox": "1.3.27"
35
35
  },
36
36
  "devDependencies": {