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

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 (105) hide show
  1. package/build/AzureDevOpsAdminService.d.ts +16 -0
  2. package/build/AzureDevOpsAdminService.d.ts.map +1 -1
  3. package/build/AzureDevOpsAdminService.js +117 -8
  4. package/build/AzureDevOpsAdminService.js.map +1 -1
  5. package/build/cli/commands/index.d.ts +8 -0
  6. package/build/cli/commands/index.d.ts.map +1 -0
  7. package/build/cli/commands/index.js +9 -0
  8. package/build/cli/commands/index.js.map +1 -0
  9. package/build/cli/commands/pipeline-commands.d.ts +7 -0
  10. package/build/cli/commands/pipeline-commands.d.ts.map +1 -0
  11. package/build/cli/commands/pipeline-commands.js +191 -0
  12. package/build/cli/commands/pipeline-commands.js.map +1 -0
  13. package/build/cli/output.d.ts +11 -0
  14. package/build/cli/output.d.ts.map +1 -0
  15. package/build/cli/output.js +10 -0
  16. package/build/cli/output.js.map +1 -0
  17. package/build/cli.d.ts +9 -0
  18. package/build/cli.d.ts.map +1 -0
  19. package/build/cli.js +27 -0
  20. package/build/cli.js.map +1 -0
  21. package/build/context-factory.d.ts +4 -0
  22. package/build/context-factory.d.ts.map +1 -0
  23. package/build/context-factory.js +78 -0
  24. package/build/context-factory.js.map +1 -0
  25. package/build/index.d.ts +7 -11
  26. package/build/index.d.ts.map +1 -1
  27. package/build/index.js +58 -1110
  28. package/build/index.js.map +1 -1
  29. package/build/services/admin-client.d.ts +19 -0
  30. package/build/services/admin-client.d.ts.map +1 -0
  31. package/build/services/admin-client.js +97 -0
  32. package/build/services/admin-client.js.map +1 -0
  33. package/build/services/agent-pool-service.d.ts +21 -0
  34. package/build/services/agent-pool-service.d.ts.map +1 -0
  35. package/build/services/agent-pool-service.js +118 -0
  36. package/build/services/agent-pool-service.js.map +1 -0
  37. package/build/services/artifact-feed-service.d.ts +21 -0
  38. package/build/services/artifact-feed-service.d.ts.map +1 -0
  39. package/build/services/artifact-feed-service.js +83 -0
  40. package/build/services/artifact-feed-service.js.map +1 -0
  41. package/build/services/classification-service.d.ts +23 -0
  42. package/build/services/classification-service.d.ts.map +1 -0
  43. package/build/services/classification-service.js +163 -0
  44. package/build/services/classification-service.js.map +1 -0
  45. package/build/services/environment-service.d.ts +25 -0
  46. package/build/services/environment-service.d.ts.map +1 -0
  47. package/build/services/environment-service.js +160 -0
  48. package/build/services/environment-service.js.map +1 -0
  49. package/build/services/index.d.ts +12 -0
  50. package/build/services/index.d.ts.map +1 -0
  51. package/build/services/index.js +12 -0
  52. package/build/services/index.js.map +1 -0
  53. package/build/services/pipeline-service.d.ts +37 -0
  54. package/build/services/pipeline-service.d.ts.map +1 -0
  55. package/build/services/pipeline-service.js +500 -0
  56. package/build/services/pipeline-service.js.map +1 -0
  57. package/build/services/service-connection-service.d.ts +29 -0
  58. package/build/services/service-connection-service.d.ts.map +1 -0
  59. package/build/services/service-connection-service.js +147 -0
  60. package/build/services/service-connection-service.js.map +1 -0
  61. package/build/services/variable-group-service.d.ts +22 -0
  62. package/build/services/variable-group-service.d.ts.map +1 -0
  63. package/build/services/variable-group-service.js +136 -0
  64. package/build/services/variable-group-service.js.map +1 -0
  65. package/build/tool-examples.d.ts +83 -0
  66. package/build/tool-examples.d.ts.map +1 -0
  67. package/build/tool-examples.js +106 -0
  68. package/build/tool-examples.js.map +1 -0
  69. package/build/tools/agent-pool-tools.d.ts +7 -0
  70. package/build/tools/agent-pool-tools.d.ts.map +1 -0
  71. package/build/tools/agent-pool-tools.js +133 -0
  72. package/build/tools/agent-pool-tools.js.map +1 -0
  73. package/build/tools/artifact-feed-tools.d.ts +7 -0
  74. package/build/tools/artifact-feed-tools.d.ts.map +1 -0
  75. package/build/tools/artifact-feed-tools.js +47 -0
  76. package/build/tools/artifact-feed-tools.js.map +1 -0
  77. package/build/tools/classification-tools.d.ts +7 -0
  78. package/build/tools/classification-tools.d.ts.map +1 -0
  79. package/build/tools/classification-tools.js +202 -0
  80. package/build/tools/classification-tools.js.map +1 -0
  81. package/build/tools/environment-tools.d.ts +7 -0
  82. package/build/tools/environment-tools.d.ts.map +1 -0
  83. package/build/tools/environment-tools.js +194 -0
  84. package/build/tools/environment-tools.js.map +1 -0
  85. package/build/tools/index.d.ts +13 -0
  86. package/build/tools/index.d.ts.map +1 -0
  87. package/build/tools/index.js +36 -0
  88. package/build/tools/index.js.map +1 -0
  89. package/build/tools/pipeline-tools.d.ts +7 -0
  90. package/build/tools/pipeline-tools.d.ts.map +1 -0
  91. package/build/tools/pipeline-tools.js +292 -0
  92. package/build/tools/pipeline-tools.js.map +1 -0
  93. package/build/tools/service-connection-tools.d.ts +7 -0
  94. package/build/tools/service-connection-tools.d.ts.map +1 -0
  95. package/build/tools/service-connection-tools.js +140 -0
  96. package/build/tools/service-connection-tools.js.map +1 -0
  97. package/build/tools/variable-group-tools.d.ts +7 -0
  98. package/build/tools/variable-group-tools.d.ts.map +1 -0
  99. package/build/tools/variable-group-tools.js +138 -0
  100. package/build/tools/variable-group-tools.js.map +1 -0
  101. package/build/types.d.ts +62 -0
  102. package/build/types.d.ts.map +1 -0
  103. package/build/types.js +2 -0
  104. package/build/types.js.map +1 -0
  105. package/package.json +5 -3
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Pipeline CLI Commands - pipeline CRUD, queue, cancel, retry, rename, approvals
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerPipelineCommands(program, ctx) {
7
+ const pipeline = program.command('pipeline').alias('pl').description('Pipeline operations');
8
+ pipeline
9
+ .command('list')
10
+ .description('List all YAML pipeline definitions in a project')
11
+ .argument('<project>', 'Project name')
12
+ .action(async (project) => {
13
+ try {
14
+ const result = await ctx.pipelines.listPipelineDefinitions(project);
15
+ outputResult({ fileName: `pipelines-${project}`, data: result, summary: `Pipeline definitions in '${project}'` }, getGlobalFlags(program));
16
+ }
17
+ catch (error) {
18
+ handleCliError(error, 'list pipelines');
19
+ }
20
+ });
21
+ pipeline
22
+ .command('get')
23
+ .description('Get detailed pipeline definition')
24
+ .argument('<project>', 'Project name')
25
+ .argument('<definitionId>', 'Pipeline definition ID')
26
+ .action(async (project, definitionId) => {
27
+ try {
28
+ const result = await ctx.pipelines.getPipelineDefinition(project, parseInt(definitionId));
29
+ outputResult({ fileName: `pipeline-${definitionId}`, data: result, summary: `Pipeline definition #${definitionId}` }, getGlobalFlags(program));
30
+ }
31
+ catch (error) {
32
+ handleCliError(error, 'get pipeline definition');
33
+ }
34
+ });
35
+ pipeline
36
+ .command('yaml')
37
+ .description('Get the YAML content for a pipeline definition')
38
+ .argument('<project>', 'Project name')
39
+ .argument('<definitionId>', 'Pipeline definition ID')
40
+ .action(async (project, definitionId) => {
41
+ try {
42
+ const result = await ctx.pipelines.getPipelineYaml(project, parseInt(definitionId));
43
+ outputResult({ fileName: `pipeline-yaml-${definitionId}`, data: result, summary: `Pipeline YAML for definition #${definitionId}` }, getGlobalFlags(program));
44
+ }
45
+ catch (error) {
46
+ handleCliError(error, 'get pipeline YAML');
47
+ }
48
+ });
49
+ pipeline
50
+ .command('runs')
51
+ .description('List recent pipeline runs for a definition')
52
+ .argument('<project>', 'Project name')
53
+ .argument('<definitionId>', 'Pipeline definition ID')
54
+ .option('-t, --top <n>', 'Maximum number of results', '10')
55
+ .action(async (project, definitionId, opts) => {
56
+ try {
57
+ const result = await ctx.pipelines.listPipelineRuns(project, parseInt(definitionId), parseInt(opts.top));
58
+ outputResult({ fileName: `pipeline-runs-${definitionId}`, data: result, summary: `Recent runs for pipeline #${definitionId}` }, getGlobalFlags(program));
59
+ }
60
+ catch (error) {
61
+ handleCliError(error, 'list pipeline runs');
62
+ }
63
+ });
64
+ pipeline
65
+ .command('approvals')
66
+ .description('List pending pipeline approvals for a build')
67
+ .argument('<project>', 'Project name')
68
+ .argument('<buildId>', 'Build ID to check for pending approvals')
69
+ .action(async (project, buildId) => {
70
+ try {
71
+ const result = await ctx.pipelines.listPendingApprovals(project, parseInt(buildId));
72
+ outputResult({ fileName: `approvals-build-${buildId}`, data: result, summary: `Pending approvals for build #${buildId}` }, getGlobalFlags(program));
73
+ }
74
+ catch (error) {
75
+ handleCliError(error, 'list pending approvals');
76
+ }
77
+ });
78
+ pipeline
79
+ .command('create')
80
+ .description('Create a new YAML pipeline definition')
81
+ .argument('<project>', 'Project name')
82
+ .argument('<name>', 'Pipeline name')
83
+ .argument('<repositoryId>', 'Repository ID (GUID for Azure Repos, org/repo for GitHub)')
84
+ .argument('<yamlPath>', 'Path to YAML file in repository')
85
+ .option('-f, --folder <folder>', 'Folder path')
86
+ .option('--repo-type <type>', 'Repository type: TfsGit, GitHub, GitHubEnterprise', 'TfsGit')
87
+ .option('--repo-url <url>', 'Repository URL (required for GitHub)')
88
+ .option('--default-branch <branch>', 'Default branch (required for GitHub)')
89
+ .option('--service-connection-id <id>', 'Service connection ID for GitHub auth')
90
+ .action(async (project, name, repositoryId, yamlPath, opts) => {
91
+ try {
92
+ const result = await ctx.pipelines.createPipelineDefinition(project, name, repositoryId, yamlPath, opts.folder, opts.repoType, opts.repoUrl, opts.defaultBranch, opts.serviceConnectionId);
93
+ outputResult({ fileName: `pipeline-created-${name}`, data: result, summary: `Created pipeline '${name}'` }, getGlobalFlags(program));
94
+ }
95
+ catch (error) {
96
+ handleCliError(error, 'create pipeline');
97
+ }
98
+ });
99
+ pipeline
100
+ .command('update')
101
+ .description('Update a pipeline definition')
102
+ .argument('<project>', 'Project name')
103
+ .argument('<definitionId>', 'Pipeline definition ID')
104
+ .option('-n, --name <name>', 'New pipeline name')
105
+ .option('-p, --path <path>', 'New folder path')
106
+ .option('-q, --queue-status <status>', 'Queue status: enabled, disabled, paused')
107
+ .option('--variables <json>', 'Pipeline variables as JSON')
108
+ .action(async (project, definitionId, opts) => {
109
+ try {
110
+ const updates = {};
111
+ if (opts.name)
112
+ updates.name = opts.name;
113
+ if (opts.path)
114
+ updates.path = opts.path;
115
+ if (opts.queueStatus)
116
+ updates.queueStatus = opts.queueStatus;
117
+ if (opts.variables)
118
+ updates.variables = JSON.parse(opts.variables);
119
+ const result = await ctx.pipelines.updatePipelineDefinition(project, parseInt(definitionId), updates);
120
+ outputResult({ fileName: `pipeline-updated-${definitionId}`, data: result, summary: `Updated pipeline #${definitionId}` }, getGlobalFlags(program));
121
+ }
122
+ catch (error) {
123
+ handleCliError(error, 'update pipeline');
124
+ }
125
+ });
126
+ pipeline
127
+ .command('rename')
128
+ .description('Rename a pipeline definition')
129
+ .argument('<project>', 'Project name')
130
+ .argument('<definitionId>', 'Pipeline definition ID')
131
+ .argument('<newName>', 'New pipeline name')
132
+ .action(async (project, definitionId, newName) => {
133
+ try {
134
+ const result = await ctx.pipelines.renamePipelineDefinition(project, parseInt(definitionId), newName);
135
+ outputResult({ fileName: `pipeline-renamed-${definitionId}`, data: result, summary: `Renamed pipeline #${definitionId} to '${newName}'` }, getGlobalFlags(program));
136
+ }
137
+ catch (error) {
138
+ handleCliError(error, 'rename pipeline');
139
+ }
140
+ });
141
+ pipeline
142
+ .command('delete')
143
+ .description('Delete a pipeline definition (DESTRUCTIVE)')
144
+ .argument('<project>', 'Project name')
145
+ .argument('<definitionId>', 'Pipeline definition ID')
146
+ .action(async (project, definitionId) => {
147
+ try {
148
+ const result = await ctx.pipelines.deletePipelineDefinition(project, parseInt(definitionId));
149
+ outputResult({ fileName: `pipeline-deleted-${definitionId}`, data: result, summary: `Deleted pipeline #${definitionId}` }, getGlobalFlags(program));
150
+ }
151
+ catch (error) {
152
+ handleCliError(error, 'delete pipeline');
153
+ }
154
+ });
155
+ pipeline
156
+ .command('queue')
157
+ .description('Queue a new pipeline build/run')
158
+ .argument('<project>', 'Project name')
159
+ .argument('<definitionId>', 'Pipeline definition ID')
160
+ .option('-b, --branch <branch>', 'Source branch (e.g., refs/heads/main)')
161
+ .option('--variables <json>', 'Runtime variables as JSON')
162
+ .option('--parameters <json>', 'Template parameters as JSON')
163
+ .action(async (project, definitionId, opts) => {
164
+ try {
165
+ const variables = opts.variables ? JSON.parse(opts.variables) : undefined;
166
+ const parameters = opts.parameters ? JSON.parse(opts.parameters) : undefined;
167
+ const result = await ctx.pipelines.queueBuild(project, parseInt(definitionId), opts.branch, variables, parameters);
168
+ outputResult({ fileName: `pipeline-queued-${definitionId}`, data: result, summary: `Queued build for pipeline #${definitionId}` }, getGlobalFlags(program));
169
+ }
170
+ catch (error) {
171
+ handleCliError(error, 'queue build');
172
+ }
173
+ });
174
+ pipeline
175
+ .command('approve')
176
+ .description('Approve or reject a pipeline stage gate')
177
+ .argument('<project>', 'Project name')
178
+ .argument('<approvalId>', 'Approval ID (from approvals command)')
179
+ .argument('<status>', 'Status: approved or rejected')
180
+ .option('-c, --comment <text>', 'Approval/rejection comment')
181
+ .action(async (project, approvalId, status, opts) => {
182
+ try {
183
+ const result = await ctx.pipelines.approveStage(project, approvalId, status, opts.comment);
184
+ outputResult({ fileName: `approval-${approvalId}`, data: result, summary: `Stage ${status}` }, getGlobalFlags(program));
185
+ }
186
+ catch (error) {
187
+ handleCliError(error, `${status} stage`);
188
+ }
189
+ });
190
+ }
191
+ //# sourceMappingURL=pipeline-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/pipeline-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CLI output helper for azure-devops-admin package.
3
+ * Thin wrapper setting the package-specific cache directory.
4
+ */
5
+ import { type GlobalFlags } from '@mcp-consultant-tools/core';
6
+ export declare function outputResult(opts: {
7
+ fileName: string;
8
+ data: unknown;
9
+ summary: string;
10
+ }, flags: GlobalFlags): void;
11
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIhG,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,WAAW,GACjB,IAAI,CAEN"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI output helper for azure-devops-admin package.
3
+ * Thin wrapper setting the package-specific cache directory.
4
+ */
5
+ import { outputResult as coreOutputResult } from '@mcp-consultant-tools/core';
6
+ const CACHE_DIR = '.mcp-ado-admin-cache';
7
+ export function outputResult(opts, flags) {
8
+ coreOutputResult({ ...opts, cacheDir: CACHE_DIR }, flags);
9
+ }
10
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAEhG,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC,MAAM,UAAU,YAAY,CAC1B,IAA0D,EAC1D,KAAkB;IAElB,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
package/build/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @mcp-consultant-tools/azure-devops-admin CLI
4
+ *
5
+ * Command-line interface for Azure DevOps Admin operations.
6
+ * Reuses the same ServiceContext and services as the MCP server.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
package/build/cli.js ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @mcp-consultant-tools/azure-devops-admin CLI
4
+ *
5
+ * Command-line interface for Azure DevOps Admin operations.
6
+ * Reuses the same ServiceContext and services as the MCP server.
7
+ */
8
+ import { createCliProgram, loadEnvForCli } from '@mcp-consultant-tools/core';
9
+ import { createServiceContext } from './context-factory.js';
10
+ import { registerAllCommands } from './cli/commands/index.js';
11
+ const program = createCliProgram({
12
+ name: 'mcp-ado-admin-cli',
13
+ description: 'Azure DevOps Admin CLI - pipelines, service connections, agent pools, environments',
14
+ version: '27.0.0',
15
+ });
16
+ // Load env before parsing (--env-file handled by commander hook)
17
+ program.hook('preAction', (thisCommand) => {
18
+ const opts = thisCommand.opts();
19
+ loadEnvForCli(opts.envFile);
20
+ });
21
+ const ctx = createServiceContext();
22
+ registerAllCommands(program, ctx);
23
+ program.parseAsync(process.argv).catch((error) => {
24
+ console.error('CLI error:', error.message);
25
+ process.exit(1);
26
+ });
27
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,OAAO,GAAG,gBAAgB,CAAC;IAC/B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,oFAAoF;IACjG,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,iEAAiE;AACjE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IACpD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ServiceContext } from './types.js';
2
+ export type { ServiceContext, TierFlags } from './types.js';
3
+ export declare function createServiceContext(): ServiceContext;
4
+ //# sourceMappingURL=context-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-factory.d.ts","sourceRoot":"","sources":["../src/context-factory.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAqC,MAAM,YAAY,CAAC;AAEpF,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAgB,oBAAoB,IAAI,cAAc,CAsErD"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Shared service context factory - used by both MCP server and CLI.
3
+ */
4
+ import { AdminClient } from './services/admin-client.js';
5
+ import { PipelineService } from './services/pipeline-service.js';
6
+ import { ServiceConnectionService } from './services/service-connection-service.js';
7
+ import { VariableGroupService } from './services/variable-group-service.js';
8
+ import { AgentPoolService } from './services/agent-pool-service.js';
9
+ import { EnvironmentService } from './services/environment-service.js';
10
+ import { ClassificationService } from './services/classification-service.js';
11
+ import { ArtifactFeedService } from './services/artifact-feed-service.js';
12
+ export function createServiceContext() {
13
+ let client = null;
14
+ function getClient() {
15
+ if (!client) {
16
+ const missingConfig = [];
17
+ if (!process.env.AZUREDEVOPS_ORGANIZATION)
18
+ missingConfig.push('AZUREDEVOPS_ORGANIZATION');
19
+ if (!process.env.AZUREDEVOPS_PAT)
20
+ missingConfig.push('AZUREDEVOPS_PAT');
21
+ if (!process.env.AZUREDEVOPS_PROJECTS)
22
+ missingConfig.push('AZUREDEVOPS_PROJECTS');
23
+ if (missingConfig.length > 0) {
24
+ throw new Error(`Missing required Azure DevOps configuration: ${missingConfig.join(', ')}`);
25
+ }
26
+ const config = {
27
+ organization: process.env.AZUREDEVOPS_ORGANIZATION,
28
+ pat: process.env.AZUREDEVOPS_PAT,
29
+ projects: process.env.AZUREDEVOPS_PROJECTS.split(',').map(p => p.trim()).filter(p => p),
30
+ apiVersion: process.env.AZUREDEVOPS_API_VERSION || '7.1',
31
+ enablePipelineUpsert: process.env.AZUREDEVOPS_ENABLE_PIPELINE_UPSERT === 'true',
32
+ enablePipelineDelete: process.env.AZUREDEVOPS_ENABLE_PIPELINE_DELETE === 'true',
33
+ enableServiceConnUpsert: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT === 'true',
34
+ enableServiceConnDelete: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_DELETE === 'true',
35
+ enableVariableGroupUpsert: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT === 'true',
36
+ enableVariableGroupDelete: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE === 'true',
37
+ enableAgentPoolUpsert: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT === 'true',
38
+ enableAgentPoolDisable: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_DISABLE === 'true',
39
+ enableEnvironmentUpsert: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_UPSERT === 'true',
40
+ enableEnvironmentDelete: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_DELETE === 'true',
41
+ enableClassificationNodeUpsert: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_UPSERT === 'true',
42
+ enableClassificationNodeDelete: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_DELETE === 'true',
43
+ feeds: process.env.AZUREDEVOPS_FEEDS
44
+ ? process.env.AZUREDEVOPS_FEEDS.split(',').map(f => f.trim()).filter(f => f)
45
+ : undefined,
46
+ };
47
+ client = new AdminClient(config);
48
+ console.error('Azure DevOps Admin service initialized');
49
+ }
50
+ return client;
51
+ }
52
+ const tierFlags = {
53
+ enablePipelineUpsert: process.env.AZUREDEVOPS_ENABLE_PIPELINE_UPSERT === 'true',
54
+ enablePipelineDelete: process.env.AZUREDEVOPS_ENABLE_PIPELINE_DELETE === 'true',
55
+ enableServiceConnUpsert: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT === 'true',
56
+ enableServiceConnDelete: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_DELETE === 'true',
57
+ enableVariableGroupUpsert: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT === 'true',
58
+ enableVariableGroupDelete: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE === 'true',
59
+ enableAgentPoolUpsert: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT === 'true',
60
+ enableAgentPoolDisable: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_DISABLE === 'true',
61
+ enableEnvironmentUpsert: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_UPSERT === 'true',
62
+ enableEnvironmentDelete: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_DELETE === 'true',
63
+ enableClassificationNodeUpsert: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_UPSERT === 'true',
64
+ enableClassificationNodeDelete: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_DELETE === 'true',
65
+ };
66
+ return {
67
+ get client() { return getClient(); },
68
+ get pipelines() { return new PipelineService(getClient()); },
69
+ get serviceConnections() { return new ServiceConnectionService(getClient()); },
70
+ get variableGroups() { return new VariableGroupService(getClient()); },
71
+ get agentPools() { return new AgentPoolService(getClient()); },
72
+ get environments() { return new EnvironmentService(getClient()); },
73
+ get classification() { return new ClassificationService(getClient()); },
74
+ get artifactFeeds() { return new ArtifactFeedService(getClient()); },
75
+ tierFlags,
76
+ };
77
+ }
78
+ //# sourceMappingURL=context-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-factory.js","sourceRoot":"","sources":["../src/context-factory.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -3,18 +3,14 @@
3
3
  * @mcp-consultant-tools/azure-devops-admin
