@octopusdeploy/mcp-server 0.1.2 → 0.2.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 (84) hide show
  1. package/LICENSE +373 -373
  2. package/README.md +204 -210
  3. package/dist/helpers/getClientConfigurationFromEnvironment.js +2 -2
  4. package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
  5. package/dist/index.js +13 -11
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/getAccount.d.ts +3 -0
  8. package/dist/tools/getAccount.d.ts.map +1 -0
  9. package/dist/tools/getAccount.js +40 -0
  10. package/dist/tools/getAccount.js.map +1 -0
  11. package/dist/tools/getBranches.js +4 -3
  12. package/dist/tools/getBranches.js.map +1 -1
  13. package/dist/tools/getCertificate.d.ts +3 -0
  14. package/dist/tools/getCertificate.d.ts.map +1 -0
  15. package/dist/tools/getCertificate.js +40 -0
  16. package/dist/tools/getCertificate.js.map +1 -0
  17. package/dist/tools/getCurrentUser.js +3 -3
  18. package/dist/tools/getDeploymentProcess.js +3 -3
  19. package/dist/tools/getDeploymentTarget.js +3 -3
  20. package/dist/tools/getKubernetesLiveStatus.js +4 -3
  21. package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
  22. package/dist/tools/getMissingTenantVariables.js +3 -3
  23. package/dist/tools/getReleaseById.js +1 -1
  24. package/dist/tools/getTaskById.js +1 -1
  25. package/dist/tools/getTaskDetails.js +1 -1
  26. package/dist/tools/getTaskRaw.js +1 -1
  27. package/dist/tools/getTenantById.js +2 -2
  28. package/dist/tools/getTenantById.js.map +1 -1
  29. package/dist/tools/getTenantVariables.js +6 -6
  30. package/dist/tools/index.d.ts +4 -0
  31. package/dist/tools/index.d.ts.map +1 -1
  32. package/dist/tools/index.js +4 -0
  33. package/dist/tools/index.js.map +1 -1
  34. package/dist/tools/listAccounts.d.ts +3 -0
  35. package/dist/tools/listAccounts.d.ts.map +1 -0
  36. package/dist/tools/listAccounts.js +54 -0
  37. package/dist/tools/listAccounts.js.map +1 -0
  38. package/dist/tools/listCertificates.d.ts +3 -0
  39. package/dist/tools/listCertificates.d.ts.map +1 -0
  40. package/dist/tools/listCertificates.js +62 -0
  41. package/dist/tools/listCertificates.js.map +1 -0
  42. package/dist/tools/listDeploymentTargets.js +3 -3
  43. package/dist/tools/listDeployments.js +3 -3
  44. package/dist/tools/listEnvironments.js +3 -3
  45. package/dist/tools/listProjects.js +1 -1
  46. package/dist/tools/listReleases.js +3 -3
  47. package/dist/tools/listReleasesForProject.js +3 -3
  48. package/dist/tools/listSpaces.js +1 -1
  49. package/dist/tools/listTenants.js +3 -3
  50. package/dist/types/accountTypes.d.ts +218 -0
  51. package/dist/types/accountTypes.d.ts.map +1 -0
  52. package/dist/types/accountTypes.js +127 -0
  53. package/dist/types/accountTypes.js.map +1 -0
  54. package/dist/types/certificateTypes.d.ts +74 -0
  55. package/dist/types/certificateTypes.d.ts.map +1 -0
  56. package/dist/types/certificateTypes.js +46 -0
  57. package/dist/types/certificateTypes.js.map +1 -0
  58. package/dist/types/deploymentTargetTypes.d.ts +1 -6
  59. package/dist/types/deploymentTargetTypes.d.ts.map +1 -1
  60. package/dist/types/deploymentTargetTypes.js +1 -5
  61. package/dist/types/deploymentTargetTypes.js.map +1 -1
  62. package/dist/types/toolConfig.d.ts +15 -1
  63. package/dist/types/toolConfig.d.ts.map +1 -1
  64. package/dist/types/toolConfig.js +57 -1
  65. package/dist/types/toolConfig.js.map +1 -1
  66. package/dist/utils/logger.js +1 -1
  67. package/dist/utils/logger.js.map +1 -1
  68. package/package.json +58 -50
  69. package/dist/resources/index.d.ts +0 -3
  70. package/dist/resources/index.d.ts.map +0 -1
  71. package/dist/resources/index.js +0 -4
  72. package/dist/resources/index.js.map +0 -1
  73. package/dist/resources/spacesResource.d.ts +0 -3
  74. package/dist/resources/spacesResource.d.ts.map +0 -1
  75. package/dist/resources/spacesResource.js +0 -54
  76. package/dist/resources/spacesResource.js.map +0 -1
  77. package/dist/tools/getLatestDeployment.d.ts +0 -3
  78. package/dist/tools/getLatestDeployment.d.ts.map +0 -1
  79. package/dist/tools/getLatestDeployment.js +0 -85
  80. package/dist/tools/getLatestDeployment.js.map +0 -1
  81. package/dist/types/resourceCollection.d.ts +0 -9
  82. package/dist/types/resourceCollection.d.ts.map +0 -1
  83. package/dist/types/resourceCollection.js +0 -2
  84. package/dist/types/resourceCollection.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ import { type NamedResource, type SpaceScopedResource, type ResourceWithSlug } from "./baseResource.js";
2
+ import { type TenantedDeploymentMode } from "@octopusdeploy/api-client";
3
+ export declare enum AccountType {
4
+ None = "None",
5
+ UsernamePassword = "UsernamePassword",
6
+ Token = "Token",
7
+ SshKeyPair = "SshKeyPair",
8
+ AzureSubscription = "AzureSubscription",
9
+ AzureServicePrincipal = "AzureServicePrincipal",
10
+ AzureManagementCertificate = "AzureManagementCertificate",
11
+ AzureOidc = "AzureOidc",
12
+ AmazonWebServicesAccount = "AmazonWebServicesAccount",
13
+ AmazonWebServicesOidcAccount = "AmazonWebServicesOidcAccount",
14
+ GoogleCloudAccount = "GoogleCloudAccount",
15
+ GenericOidcAccount = "GenericOidcAccount"
16
+ }
17
+ interface AccountResourceLinks {
18
+ Self: string;
19
+ Usages: string;
20
+ }
21
+ export interface BaseAccountResource extends ResourceWithSlug {
22
+ Id: string;
23
+ Name: string;
24
+ Description: string;
25
+ AccountType: AccountType;
26
+ }
27
+ export interface AccountResource extends BaseAccountResource, NamedResource<AccountResourceLinks>, SpaceScopedResource {
28
+ EnvironmentIds: string[];
29
+ TenantIds: string[];
30
+ TenantTags: string[];
31
+ TenantedDeploymentParticipation: TenantedDeploymentMode;
32
+ }
33
+ export interface AzureServicePrincipalAccountResource extends AccountResource {
34
+ SubscriptionNumber: string;
35
+ ClientId: string;
36
+ TenantId: string;
37
+ AzureEnvironment: string;
38
+ ResourceManagementEndpointBaseUri: string;
39
+ ActiveDirectoryEndpointBaseUri: string;
40
+ }
41
+ export interface AzureOidcAccountResource extends AccountResource {
42
+ SubscriptionNumber: string;
43
+ ClientId: string;
44
+ TenantId: string;
45
+ AzureEnvironment: string;
46
+ TenantedSubjectGeneration: boolean;
47
+ ResourceManagementEndpointBaseUri: string;
48
+ ActiveDirectoryEndpointBaseUri: string;
49
+ DeploymentSubjectKeys: string[];
50
+ HealthCheckSubjectKeys: string[];
51
+ AccountTestSubjectKeys: string[];
52
+ Audience: string;
53
+ CustomClaims: Record<string, string>;
54
+ }
55
+ export interface AzureSubscriptionAccountResource extends AccountResource {
56
+ SubscriptionNumber: string;
57
+ CertificateThumbprint: string;
58
+ AzureEnvironment: string;
59
+ ServiceManagementEndpointBaseUri: string;
60
+ ServiceManagementEndpointSuffix: string;
61
+ }
62
+ export interface GenericOidcAccountResource extends AccountResource {
63
+ TenantedSubjectGeneration: boolean;
64
+ DeploymentSubjectKeys: string[];
65
+ HealthCheckSubjectKeys: string[];
66
+ AccountTestSubjectKeys: string[];
67
+ Audience: string;
68
+ CustomClaims: Record<string, string>;
69
+ }
70
+ export interface SshKeyPairAccountResource extends AccountResource {
71
+ Username: string;
72
+ }
73
+ export interface UsernamePasswordAccountResource extends AccountResource {
74
+ Username: string;
75
+ }
76
+ export interface TokenAccountResource extends AccountResource {
77
+ }
78
+ export interface AmazonWebServicesAccessKeyAccountResource extends AccountResource {
79
+ AccessKey: string;
80
+ }
81
+ export interface AmazonWebServicesOidcAccountResource extends AccountResource {
82
+ RoleArn: string;
83
+ SessionDuration: string;
84
+ DeploymentSubjectKeys: string[];
85
+ HealthCheckSubjectKeys: string[];
86
+ AccountTestSubjectKeys: string[];
87
+ CustomClaims: Record<string, string>;
88
+ }
89
+ export interface GoogleCloudAccountResource extends AccountResource {
90
+ }
91
+ export declare function mapAccountResource(account: AccountResource): {
92
+ spaceId: string;
93
+ id: string;
94
+ name: string;
95
+ description: string;
96
+ slug: string | undefined;
97
+ accountType: AccountType;
98
+ environmentIds: string[];
99
+ tenantIds: string[];
100
+ tenantTags: string[];
101
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
102
+ } | {
103
+ subscriptionNumber: string;
104
+ certificateThumbprint: string;
105
+ azureEnvironment: string;
106
+ serviceManagementEndpointBaseUri: string;
107
+ serviceManagementEndpointSuffix: string;
108
+ spaceId: string;
109
+ id: string;
110
+ name: string;
111
+ description: string;
112
+ slug: string | undefined;
113
+ accountType: AccountType;
114
+ environmentIds: string[];
115
+ tenantIds: string[];
116
+ tenantTags: string[];
117
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
118
+ } | {
119
+ subscriptionNumber: string;
120
+ clientId: string;
121
+ tenantId: string;
122
+ azureEnvironment: string;
123
+ resourceManagementEndpointBaseUri: string;
124
+ activeDirectoryEndpointBaseUri: string;
125
+ spaceId: string;
126
+ id: string;
127
+ name: string;
128
+ description: string;
129
+ slug: string | undefined;
130
+ accountType: AccountType;
131
+ environmentIds: string[];
132
+ tenantIds: string[];
133
+ tenantTags: string[];
134
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
135
+ } | {
136
+ subscriptionNumber: string;
137
+ clientId: string;
138
+ tenantId: string;
139
+ azureEnvironment: string;
140
+ tenantedSubjectGeneration: boolean;
141
+ resourceManagementEndpointBaseUri: string;
142
+ activeDirectoryEndpointBaseUri: string;
143
+ deploymentSubjectKeys: string[];
144
+ healthCheckSubjectKeys: string[];
145
+ accountTestSubjectKeys: string[];
146
+ audience: string;
147
+ customClaims: Record<string, string>;
148
+ spaceId: string;
149
+ id: string;
150
+ name: string;
151
+ description: string;
152
+ slug: string | undefined;
153
+ accountType: AccountType;
154
+ environmentIds: string[];
155
+ tenantIds: string[];
156
+ tenantTags: string[];
157
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
158
+ } | {
159
+ username: string;
160
+ spaceId: string;
161
+ id: string;
162
+ name: string;
163
+ description: string;
164
+ slug: string | undefined;
165
+ accountType: AccountType;
166
+ environmentIds: string[];
167
+ tenantIds: string[];
168
+ tenantTags: string[];
169
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
170
+ } | {
171
+ accessKey: string;
172
+ spaceId: string;
173
+ id: string;
174
+ name: string;
175
+ description: string;
176
+ slug: string | undefined;
177
+ accountType: AccountType;
178
+ environmentIds: string[];
179
+ tenantIds: string[];
180
+ tenantTags: string[];
181
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
182
+ } | {
183
+ roleArn: string;
184
+ sessionDuration: string;
185
+ deploymentSubjectKeys: string[];
186
+ healthCheckSubjectKeys: string[];
187
+ accountTestSubjectKeys: string[];
188
+ customClaims: Record<string, string>;
189
+ spaceId: string;
190
+ id: string;
191
+ name: string;
192
+ description: string;
193
+ slug: string | undefined;
194
+ accountType: AccountType;
195
+ environmentIds: string[];
196
+ tenantIds: string[];
197
+ tenantTags: string[];
198
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
199
+ } | {
200
+ tenantedSubjectGeneration: boolean;
201
+ deploymentSubjectKeys: string[];
202
+ healthCheckSubjectKeys: string[];
203
+ accountTestSubjectKeys: string[];
204
+ audience: string;
205
+ customClaims: Record<string, string>;
206
+ spaceId: string;
207
+ id: string;
208
+ name: string;
209
+ description: string;
210
+ slug: string | undefined;
211
+ accountType: AccountType;
212
+ environmentIds: string[];
213
+ tenantIds: string[];
214
+ tenantTags: string[];
215
+ tenantedDeploymentParticipation: TenantedDeploymentMode;
216
+ };
217
+ export {};
218
+ //# sourceMappingURL=accountTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountTypes.d.ts","sourceRoot":"","sources":["../../src/types/accountTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+ import {} from "./baseResource.js";
3
+ import {} from "@octopusdeploy/api-client";
4
+ export var AccountType;
5
+ (function (AccountType) {
6
+ AccountType["None"] = "None";
7
+ AccountType["UsernamePassword"] = "UsernamePassword";
8
+ AccountType["Token"] = "Token";
9
+ AccountType["SshKeyPair"] = "SshKeyPair";
10
+ AccountType["AzureSubscription"] = "AzureSubscription";
11
+ AccountType["AzureServicePrincipal"] = "AzureServicePrincipal";
12
+ AccountType["AzureManagementCertificate"] = "AzureManagementCertificate";
13
+ AccountType["AzureOidc"] = "AzureOidc";
14
+ AccountType["AmazonWebServicesAccount"] = "AmazonWebServicesAccount";
15
+ AccountType["AmazonWebServicesOidcAccount"] = "AmazonWebServicesOidcAccount";
16
+ AccountType["GoogleCloudAccount"] = "GoogleCloudAccount";
17
+ AccountType["GenericOidcAccount"] = "GenericOidcAccount";
18
+ })(AccountType || (AccountType = {}));
19
+ export function mapAccountResource(account) {
20
+ const baseAccount = {
21
+ spaceId: account.SpaceId,
22
+ id: account.Id,
23
+ name: account.Name,
24
+ description: account.Description,
25
+ slug: account.Slug,
26
+ accountType: account.AccountType,
27
+ environmentIds: account.EnvironmentIds,
28
+ tenantIds: account.TenantIds,
29
+ tenantTags: account.TenantTags,
30
+ tenantedDeploymentParticipation: account.TenantedDeploymentParticipation,
31
+ };
32
+ // Add type-specific properties based on AccountType
33
+ switch (account.AccountType) {
34
+ case AccountType.AzureSubscription: {
35
+ const azureAccount = account;
36
+ return {
37
+ ...baseAccount,
38
+ subscriptionNumber: azureAccount.SubscriptionNumber,
39
+ certificateThumbprint: azureAccount.CertificateThumbprint,
40
+ azureEnvironment: azureAccount.AzureEnvironment,
41
+ serviceManagementEndpointBaseUri: azureAccount.ServiceManagementEndpointBaseUri,
42
+ serviceManagementEndpointSuffix: azureAccount.ServiceManagementEndpointSuffix,
43
+ };
44
+ }
45
+ case AccountType.AzureServicePrincipal: {
46
+ const azureAccount = account;
47
+ return {
48
+ ...baseAccount,
49
+ subscriptionNumber: azureAccount.SubscriptionNumber,
50
+ clientId: azureAccount.ClientId,
51
+ tenantId: azureAccount.TenantId,
52
+ azureEnvironment: azureAccount.AzureEnvironment,
53
+ resourceManagementEndpointBaseUri: azureAccount.ResourceManagementEndpointBaseUri,
54
+ activeDirectoryEndpointBaseUri: azureAccount.ActiveDirectoryEndpointBaseUri,
55
+ };
56
+ }
57
+ case AccountType.AzureOidc: {
58
+ const azureAccount = account;
59
+ return {
60
+ ...baseAccount,
61
+ subscriptionNumber: azureAccount.SubscriptionNumber,
62
+ clientId: azureAccount.ClientId,
63
+ tenantId: azureAccount.TenantId,
64
+ azureEnvironment: azureAccount.AzureEnvironment,
65
+ tenantedSubjectGeneration: azureAccount.TenantedSubjectGeneration,
66
+ resourceManagementEndpointBaseUri: azureAccount.ResourceManagementEndpointBaseUri,
67
+ activeDirectoryEndpointBaseUri: azureAccount.ActiveDirectoryEndpointBaseUri,
68
+ deploymentSubjectKeys: azureAccount.DeploymentSubjectKeys,
69
+ healthCheckSubjectKeys: azureAccount.HealthCheckSubjectKeys,
70
+ accountTestSubjectKeys: azureAccount.AccountTestSubjectKeys,
71
+ audience: azureAccount.Audience,
72
+ customClaims: azureAccount.CustomClaims,
73
+ };
74
+ }
75
+ case AccountType.SshKeyPair: {
76
+ const sshAccount = account;
77
+ return {
78
+ ...baseAccount,
79
+ username: sshAccount.Username,
80
+ };
81
+ }
82
+ case AccountType.UsernamePassword: {
83
+ const userPassAccount = account;
84
+ return {
85
+ ...baseAccount,
86
+ username: userPassAccount.Username,
87
+ };
88
+ }
89
+ case AccountType.AmazonWebServicesAccount: {
90
+ const awsAccount = account;
91
+ return {
92
+ ...baseAccount,
93
+ accessKey: awsAccount.AccessKey,
94
+ };
95
+ }
96
+ case AccountType.AmazonWebServicesOidcAccount: {
97
+ const awsOidcAccount = account;
98
+ return {
99
+ ...baseAccount,
100
+ roleArn: awsOidcAccount.RoleArn,
101
+ sessionDuration: awsOidcAccount.SessionDuration,
102
+ deploymentSubjectKeys: awsOidcAccount.DeploymentSubjectKeys,
103
+ healthCheckSubjectKeys: awsOidcAccount.HealthCheckSubjectKeys,
104
+ accountTestSubjectKeys: awsOidcAccount.AccountTestSubjectKeys,
105
+ customClaims: awsOidcAccount.CustomClaims,
106
+ };
107
+ }
108
+ case AccountType.GenericOidcAccount: {
109
+ const genericOidcAccount = account;
110
+ return {
111
+ ...baseAccount,
112
+ tenantedSubjectGeneration: genericOidcAccount.TenantedSubjectGeneration,
113
+ deploymentSubjectKeys: genericOidcAccount.DeploymentSubjectKeys,
114
+ healthCheckSubjectKeys: genericOidcAccount.HealthCheckSubjectKeys,
115
+ accountTestSubjectKeys: genericOidcAccount.AccountTestSubjectKeys,
116
+ audience: genericOidcAccount.Audience,
117
+ customClaims: genericOidcAccount.CustomClaims,
118
+ };
119
+ }
120
+ case AccountType.Token:
121
+ case AccountType.GoogleCloudAccount:
122
+ case AccountType.None:
123
+ default:
124
+ return baseAccount;
125
+ }
126
+ }
127
+ //# sourceMappingURL=accountTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountTypes.js","sourceRoot":"","sources":["../../src/types/accountTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { type ResourceWithId, type SpaceScopedResource } from "./baseResource.js";
2
+ import { type SensitiveValue, type TenantedDeploymentMode } from "@octopusdeploy/api-client";
3
+ export declare enum CertificateDataFormat {
4
+ Pkcs12 = "Pkcs12",
5
+ Pem = "Pem"
6
+ }
7
+ export declare enum SelfSignedCertificateCurve {
8
+ P256 = "P256",
9
+ P384 = "P384",
10
+ P521 = "P521"
11
+ }
12
+ export interface Certificate {
13
+ SubjectDistinguishedName?: string;
14
+ IssuerDistinguishedName?: string;
15
+ Thumbprint?: string;
16
+ NotAfter?: string;
17
+ NotBefore?: string;
18
+ Version?: number;
19
+ SerialNumber?: string;
20
+ SignatureAlgorithmName?: string;
21
+ IsExpired?: boolean;
22
+ }
23
+ export interface CertificateResource extends ResourceWithId, Certificate, SpaceScopedResource {
24
+ Name: string;
25
+ Notes?: string;
26
+ CertificateData: SensitiveValue;
27
+ Password: SensitiveValue;
28
+ EnvironmentIds: string[];
29
+ TenantIds: string[];
30
+ TenantTags: string[];
31
+ CertificateDataFormat?: CertificateDataFormat;
32
+ Archived?: string;
33
+ ReplacedBy?: string;
34
+ SubjectCommonName?: string;
35
+ SubjectOrganization?: string;
36
+ IssuerCommonName?: string;
37
+ IssuerOrganization?: string;
38
+ SelfSigned?: boolean;
39
+ SelfSignedCertificateCurve?: SelfSignedCertificateCurve;
40
+ HasPrivateKey?: boolean;
41
+ TenantedDeploymentParticipation?: TenantedDeploymentMode;
42
+ SubjectAlternativeNames?: string[];
43
+ }
44
+ export declare function mapCertificateResource(cert: CertificateResource): {
45
+ spaceId: string;
46
+ id: string;
47
+ name: string;
48
+ notes: string | undefined;
49
+ thumbprint: string | undefined;
50
+ subjectDistinguishedName: string | undefined;
51
+ issuerDistinguishedName: string | undefined;
52
+ subjectCommonName: string | undefined;
53
+ subjectOrganization: string | undefined;
54
+ issuerCommonName: string | undefined;
55
+ issuerOrganization: string | undefined;
56
+ notAfter: string | undefined;
57
+ notBefore: string | undefined;
58
+ isExpired: boolean | undefined;
59
+ version: number | undefined;
60
+ serialNumber: string | undefined;
61
+ signatureAlgorithmName: string | undefined;
62
+ environmentIds: string[];
63
+ tenantIds: string[];
64
+ tenantTags: string[];
65
+ certificateDataFormat: CertificateDataFormat | undefined;
66
+ archived: string | undefined;
67
+ replacedBy: string | undefined;
68
+ selfSigned: boolean | undefined;
69
+ selfSignedCertificateCurve: SelfSignedCertificateCurve | undefined;
70
+ hasPrivateKey: boolean | undefined;
71
+ tenantedDeploymentParticipation: TenantedDeploymentMode | undefined;
72
+ subjectAlternativeNames: string[] | undefined;
73
+ };
74
+ //# sourceMappingURL=certificateTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificateTypes.d.ts","sourceRoot":"","sources":["../../src/types/certificateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,oBAAY,qBAAqB;IAC/B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc,EAAE,WAAW,EAAE,mBAAmB;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,cAAc,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B,CAAC,EAAE,sBAAsB,CAAC;IACzD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B/D"}
@@ -0,0 +1,46 @@
1
+ import {} from "./baseResource.js";
2
+ import {} from "@octopusdeploy/api-client";
3
+ export var CertificateDataFormat;
4
+ (function (CertificateDataFormat) {
5
+ CertificateDataFormat["Pkcs12"] = "Pkcs12";
6
+ CertificateDataFormat["Pem"] = "Pem";
7
+ })(CertificateDataFormat || (CertificateDataFormat = {}));
8
+ export var SelfSignedCertificateCurve;
9
+ (function (SelfSignedCertificateCurve) {
10
+ SelfSignedCertificateCurve["P256"] = "P256";
11
+ SelfSignedCertificateCurve["P384"] = "P384";
12
+ SelfSignedCertificateCurve["P521"] = "P521";
13
+ })(SelfSignedCertificateCurve || (SelfSignedCertificateCurve = {}));
14
+ export function mapCertificateResource(cert) {
15
+ return {
16
+ spaceId: cert.SpaceId,
17
+ id: cert.Id,
18
+ name: cert.Name,
19
+ notes: cert.Notes,
20
+ thumbprint: cert.Thumbprint,
21
+ subjectDistinguishedName: cert.SubjectDistinguishedName,
22
+ issuerDistinguishedName: cert.IssuerDistinguishedName,
23
+ subjectCommonName: cert.SubjectCommonName,
24
+ subjectOrganization: cert.SubjectOrganization,
25
+ issuerCommonName: cert.IssuerCommonName,
26
+ issuerOrganization: cert.IssuerOrganization,
27
+ notAfter: cert.NotAfter,
28
+ notBefore: cert.NotBefore,
29
+ isExpired: cert.IsExpired,
30
+ version: cert.Version,
31
+ serialNumber: cert.SerialNumber,
32
+ signatureAlgorithmName: cert.SignatureAlgorithmName,
33
+ environmentIds: cert.EnvironmentIds,
34
+ tenantIds: cert.TenantIds,
35
+ tenantTags: cert.TenantTags,
36
+ certificateDataFormat: cert.CertificateDataFormat,
37
+ archived: cert.Archived,
38
+ replacedBy: cert.ReplacedBy,
39
+ selfSigned: cert.SelfSigned,
40
+ selfSignedCertificateCurve: cert.SelfSignedCertificateCurve,
41
+ hasPrivateKey: cert.HasPrivateKey,
42
+ tenantedDeploymentParticipation: cert.TenantedDeploymentParticipation,
43
+ subjectAlternativeNames: cert.SubjectAlternativeNames,
44
+ };
45
+ }
46
+ //# sourceMappingURL=certificateTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificateTypes.js","sourceRoot":"","sources":["../../src/types/certificateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAoD,MAAM,2BAA2B,CAAC;AAE7F,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,0CAAiB,CAAA;IACjB,oCAAW,CAAA;AACb,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,2CAAa,CAAA;IACb,2CAAa,CAAA;IACb,2CAAa,CAAA;AACf,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAoCD,MAAM,UAAU,sBAAsB,CAAC,IAAyB;IAC9D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;QACvD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;QAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;QACrE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;KACtD,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type NamedResource, type SpaceScopedResource, type ResourceWithSlug } from "./baseResource.js";
2
+ import { type TenantedDeploymentMode } from "@octopusdeploy/api-client";
2
3
  export declare const MachineModelHealthStatusValues: {
3
4
  readonly Healthy: "Healthy";
4
5
  readonly Unavailable: "Unavailable";
@@ -40,12 +41,6 @@ export interface TentacleDetailsResource {
40
41
  UpgradeRequired: boolean;
41
42
  UpgradeAvailable: boolean;
42
43
  }
43
- export declare const TenantedDeploymentModeValues: {
44
- readonly Untenanted: "Untenanted";
45
- readonly TenantedOrUntenanted: "TenantedOrUntenanted";
46
- readonly Tenanted: "Tenanted";
47
- };
48
- export type TenantedDeploymentMode = (typeof TenantedDeploymentModeValues)[keyof typeof TenantedDeploymentModeValues];
49
44
  export interface EndpointResource {
50
45
  Id: string;
51
46
  CommunicationStyle: CommunicationStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"deploymentTargetTypes.d.ts","sourceRoot":"","sources":["../../src/types/deploymentTargetTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExG,eAAO,MAAM,8BAA8B;;;;;;CAMjC,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAE5H,MAAM,WAAW,gCAAgC;IAC7C,EAAE,EAAE,wBAAwB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;CAY3B,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE1G,oBAAY,sBAAsB;IAC9B,OAAO,YAAY;IACnB,SAAS,cAAc;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACvC,EAAE,EAAE,kBAAkB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAC;AAEtH,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;CACpD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,mBAAmB,EAAE,gBAAgB;IACzF,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,wBAAwB,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+BAA+B,EAAE,sBAAsB,CAAC;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"deploymentTargetTypes.d.ts","sourceRoot":"","sources":["../../src/types/deploymentTargetTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,eAAO,MAAM,8BAA8B;;;;;;CAMjC,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAE5H,MAAM,WAAW,gCAAgC;IAC7C,EAAE,EAAE,wBAAwB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;CAY3B,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE1G,oBAAY,sBAAsB;IAC9B,OAAO,YAAY;IACnB,SAAS,cAAc;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACvC,EAAE,EAAE,kBAAkB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;CACpD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,mBAAmB,EAAE,gBAAgB;IACzF,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,wBAAwB,CAAC;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+BAA+B,EAAE,sBAAsB,CAAC;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB"}
@@ -1,4 +1,5 @@
1
1
  import {} from "./baseResource.js";
2
+ import {} from "@octopusdeploy/api-client";
2
3
  export const MachineModelHealthStatusValues = {
3
4
  Healthy: "Healthy",
4
5
  Unavailable: "Unavailable",
@@ -24,9 +25,4 @@ export var AgentCommunicationMode;
24
25
  AgentCommunicationMode["Polling"] = "Polling";
25
26
  AgentCommunicationMode["Listening"] = "Listening";
26
27
  })(AgentCommunicationMode || (AgentCommunicationMode = {}));
27
- export const TenantedDeploymentModeValues = {
28
- Untenanted: "Untenanted",
29
- TenantedOrUntenanted: "TenantedOrUntenanted",
30
- Tenanted: "Tenanted",
31
- };
32
28
  //# sourceMappingURL=deploymentTargetTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploymentTargetTypes.js","sourceRoot":"","sources":["../../src/types/deploymentTargetTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuE,MAAM,mBAAmB,CAAC;AAExG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;CAChB,CAAC;AASX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;CACpB,CAAC;AAIX,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,6CAAmB,CAAA;IACnB,iDAAuB,CAAA;AAC3B,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAeD,MAAM,CAAC,MAAM,4BAA4B,GAAG;IACxC,UAAU,EAAE,YAAY;IACxB,oBAAoB,EAAE,sBAAsB;IAC5C,QAAQ,EAAE,UAAU;CACd,CAAC"}
1
+ {"version":3,"file":"deploymentTargetTypes.js","sourceRoot":"","sources":["../../src/types/deploymentTargetTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAA+B,MAAM,2BAA2B,CAAC;AAExE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;CAChB,CAAC;AASX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;CACpB,CAAC;AAIX,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,6CAAmB,CAAA;IACnB,iDAAuB,CAAA;AAC3B,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC"}
@@ -1,5 +1,5 @@
1
1
  import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export type Toolset = "core" | "projects" | "deployments" | "releases" | "tasks" | "tenants" | "kubernetes" | "machines" | "context";
2
+ export type Toolset = "core" | "projects" | "deployments" | "releases" | "tasks" | "tenants" | "kubernetes" | "machines" | "context" | "certificates" | "accounts";
3
3
  export interface ToolConfig {
4
4
  toolset: Toolset;
5
5
  readOnly: boolean;
@@ -12,8 +12,22 @@ export interface ToolRegistration {
12
12
  toolName: string;
13
13
  config: ToolConfig;
14
14
  registerFn: (server: McpServer) => void;
15
+ minimumOctopusVersion?: string;
15
16
  }
16
17
  export declare const TOOL_REGISTRY: Map<string, ToolRegistration>;
17
18
  export declare function registerToolDefinition(registration: ToolRegistration): void;
18
19
  export declare const DEFAULT_TOOLSETS: Toolset[];
20
+ export interface ToolVersionInfo {
21
+ toolName: string;
22
+ toolset: Toolset;
23
+ minimumOctopusVersion: string;
24
+ }
25
+ export interface VersionAnalysis {
26
+ toolsByVersion: Map<string, ToolVersionInfo[]>;
27
+ minimumSupportedVersion: string;
28
+ versionRequiredForAllTools: string;
29
+ allVersions: string[];
30
+ }
31
+ export declare function analyzeToolVersions(): VersionAnalysis;
32
+ export declare function printToolVersionAnalysis(): void;
19
33
  //# sourceMappingURL=toolConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolConfig.d.ts","sourceRoot":"","sources":["../../src/types/toolConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,MAAM,OAAO,GACf,MAAM,GACN,UAAU,GACV,aAAa,GACb,UAAU,GACV,OAAO,GACP,SAAS,GACT,YAAY,GACZ,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAa,CAAC;AAEtE,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,gBAAgB,QAEpE;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAUrC,CAAC"}
1
+ {"version":3,"file":"toolConfig.d.ts","sourceRoot":"","sources":["../../src/types/toolConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,MAAM,OAAO,GACf,MAAM,GACN,UAAU,GACV,aAAa,GACb,UAAU,GACV,OAAO,GACP,SAAS,GACT,YAAY,GACZ,UAAU,GACV,SAAS,GACT,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAa,CAAC;AAEtE,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,gBAAgB,QAEpE;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAYrC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/C,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAiBD,wBAAgB,mBAAmB,IAAI,eAAe,CA6BrD;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAmB/C"}
@@ -12,6 +12,62 @@ export const DEFAULT_TOOLSETS = [
12
12
  "tenants",
13
13
  "kubernetes",
14
14
  "machines",
15
- "context"
15
+ "context",
16
+ "certificates",
17
+ "accounts"
16
18
  ];
19
+ function compareVersions(v1, v2) {
20
+ const parts1 = v1.split('.').map(Number);
21
+ const parts2 = v2.split('.').map(Number);
22
+ for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
23
+ const part1 = parts1[i] || 0;
24
+ const part2 = parts2[i] || 0;
25
+ if (part1 > part2)
26
+ return 1;
27
+ if (part1 < part2)
28
+ return -1;
29
+ }
30
+ return 0;
31
+ }
32
+ export function analyzeToolVersions() {
33
+ const toolsByVersion = new Map();
34
+ const allVersions = new Set();
35
+ for (const [toolName, registration] of TOOL_REGISTRY) {
36
+ const version = registration.minimumOctopusVersion || "2021.1";
37
+ allVersions.add(version);
38
+ if (!toolsByVersion.has(version)) {
39
+ toolsByVersion.set(version, []);
40
+ }
41
+ toolsByVersion.get(version).push({
42
+ toolName,
43
+ toolset: registration.config.toolset,
44
+ minimumOctopusVersion: version
45
+ });
46
+ }
47
+ const sortedVersions = Array.from(allVersions).sort(compareVersions);
48
+ const minimumSupportedVersion = sortedVersions[0] || "2021.1";
49
+ const versionRequiredForAllTools = sortedVersions[sortedVersions.length - 1] || "2021.1";
50
+ return {
51
+ toolsByVersion,
52
+ minimumSupportedVersion,
53
+ versionRequiredForAllTools,
54
+ allVersions: sortedVersions
55
+ };
56
+ }
57
+ export function printToolVersionAnalysis() {
58
+ const analysis = analyzeToolVersions();
59
+ console.log("=== Octopus Deploy MCP Server - Tool Version Analysis ===\n");
60
+ console.log(`Minimum supported version: ${analysis.minimumSupportedVersion}`);
61
+ console.log(`Version required for all tools: ${analysis.versionRequiredForAllTools}\n`);
62
+ console.log("Tools by Octopus version:");
63
+ for (const version of analysis.allVersions) {
64
+ const tools = analysis.toolsByVersion.get(version);
65
+ console.log(`\n${version}:`);
66
+ tools.forEach(tool => {
67
+ console.log(` - ${tool.toolName} (${tool.toolset})`);
68
+ });
69
+ }
70
+ console.log(`\nTotal tools: ${TOOL_REGISTRY.size}`);
71
+ console.log(`Versions supported: ${analysis.allVersions.join(", ")}`);
72
+ }
17
73
  //# sourceMappingURL=toolConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../src/types/toolConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AA6BzE,MAAM,CAAC,MAAM,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;AAEtE,MAAM,UAAU,sBAAsB,CAAC,YAA8B;IACnE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,MAAM;IACN,UAAU;IACV,aAAa;IACb,UAAU;IACV,OAAO;IACP,SAAS;IACT,YAAY;IACZ,UAAU;IACV,SAAS;CACV,CAAC"}
1
+ {"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../src/types/toolConfig.ts"],"names":[],"mappings":"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"}