@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
@@ -8,7 +8,7 @@ export var LogLevel;
8
8
  /**
9
9
  * Default logger configuration
10
10
  */
11
- let config = {
11
+ const config = {
12
12
  logFilePath: "mcp-server-log.txt",
13
13
  minLevel: LogLevel.INFO,
14
14
  quietMode: false
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAQD;;GAEG;AACH,IAAI,MAAM,GAAiB;IACzB,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE,QAAQ,CAAC,IAAI;IACvB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,sEAAsE;IACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAe;IAClC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAe;IACvC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAe,EAAE,OAAe;IACnD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,oCAAoC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,QAAQ,KAAK,OAAO,IAAI,CAAC;IAE7D,IAAI,CAAC;QACH,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;QAC/D,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CAAC,OAAe;IAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;IACtC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,OAAe;IAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IACvC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,cAAc;IACd,WAAW;IACX,YAAY;IACZ,aAAa;IACb,IAAI;IACJ,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,50 +1,58 @@
1
- {
2
- "author": "Octopus Deploy",
3
- "name": "@octopusdeploy/mcp-server",
4
- "bugs": {
5
- "url": "https://github.com/OctopusDeploy/mcp-server/issues"
6
- },
7
- "version": "0.1.2",
8
- "type": "module",
9
- "description": "The Octopus MCP Server provides your AI assistant with powerful tools that allow it to inspect, query, and diagnose problems within your Octopus instance.",
10
- "main": "dist/index.js",
11
- "module": "dist/index.js",
12
- "bin": "./dist/index.js",
13
- "files": [
14
- "dist/**/*"
15
- ],
16
- "scripts": {
17
- "start": "node dist/index.js",
18
- "build": "tsc && shx chmod +x dist/*.js",
19
- "dev": "nodemon --quiet --exec \"tsc && node dist/index.js\" --ext ts --watch src",
20
- "lint": "eslint src --ext .ts"
21
- },
22
- "keywords": [
23
- "octopus deploy",
24
- "mcp"
25
- ],
26
- "homepage": "https://github.com/OctopusDeploy/mcp-server#readme",
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/OctopusDeploy/mc-server.git"
30
- },
31
- "license": "Apache-2.0",
32
- "dependencies": {
33
- "@modelcontextprotocol/sdk": "^1.17.5",
34
- "@octopusdeploy/api-client": "^3.8.0",
35
- "commander": "^14.0.0",
36
- "dotenv": "^17.2.2",
37
- "zod": "^3.25.76"
38
- },
39
- "devDependencies": {
40
- "@eslint/js": "^9.35.0",
41
- "@types/node": "^24.3.1",
42
- "eslint": "^9.35.0",
43
- "globals": "^16.3.0",
44
- "jiti": "^2.5.1",
45
- "nodemon": "^3.1.10",
46
- "shx": "^0.4.0",
47
- "typescript": "^5.9.2",
48
- "typescript-eslint": "^8.42.0"
49
- }
50
- }
1
+ {
2
+ "author": "Octopus Deploy",
3
+ "name": "@octopusdeploy/mcp-server",
4
+ "bugs": {
5
+ "url": "https://github.com/OctopusDeploy/mcp-server/issues"
6
+ },
7
+ "version": "0.2.1",
8
+ "type": "module",
9
+ "description": "The Octopus MCP Server provides your AI assistant with powerful tools that allow it to inspect, query, and diagnose problems within your Octopus instance.",
10
+ "main": "dist/index.js",
11
+ "module": "dist/index.js",
12
+ "bin": {
13
+ "mcp-server": "dist/index.js"
14
+ },
15
+ "files": [
16
+ "dist/**/*"
17
+ ],
18
+ "scripts": {
19
+ "start": "node dist/index.js",
20
+ "build": "tsc && shx chmod +x dist/*.js",
21
+ "dev": "nodemon --quiet --exec \"tsc && node dist/index.js\" --ext ts --watch src",
22
+ "lint": "eslint src --ext .ts",
23
+ "lint:fix": "eslint src --ext .ts --fix"
24
+ },
25
+ "keywords": [
26
+ "octopus deploy",
27
+ "mcp"
28
+ ],
29
+ "homepage": "https://github.com/OctopusDeploy/mcp-server#readme",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/OctopusDeploy/mcp-server.git"
33
+ },
34
+ "license": "Apache-2.0",
35
+ "publishConfig": {
36
+ "registry": "https://registry.npmjs.org/",
37
+ "access": "public"
38
+ },
39
+ "dependencies": {
40
+ "@modelcontextprotocol/sdk": "^1.17.5",
41
+ "@octopusdeploy/api-client": "^3.8.0",
42
+ "axios": "^1.12.2",
43
+ "commander": "^14.0.0",
44
+ "dotenv": "^17.2.2",
45
+ "zod": "^3.25.76"
46
+ },
47
+ "devDependencies": {
48
+ "@eslint/js": "^9.35.0",
49
+ "@types/node": "^24.3.1",
50
+ "eslint": "^9.35.0",
51
+ "globals": "^16.3.0",
52
+ "jiti": "^2.5.1",
53
+ "nodemon": "^3.1.10",
54
+ "shx": "^0.4.0",
55
+ "typescript": "^5.9.2",
56
+ "typescript-eslint": "^8.42.0"
57
+ }
58
+ }
@@ -1,3 +0,0 @@
1
- import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerResources(server: McpServer): void;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,QAClD"}
@@ -1,4 +0,0 @@
1
- import {} from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export function registerResources(server) {
3
- }
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AAEzE,MAAM,UAAU,iBAAiB,CAAC,MAAiB;AACnD,CAAC"}
@@ -1,3 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSpacesResource(server: McpServer): void;
3
- //# sourceMappingURL=spacesResource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spacesResource.d.ts","sourceRoot":"","sources":["../../src/resources/spacesResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAIjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QA0DvD"}
@@ -1,54 +0,0 @@
1
- import { McpServer, ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
3
- import { Client, SpaceRepository } from "@octopusdeploy/api-client";
4
- export function registerSpacesResource(server) {
5
- const config = getClientConfigurationFromEnvironment();
6
- const instanceURL = new URL(config.instanceURL);
7
- server.resource("octopus_space", new ResourceTemplate(`octopus://${instanceURL.host}/spaces/{name}`, {
8
- list: async () => {
9
- const configuration = getClientConfigurationFromEnvironment();
10
- const client = await Client.create(configuration);
11
- const spaceRepository = new SpaceRepository(client);
12
- const spacesResponse = await spaceRepository.list({});
13
- return {
14
- resources: spacesResponse.Items.map((space) => {
15
- return {
16
- uri: `octopus://${instanceURL.host}/spaces/${space.Name}`,
17
- name: space.Name,
18
- description: space.Description || "",
19
- };
20
- }),
21
- };
22
- },
23
- complete: {
24
- name: async (name) => {
25
- const configuration = getClientConfigurationFromEnvironment();
26
- const client = await Client.create(configuration);
27
- const spaceRepository = new SpaceRepository(client);
28
- const spaces = await spaceRepository.list({ partialName: name });
29
- return spaces.Items.map((space) => space.Name);
30
- },
31
- },
32
- }), {}, async (uri, { name }) => {
33
- const configuration = getClientConfigurationFromEnvironment();
34
- const client = await Client.create(configuration);
35
- const spaceRepository = new SpaceRepository(client);
36
- const partialName = Array.isArray(name) ? name[0] : name;
37
- const decodedName = decodeURIComponent(partialName);
38
- const spaces = await spaceRepository.list({ partialName: decodedName });
39
- if (spaces.Items.length === 0) {
40
- throw new Error(`Space with name '${partialName}' not found`);
41
- }
42
- const space = spaces.Items[0];
43
- return {
44
- contents: [
45
- {
46
- uri: uri.toString(),
47
- text: JSON.stringify(space),
48
- mimeType: "application/json",
49
- },
50
- ],
51
- };
52
- });
53
- }
54
- //# sourceMappingURL=spacesResource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spacesResource.js","sourceRoot":"","sources":["../../src/resources/spacesResource.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerGetLatestDeploymentTool(server: McpServer): void;
3
- //# sourceMappingURL=getLatestDeployment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLatestDeployment.d.ts","sourceRoot":"","sources":["../../src/tools/getLatestDeployment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,QAqFhE"}
@@ -1,85 +0,0 @@
1
- import { Client, DeploymentRepository, SpaceServerTaskRepository } from "@octopusdeploy/api-client";
2
- import { z } from "zod";
3
- import {} from "@modelcontextprotocol/sdk/server/mcp.js";
4
- import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
5
- import { registerToolDefinition } from "../types/toolConfig.js";
6
- import { logger } from "../utils/logger.js";
7
- // TODO: review if this tool is needed, it should be possible for a competent model to retrieve this details by using the underlying tools
8
- export function registerGetLatestDeploymentTool(server) {
9
- server.tool("get_latest_deployment", `Get details for the latest deployment of a project
10
-
11
- This tool finds the most recent deployment for a given project in a space and returns the deployment details along with the server task information.`, { spaceName: z.string(), projectId: z.string() }, {
12
- title: "Get latest deployment details for an Octopus Deploy project",
13
- readOnlyHint: true,
14
- }, async ({ spaceName, projectId }) => {
15
- const configuration = getClientConfigurationFromEnvironment();
16
- const client = await Client.create(configuration);
17
- const deploymentRepository = new DeploymentRepository(client, spaceName);
18
- const serverTaskRepository = new SpaceServerTaskRepository(client, spaceName);
19
- // Get all deployments for the project, sorted by creation date descending
20
- const deploymentsResponse = await deploymentRepository.list({
21
- projects: [projectId]
22
- });
23
- if (deploymentsResponse.Items.length === 0) {
24
- return {
25
- content: [
26
- {
27
- type: "text",
28
- text: JSON.stringify({ error: `No deployments found for project ${projectId}` }),
29
- },
30
- ],
31
- };
32
- }
33
- // Sort deployments by created date to get the latest
34
- const latestDeployment = deploymentsResponse.Items.sort((a, b) => new Date(b.Created).getTime() - new Date(a.Created).getTime())[0];
35
- // Get the server task details for the deployment
36
- let taskDetails = null;
37
- if (latestDeployment.TaskId) {
38
- try {
39
- taskDetails = await serverTaskRepository.getDetails(latestDeployment.TaskId);
40
- }
41
- catch (error) {
42
- logger.error(`Error getting task details: ${error}`);
43
- }
44
- }
45
- const result = {
46
- deployment: {
47
- id: latestDeployment.Id,
48
- name: latestDeployment.Name,
49
- releaseId: latestDeployment.ReleaseId,
50
- environmentId: latestDeployment.EnvironmentId,
51
- tenantId: latestDeployment.TenantId,
52
- created: latestDeployment.Created,
53
- taskId: latestDeployment.TaskId,
54
- projectId: latestDeployment.ProjectId,
55
- channelId: latestDeployment.ChannelId,
56
- deploymentProcessId: latestDeployment.DeploymentProcessId,
57
- skipActions: latestDeployment.SkipActions,
58
- specificMachineIds: latestDeployment.SpecificMachineIds,
59
- excludedMachineIds: latestDeployment.ExcludedMachineIds,
60
- forcePackageDownload: latestDeployment.ForcePackageDownload,
61
- forcePackageRedeployment: latestDeployment.ForcePackageRedeployment,
62
- formValues: latestDeployment.FormValues,
63
- queueTime: latestDeployment.QueueTime,
64
- queueTimeExpiry: latestDeployment.QueueTimeExpiry,
65
- useGuidedFailure: latestDeployment.UseGuidedFailure,
66
- comments: latestDeployment.Comments,
67
- },
68
- taskDetails: taskDetails
69
- };
70
- return {
71
- content: [
72
- {
73
- type: "text",
74
- text: JSON.stringify(result, null, 2),
75
- },
76
- ],
77
- };
78
- });
79
- }
80
- registerToolDefinition({
81
- toolName: "get_latest_deployment",
82
- config: { toolset: "deployments", readOnly: true },
83
- registerFn: registerGetLatestDeploymentTool
84
- });
85
- //# sourceMappingURL=getLatestDeployment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLatestDeployment.js","sourceRoot":"","sources":["../../src/tools/getLatestDeployment.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export interface ResourceCollection<TResource> {
2
- ItemType: string;
3
- TotalResults: number;
4
- ItemsPerPage: number;
5
- NumberOfPages: number;
6
- LastPageNumber: number;
7
- Items: TResource[];
8
- }
9
- //# sourceMappingURL=resourceCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resourceCollection.d.ts","sourceRoot":"","sources":["../../src/types/resourceCollection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB,CAAC,SAAS;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=resourceCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resourceCollection.js","sourceRoot":"","sources":["../../src/types/resourceCollection.ts"],"names":[],"mappings":""}