@mcp-consultant-tools/azure-devops-admin 28.0.0-beta.7 → 29.0.0-beta.1

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 (83) hide show
  1. package/build/ado-auth-provider.d.ts +32 -0
  2. package/build/ado-auth-provider.d.ts.map +1 -0
  3. package/build/ado-auth-provider.js +92 -0
  4. package/build/ado-auth-provider.js.map +1 -0
  5. package/build/cli/commands/agent-pool-commands.d.ts +7 -0
  6. package/build/cli/commands/agent-pool-commands.d.ts.map +1 -0
  7. package/build/cli/commands/agent-pool-commands.js +117 -0
  8. package/build/cli/commands/agent-pool-commands.js.map +1 -0
  9. package/build/cli/commands/artifact-feed-commands.d.ts +7 -0
  10. package/build/cli/commands/artifact-feed-commands.d.ts.map +1 -0
  11. package/build/cli/commands/artifact-feed-commands.js +62 -0
  12. package/build/cli/commands/artifact-feed-commands.js.map +1 -0
  13. package/build/cli/commands/classification-commands.d.ts +7 -0
  14. package/build/cli/commands/classification-commands.d.ts.map +1 -0
  15. package/build/cli/commands/classification-commands.js +192 -0
  16. package/build/cli/commands/classification-commands.js.map +1 -0
  17. package/build/cli/commands/environment-commands.d.ts +7 -0
  18. package/build/cli/commands/environment-commands.d.ts.map +1 -0
  19. package/build/cli/commands/environment-commands.js +172 -0
  20. package/build/cli/commands/environment-commands.js.map +1 -0
  21. package/build/cli/commands/index.d.ts +15 -0
  22. package/build/cli/commands/index.d.ts.map +1 -0
  23. package/build/cli/commands/index.js +30 -0
  24. package/build/cli/commands/index.js.map +1 -0
  25. package/build/cli/commands/pipeline-commands.d.ts +7 -0
  26. package/build/cli/commands/pipeline-commands.d.ts.map +1 -0
  27. package/build/cli/commands/pipeline-commands.js +269 -0
  28. package/build/cli/commands/pipeline-commands.js.map +1 -0
  29. package/build/cli/commands/project-commands.d.ts +7 -0
  30. package/build/cli/commands/project-commands.d.ts.map +1 -0
  31. package/build/cli/commands/project-commands.js +100 -0
  32. package/build/cli/commands/project-commands.js.map +1 -0
  33. package/build/cli/commands/service-connection-commands.d.ts +7 -0
  34. package/build/cli/commands/service-connection-commands.d.ts.map +1 -0
  35. package/build/cli/commands/service-connection-commands.js +131 -0
  36. package/build/cli/commands/service-connection-commands.js.map +1 -0
  37. package/build/cli/commands/variable-group-commands.d.ts +7 -0
  38. package/build/cli/commands/variable-group-commands.d.ts.map +1 -0
  39. package/build/cli/commands/variable-group-commands.js +120 -0
  40. package/build/cli/commands/variable-group-commands.js.map +1 -0
  41. package/build/cli/output.d.ts +11 -0
  42. package/build/cli/output.d.ts.map +1 -0
  43. package/build/cli/output.js +10 -0
  44. package/build/cli/output.js.map +1 -0
  45. package/build/cli.d.ts +9 -0
  46. package/build/cli.d.ts.map +1 -0
  47. package/build/cli.js +27 -0
  48. package/build/cli.js.map +1 -0
  49. package/build/context-factory.d.ts +4 -0
  50. package/build/context-factory.d.ts.map +1 -0
  51. package/build/context-factory.js +86 -0
  52. package/build/context-factory.js.map +1 -0
  53. package/build/index.d.ts +2 -0
  54. package/build/index.d.ts.map +1 -1
  55. package/build/index.js +15 -6
  56. package/build/index.js.map +1 -1
  57. package/build/services/admin-client.d.ts +5 -2
  58. package/build/services/admin-client.d.ts.map +1 -1
  59. package/build/services/admin-client.js +13 -5
  60. package/build/services/admin-client.js.map +1 -1
  61. package/build/services/index.d.ts +1 -0
  62. package/build/services/index.d.ts.map +1 -1
  63. package/build/services/index.js +1 -0
  64. package/build/services/index.js.map +1 -1
  65. package/build/services/project-service.d.ts +21 -0
  66. package/build/services/project-service.d.ts.map +1 -0
  67. package/build/services/project-service.js +130 -0
  68. package/build/services/project-service.js.map +1 -0
  69. package/build/tool-examples.d.ts +20 -0
  70. package/build/tool-examples.d.ts.map +1 -1
  71. package/build/tool-examples.js +24 -0
  72. package/build/tool-examples.js.map +1 -1
  73. package/build/tools/index.d.ts +1 -0
  74. package/build/tools/index.d.ts.map +1 -1
  75. package/build/tools/index.js +3 -0
  76. package/build/tools/index.js.map +1 -1
  77. package/build/tools/project-tools.d.ts +7 -0
  78. package/build/tools/project-tools.d.ts.map +1 -0
  79. package/build/tools/project-tools.js +117 -0
  80. package/build/tools/project-tools.js.map +1 -0
  81. package/build/types.d.ts +8 -1
  82. package/build/types.d.ts.map +1 -1
  83. package/package.json +6 -3
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Project CLI Commands - list, get, properties, create, update, delete
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerProjectCommands(program, ctx) {
7
+ const proj = program.command('project').alias('p').description('Project operations');
8
+ proj
9
+ .command('list')
10
+ .description('List all projects in the organization')
11
+ .option('-s, --state <filter>', 'State filter (all, wellFormed, createPending, deleting)')
12
+ .option('-t, --top <n>', 'Maximum number of results')
13
+ .option('--skip <n>', 'Number to skip (pagination)')
14
+ .action(async (opts) => {
15
+ try {
16
+ const result = await ctx.projects.listProjects(opts.state, opts.top ? parseInt(opts.top) : undefined, opts.skip ? parseInt(opts.skip) : undefined);
17
+ outputResult({ fileName: 'projects-list', data: result, summary: `Found ${result.totalCount} projects` }, getGlobalFlags(program));
18
+ }
19
+ catch (error) {
20
+ handleCliError(error, 'list projects');
21
+ }
22
+ });
23
+ proj
24
+ .command('get')
25
+ .description('Get project details including capabilities')
26
+ .argument('<projectId>', 'Project name or ID')
27
+ .action(async (projectId) => {
28
+ try {
29
+ const result = await ctx.projects.getProject(projectId);
30
+ outputResult({ fileName: `project-${projectId}`, data: result, summary: `Project: ${result.name}` }, getGlobalFlags(program));
31
+ }
32
+ catch (error) {
33
+ handleCliError(error, 'get project');
34
+ }
35
+ });
36
+ proj
37
+ .command('properties')
38
+ .description('Get extended project properties')
39
+ .argument('<projectId>', 'Project name or ID')
40
+ .action(async (projectId) => {
41
+ try {
42
+ const result = await ctx.projects.getProjectProperties(projectId);
43
+ outputResult({ fileName: `project-props-${projectId}`, data: result, summary: `Properties for '${projectId}'` }, getGlobalFlags(program));
44
+ }
45
+ catch (error) {
46
+ handleCliError(error, 'get project properties');
47
+ }
48
+ });
49
+ proj
50
+ .command('create')
51
+ .description('Create a new project (polls until complete)')
52
+ .argument('<name>', 'Project name')
53
+ .option('-d, --description <text>', 'Project description')
54
+ .option('-v, --visibility <type>', 'Visibility: private or public', 'private')
55
+ .option('--process <template>', 'Process template: Agile, Scrum, Basic, CMMI', 'Agile')
56
+ .option('--vcs <type>', 'Version control: Git or Tfvc', 'Git')
57
+ .action(async (name, opts) => {
58
+ try {
59
+ const result = await ctx.projects.createProject(name, opts.description, opts.visibility, opts.process, opts.vcs);
60
+ outputResult({ fileName: `project-created-${name}`, data: result, summary: `Created project '${name}'` }, getGlobalFlags(program));
61
+ }
62
+ catch (error) {
63
+ handleCliError(error, 'create project');
64
+ }
65
+ });
66
+ proj
67
+ .command('update')
68
+ .description('Update a project name and/or description')
69
+ .argument('<projectId>', 'Project name or ID')
70
+ .option('-n, --name <name>', 'New project name')
71
+ .option('-d, --description <text>', 'New project description')
72
+ .action(async (projectId, opts) => {
73
+ try {
74
+ const updates = {};
75
+ if (opts.name)
76
+ updates.name = opts.name;
77
+ if (opts.description)
78
+ updates.description = opts.description;
79
+ const result = await ctx.projects.updateProject(projectId, updates);
80
+ outputResult({ fileName: `project-updated-${projectId}`, data: result, summary: `Updated project '${projectId}'` }, getGlobalFlags(program));
81
+ }
82
+ catch (error) {
83
+ handleCliError(error, 'update project');
84
+ }
85
+ });
86
+ proj
87
+ .command('delete')
88
+ .description('Delete a project (DESTRUCTIVE, polls until complete)')
89
+ .argument('<projectId>', 'Project name or ID')
90
+ .action(async (projectId) => {
91
+ try {
92
+ const result = await ctx.projects.deleteProject(projectId);
93
+ outputResult({ fileName: `project-deleted-${projectId}`, data: result, summary: `Deleted project '${projectId}'` }, getGlobalFlags(program));
94
+ }
95
+ catch (error) {
96
+ handleCliError(error, 'delete project');
97
+ }
98
+ });
99
+ }
100
+ //# sourceMappingURL=project-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/project-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Service Connection CLI Commands - list, get, types, CRUD, share
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerServiceConnectionCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=service-connection-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-connection-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/service-connection-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA2H7F"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Service Connection CLI Commands - list, get, types, CRUD, share
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerServiceConnectionCommands(program, ctx) {
7
+ const svcConn = program.command('svc-conn').alias('sc').description('Service connection operations');
8
+ svcConn
9
+ .command('list')
10
+ .description('List all service connections in a project')
11
+ .argument('<project>', 'Project name')
12
+ .action(async (project) => {
13
+ try {
14
+ const result = await ctx.serviceConnections.listServiceConnections(project);
15
+ outputResult({ fileName: `svc-conns-${project}`, data: result, summary: `Service connections in '${project}'` }, getGlobalFlags(program));
16
+ }
17
+ catch (error) {
18
+ handleCliError(error, 'list service connections');
19
+ }
20
+ });
21
+ svcConn
22
+ .command('get')
23
+ .description('Get detailed service connection information')
24
+ .argument('<project>', 'Project name')
25
+ .argument('<connectionId>', 'Service connection ID (GUID)')
26
+ .action(async (project, connectionId) => {
27
+ try {
28
+ const result = await ctx.serviceConnections.getServiceConnection(project, connectionId);
29
+ outputResult({ fileName: `svc-conn-${connectionId}`, data: result, summary: `Service connection '${connectionId}'` }, getGlobalFlags(program));
30
+ }
31
+ catch (error) {
32
+ handleCliError(error, 'get service connection');
33
+ }
34
+ });
35
+ svcConn
36
+ .command('types')
37
+ .description('List available service connection types')
38
+ .action(async () => {
39
+ try {
40
+ const result = await ctx.serviceConnections.getServiceConnectionTypes();
41
+ outputResult({ fileName: 'svc-conn-types', data: result, summary: `Service connection types` }, getGlobalFlags(program));
42
+ }
43
+ catch (error) {
44
+ handleCliError(error, 'get service connection types');
45
+ }
46
+ });
47
+ svcConn
48
+ .command('create')
49
+ .description('Create a new service connection')
50
+ .argument('<project>', 'Project name')
51
+ .argument('<name>', 'Connection name')
52
+ .argument('<type>', 'Connection type (e.g., AzureRM, GitHub, Docker)')
53
+ .option('-u, --url <url>', 'Service URL')
54
+ .option('-d, --description <text>', 'Connection description')
55
+ .option('--auth <json>', 'Authorization config as JSON (e.g., {"scheme":"Token","parameters":{"apitoken":"..."}})')
56
+ .option('--data <json>', 'Additional data as JSON')
57
+ .action(async (project, name, type, opts) => {
58
+ try {
59
+ const config = {};
60
+ if (opts.url)
61
+ config.url = opts.url;
62
+ if (opts.description)
63
+ config.description = opts.description;
64
+ if (opts.auth)
65
+ config.authorization = JSON.parse(opts.auth);
66
+ if (opts.data)
67
+ config.data = JSON.parse(opts.data);
68
+ const result = await ctx.serviceConnections.createServiceConnection(project, name, type, config);
69
+ outputResult({ fileName: `svc-conn-created-${name}`, data: result, summary: `Created service connection '${name}'` }, getGlobalFlags(program));
70
+ }
71
+ catch (error) {
72
+ handleCliError(error, 'create service connection');
73
+ }
74
+ });
75
+ svcConn
76
+ .command('update')
77
+ .description('Update a service connection')
78
+ .argument('<project>', 'Project name')
79
+ .argument('<connectionId>', 'Service connection ID (GUID)')
80
+ .option('-n, --name <name>', 'New connection name')
81
+ .option('-d, --description <text>', 'New description')
82
+ .option('-u, --url <url>', 'New service URL')
83
+ .option('--data <json>', 'Updated data as JSON')
84
+ .action(async (project, connectionId, opts) => {
85
+ try {
86
+ const updates = {};
87
+ if (opts.name)
88
+ updates.name = opts.name;
89
+ if (opts.description)
90
+ updates.description = opts.description;
91
+ if (opts.url)
92
+ updates.url = opts.url;
93
+ if (opts.data)
94
+ updates.data = JSON.parse(opts.data);
95
+ const result = await ctx.serviceConnections.updateServiceConnection(project, connectionId, updates);
96
+ outputResult({ fileName: `svc-conn-updated-${connectionId}`, data: result, summary: `Updated service connection '${connectionId}'` }, getGlobalFlags(program));
97
+ }
98
+ catch (error) {
99
+ handleCliError(error, 'update service connection');
100
+ }
101
+ });
102
+ svcConn
103
+ .command('share')
104
+ .description('Share a service connection with other projects')
105
+ .argument('<connectionId>', 'Service connection ID (GUID)')
106
+ .argument('<projectIds...>', 'Project IDs to share with')
107
+ .action(async (connectionId, projectIds) => {
108
+ try {
109
+ const result = await ctx.serviceConnections.shareServiceConnection(connectionId, projectIds);
110
+ outputResult({ fileName: `svc-conn-shared-${connectionId}`, data: result, summary: `Shared connection '${connectionId}' with ${projectIds.length} project(s)` }, getGlobalFlags(program));
111
+ }
112
+ catch (error) {
113
+ handleCliError(error, 'share service connection');
114
+ }
115
+ });
116
+ svcConn
117
+ .command('delete')
118
+ .description('Delete a service connection (DESTRUCTIVE)')
119
+ .argument('<project>', 'Project name')
120
+ .argument('<connectionId>', 'Service connection ID (GUID)')
121
+ .action(async (project, connectionId) => {
122
+ try {
123
+ const result = await ctx.serviceConnections.deleteServiceConnection(project, connectionId);
124
+ outputResult({ fileName: `svc-conn-deleted-${connectionId}`, data: result, summary: `Deleted service connection '${connectionId}'` }, getGlobalFlags(program));
125
+ }
126
+ catch (error) {
127
+ handleCliError(error, 'delete service connection');
128
+ }
129
+ });
130
+ }
131
+ //# sourceMappingURL=service-connection-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-connection-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/service-connection-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Variable Group CLI Commands - list, get, CRUD, set/remove variables
3
+ */
4
+ import type { Command } from 'commander';
5
+ import type { ServiceContext } from '../../types.js';
6
+ export declare function registerVariableGroupCommands(program: Command, ctx: ServiceContext): void;
7
+ //# sourceMappingURL=variable-group-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-group-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/variable-group-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsHzF"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Variable Group CLI Commands - list, get, CRUD, set/remove variables
3
+ */
4
+ import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
5
+ import { outputResult } from '../output.js';
6
+ export function registerVariableGroupCommands(program, ctx) {
7
+ const varGroup = program.command('var-group').alias('vg').description('Variable group operations');
8
+ varGroup
9
+ .command('list')
10
+ .description('List all variable groups in a project')
11
+ .argument('<project>', 'Project name')
12
+ .action(async (project) => {
13
+ try {
14
+ const result = await ctx.variableGroups.getVariableGroups(project);
15
+ outputResult({ fileName: `var-groups-${project}`, data: result, summary: `Variable groups in '${project}'` }, getGlobalFlags(program));
16
+ }
17
+ catch (error) {
18
+ handleCliError(error, 'list variable groups');
19
+ }
20
+ });
21
+ varGroup
22
+ .command('get')
23
+ .description('Get detailed variable group information')
24
+ .argument('<project>', 'Project name')
25
+ .argument('<groupId>', 'Variable group ID')
26
+ .action(async (project, groupId) => {
27
+ try {
28
+ const result = await ctx.variableGroups.getVariableGroup(project, parseInt(groupId));
29
+ outputResult({ fileName: `var-group-${groupId}`, data: result, summary: `Variable group #${groupId}` }, getGlobalFlags(program));
30
+ }
31
+ catch (error) {
32
+ handleCliError(error, 'get variable group');
33
+ }
34
+ });
35
+ varGroup
36
+ .command('create')
37
+ .description('Create a new variable group')
38
+ .argument('<project>', 'Project name')
39
+ .argument('<name>', 'Variable group name')
40
+ .option('-d, --description <text>', 'Group description')
41
+ .option('--variables <json>', 'Initial variables as JSON (e.g., {"VAR1":{"value":"val1"},"SECRET":{"value":"s","isSecret":true}})')
42
+ .action(async (project, name, opts) => {
43
+ try {
44
+ const variables = opts.variables ? JSON.parse(opts.variables) : undefined;
45
+ const result = await ctx.variableGroups.createVariableGroup(project, name, opts.description, variables);
46
+ outputResult({ fileName: `var-group-created-${name}`, data: result, summary: `Created variable group '${name}'` }, getGlobalFlags(program));
47
+ }
48
+ catch (error) {
49
+ handleCliError(error, 'create variable group');
50
+ }
51
+ });
52
+ varGroup
53
+ .command('update')
54
+ .description('Update variable group metadata')
55
+ .argument('<project>', 'Project name')
56
+ .argument('<groupId>', 'Variable group ID')
57
+ .option('-n, --name <name>', 'New group name')
58
+ .option('-d, --description <text>', 'New description')
59
+ .action(async (project, groupId, opts) => {
60
+ try {
61
+ const updates = {};
62
+ if (opts.name)
63
+ updates.name = opts.name;
64
+ if (opts.description)
65
+ updates.description = opts.description;
66
+ const result = await ctx.variableGroups.updateVariableGroupMetadata(project, parseInt(groupId), updates);
67
+ outputResult({ fileName: `var-group-updated-${groupId}`, data: result, summary: `Updated variable group #${groupId}` }, getGlobalFlags(program));
68
+ }
69
+ catch (error) {
70
+ handleCliError(error, 'update variable group');
71
+ }
72
+ });
73
+ varGroup
74
+ .command('set-var')
75
+ .description('Set a variable in a variable group')
76
+ .argument('<project>', 'Project name')
77
+ .argument('<groupId>', 'Variable group ID')
78
+ .argument('<varName>', 'Variable name')
79
+ .argument('<value>', 'Variable value')
80
+ .option('-s, --secret', 'Mark variable as secret')
81
+ .action(async (project, groupId, varName, value, opts) => {
82
+ try {
83
+ const result = await ctx.variableGroups.setVariable(project, parseInt(groupId), varName, value, opts.secret || false);
84
+ outputResult({ fileName: `var-set-${groupId}-${varName}`, data: result, summary: `Set variable '${varName}' in group #${groupId}` }, getGlobalFlags(program));
85
+ }
86
+ catch (error) {
87
+ handleCliError(error, 'set variable');
88
+ }
89
+ });
90
+ varGroup
91
+ .command('remove-var')
92
+ .description('Remove a variable from a variable group')
93
+ .argument('<project>', 'Project name')
94
+ .argument('<groupId>', 'Variable group ID')
95
+ .argument('<varName>', 'Variable name to remove')
96
+ .action(async (project, groupId, varName) => {
97
+ try {
98
+ const result = await ctx.variableGroups.removeVariable(project, parseInt(groupId), varName);
99
+ outputResult({ fileName: `var-removed-${groupId}-${varName}`, data: result, summary: `Removed variable '${varName}' from group #${groupId}` }, getGlobalFlags(program));
100
+ }
101
+ catch (error) {
102
+ handleCliError(error, 'remove variable');
103
+ }
104
+ });
105
+ varGroup
106
+ .command('delete')
107
+ .description('Delete a variable group (DESTRUCTIVE)')
108
+ .argument('<project>', 'Project name')
109
+ .argument('<groupId>', 'Variable group ID')
110
+ .action(async (project, groupId) => {
111
+ try {
112
+ const result = await ctx.variableGroups.deleteVariableGroup(project, parseInt(groupId));
113
+ outputResult({ fileName: `var-group-deleted-${groupId}`, data: result, summary: `Deleted variable group #${groupId}` }, getGlobalFlags(program));
114
+ }
115
+ catch (error) {
116
+ handleCliError(error, 'delete variable group');
117
+ }
118
+ });
119
+ }
120
+ //# sourceMappingURL=variable-group-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-group-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/variable-group-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,UAAU,6BAA6B,CAAC,OAAgB,EAAE,GAAmB;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAEnG,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACnE,YAAY,CACV,EAAE,QAAQ,EAAE,cAAc,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,OAAO,GAAG,EAAE,EAC/F,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,YAAY,CACV,EAAE,QAAQ,EAAE,aAAa,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,OAAO,EAAE,EAAE,EACzF,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;SACzC,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,oGAAoG,CAAC;SAClI,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAY,EAAE,IAAS,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACxG,YAAY,CACV,EAAE,QAAQ,EAAE,qBAAqB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,IAAI,GAAG,EAAE,EACpG,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC7C,MAAM,CAAC,0BAA0B,EAAE,iBAAiB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,IAAS,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACzG,YAAY,CACV,EAAE,QAAQ,EAAE,qBAAqB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,OAAO,EAAE,EAAE,EACzG,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;SACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;SACrC,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa,EAAE,IAAS,EAAE,EAAE;QAC5F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YACtH,YAAY,CACV,EAAE,QAAQ,EAAE,WAAW,OAAO,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,OAAO,eAAe,OAAO,EAAE,EAAE,EACtH,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5F,YAAY,CACV,EAAE,QAAQ,EAAE,eAAe,OAAO,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,OAAO,iBAAiB,OAAO,EAAE,EAAE,EAChI,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;SACrC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAe,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACxF,YAAY,CACV,EAAE,QAAQ,EAAE,qBAAqB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,OAAO,EAAE,EAAE,EACzG,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,cAAc,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -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":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAqC,MAAM,YAAY,CAAC;AAGpF,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAgB,oBAAoB,IAAI,cAAc,CA8ErD"}
@@ -0,0 +1,86 @@
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
+ import { ProjectService } from './services/project-service.js';
13
+ import { resolveAuthConfig } from './ado-auth-provider.js';
14
+ export function createServiceContext() {
15
+ let client = null;
16
+ function getClient() {
17
+ if (!client) {
18
+ const missingConfig = [];
19
+ if (!process.env.AZUREDEVOPS_ORGANIZATION)
20
+ missingConfig.push('AZUREDEVOPS_ORGANIZATION');
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
+ // Resolve auth mode (Entra ID or PAT) from environment variables
27
+ const authConfig = resolveAuthConfig();
28
+ const config = {
29
+ organization: process.env.AZUREDEVOPS_ORGANIZATION,
30
+ pat: authConfig.mode === 'pat' ? authConfig.pat : undefined,
31
+ authMode: authConfig.mode,
32
+ projects: process.env.AZUREDEVOPS_PROJECTS.split(',').map(p => p.trim()).filter(p => p),
33
+ apiVersion: process.env.AZUREDEVOPS_API_VERSION || '7.1',
34
+ enablePipelineUpsert: process.env.AZUREDEVOPS_ENABLE_PIPELINE_UPSERT === 'true',
35
+ enablePipelineDelete: process.env.AZUREDEVOPS_ENABLE_PIPELINE_DELETE === 'true',
36
+ enableServiceConnUpsert: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT === 'true',
37
+ enableServiceConnDelete: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_DELETE === 'true',
38
+ enableVariableGroupUpsert: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT === 'true',
39
+ enableVariableGroupDelete: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE === 'true',
40
+ enableAgentPoolUpsert: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT === 'true',
41
+ enableAgentPoolDisable: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_DISABLE === 'true',
42
+ enableEnvironmentUpsert: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_UPSERT === 'true',
43
+ enableEnvironmentDelete: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_DELETE === 'true',
44
+ enableClassificationNodeUpsert: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_UPSERT === 'true',
45
+ enableClassificationNodeDelete: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_DELETE === 'true',
46
+ enableProjectUpsert: process.env.AZUREDEVOPS_ENABLE_PROJECT_UPSERT === 'true',
47
+ enableProjectDelete: process.env.AZUREDEVOPS_ENABLE_PROJECT_DELETE === 'true',
48
+ feeds: process.env.AZUREDEVOPS_FEEDS
49
+ ? process.env.AZUREDEVOPS_FEEDS.split(',').map(f => f.trim()).filter(f => f)
50
+ : undefined,
51
+ };
52
+ client = new AdminClient(config, authConfig);
53
+ console.error(`Azure DevOps Admin service initialized (auth: ${authConfig.mode})`);
54
+ }
55
+ return client;
56
+ }
57
+ const tierFlags = {
58
+ enablePipelineUpsert: process.env.AZUREDEVOPS_ENABLE_PIPELINE_UPSERT === 'true',
59
+ enablePipelineDelete: process.env.AZUREDEVOPS_ENABLE_PIPELINE_DELETE === 'true',
60
+ enableServiceConnUpsert: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_UPSERT === 'true',
61
+ enableServiceConnDelete: process.env.AZUREDEVOPS_ENABLE_SERVICE_CONN_DELETE === 'true',
62
+ enableVariableGroupUpsert: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_UPSERT === 'true',
63
+ enableVariableGroupDelete: process.env.AZUREDEVOPS_ENABLE_VARIABLE_GROUP_DELETE === 'true',
64
+ enableAgentPoolUpsert: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_UPSERT === 'true',
65
+ enableAgentPoolDisable: process.env.AZUREDEVOPS_ENABLE_AGENT_POOL_DISABLE === 'true',
66
+ enableEnvironmentUpsert: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_UPSERT === 'true',
67
+ enableEnvironmentDelete: process.env.AZUREDEVOPS_ENABLE_ENVIRONMENT_DELETE === 'true',
68
+ enableClassificationNodeUpsert: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_UPSERT === 'true',
69
+ enableClassificationNodeDelete: process.env.AZUREDEVOPS_ENABLE_CLASSIFICATION_NODE_DELETE === 'true',
70
+ enableProjectUpsert: process.env.AZUREDEVOPS_ENABLE_PROJECT_UPSERT === 'true',
71
+ enableProjectDelete: process.env.AZUREDEVOPS_ENABLE_PROJECT_DELETE === 'true',
72
+ };
73
+ return {
74
+ get client() { return getClient(); },
75
+ get pipelines() { return new PipelineService(getClient()); },
76
+ get serviceConnections() { return new ServiceConnectionService(getClient()); },
77
+ get variableGroups() { return new VariableGroupService(getClient()); },
78
+ get agentPools() { return new AgentPoolService(getClient()); },
79
+ get environments() { return new EnvironmentService(getClient()); },
80
+ get classification() { return new ClassificationService(getClient()); },
81
+ get artifactFeeds() { return new ArtifactFeedService(getClient()); },
82
+ get projects() { return new ProjectService(getClient()); },
83
+ tierFlags,
84
+ };
85
+ }
86
+ //# 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
@@ -13,4 +13,6 @@
13
13
  export declare function registerAzureDevOpsAdminTools(server: any): void;
14
14
  export { AdminClient } from './services/admin-client.js';
15
15
  export type { AzureDevOpsAdminConfig, ServiceContext, TierFlags } from './types.js';
16
+ export { AdoAuthProvider, resolveAuthConfig } from './ado-auth-provider.js';
17
+ export type { AdoAuthConfig, AuthMode } from './ado-auth-provider.js';
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAwGH;;;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;AACpF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC"}