@taiga-ai/mcp-server 0.36.0-dev.917 → 0.36.0-dev.919
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 +66 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -26183,6 +26183,31 @@ const ENVIRONMENT_TYPES = [
|
|
|
26183
26183
|
//#endregion
|
|
26184
26184
|
//#region ../../packages/types/dist/api-keys.js
|
|
26185
26185
|
/**
|
|
26186
|
+
* API key scopes control what operations a key can perform.
|
|
26187
|
+
* Scopes act as a ceiling -- the effective permissions are the intersection
|
|
26188
|
+
* of the key's scopes and the user's role-based capabilities.
|
|
26189
|
+
*
|
|
26190
|
+
* Convention: "resource:action" matching the existing Capability type.
|
|
26191
|
+
*/
|
|
26192
|
+
const API_KEY_SCOPES = [
|
|
26193
|
+
"products:read",
|
|
26194
|
+
"products:write",
|
|
26195
|
+
"backlog:read",
|
|
26196
|
+
"backlog:write",
|
|
26197
|
+
"factories:read",
|
|
26198
|
+
"factories:documents:write",
|
|
26199
|
+
"users:read",
|
|
26200
|
+
"tenant:documents:read",
|
|
26201
|
+
"tenant:documents:write",
|
|
26202
|
+
"vcs:read",
|
|
26203
|
+
"customDocuments:read",
|
|
26204
|
+
"customDocuments:write",
|
|
26205
|
+
"customDocuments:delete",
|
|
26206
|
+
"factories:write",
|
|
26207
|
+
"vcs:manage"
|
|
26208
|
+
];
|
|
26209
|
+
const API_KEY_PREFIX = "taiga_sk_live_";
|
|
26210
|
+
/**
|
|
26186
26211
|
* The groups the MCP server's tools come in (PRO-2838). A key may name the ones
|
|
26187
26212
|
* its AI tool sees; null is every one. This is focus, not security: a tool the
|
|
26188
26213
|
* key's role or scopes do not allow is never offered, whatever is named here.
|
|
@@ -27344,6 +27369,19 @@ strictObject({ type: productDocumentType }), object({
|
|
|
27344
27369
|
isProtected: boolean().default(false)
|
|
27345
27370
|
}).optional()
|
|
27346
27371
|
});
|
|
27372
|
+
/**
|
|
27373
|
+
* The MCP toolsets a key's AI tool sees: at least one, each once, or null for
|
|
27374
|
+
* every one (PRO-2838). An empty list would start a server with no tools at all.
|
|
27375
|
+
*/
|
|
27376
|
+
const mcpToolsets = array(_enum(MCP_TOOLSETS)).min(1).refine((sets) => new Set(sets).size === sets.length, "Name each toolset once").nullable();
|
|
27377
|
+
strictObject({
|
|
27378
|
+
key: string$2().regex(new RegExp(`^${API_KEY_PREFIX}[0-9a-f]{64}$`)),
|
|
27379
|
+
name: string$2().min(1).max(255),
|
|
27380
|
+
scopes: array(_enum(API_KEY_SCOPES)).optional(),
|
|
27381
|
+
expiresInDays: number$1().int().min(1).max(365).optional(),
|
|
27382
|
+
mcpToolsets: mcpToolsets.optional()
|
|
27383
|
+
}), object({ keyId: uuid });
|
|
27384
|
+
strictObject({ mcpToolsets });
|
|
27347
27385
|
object({
|
|
27348
27386
|
url: string$2().url(),
|
|
27349
27387
|
expiresAt: string$2()
|
|
@@ -27424,7 +27462,16 @@ strictObject({
|
|
|
27424
27462
|
status: _enum(GITLAB_CONNECTION_STATUSES),
|
|
27425
27463
|
lastValidatedAt: string$2(),
|
|
27426
27464
|
detail: string$2().nullable()
|
|
27427
|
-
}), object({ finished: boolean() })
|
|
27465
|
+
}), object({ finished: boolean() }), strictObject({ search: string$2().trim().max(100).optional() }), object({
|
|
27466
|
+
projects: array(object({
|
|
27467
|
+
id: number$1().int(),
|
|
27468
|
+
pathWithNamespace: string$2(),
|
|
27469
|
+
nameWithNamespace: string$2(),
|
|
27470
|
+
webUrl: string$2(),
|
|
27471
|
+
defaultBranch: string$2().nullable()
|
|
27472
|
+
})).nullable(),
|
|
27473
|
+
truncated: boolean()
|
|
27474
|
+
});
|
|
27428
27475
|
object({
|
|
27429
27476
|
outcome: _enum([
|
|
27430
27477
|
"uninstalled",
|
|
@@ -27433,6 +27480,8 @@ object({
|
|
|
27433
27480
|
]),
|
|
27434
27481
|
manageUrl: string$2().nullable()
|
|
27435
27482
|
});
|
|
27483
|
+
/** A value GitHub's redirect carries back: a state token, or a one-time code. */
|
|
27484
|
+
const githubCallbackSecret = string$2().trim().min(1).max(1024);
|
|
27436
27485
|
strictObject({
|
|
27437
27486
|
displayName: string$2().trim().min(1).max(255),
|
|
27438
27487
|
baseUrl: string$2().trim().min(1).max(480),
|
|
@@ -27450,7 +27499,16 @@ strictObject({
|
|
|
27450
27499
|
expiresAt: isoInstant.nullable().optional(),
|
|
27451
27500
|
credential: registryCredential,
|
|
27452
27501
|
testPackage: registryTestPackage.optional()
|
|
27453
|
-
}), strictObject({ hostId: uuid.optional() }), object({ installUrl: string$2().url() }), strictObject({
|
|
27502
|
+
}), strictObject({ hostId: uuid.optional() }), object({ installUrl: string$2().url() }), strictObject({ state: githubCallbackSecret }), object({
|
|
27503
|
+
clientId: string$2(),
|
|
27504
|
+
authorizeUrl: string$2(),
|
|
27505
|
+
redirectUri: string$2().optional()
|
|
27506
|
+
}), strictObject({
|
|
27507
|
+
installationId: number$1().int().positive(),
|
|
27508
|
+
setupAction: _enum(["install", "update"]),
|
|
27509
|
+
state: githubCallbackSecret.optional(),
|
|
27510
|
+
code: githubCallbackSecret.optional()
|
|
27511
|
+
}), strictObject({
|
|
27454
27512
|
subdomain: string$2().min(1).max(39).optional(),
|
|
27455
27513
|
serverUrl: string$2().min(1).max(2048).optional(),
|
|
27456
27514
|
caBundlePem: string$2().max(65536).optional(),
|
|
@@ -27460,6 +27518,9 @@ strictObject({
|
|
|
27460
27518
|
manifest: record(string$2(), unknown$1()),
|
|
27461
27519
|
postUrl: string$2().url(),
|
|
27462
27520
|
state: string$2()
|
|
27521
|
+
}), strictObject({
|
|
27522
|
+
state: githubCallbackSecret,
|
|
27523
|
+
code: githubCallbackSecret
|
|
27463
27524
|
}), strictObject({ type: _enum(TENANT_DOCUMENT_TYPES) }), strictObject({ type: _enum(TENANT_DOCUMENT_TYPES).refine((type) => type !== "design_standards", { message: "The design standards draft is not made through sync" }) }), strictObject({
|
|
27464
27525
|
name: string$2().min(1).max(50),
|
|
27465
27526
|
action: _enum(["accept", "decline"])
|
|
@@ -27505,6 +27566,9 @@ strictObject({
|
|
|
27505
27566
|
}).refine((a) => Boolean(a.approve) !== Boolean(a.remove), { message: "Name one license to approve or remove" }), object({
|
|
27506
27567
|
enrolled: number$1().int().nonnegative(),
|
|
27507
27568
|
total: number$1().int().nonnegative()
|
|
27569
|
+
}), object({
|
|
27570
|
+
principalArn: string$2().nullable(),
|
|
27571
|
+
externalId: string$2()
|
|
27508
27572
|
});
|
|
27509
27573
|
strictObject({ kind: _enum(["sbom", "notices"]) }), object({
|
|
27510
27574
|
url: string$2().url().nullable(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ai/mcp-server",
|
|
3
|
-
"version": "0.36.0-dev.
|
|
3
|
+
"version": "0.36.0-dev.919",
|
|
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",
|