@subseam/mcp 0.3.2 → 0.3.3

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
@@ -17,7 +17,7 @@ The script runs `npm install @subseam/mcp@<version>` in the host directory and p
17
17
  The equivalent by hand:
18
18
 
19
19
  ```
20
- npm install @subseam/mcp@0.3.1
20
+ npm install @subseam/mcp@0.3.3
21
21
  claude mcp add-json --scope user subseam '{"command":"node","args":["<dir>/node_modules/@subseam/mcp/dist/main.js"],"env":{"SUBSEAM_URL":"https://api.example.subseam.com","SUBSEAM_TENANT":"<your tenant id>"}}'
22
22
  ```
23
23
 
package/dist/main.js CHANGED
@@ -20170,6 +20170,9 @@ init_esm_shims();
20170
20170
  init_esm_shims();
20171
20171
  var VERIFY_ANALYSES = ["coverage-residue", "mutation", "witness"];
20172
20172
 
20173
+ // ../verify-contract/src/request/scratch-headers.ts
20174
+ init_esm_shims();
20175
+
20173
20176
  // ../verify-contract/src/result/verdict.ts
20174
20177
  init_esm_shims();
20175
20178
 
@@ -20630,6 +20633,10 @@ init_esm_shims();
20630
20633
  // ../verify/src/delta/pushed-head.ts
20631
20634
  init_esm_shims();
20632
20635
 
20636
+ // ../verify/src/delta/walk-lag.ts
20637
+ init_esm_shims();
20638
+ var SCRATCH_BODY_LIMIT_BYTES = 64 * 1024 * 1024;
20639
+
20633
20640
  // ../verify/src/service/gateway-verify.ts
20634
20641
  init_esm_shims();
20635
20642
 
@@ -36308,8 +36315,11 @@ var BuildRequestSchema = external_exports.discriminatedUnion("op", [
36308
36315
  op: external_exports.literal("config"),
36309
36316
  workspaceId: external_exports.string().uuid(),
36310
36317
  set: external_exports.object({
36311
- landCommand: external_exports.array(external_exports.string()).min(1),
36312
- landingShape: external_exports.enum(["direct-push", "pr"]).optional()
36318
+ landCommand: external_exports.array(external_exports.string()).min(1).optional(),
36319
+ landingShape: external_exports.enum(["direct-push", "pr"]).optional(),
36320
+ /** Whether Secure is on for this repo. Every `set` field is optional and an absent one is left
36321
+ * as it stands, so enabling Secure never touches the gate; a `set` naming nothing is refused. */
36322
+ secure: external_exports.object({ enabled: external_exports.boolean() }).optional()
36313
36323
  }).optional()
36314
36324
  })
36315
36325
  ]).readonly();
@@ -36558,6 +36568,9 @@ var BuildResultSchema = external_exports.union([
36558
36568
  /** Which shape this repo's lands take. Null ONLY when the repo has no config row at all — the
36559
36569
  * same absence `landCommand` reports null for. A repo that has a row always has a shape. */
36560
36570
  landingShape: external_exports.enum(["direct-push", "pr"]).nullable(),
36571
+ /** Whether Secure is on for this repo. Not nullable: no config row means Secure is off, which is
36572
+ * an answer, not an absence — the repair miner scans nothing either way. */
36573
+ secure: external_exports.object({ enabled: external_exports.boolean() }),
36561
36574
  verification: external_exports.object({
36562
36575
  declaredScopeSupported: external_exports.boolean(),
36563
36576
  scopePatternForms: external_exports.array(external_exports.string())
@@ -45059,9 +45072,11 @@ Land ${inFlight.landedCommit} is pushed and awaiting the walk. Do NOT push again
45059
45072
  case "config": {
45060
45073
  const gate = r.landCommand === null ? "Land gate: NONE configured for this repo \u2014 a land cannot be authorized until one is set." : `Land gate: ${r.landCommand.join(" ")}`;
45061
45074
  const shape = r.landingShape === null ? "Landing shape: none configured (this repo has no config row)." : r.landingShape === "pr" ? "Landing shape: pr \u2014 a land pushes the verified commit to its own branch and opens a pull request. It lands when that PR is merged." : "Landing shape: direct-push \u2014 a land fast-forwards the verified commit straight onto the default branch.";
45075
+ const secure = r.secure.enabled ? "Secure: on \u2014 this repo's landed commits are scanned, and the taint findings they remove are kept." : "Secure: off \u2014 this repo is not scanned. Turn it on with set: { secure: { enabled: true } }.";
45062
45076
  const scope = r.verification.declaredScopeSupported ? `Declared run scope: supported. Pattern forms: ${r.verification.scopePatternForms.join(", ")}.` : "Declared run scope: not supported by this server.";
45063
45077
  return `${gate}
45064
45078
  ${shape}
45079
+ ${secure}
45065
45080
  ${scope}`;
45066
45081
  }
45067
45082
  case "run":
@@ -45254,19 +45269,24 @@ var buildLandsTool = {
45254
45269
  };
45255
45270
  var configTool = {
45256
45271
  name: "config",
45257
- description: "Read \u2014 or set \u2014 the hosted workspace repo's land gate, plus this server's verification affordances. Called bare it is read-only: returns the landCommand your land will be held to (null when the repo has no land config), plus whether `run` accepts a declared `scope` and which pattern forms it takes. Pass `set: { landCommand: [...] }` to configure the gate for this workspace's REPO \u2014 that is what the land refusal means by \"configure the repo's landCommand\", and it is repo-scoped, so a re-set replaces the gate rather than adding one. The gate still lives server-side and a land is still held to whatever this table says; setting it names the command, it does not let a land name its own. Pass `set: { landCommand: [...], landingShape: \"pr\" }` to also choose HOW this repo lands: `direct-push` (the default) fast-forwards the verified commit onto the default branch; `pr` pushes it to a branch of its own and opens a pull request, so the change lands when that PR is merged. landingShape is optional and OMITTING IT LEAVES THE SHAPE UNCHANGED \u2014 setting a gate command never silently reverts a review-configured repo to a direct push. Either form answers with the config that now holds.",
45272
+ description: "Read \u2014 or set \u2014 the hosted workspace repo's land gate, plus this server's verification affordances. Called bare it is read-only: returns the landCommand your land will be held to (null when the repo has no land config), plus whether `run` accepts a declared `scope` and which pattern forms it takes. Pass `set: { landCommand: [...] }` to configure the gate for this workspace's REPO \u2014 that is what the land refusal means by \"configure the repo's landCommand\", and it is repo-scoped, so a re-set replaces the gate rather than adding one. The gate still lives server-side and a land is still held to whatever this table says; setting it names the command, it does not let a land name its own. Pass `set: { landCommand: [...], landingShape: \"pr\" }` to also choose HOW this repo lands: `direct-push` (the default) fast-forwards the verified commit onto the default branch; `pr` pushes it to a branch of its own and opens a pull request, so the change lands when that PR is merged. landingShape is optional and OMITTING IT LEAVES THE SHAPE UNCHANGED \u2014 setting a gate command never silently reverts a review-configured repo to a direct push. Pass `set: { secure: { enabled: true } }` to turn Secure on for this repo \u2014 that is what makes the repair miner scan the commits this repo lands; a repo without it is never scanned. Every `set` field is optional and an absent one is left exactly as it stands, so enabling Secure never touches the gate and setting a gate never turns Secure off. Every form answers with the config that now holds.",
45258
45273
  capability: "build",
45259
45274
  inputSchema: {
45260
45275
  workspaceId: workspaceIdArg,
45261
45276
  set: external_exports2.object({
45262
- landCommand: external_exports2.array(external_exports2.string()).min(1),
45263
- landingShape: external_exports2.enum(["direct-push", "pr"]).optional()
45277
+ landCommand: external_exports2.array(external_exports2.string()).min(1).optional(),
45278
+ landingShape: external_exports2.enum(["direct-push", "pr"]).optional(),
45279
+ secure: external_exports2.object({ enabled: external_exports2.boolean() }).optional()
45264
45280
  }).optional()
45265
45281
  },
45266
45282
  handler: async (input8, ctx) => invoke(ctx, {
45267
45283
  op: "config",
45268
45284
  workspaceId: resolveWorkspaceId(input8.workspaceId, ctx),
45269
- ...input8.set !== void 0 ? { set: { landCommand: input8.set.landCommand, ...input8.set.landingShape !== void 0 ? { landingShape: input8.set.landingShape } : {} } } : {}
45285
+ ...input8.set !== void 0 ? { set: {
45286
+ ...input8.set.landCommand !== void 0 ? { landCommand: input8.set.landCommand } : {},
45287
+ ...input8.set.landingShape !== void 0 ? { landingShape: input8.set.landingShape } : {},
45288
+ ...input8.set.secure !== void 0 ? { secure: input8.set.secure } : {}
45289
+ } } : {}
45270
45290
  })
45271
45291
  };
45272
45292
  var buildTools = [
@@ -45398,6 +45418,11 @@ init_esm_shims();
45398
45418
  // ../secure/src/taint/trust/python.ts
45399
45419
  init_esm_shims();
45400
45420
 
45421
+ // ../secure/src/scanner.ts
45422
+ init_esm_shims();
45423
+ var SECURE_SCANNER_VERSION = 1;
45424
+ var SECURE_ORACLE_VERSION = `secure-taint/${SECURE_SCANNER_VERSION}`;
45425
+
45401
45426
  // ../inference/src/index.ts
45402
45427
  init_esm_shims();
45403
45428
 
@@ -45703,7 +45728,7 @@ var workTools = createPullToolProviders({ capability: "work" });
45703
45728
  var bundledProviders = [src_default2, src_default, tension_default, ...defineTools, ...decisionTools, ...captureTools, ...buildTools, secureTool, ...workTools];
45704
45729
 
45705
45730
  // package.json
45706
- var version2 = "0.3.2";
45731
+ var version2 = "0.3.3";
45707
45732
 
45708
45733
  // src/server.ts
45709
45734
  var SERVER_VERSION = version2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subseam/mcp",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {