@taiga-ai/mcp-server 0.37.0-dev.981 → 0.37.0-dev.983

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 +63 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -23961,6 +23961,10 @@ var TaigaClient = class {
23961
23961
  async shipNotices(productId) {
23962
23962
  return this.request("POST", `/products/${seg(productId)}/maintenance/notices`, {});
23963
23963
  }
23964
+ /** Sweep one of a product's repositories (PRO-4276): its primary when none is named. */
23965
+ async startSweep(productId, productRepositoryId) {
23966
+ return this.request("POST", `/products/${seg(productId)}/maintenance/sweeps`, productRepositoryId ? { productRepositoryId } : {});
23967
+ }
23964
23968
  async remediateFinding(productId, findingId) {
23965
23969
  return this.request("POST", `/products/${seg(productId)}/maintenance/findings/${seg(findingId)}/remediate`, {});
23966
23970
  }
@@ -26214,6 +26218,46 @@ const ENVIRONMENT_TYPES = [
26214
26218
  "custom"
26215
26219
  ];
26216
26220
  //#endregion
26221
+ //#region ../../packages/types/dist/monitoring-rollups.js
26222
+ /**
26223
+ * Core Web Vitals weighted heaviest (LCP/INP/CLS are Google's "Core" trio);
26224
+ * FCP/TTFB are supporting signals. Thresholds are the published web.dev values.
26225
+ */
26226
+ const METRICS = {
26227
+ LCP: {
26228
+ good: 2500,
26229
+ ni: 4e3,
26230
+ unit: "ms",
26231
+ weight: 30
26232
+ },
26233
+ INP: {
26234
+ good: 200,
26235
+ ni: 500,
26236
+ unit: "ms",
26237
+ weight: 30
26238
+ },
26239
+ CLS: {
26240
+ good: .1,
26241
+ ni: .25,
26242
+ unit: "score",
26243
+ weight: 25
26244
+ },
26245
+ FCP: {
26246
+ good: 1800,
26247
+ ni: 3e3,
26248
+ unit: "ms",
26249
+ weight: 10
26250
+ },
26251
+ TTFB: {
26252
+ good: 800,
26253
+ ni: 1800,
26254
+ unit: "ms",
26255
+ weight: 5
26256
+ }
26257
+ };
26258
+ Object.keys(METRICS);
26259
+ Object.fromEntries(Object.entries(METRICS).map(([name, spec]) => [name, spec.weight]));
26260
+ //#endregion
26217
26261
  //#region ../../packages/types/dist/api-keys.js
26218
26262
  /**
26219
26263
  * API key scopes control what operations a key can perform.
@@ -27971,7 +28015,7 @@ const TOOLSET_PURPOSE = {
27971
28015
  core: "where products, initiatives, runs, policies and findings stand",
27972
28016
  operate: "moving work: queue, plans, runs, fixes, Action Required",
27973
28017
  setup: "creating and configuring factories, products, repositories, environments and autonomy",
27974
- observe: "deployments, monitoring, delivery metrics and the package inventory",
28018
+ observe: "deployments, monitoring, delivery metrics, the package inventory and the sweeps that read it",
27975
28019
  documents: "writing documents and knowledge, and regenerating product documents"
27976
28020
  };
27977
28021
  /** Every tool's toolset. A tool missing here fails at registration, so none can be added without a home. */
@@ -28038,6 +28082,7 @@ const TOOLSET_OF = {
28038
28082
  taiga_get_monitoring: "observe",
28039
28083
  taiga_get_delivery_metrics: "observe",
28040
28084
  taiga_list_packages: "observe",
28085
+ taiga_start_sweep: "observe",
28041
28086
  taiga_list_licenses: "observe",
28042
28087
  taiga_change_license: "setup",
28043
28088
  taiga_get_sbom: "observe",
@@ -35119,7 +35164,7 @@ function registerMaintenanceTools(server, client) {
35119
35164
  }, (params) => runTool(async () => toolResult({ notices: await client.getNotices(params.productId, params.linkId) })));
35120
35165
  server.registerTool("taiga_get_finding", {
35121
35166
  title: "Get a maintenance finding",
35122
- description: "Read one finding: how likely it is to be exploited, the advisory and its fixed version, where it is, which policy controls it breaches, and any fix under way. fixable: false says taiga_fix_finding would refuse it. A secret's value is never stored.",
35167
+ description: "Read one finding: how likely it is to be exploited, the advisory and its fixed version, where it is, which policy controls it breaches, any fix under way, and triage: whether the code reaches it, as its factory judged it at a commit (advice; it never changes the status). fixable: false says taiga_fix_finding would refuse it. A secret's value is never stored.",
35123
35168
  inputSchema: object({
35124
35169
  findingId,
35125
35170
  full: boolean().optional().describe("Carry the advisory's whole record: every affected range and reference (default false)")
@@ -35262,6 +35307,21 @@ function registerMaintenanceTools(server, client) {
35262
35307
  ...params.expiresAt !== void 0 ? { ignoreExpiresAt: params.expiresAt } : {}
35263
35308
  })).data);
35264
35309
  }));
35310
+ server.registerTool("taiga_start_sweep", {
35311
+ title: "Sweep a repository",
35312
+ description: "Scan one of a product's repositories now: its dependencies, secrets, code and infrastructure, the findings triaged and its code judged against the policies. Its primary repository when none is named. Returns the sweep; taiga_list_findings and taiga_get_policy_standing read what it found once it completes.",
35313
+ inputSchema: object({
35314
+ productId,
35315
+ linkId: idInput("repository link", "taiga_list_product_repositories gives it (its id); a linkable repository id is not one").optional()
35316
+ }),
35317
+ annotations: OPERATE
35318
+ }, (params) => runTool(async () => {
35319
+ const { id, ...run } = (await client.startSweep(params.productId, params.linkId)).data;
35320
+ return toolResult({
35321
+ sweepId: id,
35322
+ ...run
35323
+ });
35324
+ }));
35265
35325
  server.registerTool("taiga_fix_finding", {
35266
35326
  title: "Fix a finding",
35267
35327
  description: "Raise an initiative that fixes a finding; it ends in a pull request, which merges on its own only where the product's auto-merge allows it. wholeGroup: true fixes, in that repository, every open advisory on that package version in one bump, or every place the rule flagged. A malicious package is removed, with every advisory on that version, whatever wholeGroup says. A license finding the row marks fixable has its packages replaced by ones on the approved list. A language runtime moves every file declaring it together, in a container image only to a tag the image has published. Refused when there is no version to move to (fixable: false; for a runtime, also while its image has not published the fix), the code is in a submodule, or a secret is only in history (rotate it outside Taiga).",
@@ -55771,6 +55831,7 @@ const PAID_WORK = /* @__PURE__ */ new Set([
55771
55831
  "taiga_review_plan",
55772
55832
  "taiga_set_auto_build",
55773
55833
  "taiga_start_import",
55834
+ "taiga_start_sweep",
55774
55835
  "taiga_stop_generating_documents",
55775
55836
  "taiga_stop_run",
55776
55837
  "taiga_sync_design_tokens"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ai/mcp-server",
3
- "version": "0.37.0-dev.981",
3
+ "version": "0.37.0-dev.983",
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",