4
4
  *
5
5
  * MCP server for Azure DevOps admin operations - pipelines, service connections,
6
- * variable groups, agent pools, and environments.
6
+ * variable groups, agent pools, environments, classification nodes, and artifact feeds.
7
+ * Entry point: MCP server startup + backward-compatible registerAzureDevOpsAdminTools().
7
8
  */
8
- import { AzureDevOpsAdminService } from "./AzureDevOpsAdminService.js";
9
9
  /**
10
- * Register azure-devops-admin tools to an MCP server
11
- * @param server - The MCP server instance
12
- * @param adminService - Optional pre-configured AzureDevOpsAdminService (for testing or custom configs)
10
+ * Register Azure DevOps Admin tools to an MCP server.
11
+ * Backward-compatible API for the meta package.
13
12
  */
14
- export declare function registerAzureDevOpsAdminTools(server: any, adminService?: AzureDevOpsAdminService): void;
15
- /**
16
- * Export service class for direct usage
17
- */
18
- export { AzureDevOpsAdminService } from "./AzureDevOpsAdminService.js";
19
- export type { AzureDevOpsAdminConfig } from "./AzureDevOpsAdminService.js";
13
+ export declare function registerAzureDevOpsAdminTools(server: any): void;
14
+ export { AdminClient } from './services/admin-client.js';
15
+ export type { AzureDevOpsAdminConfig, ServiceContext, TierFlags } from './types.js';
20
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAMH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAIvE;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,uBAAuB,QAk5ChG;AAED;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AA8FH;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAG/D;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}