@taiga-ai/mcp-server 0.36.0-dev.872 → 0.36.0-dev.874

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/index.js +40 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -25332,6 +25332,7 @@ const INBOX_ITEM_KINDS = [
25332
25332
  "review_pr",
25333
25333
  "review_maintenance",
25334
25334
  "review_policy",
25335
+ "attest_policy",
25335
25336
  "setup_env_var",
25336
25337
  "setup_secret",
25337
25338
  "setup_third_party",
@@ -26189,10 +26190,22 @@ function isFixableFinding(finding) {
26189
26190
  if (finding.status !== "open") return false;
26190
26191
  if (finding.location?.historyOnly) return false;
26191
26192
  if (!isAgentRemediable(finding)) return false;
26193
+ if (finding.fingerprint?.startsWith("base-image:")) return typeof finding.baseMove === "boolean" ? finding.baseMove : baseImageMoveRemoves(finding.data);
26192
26194
  if (finding.kind === "vulnerable_dependency" && isMaliciousPackageFinding(finding)) return true;
26193
26195
  return isCodeRemediationKind(finding.kind) || !!finding.recommendedVersion;
26194
26196
  }
26195
26197
  /**
26198
+ * Whether moving the base images a finding names to the builds their tags
26199
+ * name now removes its advisory (PRO-1728): every base it names moves and the
26200
+ * sweep found the advisory gone from each newer build
26201
+ * (`data.baseImage.bases[].removed`), as the move itself requires.
26202
+ */
26203
+ function baseImageMoveRemoves(data) {
26204
+ const baseImage = typeof data === "object" && data !== null ? data.baseImage : null;
26205
+ const bases = typeof baseImage === "object" && baseImage !== null ? baseImage.bases : null;
26206
+ return Array.isArray(bases) && bases.length > 0 && bases.every((b) => typeof b === "object" && b !== null && typeof b.movesTo === "string" && b.removed === true);
26207
+ }
26208
+ /**
26196
26209
  * A malicious package (OSV `MAL-*`): its advisory id or one of its aliases
26197
26210
  * says so, or its tier is Act now with no KEV listing, which only a malware
26198
26211
  * advisory earns (`findingTierReason`). The id and aliases come first: a
@@ -26424,10 +26437,16 @@ object({
26424
26437
  commit: d.commit
26425
26438
  }));
26426
26439
  /**
26427
- * The judges the API runs over what a sweep read (PRO-4070): the runtime
26428
- * judge (PRO-3659) and the base OS judge (PRO-4074). Never an agent's scanner.
26440
+ * The sources whose findings no agent scanner's outcome decides (PRO-4070):
26441
+ * the API's runtime judge (PRO-3659) and base OS judge (PRO-4074), and the
26442
+ * base image reading (PRO-1728), whose findings the agent drafts but only a
26443
+ * sweep that read the images may settle.
26429
26444
  */
26430
- const MAINTENANCE_JUDGED_SOURCES = ["runtime", "base_os"];
26445
+ const MAINTENANCE_JUDGED_SOURCES = [
26446
+ "runtime",
26447
+ "base_os",
26448
+ "base_image"
26449
+ ];
26431
26450
  [...MAINTENANCE_SCANNERS, ...MAINTENANCE_JUDGED_SOURCES];
26432
26451
  new Set(MAINTENANCE_SCANNERS);
26433
26452
  /**
@@ -27173,6 +27192,14 @@ strictObject({ type: productDocumentType }), object({
27173
27192
  }), strictObject({
27174
27193
  ...policyFixOptions,
27175
27194
  controlId: string$2().min(1).max(40)
27195
+ }), strictObject({
27196
+ controlId: string$2().min(1).max(40),
27197
+ validMonths: union([
27198
+ literal(3),
27199
+ literal(6),
27200
+ literal(12)
27201
+ ]),
27202
+ note: string$2().trim().max(1e3).optional()
27176
27203
  }), strictObject({ environments: array(string$2()).default(["development"]) }), strictObject({
27177
27204
  connection: object({
27178
27205
  name: string$2().min(1).max(150),
@@ -28320,6 +28347,7 @@ const FINDING_ROW_FIELDS = [
28320
28347
  "tier",
28321
28348
  "kevListedAt",
28322
28349
  "malicious",
28350
+ "baseMove",
28323
28351
  "removal",
28324
28352
  "replaceable",
28325
28353
  "status",
@@ -28486,6 +28514,15 @@ function withFixability(row) {
28486
28514
  fixable: true,
28487
28515
  fixNote: "A malicious package: taiga_fix_finding removes it (or replaces it), with every advisory on that version."
28488
28516
  } : row;
28517
+ if (typeof row["baseMove"] === "boolean" && isAgentRemediable({ remediableBy: typeof row["remediableBy"] === "string" ? row["remediableBy"] : null })) return row["baseMove"] === true && row["status"] === "open" ? {
28518
+ ...row,
28519
+ fixable: true,
28520
+ fixNote: "taiga_fix_finding moves the base images it is in to the builds their tags name now, the FROM line alone, with every other advisory that move removes."
28521
+ } : {
28522
+ ...row,
28523
+ fixable: false,
28524
+ fixNote: "Inside a base image no newer build of which removes it yet: it is fixed by a base move, not a package bump, and is held until one does."
28525
+ };
28489
28526
  if (dependency && !row["recommendedVersion"] && row["remediableBy"] === "coding_agent") return {
28490
28527
  ...row,
28491
28528
  fixable: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ai/mcp-server",
3
- "version": "0.36.0-dev.872",
3
+ "version": "0.36.0-dev.874",
4
4
  "description": "Taiga for AI coding assistants: read products, policies, initiatives and runs, and operate the line, over MCP",
5
5
  "mcpName": "ga.tai/mcp-server",
6
6
  "license": "UNLICENSED",