@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.
- package/dist/index.js +63 -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
|
|
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,
|
|
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.
|
|
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",
|