@yanlinglabs/winter-agent-sdk 0.0.40 → 0.0.41

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/dist/index.js CHANGED
@@ -430,7 +430,8 @@ function toWireMcpServers(servers) {
430
430
  ...cfg.timeout !== undefined ? { timeout: cfg.timeout } : {},
431
431
  ...isWinterMcpServerInstance(cfg.instance) ? { tools: cfg.instance.listTools() } : {},
432
432
  ...cfg.toolNames !== undefined ? { toolNames: { ...cfg.toolNames } } : {},
433
- ...cfg.toolLanes !== undefined ? { toolLanes: { ...cfg.toolLanes } } : {}
433
+ ...cfg.toolLanes !== undefined ? { toolLanes: { ...cfg.toolLanes } } : {},
434
+ ...Array.isArray(cfg.concurrentTools) ? { concurrentTools: [...cfg.concurrentTools] } : {}
434
435
  } : cfg;
435
436
  }
436
437
  return out;
@@ -1270,7 +1271,7 @@ function withTestKeychainRedirect(env) {
1270
1271
  return { ...env, [TEST_KEYCHAIN_ENV]: redirect };
1271
1272
  }
1272
1273
  // src/version.ts
1273
- var SDK_VERSION = "0.0.40";
1274
+ var SDK_VERSION = "0.0.41";
1274
1275
  // src/paths/project-key.ts
1275
1276
  var TRANSCRIPT_PROJECT_KEY_MAX_LENGTH = 64;
1276
1277
  var VENDOR_PROJECT_KEY_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
@@ -406,6 +406,23 @@ export interface McpSdkServerConfig {
406
406
  * ignored. Only an in-process (`sdk`) server may declare lanes; the host vouches for its own tools.
407
407
  */
408
408
  toolLanes?: Record<string, string>;
409
+ /**
410
+ * SDK 0.0.41, a Winter extension: some of this server's tools, by the server's own tool name, that are
411
+ * SAFE TO RUN CONCURRENTLY without being read-only (`["session_spawn"]`). A round's calls normally run
412
+ * one at a time unless the tool is read-only (`readOnlyHint: true`); a tool listed here runs BESIDE the
413
+ * round's other concurrent calls (up to 10 at once), exactly like a read-only one -- several calls of it
414
+ * in one round run at the same time (claude runs several `Agent` calls of a round at once; this is the
415
+ * same thing for a host tool that starts work elsewhere).
416
+ *
417
+ * It is a SCHEDULING statement only. It never makes the tool read-only anywhere else: the tool's
418
+ * `annotations` are not touched, plan mode, permission evaluation, the hook input's `winter_mcp_server`
419
+ * and `canUseTool`'s `mcpServer` read the server's own `readOnlyHint` exactly as before. Use it only for a
420
+ * tool whose concurrent calls cannot interfere with each other (each call's work is its own); a tool
421
+ * that holds one exclusive resource belongs in a lane (`toolLanes`) instead. A tool named in BOTH is in
422
+ * its lane (the stricter answer). An entry that is not a string, or names no tool of this server, is
423
+ * ignored. Only an in-process (`sdk`) server may declare it; the host vouches for its own tools.
424
+ */
425
+ concurrentTools?: string[];
409
426
  }
410
427
  export type McpServerConfigForProcessTransport = McpStdioServerConfig | McpHttpServerConfig | McpSSEServerConfig | McpSdkServerConfig;
411
428
  export type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yanlinglabs/winter-agent-sdk",
3
- "version": "0.0.40",
3
+ "version": "0.0.41",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "engines": {
@@ -45,15 +45,15 @@
45
45
  }
46
46
  },
47
47
  "dependencies": {
48
- "@yanlinglabs/winter-provider-catalog": "0.0.40"
48
+ "@yanlinglabs/winter-provider-catalog": "0.0.41"
49
49
  },
50
50
  "optionalDependencies": {
51
- "@yanlinglabs/winter-agent-sdk-darwin-arm64": "0.0.40"
51
+ "@yanlinglabs/winter-agent-sdk-darwin-arm64": "0.0.41"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^26.4.0",
55
- "@yanlinglabs/winter-agent-runtime": "0.0.40",
56
- "@yanlinglabs/winter-conformance": "0.0.40"
55
+ "@yanlinglabs/winter-conformance": "0.0.41",
56
+ "@yanlinglabs/winter-agent-runtime": "0.0.41"
57
57
  },
58
58
  "scripts": {}
59
59
  }