@subseam/mcp 0.4.49 → 0.4.51

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 +26 -11
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -20657,6 +20657,9 @@ init_esm_shims();
20657
20657
  // ../verify/src/render/define-augment.ts
20658
20658
  init_esm_shims();
20659
20659
 
20660
+ // ../verify/src/report/fit-github-text.ts
20661
+ init_esm_shims();
20662
+
20660
20663
  // ../verify/src/report/real-post-check-run.ts
20661
20664
  init_esm_shims();
20662
20665
 
@@ -30506,11 +30509,24 @@ function readBody(schema, body2, tool, edge) {
30506
30509
 
30507
30510
  // ../define/src/tool/config.ts
30508
30511
  init_esm_shims();
30512
+
30513
+ // ../define/src/tool/rung.ts
30514
+ init_esm_shims();
30515
+ var RUNGS = ["off", "warn", "new-code-only", "everywhere"];
30516
+ var readRung = external_exports.enum(["block", ...RUNGS]).transform((r) => r === "block" ? "new-code-only" : r);
30517
+ var RUNG_EFFECT = {
30518
+ off: "not evaluated at all",
30519
+ warn: "violations are reported, nothing is refused",
30520
+ "new-code-only": "a violation a change adds refuses it; violations already on the trunk do not",
30521
+ everywhere: "any violation on the trunk refuses a change, added by it or not"
30522
+ };
30523
+
30524
+ // ../define/src/tool/config.ts
30509
30525
  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
30526
  var input = external_exports.object({
30511
30527
  set: external_exports.object({
30512
30528
  definitionId: external_exports.string().min(1),
30513
- disposition: external_exports.enum(["warn", "block", "off"]),
30529
+ disposition: external_exports.enum(RUNGS),
30514
30530
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable().optional()
30515
30531
  }).optional()
30516
30532
  });
@@ -30522,17 +30538,17 @@ var configBody = external_exports.object({
30522
30538
  profile: external_exports.array(external_exports.object({
30523
30539
  definitionId: external_exports.string(),
30524
30540
  name: external_exports.string(),
30525
- disposition: external_exports.enum(["warn", "block", "off"]),
30541
+ disposition: readRung,
30526
30542
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable(),
30527
30543
  setBy: external_exports.string(),
30528
30544
  setAt: external_exports.string()
30529
30545
  })),
30530
- defaultDisposition: external_exports.enum(["warn", "block", "off"]),
30546
+ defaultDisposition: readRung,
30531
30547
  gaps: external_exports.array(gapRow)
30532
30548
  });
30533
30549
  var defineConfigTool = {
30534
30550
  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.",
30551
+ 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
30552
  capability: "define",
30537
30553
  inputSchema: input.shape,
30538
30554
  async handler(raw, ctx) {
@@ -30555,8 +30571,7 @@ function renderConfig(r) {
30555
30571
  );
30556
30572
  for (const e of r.profile) {
30557
30573
  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}`);
30574
+ out2.push(` \u2022 ${e.name} (${e.definitionId}): ${e.disposition}${severity} \u2014 ${RUNG_EFFECT[e.disposition]}; set by ${e.setBy} on ${e.setAt}`);
30560
30575
  }
30561
30576
  if (r.gaps.length === 0) {
30562
30577
  out2.push("gaps: none");
@@ -30596,7 +30611,7 @@ var definitionDraft = external_exports.object({
30596
30611
  }),
30597
30612
  gated: external_exports.string().nullable().optional(),
30598
30613
  /** Absent from older servers. */
30599
- rung: external_exports.object({ disposition: external_exports.enum(["block", "warn", "off"]), means: external_exports.string() }).optional(),
30614
+ rung: external_exports.object({ disposition: readRung, means: external_exports.string() }).optional(),
30600
30615
  conflicts: external_exports.literal("not checked")
30601
30616
  });
30602
30617
  var draftAt = external_exports.discriminatedUnion("state", [
@@ -31351,9 +31366,9 @@ var showViolation = external_exports.object({
31351
31366
  lastSeenAt: external_exports.string(),
31352
31367
  snooze: external_exports.object({ until: external_exports.string(), by: external_exports.string(), reason: external_exports.string(), lapsed: external_exports.boolean() }).nullable(),
31353
31368
  // 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.
31369
+ // object is the LEDGER's (open/snoozed/resolved); this is the rung (off, warn, new-code-only, everywhere).
31355
31370
  policy: external_exports.object({
31356
- disposition: external_exports.enum(["warn", "block", "off"]),
31371
+ disposition: readRung,
31357
31372
  severity: external_exports.enum(["info", "low", "medium", "high", "critical"]).nullable(),
31358
31373
  source: external_exports.enum(["profile", "default"])
31359
31374
  })
@@ -31476,7 +31491,7 @@ function violationLines(v) {
31476
31491
  const set2 = v.policy.source === "default" ? " (default \u2014 nobody configured it)" : "";
31477
31492
  const lines = [
31478
31493
  ` \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.")
31494
+ ` policy: ${v.policy.disposition}${severity}${set2} \u2014 ${RUNG_EFFECT[v.policy.disposition]}.`
31480
31495
  ];
31481
31496
  if (v.snooze !== null) {
31482
31497
  const lapsed = v.snooze.lapsed ? " (LAPSED \u2014 back in the gating lane)" : "";
@@ -48682,7 +48697,7 @@ var workReadTools = createWorkReadToolProviders({ capability: "work" });
48682
48697
  var bundledProviders = [src_default2, src_default, tension_default, ...defineTools, ...decisionTools, ...captureTools, ...buildTools, secureTool, ...workTools, ...workReadTools];
48683
48698
 
48684
48699
  // package.json
48685
- var version2 = "0.4.49";
48700
+ var version2 = "0.4.51";
48686
48701
 
48687
48702
  // src/server.ts
48688
48703
  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.51",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {