@subseam/mcp 0.4.49 → 0.4.50

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.
Files changed (2) hide show
  1. package/dist/main.js +23 -11
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -30506,11 +30506,24 @@ function readBody(schema, body2, tool, edge) {
30506
30506
 
30507
30507
  // ../define/src/tool/config.ts
30508
30508
  init_esm_shims();
30509
+
30510
+ // ../define/src/tool/rung.ts
30511
+ init_esm_shims();
30512
+ var RUNGS = ["off", "warn", "new-code-only", "everywhere"];
30513
+ var readRung = external_exports.enum(["block", ...RUNGS]).transform((r) => r === "block" ? "new-code-only" : r);
30514
+ var RUNG_EFFECT = {
30515
+ off: "not evaluated at all",
30516
+ warn: "violations are reported, nothing is refused",
30517
+ "new-code-only": "a violation a change adds refuses it; violations already on the trunk do not",
30518
+ everywhere: "any violation on the trunk refuses a change, added by it or not"
30519
+ };
30520
+
30521
+ // ../define/src/tool/config.ts
30509
30522
  var gapRow = external_exports.object({ construct: external_exports.string(), firstWitness: external_exports.string(), issue: external_exports.number(), recordedBy: external_exports.string(), recordedAt: external_exports.string() });
30510
30523
  var input = external_exports.object({
30511
30524
  set: external_exports.object({
30512
30525
  definitionId: external_exports.string().min(1),
30513
- disposition: external_exports.enum(["warn", "block", "off"]),
30526
+ disposition: external_exports.enum(RUNGS),
30514
30527
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable().optional()
30515
30528
  }).optional()
30516
30529
  });
@@ -30522,17 +30535,17 @@ var configBody = external_exports.object({
30522
30535
  profile: external_exports.array(external_exports.object({
30523
30536
  definitionId: external_exports.string(),
30524
30537
  name: external_exports.string(),
30525
- disposition: external_exports.enum(["warn", "block", "off"]),
30538
+ disposition: readRung,
30526
30539
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable(),
30527
30540
  setBy: external_exports.string(),
30528
30541
  setAt: external_exports.string()
30529
30542
  })),
30530
- defaultDisposition: external_exports.enum(["warn", "block", "off"]),
30543
+ defaultDisposition: readRung,
30531
30544
  gaps: external_exports.array(gapRow)
30532
30545
  });
30533
30546
  var defineConfigTool = {
30534
30547
  name: "define_config",
30535
- description: "Read \u2014 or set \u2014 this tenant's DISPOSITION PROFILE: per definition, whether a violation blocks, only warns, or the definition is not evaluated at all. Called bare it is read-only and lists the definitions somebody has configured, with who set each and when. Pass `set: { definitionId, disposition }` to configure one \u2014 `block` refuses a land on violation (the DEFAULT for every definition nobody has configured), `warn` reports the violation on the land and refuses nothing, `off` means the definition is NOT EVALUATED and the conformance run names it as skipped. Optional `severity` (info|low|medium|high|critical) rides the row for your own triage; it changes nothing about blocking. This is CONFIG, not the definition: the definition stays a pure statement of what is true, and turning it off never edits or retires it \u2014 use define_ratify `supersede` to retire one. Your name is recorded automatically.",
30548
+ description: "Read \u2014 or set \u2014 this tenant's DISPOSITION PROFILE: per definition, which rung of the ladder it is at. Called bare it is read-only and lists the definitions somebody has configured, with who set each and when. Pass `set: { definitionId, disposition }` to configure one. The rungs, weakest first: `off` means the definition is NOT EVALUATED and the conformance run names it as skipped; `warn` reports a violation and refuses nothing; `new-code-only` (the DEFAULT for every definition nobody has configured) fails a PR that adds a violation, and violations already on the trunk do not fail it; `everywhere` fails a PR while any violation of the definition is on the trunk, added by the PR or not. Optional `severity` (info|low|medium|high|critical) rides the row for your own triage; it changes nothing about blocking. This is CONFIG, not the definition: the definition stays a pure statement of what is true, and turning it off never edits or retires it \u2014 use define_ratify `supersede` to retire one. Your name is recorded automatically.",
30536
30549
  capability: "define",
30537
30550
  inputSchema: input.shape,
30538
30551
  async handler(raw, ctx) {
@@ -30555,8 +30568,7 @@ function renderConfig(r) {
30555
30568
  );
30556
30569
  for (const e of r.profile) {
30557
30570
  const severity = e.severity === null ? "" : `, severity ${e.severity}`;
30558
- const what = e.disposition === "block" ? "violations refuse a land" : e.disposition === "warn" ? "violations are reported, nothing is refused" : "not evaluated at all";
30559
- out2.push(` \u2022 ${e.name} (${e.definitionId}): ${e.disposition}${severity} \u2014 ${what}; set by ${e.setBy} on ${e.setAt}`);
30571
+ out2.push(` \u2022 ${e.name} (${e.definitionId}): ${e.disposition}${severity} \u2014 ${RUNG_EFFECT[e.disposition]}; set by ${e.setBy} on ${e.setAt}`);
30560
30572
  }
30561
30573
  if (r.gaps.length === 0) {
30562
30574
  out2.push("gaps: none");
@@ -30596,7 +30608,7 @@ var definitionDraft = external_exports.object({
30596
30608
  }),
30597
30609
  gated: external_exports.string().nullable().optional(),
30598
30610
  /** Absent from older servers. */
30599
- rung: external_exports.object({ disposition: external_exports.enum(["block", "warn", "off"]), means: external_exports.string() }).optional(),
30611
+ rung: external_exports.object({ disposition: readRung, means: external_exports.string() }).optional(),
30600
30612
  conflicts: external_exports.literal("not checked")
30601
30613
  });
30602
30614
  var draftAt = external_exports.discriminatedUnion("state", [
@@ -31351,9 +31363,9 @@ var showViolation = external_exports.object({
31351
31363
  lastSeenAt: external_exports.string(),
31352
31364
  snooze: external_exports.object({ until: external_exports.string(), by: external_exports.string(), reason: external_exports.string(), lapsed: external_exports.boolean() }).nullable(),
31353
31365
  // The tenant's policy for the definition, beside the ledger's own state. `disposition` on this
31354
- // object is the LEDGER's (open/snoozed/resolved); this is warn/block/off.
31366
+ // object is the LEDGER's (open/snoozed/resolved); this is the rung (off, warn, new-code-only, everywhere).
31355
31367
  policy: external_exports.object({
31356
- disposition: external_exports.enum(["warn", "block", "off"]),
31368
+ disposition: readRung,
31357
31369
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable(),
31358
31370
  source: external_exports.enum(["profile", "default"])
31359
31371
  })
@@ -31476,7 +31488,7 @@ function violationLines(v) {
31476
31488
  const set2 = v.policy.source === "default" ? " (default \u2014 nobody configured it)" : "";
31477
31489
  const lines = [
31478
31490
  ` \u2022 ${v.repo}: ${v.status} [${v.disposition}] \u2014 first seen at ${v.firstSeenCommit} (${v.firstSeenAt}), last seen at ${v.lastSeenCommit} (${v.lastSeenAt})`,
31479
- ` policy: ${v.policy.disposition}${severity}${set2}` + (v.policy.disposition === "block" ? " \u2014 this violation refuses a land." : " \u2014 reported, refuses nothing.")
31491
+ ` policy: ${v.policy.disposition}${severity}${set2} \u2014 ${RUNG_EFFECT[v.policy.disposition]}.`
31480
31492
  ];
31481
31493
  if (v.snooze !== null) {
31482
31494
  const lapsed = v.snooze.lapsed ? " (LAPSED \u2014 back in the gating lane)" : "";
@@ -48682,7 +48694,7 @@ var workReadTools = createWorkReadToolProviders({ capability: "work" });
48682
48694
  var bundledProviders = [src_default2, src_default, tension_default, ...defineTools, ...decisionTools, ...captureTools, ...buildTools, secureTool, ...workTools, ...workReadTools];
48683
48695
 
48684
48696
  // package.json
48685
- var version2 = "0.4.49";
48697
+ var version2 = "0.4.50";
48686
48698
 
48687
48699
  // src/server.ts
48688
48700
  var SERVER_VERSION = version2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subseam/mcp",
3
- "version": "0.4.49",
3
+ "version": "0.4.50",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {