@mcp-consultant-tools/azure-devops-admin 27.0.0-beta.4 → 28.0.0-beta.3

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 (81) hide show
  1. package/build/AzureDevOpsAdminService.d.ts +47 -1
  2. package/build/AzureDevOpsAdminService.d.ts.map +1 -1
  3. package/build/AzureDevOpsAdminService.js +345 -11
  4. package/build/AzureDevOpsAdminService.js.map +1 -1
  5. package/build/index.d.ts +7 -11
  6. package/build/index.d.ts.map +1 -1
  7. package/build/index.js +60 -924
  8. package/build/index.js.map +1 -1
  9. package/build/services/admin-client.d.ts +19 -0
  10. package/build/services/admin-client.d.ts.map +1 -0
  11. package/build/services/admin-client.js +97 -0
  12. package/build/services/admin-client.js.map +1 -0
  13. package/build/services/agent-pool-service.d.ts +21 -0
  14. package/build/services/agent-pool-service.d.ts.map +1 -0
  15. package/build/services/agent-pool-service.js +118 -0
  16. package/build/services/agent-pool-service.js.map +1 -0
  17. package/build/services/artifact-feed-service.d.ts +21 -0
  18. package/build/services/artifact-feed-service.d.ts.map +1 -0
  19. package/build/services/artifact-feed-service.js +83 -0
  20. package/build/services/artifact-feed-service.js.map +1 -0
  21. package/build/services/classification-service.d.ts +23 -0
  22. package/build/services/classification-service.d.ts.map +1 -0
  23. package/build/services/classification-service.js +163 -0
  24. package/build/services/classification-service.js.map +1 -0
  25. package/build/services/environment-service.d.ts +25 -0
  26. package/build/services/environment-service.d.ts.map +1 -0
  27. package/build/services/environment-service.js +160 -0
  28. package/build/services/environment-service.js.map +1 -0
  29. package/build/services/index.d.ts +12 -0
  30. package/build/services/index.d.ts.map +1 -0
  31. package/build/services/index.js +12 -0
  32. package/build/services/index.js.map +1 -0
  33. package/build/services/pipeline-service.d.ts +37 -0
  34. package/build/services/pipeline-service.d.ts.map +1 -0
  35. package/build/services/pipeline-service.js +500 -0
  36. package/build/services/pipeline-service.js.map +1 -0
  37. package/build/services/service-connection-service.d.ts +29 -0
  38. package/build/services/service-connection-service.d.ts.map +1 -0
  39. package/build/services/service-connection-service.js +147 -0
  40. package/build/services/service-connection-service.js.map +1 -0
  41. package/build/services/variable-group-service.d.ts +22 -0
  42. package/build/services/variable-group-service.d.ts.map +1 -0
  43. package/build/services/variable-group-service.js +136 -0
  44. package/build/services/variable-group-service.js.map +1 -0
  45. package/build/tools/agent-pool-tools.d.ts +7 -0
  46. package/build/tools/agent-pool-tools.d.ts.map +1 -0
  47. package/build/tools/agent-pool-tools.js +132 -0
  48. package/build/tools/agent-pool-tools.js.map +1 -0
  49. package/build/tools/artifact-feed-tools.d.ts +7 -0
  50. package/build/tools/artifact-feed-tools.d.ts.map +1 -0
  51. package/build/tools/artifact-feed-tools.js +46 -0
  52. package/build/tools/artifact-feed-tools.js.map +1 -0
  53. package/build/tools/classification-tools.d.ts +7 -0
  54. package/build/tools/classification-tools.d.ts.map +1 -0
  55. package/build/tools/classification-tools.js +202 -0
  56. package/build/tools/classification-tools.js.map +1 -0
  57. package/build/tools/environment-tools.d.ts +7 -0
  58. package/build/tools/environment-tools.d.ts.map +1 -0
  59. package/build/tools/environment-tools.js +193 -0
  60. package/build/tools/environment-tools.js.map +1 -0
  61. package/build/tools/index.d.ts +13 -0
  62. package/build/tools/index.d.ts.map +1 -0
  63. package/build/tools/index.js +36 -0
  64. package/build/tools/index.js.map +1 -0
  65. package/build/tools/pipeline-tools.d.ts +7 -0
  66. package/build/tools/pipeline-tools.d.ts.map +1 -0
  67. package/build/tools/pipeline-tools.js +291 -0
  68. package/build/tools/pipeline-tools.js.map +1 -0
  69. package/build/tools/service-connection-tools.d.ts +7 -0
  70. package/build/tools/service-connection-tools.d.ts.map +1 -0
  71. package/build/tools/service-connection-tools.js +139 -0
  72. package/build/tools/service-connection-tools.js.map +1 -0
  73. package/build/tools/variable-group-tools.d.ts +7 -0
  74. package/build/tools/variable-group-tools.d.ts.map +1 -0
  75. package/build/tools/variable-group-tools.js +137 -0
  76. package/build/tools/variable-group-tools.js.map +1 -0
  77. package/build/types.d.ts +62 -0
  78. package/build/types.d.ts.map +1 -0
  79. package/build/types.js +2 -0
  80. package/build/types.js.map +1 -0
  81. package/package.json +2 -2
@@ -0,0 +1,147 @@
1
+ export class ServiceConnectionService {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ async listServiceConnections(project) {
7
+ this.client.validateProject(project);
8
+ const response = await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints?api-version=${this.client.apiVersion}`);
9
+ return {
10
+ project,
11
+ totalCount: response.value.length,
12
+ serviceConnections: response.value.map((conn) => ({
13
+ id: conn.id,
14
+ name: conn.name,
15
+ type: conn.type,
16
+ url: conn.url,
17
+ description: conn.description,
18
+ isShared: conn.isShared,
19
+ isReady: conn.isReady,
20
+ owner: conn.owner,
21
+ createdBy: conn.createdBy?.displayName,
22
+ authorization: conn.authorization ? {
23
+ scheme: conn.authorization.scheme,
24
+ parameters: conn.authorization.parameters ?
25
+ Object.keys(conn.authorization.parameters).reduce((acc, key) => {
26
+ acc[key] = key.toLowerCase().includes('password') ||
27
+ key.toLowerCase().includes('secret') ||
28
+ key.toLowerCase().includes('key') ||
29
+ key.toLowerCase().includes('token')
30
+ ? '***SECRET***'
31
+ : conn.authorization.parameters[key];
32
+ return acc;
33
+ }, {}) : {}
34
+ } : null
35
+ }))
36
+ };
37
+ }
38
+ async getServiceConnection(project, connectionId) {
39
+ this.client.validateProject(project);
40
+ const response = await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints/${connectionId}?api-version=${this.client.apiVersion}`);
41
+ return {
42
+ id: response.id,
43
+ name: response.name,
44
+ type: response.type,
45
+ url: response.url,
46
+ description: response.description,
47
+ isShared: response.isShared,
48
+ isReady: response.isReady,
49
+ owner: response.owner,
50
+ createdBy: response.createdBy?.displayName,
51
+ project,
52
+ authorization: response.authorization ? {
53
+ scheme: response.authorization.scheme,
54
+ parameters: response.authorization.parameters ?
55
+ Object.keys(response.authorization.parameters).reduce((acc, key) => {
56
+ acc[key] = key.toLowerCase().includes('password') ||
57
+ key.toLowerCase().includes('secret') ||
58
+ key.toLowerCase().includes('key') ||
59
+ key.toLowerCase().includes('token')
60
+ ? '***SECRET***'
61
+ : response.authorization.parameters[key];
62
+ return acc;
63
+ }, {}) : {}
64
+ } : null,
65
+ data: response.data || {},
66
+ serviceEndpointProjectReferences: response.serviceEndpointProjectReferences
67
+ };
68
+ }
69
+ async getServiceConnectionTypes() {
70
+ const response = await this.client.makeRequest(`_apis/serviceendpoint/types?api-version=${this.client.apiVersion}`);
71
+ return {
72
+ totalCount: response.value.length,
73
+ types: response.value.map((type) => ({
74
+ name: type.name,
75
+ displayName: type.displayName,
76
+ description: type.description,
77
+ helpMarkDown: type.helpMarkDown,
78
+ authenticationSchemes: type.authenticationSchemes?.map((scheme) => ({
79
+ scheme: scheme.scheme,
80
+ displayName: scheme.displayName
81
+ })) || []
82
+ }))
83
+ };
84
+ }
85
+ async createServiceConnection(project, name, type, configuration) {
86
+ this.client.validateProject(project);
87
+ const endpoint = {
88
+ name,
89
+ type,
90
+ url: configuration.url || '',
91
+ description: configuration.description || '',
92
+ authorization: configuration.authorization,
93
+ data: configuration.data || {},
94
+ isShared: false,
95
+ isReady: true
96
+ };
97
+ const response = await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints?api-version=${this.client.apiVersion}`, 'POST', endpoint);
98
+ return {
99
+ id: response.id,
100
+ name: response.name,
101
+ type: response.type,
102
+ isReady: response.isReady,
103
+ project
104
+ };
105
+ }
106
+ async updateServiceConnection(project, connectionId, updates) {
107
+ this.client.validateProject(project);
108
+ const current = await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints/${connectionId}?api-version=${this.client.apiVersion}`);
109
+ const updated = {
110
+ ...current,
111
+ name: updates.name || current.name,
112
+ description: updates.description || current.description,
113
+ url: updates.url || current.url,
114
+ data: updates.data ? { ...current.data, ...updates.data } : current.data
115
+ };
116
+ const response = await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints/${connectionId}?api-version=${this.client.apiVersion}`, 'PUT', updated);
117
+ return {
118
+ id: response.id,
119
+ name: response.name,
120
+ type: response.type,
121
+ isReady: response.isReady,
122
+ project
123
+ };
124
+ }
125
+ async shareServiceConnection(connectionId, projectIds) {
126
+ const shareRequest = projectIds.map(projectId => ({
127
+ projectReference: { id: projectId },
128
+ name: ''
129
+ }));
130
+ const response = await this.client.makeRequest(`_apis/serviceendpoint/endpoints/${connectionId}?api-version=${this.client.apiVersion}`, 'PATCH', { serviceEndpointProjectReferences: shareRequest });
131
+ return {
132
+ id: response.id,
133
+ name: response.name,
134
+ sharedWith: projectIds
135
+ };
136
+ }
137
+ async deleteServiceConnection(project, connectionId) {
138
+ this.client.validateProject(project);
139
+ await this.client.makeRequest(`${project}/_apis/serviceendpoint/endpoints/${connectionId}?api-version=${this.client.apiVersion}`, 'DELETE');
140
+ return {
141
+ connectionId,
142
+ project,
143
+ deleted: true
144
+ };
145
+ }
146
+ }
147
+ //# sourceMappingURL=service-connection-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-connection-service.js","sourceRoot":"","sources":["../../src/services/service-connection-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Variable group operations for Azure DevOps Admin.
3
+ */
4
+ import type { AdminClient } from './admin-client.js';
5
+ export declare class VariableGroupService {
6
+ private client;
7
+ constructor(client: AdminClient);
8
+ getVariableGroups(project: string): Promise<any>;
9
+ getVariableGroup(project: string, groupId: number): Promise<any>;
10
+ createVariableGroup(project: string, name: string, description?: string, variables?: Record<string, {
11
+ value: string;
12
+ isSecret?: boolean;
13
+ }>): Promise<any>;
14
+ updateVariableGroupMetadata(project: string, groupId: number, updates: {
15
+ name?: string;
16
+ description?: string;
17
+ }): Promise<any>;
18
+ setVariable(project: string, groupId: number, variableName: string, value: string, isSecret?: boolean): Promise<any>;
19
+ removeVariable(project: string, groupId: number, variableName: string): Promise<any>;
20
+ deleteVariableGroup(project: string, groupId: number): Promise<any>;
21
+ }
22
+ //# sourceMappingURL=variable-group-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-group-service.d.ts","sourceRoot":"","sources":["../../src/services/variable-group-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEjC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiChD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+BhE,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAChE,OAAO,CAAC,GAAG,CAAC;IA4BT,2BAA2B,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,GAAG,CAAC;IA2BT,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,GAAG,CAAC;IAwBT,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA2BpF,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAc1E"}
@@ -0,0 +1,136 @@
1
+ export class VariableGroupService {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ async getVariableGroups(project) {
7
+ this.client.validateProject(project);
8
+ const response = await this.client.makeRequest(`${project}/_apis/distributedtask/variablegroups?api-version=${this.client.apiVersion}`);
9
+ return {
10
+ project,
11
+ totalCount: response.value.length,
12
+ variableGroups: response.value.map((group) => ({
13
+ id: group.id,
14
+ name: group.name,
15
+ description: group.description,
16
+ type: group.type,
17
+ createdBy: group.createdBy?.displayName,
18
+ createdOn: group.createdOn,
19
+ modifiedBy: group.modifiedBy?.displayName,
20
+ modifiedOn: group.modifiedOn,
21
+ isShared: group.isShared,
22
+ variables: group.variables ? Object.keys(group.variables).reduce((acc, key) => {
23
+ const v = group.variables[key];
24
+ acc[key] = {
25
+ value: v.isSecret ? '***SECRET***' : v.value,
26
+ isSecret: v.isSecret || false,
27
+ isReadOnly: v.isReadOnly || false
28
+ };
29
+ return acc;
30
+ }, {}) : {}
31
+ }))
32
+ };
33
+ }
34
+ async getVariableGroup(project, groupId) {
35
+ this.client.validateProject(project);
36
+ const response = await this.client.makeRequest(`${project}/_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`);
37
+ return {
38
+ id: response.id,
39
+ name: response.name,
40
+ description: response.description,
41
+ type: response.type,
42
+ createdBy: response.createdBy?.displayName,
43
+ createdOn: response.createdOn,
44
+ modifiedBy: response.modifiedBy?.displayName,
45
+ modifiedOn: response.modifiedOn,
46
+ isShared: response.isShared,
47
+ project,
48
+ variables: response.variables ? Object.keys(response.variables).reduce((acc, key) => {
49
+ const v = response.variables[key];
50
+ acc[key] = {
51
+ value: v.isSecret ? '***SECRET***' : v.value,
52
+ isSecret: v.isSecret || false,
53
+ isReadOnly: v.isReadOnly || false
54
+ };
55
+ return acc;
56
+ }, {}) : {},
57
+ variableGroupProjectReferences: response.variableGroupProjectReferences
58
+ };
59
+ }
60
+ async createVariableGroup(project, name, description, variables) {
61
+ this.client.validateProject(project);
62
+ const variableGroup = {
63
+ name,
64
+ description: description || '',
65
+ type: 'Vsts',
66
+ variables: variables || {},
67
+ variableGroupProjectReferences: [{
68
+ projectReference: { name: project },
69
+ name: name
70
+ }]
71
+ };
72
+ const response = await this.client.makeRequest(`_apis/distributedtask/variablegroups?api-version=${this.client.apiVersion}`, 'POST', variableGroup);
73
+ return {
74
+ id: response.id,
75
+ name: response.name,
76
+ project,
77
+ variableCount: Object.keys(response.variables || {}).length
78
+ };
79
+ }
80
+ async updateVariableGroupMetadata(project, groupId, updates) {
81
+ this.client.validateProject(project);
82
+ const current = await this.client.makeRequest(`${project}/_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`);
83
+ const updated = {
84
+ ...current,
85
+ name: updates.name || current.name,
86
+ description: updates.description || current.description
87
+ };
88
+ const response = await this.client.makeRequest(`_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`, 'PUT', updated);
89
+ return {
90
+ id: response.id,
91
+ name: response.name,
92
+ description: response.description,
93
+ project
94
+ };
95
+ }
96
+ async setVariable(project, groupId, variableName, value, isSecret = false) {
97
+ this.client.validateProject(project);
98
+ const current = await this.client.makeRequest(`${project}/_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`);
99
+ current.variables[variableName] = { value, isSecret };
100
+ const response = await this.client.makeRequest(`_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`, 'PUT', current);
101
+ return {
102
+ id: response.id,
103
+ name: response.name,
104
+ project,
105
+ variableSet: variableName,
106
+ isSecret
107
+ };
108
+ }
109
+ async removeVariable(project, groupId, variableName) {
110
+ this.client.validateProject(project);
111
+ const current = await this.client.makeRequest(`${project}/_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`);
112
+ if (current.variables[variableName]) {
113
+ delete current.variables[variableName];
114
+ }
115
+ else {
116
+ throw new Error(`Variable '${variableName}' not found in group ${groupId}`);
117
+ }
118
+ const response = await this.client.makeRequest(`_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`, 'PUT', current);
119
+ return {
120
+ id: response.id,
121
+ name: response.name,
122
+ project,
123
+ variableRemoved: variableName
124
+ };
125
+ }
126
+ async deleteVariableGroup(project, groupId) {
127
+ this.client.validateProject(project);
128
+ await this.client.makeRequest(`_apis/distributedtask/variablegroups/${groupId}?api-version=${this.client.apiVersion}`, 'DELETE');
129
+ return {
130
+ groupId,
131
+ project,
132
+ deleted: true
133
+ };
134
+ }
135
+ }
136
+ //# sourceMappingURL=variable-group-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-group-service.js","sourceRoot":"","sources":["../../src/services/variable-group-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerAgentPoolTools(server: any, ctx: ServiceContext): {
3
+ readonly: number;
4
+ upsert: number;
5
+ delete: number;
6
+ };
7
+ //# sourceMappingURL=agent-pool-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-pool-tools.d.ts","sourceRoot":"","sources":["../../src/tools/agent-pool-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8J7H"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Agent pool tools - read-only, upsert (Tier 2), and disable (Tier 3).
3
+ */
4
+ import { z } from 'zod';
5
+ export function registerAgentPoolTools(server, ctx) {
6
+ let readonlyCount = 0;
7
+ let upsertCount = 0;
8
+ let deleteCount = 0;
9
+ // ========================================
10
+ // AGENT POOL READ-ONLY TOOLS
11
+ // ========================================
12
+ server.tool("list-agent-pools", "List all agent pools in the organization. Shows pool type (automation/deployment), size, hosted status, and auto-provision settings.", {
13
+ poolType: z.enum(["automation", "deployment"]).optional().describe("Optional filter: 'automation' or 'deployment'"),
14
+ }, async ({ poolType }) => {
15
+ try {
16
+ const result = await ctx.agentPools.listAgentPools(poolType);
17
+ return { content: [{ type: "text", text: `Agent pools:\n\n${JSON.stringify(result, null, 2)}` }] };
18
+ }
19
+ catch (error) {
20
+ console.error("Error listing agent pools:", error);
21
+ return { content: [{ type: "text", text: `Failed to list agent pools: ${error.message}` }] };
22
+ }
23
+ });
24
+ readonlyCount++;
25
+ server.tool("get-agent-pool", "Get detailed agent pool configuration including auto-provision, auto-update, auto-size settings, and owner information.", {
26
+ poolId: z.number().describe("The agent pool ID"),
27
+ }, async ({ poolId }) => {
28
+ try {
29
+ const result = await ctx.agentPools.getAgentPool(poolId);
30
+ return { content: [{ type: "text", text: `Agent pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
31
+ }
32
+ catch (error) {
33
+ console.error("Error getting agent pool:", error);
34
+ return { content: [{ type: "text", text: `Failed to get agent pool: ${error.message}` }] };
35
+ }
36
+ });
37
+ readonlyCount++;
38
+ server.tool("list-agents", "List all agents in a pool. Shows agent name, version, OS, enabled status, and current status (online/offline).", {
39
+ poolId: z.number().describe("The agent pool ID"),
40
+ includeCapabilities: z.boolean().optional().describe("Include system and user capabilities (default: false)"),
41
+ }, async ({ poolId, includeCapabilities }) => {
42
+ try {
43
+ const result = await ctx.agentPools.listAgents(poolId, includeCapabilities || false);
44
+ return { content: [{ type: "text", text: `Agents in pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
45
+ }
46
+ catch (error) {
47
+ console.error("Error listing agents:", error);
48
+ return { content: [{ type: "text", text: `Failed to list agents: ${error.message}` }] };
49
+ }
50
+ });
51
+ readonlyCount++;
52
+ server.tool("get-agent", "Get detailed agent information including capabilities, current assignment, and last completed request.", {
53
+ poolId: z.number().describe("The agent pool ID"),
54
+ agentId: z.number().describe("The agent ID"),
55
+ }, async ({ poolId, agentId }) => {
56
+ try {
57
+ const result = await ctx.agentPools.getAgent(poolId, agentId);
58
+ return { content: [{ type: "text", text: `Agent ${agentId} in pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
59
+ }
60
+ catch (error) {
61
+ console.error("Error getting agent:", error);
62
+ return { content: [{ type: "text", text: `Failed to get agent: ${error.message}` }] };
63
+ }
64
+ });
65
+ readonlyCount++;
66
+ // ========================================
67
+ // AGENT POOL UPSERT TOOLS (Tier 2)
68
+ // ========================================
69
+ if (ctx.tierFlags.enableAgentPoolUpsert) {
70
+ server.tool("update-agent-pool", "Update agent pool settings (auto-provision, auto-update, auto-size, target size). (requires AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT=true)", {
71
+ poolId: z.number().describe("The agent pool ID"),
72
+ autoProvision: z.boolean().optional().describe("Auto-provision pool to new projects"),
73
+ autoUpdate: z.boolean().optional().describe("Auto-update agents"),
74
+ autoSize: z.boolean().optional().describe("Auto-size pool based on demand"),
75
+ targetSize: z.number().optional().describe("Target pool size for auto-scaling"),
76
+ }, async ({ poolId, autoProvision, autoUpdate, autoSize, targetSize }) => {
77
+ try {
78
+ const updates = {};
79
+ if (autoProvision !== undefined)
80
+ updates.autoProvision = autoProvision;
81
+ if (autoUpdate !== undefined)
82
+ updates.autoUpdate = autoUpdate;
83
+ if (autoSize !== undefined)
84
+ updates.autoSize = autoSize;
85
+ if (targetSize !== undefined)
86
+ updates.targetSize = targetSize;
87
+ const result = await ctx.agentPools.updateAgentPool(poolId, updates);
88
+ return { content: [{ type: "text", text: `Updated agent pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
89
+ }
90
+ catch (error) {
91
+ console.error("Error updating agent pool:", error);
92
+ return { content: [{ type: "text", text: `Failed to update agent pool: ${error.message}` }] };
93
+ }
94
+ });
95
+ upsertCount++;
96
+ server.tool("enable-agent", "Enable a disabled agent to accept new jobs. (requires AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT=true)", {
97
+ poolId: z.number().describe("The agent pool ID"),
98
+ agentId: z.number().describe("The agent ID"),
99
+ }, async ({ poolId, agentId }) => {
100
+ try {
101
+ const result = await ctx.agentPools.enableAgent(poolId, agentId);
102
+ return { content: [{ type: "text", text: `Enabled agent ${agentId} in pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
103
+ }
104
+ catch (error) {
105
+ console.error("Error enabling agent:", error);
106
+ return { content: [{ type: "text", text: `Failed to enable agent: ${error.message}` }] };
107
+ }
108
+ });
109
+ upsertCount++;
110
+ }
111
+ // ========================================
112
+ // AGENT POOL DISABLE TOOLS (Tier 3)
113
+ // ========================================
114
+ if (ctx.tierFlags.enableAgentPoolDisable) {
115
+ server.tool("disable-agent", "Disable an agent. It will complete current job then stop accepting new jobs. (requires AZUREDEVOPS_ENABLE_AGENT_POOL_DISABLE=true)", {
116
+ poolId: z.number().describe("The agent pool ID"),
117
+ agentId: z.number().describe("The agent ID to disable"),
118
+ }, async ({ poolId, agentId }) => {
119
+ try {
120
+ const result = await ctx.agentPools.disableAgent(poolId, agentId);
121
+ return { content: [{ type: "text", text: `Disabled agent ${agentId} in pool ${poolId}:\n\n${JSON.stringify(result, null, 2)}` }] };
122
+ }
123
+ catch (error) {
124
+ console.error("Error disabling agent:", error);
125
+ return { content: [{ type: "text", text: `Failed to disable agent: ${error.message}` }] };
126
+ }
127
+ });
128
+ deleteCount++;
129
+ }
130
+ return { readonly: readonlyCount, upsert: upsertCount, delete: deleteCount };
131
+ }
132
+ //# sourceMappingURL=agent-pool-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-pool-tools.js","sourceRoot":"","sources":["../../src/tools/agent-pool-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,sBAAsB,CAAC,MAAW,EAAE,GAAmB;IACrE,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,2CAA2C;IAC3C,6BAA6B;IAC7B,2CAA2C;IAC3C,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sIAAsI,EACtI;QACE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACpH,EACD,KAAK,EAAE,EAAE,QAAQ,EAAO,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACrG,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/F,CAAC;IACH,CAAC,CACF,CAAC;IACF,aAAa,EAAE,CAAC;IAEhB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,yHAAyH,EACzH;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACjD,EACD,KAAK,EAAE,EAAE,MAAM,EAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9G,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7F,CAAC;IACH,CAAC,CACF,CAAC;IACF,aAAa,EAAE,CAAC;IAEhB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gHAAgH,EAChH;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;KAC9G,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAO,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,IAAI,KAAK,CAAC,CAAC;YACrF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAClH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;IACH,CAAC,CACF,CAAC;IACF,aAAa,EAAE,CAAC;IAEhB,MAAM,CAAC,IAAI,CACT,WAAW,EACX,wGAAwG,EACxG;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC7C,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAO,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,YAAY,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5H,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;IACH,CAAC,CACF,CAAC;IACF,aAAa,EAAE,CAAC;IAEhB,2CAA2C;IAC3C,mCAAmC;IACnC,2CAA2C;IAC3C,IAAI,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,wIAAwI,EACxI;YACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACrF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACjE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAChF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAO,EAAE,EAAE;YACzE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAQ,EAAE,CAAC;gBACxB,IAAI,aAAa,KAAK,SAAS;oBAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;gBACvE,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC9D,IAAI,QAAQ,KAAK,SAAS;oBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACxD,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACtH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YAChG,CAAC;QACH,CAAC,CACF,CAAC;QACF,WAAW,EAAE,CAAC;QAEd,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kGAAkG,EAClG;YACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC7C,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAO,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,OAAO,YAAY,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpI,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3F,CAAC;QACH,CAAC,CACF,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,2CAA2C;IAC3C,oCAAoC;IACpC,2CAA2C;IAC3C,IAAI,GAAG,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CACT,eAAe,EACf,oIAAoI,EACpI;YACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SACxD,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAO,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,OAAO,YAAY,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACrI,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5F,CAAC;QACH,CAAC,CACF,CAAC;QACF,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerArtifactFeedTools(server: any, ctx: ServiceContext): {
3
+ readonly: number;
4
+ upsert: number;
5
+ delete: number;
6
+ };
7
+ //# sourceMappingURL=artifact-feed-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-feed-tools.d.ts","sourceRoot":"","sources":["../../src/tools/artifact-feed-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmDhI"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Artifact feed tools - read-only only (no upsert/delete tiers).
3
+ */
4
+ import { z } from 'zod';
5
+ export function registerArtifactFeedTools(server, ctx) {
6
+ let readonlyCount = 0;
7
+ server.tool("list-feed-packages", "List packages in an Azure Artifacts feed. Returns package names, latest versions, and publish dates. Use to discover available packages before querying specific versions.", {
8
+ feedName: z.string().describe("Feed name (e.g., 'SmartProducts')"),
9
+ project: z.string().optional().describe("Project name for project-scoped feeds. Omit for org-scoped feeds."),
10
+ namePrefix: z.string().optional().describe("Filter packages by name prefix (e.g., 'pp-solution-')"),
11
+ packageType: z.enum(["nuget", "npm", "maven", "upack", "pypi"]).optional().describe("Filter by package protocol type"),
12
+ top: z.number().optional().describe("Maximum number of packages to return (default: 50)"),
13
+ }, async ({ feedName, project, namePrefix, packageType, top }) => {
14
+ try {
15
+ const result = await ctx.artifactFeeds.listFeedPackages(feedName, { project, namePrefix, packageType, top: top || 50 });
16
+ return { content: [{ type: "text", text: `Packages in feed '${feedName}':\n\n${JSON.stringify(result, null, 2)}` }] };
17
+ }
18
+ catch (error) {
19
+ console.error("Error listing feed packages:", error);
20
+ return { content: [{ type: "text", text: `Failed to list feed packages: ${error.message}` }] };
21
+ }
22
+ });
23
+ readonlyCount++;
24
+ server.tool("get-package-versions", "Get version history for a specific package in an Azure Artifacts feed. Returns versions sorted by publish date, useful for finding the latest version before queuing a deployment pipeline.", {
25
+ feedName: z.string().describe("Feed name (e.g., 'SmartProducts')"),
26
+ packageName: z.string().describe("Full package name (e.g., 'pp-solution-smartproductscore')"),
27
+ project: z.string().optional().describe("Project name for project-scoped feeds. Omit for org-scoped feeds."),
28
+ packageType: z.enum(["nuget", "npm", "maven", "upack", "pypi"]).optional().describe("Protocol type hint for faster lookup"),
29
+ top: z.number().optional().describe("Maximum number of versions to return (default: 10)"),
30
+ includeDelisted: z.boolean().optional().describe("Include delisted/deprecated versions (default: false)"),
31
+ }, async ({ feedName, packageName, project, packageType, top, includeDelisted }) => {
32
+ try {
33
+ const result = await ctx.artifactFeeds.getPackageVersions(feedName, packageName, {
34
+ project, packageType, top: top || 10, includeDelisted: includeDelisted || false
35
+ });
36
+ return { content: [{ type: "text", text: `Versions for '${packageName}' in feed '${feedName}':\n\n${JSON.stringify(result, null, 2)}` }] };
37
+ }
38
+ catch (error) {
39
+ console.error("Error getting package versions:", error);
40
+ return { content: [{ type: "text", text: `Failed to get package versions: ${error.message}` }] };
41
+ }
42
+ });
43
+ readonlyCount++;
44
+ return { readonly: readonlyCount, upsert: 0, delete: 0 };
45
+ }
46
+ //# sourceMappingURL=artifact-feed-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-feed-tools.js","sourceRoot":"","sources":["../../src/tools/artifact-feed-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ServiceContext } from '../types.js';
2
+ export declare function registerClassificationTools(server: any, ctx: ServiceContext): {
3
+ readonly: number;
4
+ upsert: number;
5
+ delete: number;
6
+ };
7
+ //# sourceMappingURL=classification-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classification-tools.d.ts","sourceRoot":"","sources":["../../src/tools/classification-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2PlI"}