@octopusdeploy/mcp-server 1.0.1 → 2.1.0
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.
- package/README.md +237 -46
- package/dist/helpers/activeToolsetConfig.d.ts +4 -0
- package/dist/helpers/activeToolsetConfig.d.ts.map +1 -0
- package/dist/helpers/activeToolsetConfig.js +18 -0
- package/dist/helpers/activeToolsetConfig.js.map +1 -0
- package/dist/helpers/errorHandling.d.ts +38 -0
- package/dist/helpers/errorHandling.d.ts.map +1 -0
- package/dist/helpers/errorHandling.js +75 -0
- package/dist/helpers/errorHandling.js.map +1 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts +2 -0
- package/dist/helpers/getClientConfigurationFromEnvironment.d.ts.map +1 -1
- package/dist/helpers/getClientConfigurationFromEnvironment.js +21 -5
- package/dist/helpers/getClientConfigurationFromEnvironment.js.map +1 -1
- package/dist/helpers/grepLines.d.ts +38 -0
- package/dist/helpers/grepLines.d.ts.map +1 -0
- package/dist/helpers/grepLines.js +65 -0
- package/dist/helpers/grepLines.js.map +1 -0
- package/dist/helpers/methodTier.d.ts +15 -0
- package/dist/helpers/methodTier.d.ts.map +1 -0
- package/dist/helpers/methodTier.js +25 -0
- package/dist/helpers/methodTier.js.map +1 -0
- package/dist/helpers/pathAllowlist.d.ts +27 -0
- package/dist/helpers/pathAllowlist.d.ts.map +1 -0
- package/dist/helpers/pathAllowlist.js +177 -0
- package/dist/helpers/pathAllowlist.js.map +1 -0
- package/dist/helpers/pathGlob.d.ts +15 -0
- package/dist/helpers/pathGlob.d.ts.map +1 -0
- package/dist/helpers/pathGlob.js +47 -0
- package/dist/helpers/pathGlob.js.map +1 -0
- package/dist/helpers/requireConfirmation.d.ts +119 -0
- package/dist/helpers/requireConfirmation.d.ts.map +1 -0
- package/dist/helpers/requireConfirmation.js +148 -0
- package/dist/helpers/requireConfirmation.js.map +1 -0
- package/dist/helpers/sensitivePathDenylist.d.ts +32 -0
- package/dist/helpers/sensitivePathDenylist.d.ts.map +1 -0
- package/dist/helpers/sensitivePathDenylist.js +49 -0
- package/dist/helpers/sensitivePathDenylist.js.map +1 -0
- package/dist/helpers/spaceResolver.d.ts +4 -0
- package/dist/helpers/spaceResolver.d.ts.map +1 -0
- package/dist/helpers/spaceResolver.js +18 -0
- package/dist/helpers/spaceResolver.js.map +1 -0
- package/dist/helpers/stripLinks.d.ts +15 -0
- package/dist/helpers/stripLinks.d.ts.map +1 -0
- package/dist/helpers/stripLinks.js +19 -0
- package/dist/helpers/stripLinks.js.map +1 -0
- package/dist/helpers/urlParser.d.ts +16 -0
- package/dist/helpers/urlParser.d.ts.map +1 -0
- package/dist/helpers/urlParser.js +83 -0
- package/dist/helpers/urlParser.js.map +1 -0
- package/dist/helpers/userCache.d.ts +14 -0
- package/dist/helpers/userCache.d.ts.map +1 -0
- package/dist/helpers/userCache.js +16 -0
- package/dist/helpers/userCache.js.map +1 -0
- package/dist/helpers/validateExecutePath.d.ts +29 -0
- package/dist/helpers/validateExecutePath.d.ts.map +1 -0
- package/dist/helpers/validateExecutePath.js +62 -0
- package/dist/helpers/validateExecutePath.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -15
- package/dist/index.js.map +1 -1
- package/dist/resources/catalog/capabilities.d.ts +36 -0
- package/dist/resources/catalog/capabilities.d.ts.map +1 -0
- package/dist/resources/catalog/capabilities.js +90 -0
- package/dist/resources/catalog/capabilities.js.map +1 -0
- package/dist/resources/catalog/llmsTxt.d.ts +8 -0
- package/dist/resources/catalog/llmsTxt.d.ts.map +1 -0
- package/dist/resources/catalog/llmsTxt.js +44 -0
- package/dist/resources/catalog/llmsTxt.js.map +1 -0
- package/dist/resources/dispatch.d.ts +30 -0
- package/dist/resources/dispatch.d.ts.map +1 -0
- package/dist/resources/dispatch.js +81 -0
- package/dist/resources/dispatch.js.map +1 -0
- package/dist/resources/featureToggle.d.ts +2 -0
- package/dist/resources/featureToggle.d.ts.map +1 -0
- package/dist/resources/featureToggle.js +34 -0
- package/dist/resources/featureToggle.js.map +1 -0
- package/dist/resources/index.d.ts +12 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +44 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/interruption.d.ts +2 -0
- package/dist/resources/interruption.d.ts.map +1 -0
- package/dist/resources/interruption.js +34 -0
- package/dist/resources/interruption.js.map +1 -0
- package/dist/resources/release.d.ts +2 -0
- package/dist/resources/release.d.ts.map +1 -0
- package/dist/resources/release.js +33 -0
- package/dist/resources/release.js.map +1 -0
- package/dist/resources/rolloutGroup.d.ts +2 -0
- package/dist/resources/rolloutGroup.d.ts.map +1 -0
- package/dist/resources/rolloutGroup.js +35 -0
- package/dist/resources/rolloutGroup.js.map +1 -0
- package/dist/resources/runbook.d.ts +2 -0
- package/dist/resources/runbook.d.ts.map +1 -0
- package/dist/resources/runbook.js +34 -0
- package/dist/resources/runbook.js.map +1 -0
- package/dist/resources/task.d.ts +2 -0
- package/dist/resources/task.d.ts.map +1 -0
- package/dist/resources/task.js +68 -0
- package/dist/resources/task.js.map +1 -0
- package/dist/tools/createRelease.d.ts +3 -0
- package/dist/tools/createRelease.d.ts.map +1 -0
- package/dist/tools/createRelease.js +151 -0
- package/dist/tools/createRelease.js.map +1 -0
- package/dist/tools/deployRelease.d.ts +3 -0
- package/dist/tools/deployRelease.d.ts.map +1 -0
- package/dist/tools/deployRelease.js +227 -0
- package/dist/tools/deployRelease.js.map +1 -0
- package/dist/tools/execute.d.ts +3 -0
- package/dist/tools/execute.d.ts.map +1 -0
- package/dist/tools/execute.js +261 -0
- package/dist/tools/execute.js.map +1 -0
- package/dist/tools/findAccounts.d.ts +3 -0
- package/dist/tools/findAccounts.d.ts.map +1 -0
- package/dist/tools/findAccounts.js +90 -0
- package/dist/tools/findAccounts.js.map +1 -0
- package/dist/tools/findCertificates.d.ts +3 -0
- package/dist/tools/findCertificates.d.ts.map +1 -0
- package/dist/tools/findCertificates.js +98 -0
- package/dist/tools/findCertificates.js.map +1 -0
- package/dist/tools/findDeploymentTargets.d.ts +3 -0
- package/dist/tools/findDeploymentTargets.d.ts.map +1 -0
- package/dist/tools/findDeploymentTargets.js +161 -0
- package/dist/tools/findDeploymentTargets.js.map +1 -0
- package/dist/tools/findFeatureToggles.d.ts +37 -0
- package/dist/tools/findFeatureToggles.d.ts.map +1 -0
- package/dist/tools/findFeatureToggles.js +139 -0
- package/dist/tools/findFeatureToggles.js.map +1 -0
- package/dist/tools/findInterruptions.d.ts +79 -0
- package/dist/tools/findInterruptions.d.ts.map +1 -0
- package/dist/tools/findInterruptions.js +273 -0
- package/dist/tools/findInterruptions.js.map +1 -0
- package/dist/tools/findReleases.d.ts +3 -0
- package/dist/tools/findReleases.d.ts.map +1 -0
- package/dist/tools/findReleases.js +138 -0
- package/dist/tools/findReleases.js.map +1 -0
- package/dist/tools/findRunbooks.d.ts +3 -0
- package/dist/tools/findRunbooks.d.ts.map +1 -0
- package/dist/tools/findRunbooks.js +139 -0
- package/dist/tools/findRunbooks.js.map +1 -0
- package/dist/tools/findTenants.d.ts +19 -0
- package/dist/tools/findTenants.d.ts.map +1 -0
- package/dist/tools/findTenants.js +133 -0
- package/dist/tools/findTenants.js.map +1 -0
- package/dist/tools/getBranches.d.ts.map +1 -1
- package/dist/tools/getBranches.js +51 -33
- package/dist/tools/getBranches.js.map +1 -1
- package/dist/tools/getCurrentUser.d.ts.map +1 -1
- package/dist/tools/getCurrentUser.js +34 -25
- package/dist/tools/getCurrentUser.js.map +1 -1
- package/dist/tools/getDeploymentFromUrl.d.ts +57 -0
- package/dist/tools/getDeploymentFromUrl.d.ts.map +1 -0
- package/dist/tools/getDeploymentFromUrl.js +162 -0
- package/dist/tools/getDeploymentFromUrl.js.map +1 -0
- package/dist/tools/getDeploymentProcess.d.ts.map +1 -1
- package/dist/tools/getDeploymentProcess.js +57 -19
- package/dist/tools/getDeploymentProcess.js.map +1 -1
- package/dist/tools/getKubernetesLiveStatus.d.ts.map +1 -1
- package/dist/tools/getKubernetesLiveStatus.js +70 -48
- package/dist/tools/getKubernetesLiveStatus.js.map +1 -1
- package/dist/tools/getMissingTenantVariables.d.ts.map +1 -1
- package/dist/tools/getMissingTenantVariables.js +58 -26
- package/dist/tools/getMissingTenantVariables.js.map +1 -1
- package/dist/tools/getTaskFromUrl.d.ts +18 -0
- package/dist/tools/getTaskFromUrl.d.ts.map +1 -0
- package/dist/tools/getTaskFromUrl.js +90 -0
- package/dist/tools/getTaskFromUrl.js.map +1 -0
- package/dist/tools/getTenantVariables.d.ts.map +1 -1
- package/dist/tools/getTenantVariables.js +58 -38
- package/dist/tools/getTenantVariables.js.map +1 -1
- package/dist/tools/getVariables.d.ts.map +1 -1
- package/dist/tools/getVariables.js +12 -9
- package/dist/tools/getVariables.js.map +1 -1
- package/dist/tools/grepLlmsTxt.d.ts +13 -0
- package/dist/tools/grepLlmsTxt.d.ts.map +1 -0
- package/dist/tools/grepLlmsTxt.js +105 -0
- package/dist/tools/grepLlmsTxt.js.map +1 -0
- package/dist/tools/grepTaskLog.d.ts +30 -0
- package/dist/tools/grepTaskLog.d.ts.map +1 -0
- package/dist/tools/grepTaskLog.js +116 -0
- package/dist/tools/grepTaskLog.js.map +1 -0
- package/dist/tools/index.d.ts +22 -18
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +33 -21
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listDeployments.d.ts.map +1 -1
- package/dist/tools/listDeployments.js +77 -37
- package/dist/tools/listDeployments.js.map +1 -1
- package/dist/tools/listEnvironments.d.ts.map +1 -1
- package/dist/tools/listEnvironments.js +63 -37
- package/dist/tools/listEnvironments.js.map +1 -1
- package/dist/tools/listProjects.d.ts.map +1 -1
- package/dist/tools/listProjects.js +64 -38
- package/dist/tools/listProjects.js.map +1 -1
- package/dist/tools/listSpaces.d.ts.map +1 -1
- package/dist/tools/listSpaces.js +56 -30
- package/dist/tools/listSpaces.js.map +1 -1
- package/dist/tools/readResource.d.ts +3 -0
- package/dist/tools/readResource.d.ts.map +1 -0
- package/dist/tools/readResource.js +50 -0
- package/dist/tools/readResource.js.map +1 -0
- package/dist/tools/runRunbook.d.ts +3 -0
- package/dist/tools/runRunbook.d.ts.map +1 -0
- package/dist/tools/runRunbook.js +174 -0
- package/dist/tools/runRunbook.js.map +1 -0
- package/dist/tools/updateFeatureToggle.d.ts +94 -0
- package/dist/tools/updateFeatureToggle.d.ts.map +1 -0
- package/dist/tools/updateFeatureToggle.js +308 -0
- package/dist/tools/updateFeatureToggle.js.map +1 -0
- package/dist/types/featureToggleTypes.d.ts +47 -0
- package/dist/types/featureToggleTypes.d.ts.map +1 -0
- package/dist/types/featureToggleTypes.js +10 -0
- package/dist/types/featureToggleTypes.js.map +1 -0
- package/dist/types/resourceConfig.d.ts +17 -0
- package/dist/types/resourceConfig.d.ts.map +1 -0
- package/dist/types/resourceConfig.js +6 -0
- package/dist/types/resourceConfig.js.map +1 -0
- package/dist/types/toolAnnotations.d.ts +8 -0
- package/dist/types/toolAnnotations.d.ts.map +1 -0
- package/dist/types/toolAnnotations.js +28 -0
- package/dist/types/toolAnnotations.js.map +1 -0
- package/dist/types/toolConfig.d.ts +7 -1
- package/dist/types/toolConfig.d.ts.map +1 -1
- package/dist/types/toolConfig.js +4 -1
- package/dist/types/toolConfig.js.map +1 -1
- package/dist/utils/parseConfig.d.ts +1 -1
- package/dist/utils/parseConfig.d.ts.map +1 -1
- package/dist/utils/parseConfig.js +3 -2
- package/dist/utils/parseConfig.js.map +1 -1
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +3 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +9 -3
- package/dist/tools/getAccount.d.ts +0 -3
- package/dist/tools/getAccount.d.ts.map +0 -1
- package/dist/tools/getAccount.js +0 -40
- package/dist/tools/getAccount.js.map +0 -1
- package/dist/tools/getCertificate.d.ts +0 -3
- package/dist/tools/getCertificate.d.ts.map +0 -1
- package/dist/tools/getCertificate.js +0 -40
- package/dist/tools/getCertificate.js.map +0 -1
- package/dist/tools/getDeploymentTarget.d.ts +0 -3
- package/dist/tools/getDeploymentTarget.d.ts.map +0 -1
- package/dist/tools/getDeploymentTarget.js +0 -66
- package/dist/tools/getDeploymentTarget.js.map +0 -1
- package/dist/tools/getReleaseById.d.ts +0 -3
- package/dist/tools/getReleaseById.d.ts.map +0 -1
- package/dist/tools/getReleaseById.js +0 -45
- package/dist/tools/getReleaseById.js.map +0 -1
- package/dist/tools/getTaskById.d.ts +0 -9
- package/dist/tools/getTaskById.d.ts.map +0 -1
- package/dist/tools/getTaskById.js +0 -44
- package/dist/tools/getTaskById.js.map +0 -1
- package/dist/tools/getTaskDetails.d.ts +0 -9
- package/dist/tools/getTaskDetails.d.ts.map +0 -1
- package/dist/tools/getTaskDetails.js +0 -44
- package/dist/tools/getTaskDetails.js.map +0 -1
- package/dist/tools/getTaskRaw.d.ts +0 -9
- package/dist/tools/getTaskRaw.d.ts.map +0 -1
- package/dist/tools/getTaskRaw.js +0 -43
- package/dist/tools/getTaskRaw.js.map +0 -1
- package/dist/tools/getTenantById.d.ts +0 -3
- package/dist/tools/getTenantById.d.ts.map +0 -1
- package/dist/tools/getTenantById.js +0 -50
- package/dist/tools/getTenantById.js.map +0 -1
- package/dist/tools/listAccounts.d.ts +0 -3
- package/dist/tools/listAccounts.d.ts.map +0 -1
- package/dist/tools/listAccounts.js +0 -54
- package/dist/tools/listAccounts.js.map +0 -1
- package/dist/tools/listCertificates.d.ts +0 -3
- package/dist/tools/listCertificates.d.ts.map +0 -1
- package/dist/tools/listCertificates.js +0 -62
- package/dist/tools/listCertificates.js.map +0 -1
- package/dist/tools/listDeploymentTargets.d.ts +0 -3
- package/dist/tools/listDeploymentTargets.d.ts.map +0 -1
- package/dist/tools/listDeploymentTargets.js +0 -98
- package/dist/tools/listDeploymentTargets.js.map +0 -1
- package/dist/tools/listReleases.d.ts +0 -3
- package/dist/tools/listReleases.d.ts.map +0 -1
- package/dist/tools/listReleases.js +0 -54
- package/dist/tools/listReleases.js.map +0 -1
- package/dist/tools/listReleasesForProject.d.ts +0 -3
- package/dist/tools/listReleasesForProject.d.ts.map +0 -1
- package/dist/tools/listReleasesForProject.js +0 -60
- package/dist/tools/listReleasesForProject.js.map +0 -1
- package/dist/tools/listTenants.d.ts +0 -3
- package/dist/tools/listTenants.d.ts.map +0 -1
- package/dist/tools/listTenants.js +0 -69
- package/dist/tools/listTenants.js.map +0 -1
|
@@ -1,41 +1,79 @@
|
|
|
1
|
-
import { Client, resolveSpaceId, ProjectRepository } from "@octopusdeploy/api-client";
|
|
1
|
+
import { Client, resolveSpaceId, ProjectRepository, } from "@octopusdeploy/api-client";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
5
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
5
6
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
6
7
|
import {} from "../types/deploymentProcessTypes.js";
|
|
7
8
|
import { getProjectBranches } from "../helpers/vcsProjectHelpers.js";
|
|
8
9
|
export function registerGetDeploymentProcessTool(server) {
|
|
9
|
-
server.
|
|
10
|
-
|
|
11
|
-
This tool retrieves a deployment process by its ID. Each project has a deployment process attached, and releases/deployments can also have frozen processes attached.`, {
|
|
12
|
-
spaceName: z.string(),
|
|
13
|
-
projectId: z.string().optional().describe("The ID of the project to retrieve the deployment process for. If processId is not provided, this parameter is required."),
|
|
14
|
-
processId: z.string().optional().describe("The ID of the deployment process to retrieve. If not provided, the deployment process for the project will be retrieved."),
|
|
15
|
-
branchName: z.string().optional().describe("Optional branch name to get the deployment process for a specific branch (if using version controlled projects). Try `main` or `master` if unsure."),
|
|
16
|
-
includeDetails: z.boolean().optional().default(false).describe("Include detailed properties for steps and actions. Defaults to false."),
|
|
17
|
-
}, {
|
|
10
|
+
server.registerTool("get_deployment_process", {
|
|
18
11
|
title: "Get deployment process details from Octopus Deploy",
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
description: `Get deployment process by ID
|
|
13
|
+
|
|
14
|
+
This tool retrieves a deployment process by its ID. Each project has a deployment process attached, and releases/deployments can also have frozen processes attached.`,
|
|
15
|
+
inputSchema: {
|
|
16
|
+
spaceName: z.string(),
|
|
17
|
+
projectId: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("The ID of the project to retrieve the deployment process for. If processId is not provided, this parameter is required."),
|
|
21
|
+
processId: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("The ID of the deployment process to retrieve. If not provided, the deployment process for the project will be retrieved."),
|
|
25
|
+
branchName: z
|
|
26
|
+
.string()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Optional branch name to get the deployment process for a specific branch (if using version controlled projects). Try `main` or `master` if unsure."),
|
|
29
|
+
includeDetails: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.default(false)
|
|
33
|
+
.describe("Include detailed properties for steps and actions. Defaults to false."),
|
|
34
|
+
},
|
|
35
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
36
|
+
}, async ({ spaceName, processId, projectId, branchName, includeDetails = false, }) => {
|
|
21
37
|
if (!processId && !projectId) {
|
|
22
|
-
throw new Error("Either processId or projectId must be provided."
|
|
38
|
+
throw new Error("Either processId or projectId must be provided. " +
|
|
39
|
+
"Use list_projects to find project IDs (starting with 'Projects-') or " +
|
|
40
|
+
"use list_deployments to find process IDs (starting with 'DeploymentProcesses-').");
|
|
41
|
+
}
|
|
42
|
+
if (projectId && !projectId.startsWith("Projects-")) {
|
|
43
|
+
throw new Error(`Invalid project ID format '${projectId}'. Project IDs should start with 'Projects-' followed by numbers. ` +
|
|
44
|
+
"Use list_projects to find valid project IDs.");
|
|
45
|
+
}
|
|
46
|
+
if (processId && !processId.startsWith("DeploymentProcesses-")) {
|
|
47
|
+
throw new Error(`Invalid process ID format '${processId}'. Process IDs should start with 'DeploymentProcesses-' followed by numbers. ` +
|
|
48
|
+
"Use list_deployments to find valid process IDs.");
|
|
23
49
|
}
|
|
24
50
|
const configuration = getClientConfigurationFromEnvironment();
|
|
25
51
|
const client = await Client.create(configuration);
|
|
26
52
|
const spaceId = await resolveSpaceId(client, spaceName);
|
|
27
|
-
const projectRepository = projectId
|
|
28
|
-
|
|
53
|
+
const projectRepository = projectId
|
|
54
|
+
? new ProjectRepository(client, spaceName)
|
|
55
|
+
: null;
|
|
56
|
+
const project = projectRepository && projectId
|
|
57
|
+
? await projectRepository.get(projectId)
|
|
58
|
+
: null;
|
|
29
59
|
// If we were not supplied a processId, we assume we are retrieving the process for the specified project.
|
|
30
60
|
if (!processId) {
|
|
31
61
|
processId = project?.DeploymentProcessId;
|
|
32
62
|
}
|
|
33
63
|
if (project?.IsVersionControlled && !branchName) {
|
|
34
|
-
throw new Error(
|
|
64
|
+
throw new Error(`Branch name required for version controlled project '${projectId}'. ` +
|
|
65
|
+
"Try 'main' or 'master', or use get_branches tool to list available branches.");
|
|
35
66
|
}
|
|
36
67
|
// If using branchName get the canonical ref first
|
|
37
|
-
const branches = branchName &&
|
|
38
|
-
|
|
68
|
+
const branches = branchName &&
|
|
69
|
+
projectId &&
|
|
70
|
+
(await getProjectBranches(client, spaceId, projectId, {
|
|
71
|
+
take: 1,
|
|
72
|
+
searchByName: branchName,
|
|
73
|
+
}));
|
|
74
|
+
const gitRef = branches && branches.Items.length > 0
|
|
75
|
+
? branches.Items[0].CanonicalName
|
|
76
|
+
: undefined;
|
|
39
77
|
const url = gitRef
|
|
40
78
|
? `~/api/{spaceId}/projects/{projectId}/{gitRef}/deploymentprocesses`
|
|
41
79
|
: `~/api/{spaceId}/deploymentprocesses/{processId}`;
|
|
@@ -43,7 +81,7 @@ This tool retrieves a deployment process by its ID. Each project has a deploymen
|
|
|
43
81
|
spaceId,
|
|
44
82
|
projectId,
|
|
45
83
|
processId,
|
|
46
|
-
gitRef
|
|
84
|
+
gitRef,
|
|
47
85
|
});
|
|
48
86
|
const deploymentProcess = {
|
|
49
87
|
spaceId: response.SpaceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDeploymentProcess.js","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getDeploymentProcess.js","sourceRoot":"","sources":["../../src/tools/getDeploymentProcess.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKubernetesLiveStatus.d.ts","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getKubernetesLiveStatus.d.ts","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,SAAS,QAwFpE"}
|
|
@@ -3,57 +3,79 @@ import { z } from "zod";
|
|
|
3
3
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
7
|
+
import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES, isErrorWithMessage } from "../helpers/errorHandling.js";
|
|
6
8
|
export function registerGetKubernetesLiveStatusTool(server) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
This tool retrieves the live status of Kubernetes resources for a specific project and environment. Optionally include a tenant ID for multi-tenant deployments.`, {
|
|
10
|
-
spaceName: z.string().describe("The space name"),
|
|
11
|
-
projectId: z.string().describe("The ID of the project"),
|
|
12
|
-
environmentId: z.string().describe("The ID of the environment"),
|
|
13
|
-
tenantId: z.string().optional().describe("The ID of the tenant (for multi-tenant deployments)"),
|
|
14
|
-
summaryOnly: z.boolean().optional().describe("Return summary information only")
|
|
15
|
-
}, {
|
|
9
|
+
server.registerTool("get_kubernetes_live_status", {
|
|
16
10
|
title: "Get Kubernetes live status from Octopus Deploy",
|
|
17
|
-
|
|
11
|
+
description: `Get Kubernetes live status for a project and environment
|
|
12
|
+
|
|
13
|
+
This tool retrieves the live status of Kubernetes resources for a specific project and environment. Optionally include a tenant ID for multi-tenant deployments.`,
|
|
14
|
+
inputSchema: {
|
|
15
|
+
spaceName: z.string().describe("The space name"),
|
|
16
|
+
projectId: z.string().describe("The ID of the project"),
|
|
17
|
+
environmentId: z.string().describe("The ID of the environment"),
|
|
18
|
+
tenantId: z.string().optional().describe("The ID of the tenant (for multi-tenant deployments)"),
|
|
19
|
+
summaryOnly: z.boolean().optional().describe("Return summary information only")
|
|
20
|
+
},
|
|
21
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
18
22
|
}, async ({ spaceName, projectId, environmentId, tenantId, summaryOnly = false }) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
23
|
+
validateEntityId(projectId, 'project', ENTITY_PREFIXES.project);
|
|
24
|
+
validateEntityId(environmentId, 'environment', ENTITY_PREFIXES.environment);
|
|
25
|
+
if (tenantId) {
|
|
26
|
+
validateEntityId(tenantId, 'tenant', ENTITY_PREFIXES.tenant);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
30
|
+
const client = await Client.create(configuration);
|
|
31
|
+
const observabilityRepository = new ObservabilityRepository(client, spaceName);
|
|
32
|
+
const liveStatus = await observabilityRepository.getLiveStatus(projectId, environmentId, tenantId, summaryOnly);
|
|
33
|
+
if (!liveStatus || (!liveStatus.MachineStatuses && !liveStatus.Summary)) {
|
|
34
|
+
throw new Error(`No Kubernetes live status found for project '${projectId}' in environment '${environmentId}'${tenantId ? ` for tenant '${tenantId}'` : ''}. ` +
|
|
35
|
+
"This may indicate that the project is not deployed to Kubernetes in this environment, or the resources are not being monitored.");
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
content: [
|
|
39
|
+
{
|
|
40
|
+
type: "text",
|
|
41
|
+
text: JSON.stringify({
|
|
42
|
+
projectId,
|
|
43
|
+
environmentId,
|
|
44
|
+
tenantId,
|
|
45
|
+
summaryOnly: summaryOnly,
|
|
46
|
+
liveStatus: {
|
|
47
|
+
machineStatuses: liveStatus.MachineStatuses?.map((machine) => ({
|
|
48
|
+
machineId: machine.MachineId,
|
|
49
|
+
status: machine.Status,
|
|
50
|
+
resources: machine.Resources?.map((resource) => ({
|
|
51
|
+
name: resource.Name,
|
|
52
|
+
namespace: resource.Namespace,
|
|
53
|
+
kind: resource.Kind,
|
|
54
|
+
healthStatus: resource.HealthStatus,
|
|
55
|
+
syncStatus: resource.SyncStatus,
|
|
56
|
+
machineId: resource.MachineId,
|
|
57
|
+
children: resource.Children,
|
|
58
|
+
desiredResourceId: resource.DesiredResourceId,
|
|
59
|
+
resourceId: resource.ResourceId
|
|
60
|
+
}))
|
|
61
|
+
})),
|
|
62
|
+
summary: liveStatus.Summary ? {
|
|
63
|
+
status: liveStatus.Summary.Status,
|
|
64
|
+
lastUpdated: liveStatus.Summary.LastUpdated
|
|
65
|
+
} : undefined
|
|
66
|
+
}
|
|
67
|
+
}),
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (isErrorWithMessage(error, 'minimum version')) {
|
|
74
|
+
throw new Error(`Kubernetes live status requires Octopus Deploy version 2025.3 or later. ` +
|
|
75
|
+
"This feature is not available in your Octopus Deploy instance version.");
|
|
76
|
+
}
|
|
77
|
+
handleOctopusApiError(error, { spaceName });
|
|
78
|
+
}
|
|
57
79
|
});
|
|
58
80
|
}
|
|
59
81
|
registerToolDefinition({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getKubernetesLiveStatus.js","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAA+E,MAAM,2BAA2B,CAAC;AACzJ,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"getKubernetesLiveStatus.js","sourceRoot":"","sources":["../../src/tools/getKubernetesLiveStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMissingTenantVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getMissingTenantVariables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getMissingTenantVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getMissingTenantVariables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,SAAS,QA0EtE"}
|
|
@@ -3,40 +3,72 @@ import { z } from "zod";
|
|
|
3
3
|
import {} from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { getClientConfigurationFromEnvironment } from "../helpers/getClientConfigurationFromEnvironment.js";
|
|
5
5
|
import { registerToolDefinition } from "../types/toolConfig.js";
|
|
6
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from "../types/toolAnnotations.js";
|
|
7
|
+
import { validateEntityId, handleOctopusApiError, ENTITY_PREFIXES } from "../helpers/errorHandling.js";
|
|
6
8
|
export function registerGetMissingTenantVariablesTool(server) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
This tool retrieves tenant variables that are missing values. Optionally filter by tenant, project, or environment.`, {
|
|
10
|
-
spaceName: z.string().describe("The space name"),
|
|
11
|
-
tenantId: z.string().optional().describe("Filter by specific tenant ID"),
|
|
12
|
-
projectId: z.string().optional().describe("Filter by specific project ID"),
|
|
13
|
-
environmentId: z.string().optional().describe("Filter by specific environment ID"),
|
|
14
|
-
includeDetails: z.boolean().optional().describe("Include detailed information about missing variables")
|
|
15
|
-
}, {
|
|
9
|
+
server.registerTool("get_missing_tenant_variables", {
|
|
16
10
|
title: "Get missing tenant variables from Octopus Deploy",
|
|
17
|
-
|
|
11
|
+
description: `Get missing tenant variables
|
|
12
|
+
|
|
13
|
+
This tool retrieves tenant variables that are missing values. Optionally filter by tenant, project, or environment.`,
|
|
14
|
+
inputSchema: {
|
|
15
|
+
spaceName: z.string().describe("The space name"),
|
|
16
|
+
tenantId: z.string().optional().describe("Filter by specific tenant ID"),
|
|
17
|
+
projectId: z.string().optional().describe("Filter by specific project ID"),
|
|
18
|
+
environmentId: z.string().optional().describe("Filter by specific environment ID"),
|
|
19
|
+
includeDetails: z.boolean().optional().describe("Include detailed information about missing variables")
|
|
20
|
+
},
|
|
21
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
18
22
|
}, async ({ spaceName, tenantId, projectId, environmentId, includeDetails = false }) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
if (tenantId) {
|
|
24
|
+
validateEntityId(tenantId, 'tenant', ENTITY_PREFIXES.tenant);
|
|
25
|
+
}
|
|
26
|
+
if (projectId) {
|
|
27
|
+
validateEntityId(projectId, 'project', ENTITY_PREFIXES.project);
|
|
28
|
+
}
|
|
29
|
+
if (environmentId) {
|
|
30
|
+
validateEntityId(environmentId, 'environment', ENTITY_PREFIXES.environment);
|
|
31
|
+
}
|
|
22
32
|
const filterOptions = {
|
|
23
33
|
tenantId,
|
|
24
34
|
projectId,
|
|
25
35
|
environmentId
|
|
26
36
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
try {
|
|
38
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
39
|
+
const client = await Client.create(configuration);
|
|
40
|
+
const tenantRepository = new TenantRepository(client, spaceName);
|
|
41
|
+
const missingVariables = await tenantRepository.missingVariables(filterOptions, includeDetails);
|
|
42
|
+
if (!missingVariables || (Array.isArray(missingVariables) && missingVariables.length === 0)) {
|
|
43
|
+
const filterDescription = Object.entries(filterOptions)
|
|
44
|
+
.filter(([, value]) => value)
|
|
45
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
46
|
+
.join(', ') || 'no filters';
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: `No missing tenant variables found with filters: ${filterDescription}. All required variables appear to be configured.`,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
content: [
|
|
58
|
+
{
|
|
59
|
+
type: "text",
|
|
60
|
+
text: JSON.stringify({
|
|
61
|
+
filters: filterOptions,
|
|
62
|
+
includeDetails,
|
|
63
|
+
missingVariables
|
|
64
|
+
}),
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
handleOctopusApiError(error, { spaceName });
|
|
71
|
+
}
|
|
40
72
|
});
|
|
41
73
|
}
|
|
42
74
|
registerToolDefinition({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMissingTenantVariables.js","sourceRoot":"","sources":["../../src/tools/getMissingTenantVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,qCAAqC,EAAE,MAAM,qDAAqD,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"getMissingTenantVariables.js","sourceRoot":"","sources":["../../src/tools/getMissingTenantVariables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Client } from '@octopusdeploy/api-client';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
export interface GetTaskFromUrlParams {
|
|
4
|
+
url: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getTaskFromUrl(client: Client, params: GetTaskFromUrlParams): Promise<{
|
|
7
|
+
task: import("@octopusdeploy/api-client").ServerTaskDetails;
|
|
8
|
+
resolvedSpaceName: string;
|
|
9
|
+
resolvedTaskId: string;
|
|
10
|
+
urlInfo: {
|
|
11
|
+
originalUrl: string;
|
|
12
|
+
extractedSpaceId: string;
|
|
13
|
+
extractedTaskId: string;
|
|
14
|
+
resourceType: "project" | "tenant" | "deployment" | "release" | "task" | "unknown" | undefined;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
export declare function registerGetTaskFromUrlTool(server: McpServer): void;
|
|
18
|
+
//# sourceMappingURL=getTaskFromUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTaskFromUrl.d.ts","sourceRoot":"","sources":["../../src/tools/getTaskFromUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6B,MAAM,2BAA2B,CAAC;AAG9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;;;;;;;;;;GA0ChF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAiD3D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Client, SpaceServerTaskRepository } from '@octopusdeploy/api-client';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getClientConfigurationFromEnvironment } from '../helpers/getClientConfigurationFromEnvironment.js';
|
|
4
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import { registerToolDefinition } from '../types/toolConfig.js';
|
|
6
|
+
import { READ_ONLY_TOOL_ANNOTATIONS } from '../types/toolAnnotations.js';
|
|
7
|
+
import { tasksDescription } from '../types/taskTypes.js';
|
|
8
|
+
import { parseOctopusUrl, extractTaskId } from '../helpers/urlParser.js';
|
|
9
|
+
import { resolveSpaceNameFromId } from '../helpers/spaceResolver.js';
|
|
10
|
+
import { validateEntityId, ENTITY_PREFIXES } from '../helpers/errorHandling.js';
|
|
11
|
+
export async function getTaskFromUrl(client, params) {
|
|
12
|
+
const { url } = params;
|
|
13
|
+
if (!url) {
|
|
14
|
+
throw new Error("URL is required");
|
|
15
|
+
}
|
|
16
|
+
const urlParts = parseOctopusUrl(url);
|
|
17
|
+
if (!urlParts.spaceId) {
|
|
18
|
+
throw new Error("Could not extract space ID from URL. URL must contain a space identifier like 'Spaces-1234'");
|
|
19
|
+
}
|
|
20
|
+
const spaceName = await resolveSpaceNameFromId(client, urlParts.spaceId);
|
|
21
|
+
const taskId = extractTaskId(url);
|
|
22
|
+
if (!taskId) {
|
|
23
|
+
throw new Error(`Could not extract task ID from URL. ` +
|
|
24
|
+
`URL must contain a task identifier (ServerTasks-XXXXX). ` +
|
|
25
|
+
`If you have a deployment URL, use get_deployment_from_url first to resolve the task ID, ` +
|
|
26
|
+
`then fetch octopus://spaces/{spaceName}/tasks/{taskId}/details for the structured activity tree, or call grep_task_log to search the raw log.`);
|
|
27
|
+
}
|
|
28
|
+
validateEntityId(taskId, 'task', ENTITY_PREFIXES.task);
|
|
29
|
+
const serverTaskRepository = new SpaceServerTaskRepository(client, spaceName);
|
|
30
|
+
const response = await serverTaskRepository.getDetails(taskId);
|
|
31
|
+
return {
|
|
32
|
+
task: response,
|
|
33
|
+
resolvedSpaceName: spaceName,
|
|
34
|
+
resolvedTaskId: taskId,
|
|
35
|
+
urlInfo: {
|
|
36
|
+
originalUrl: url,
|
|
37
|
+
extractedSpaceId: urlParts.spaceId,
|
|
38
|
+
extractedTaskId: taskId,
|
|
39
|
+
resourceType: urlParts.resourceType,
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function registerGetTaskFromUrlTool(server) {
|
|
44
|
+
server.registerTool('get_task_from_url', {
|
|
45
|
+
title: 'Get task details from an Octopus Deploy URL',
|
|
46
|
+
description: `Get task details from an Octopus Deploy task URL. Returns full task details including execution logs and state.
|
|
47
|
+
|
|
48
|
+
Accepts task URLs like:
|
|
49
|
+
https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456
|
|
50
|
+
|
|
51
|
+
Key features:
|
|
52
|
+
- Returns full task details including execution logs
|
|
53
|
+
- Handles space ID to space name resolution automatically
|
|
54
|
+
- Validates task ID format
|
|
55
|
+
|
|
56
|
+
For deployment URLs:
|
|
57
|
+
If you have a deployment URL, use this workflow:
|
|
58
|
+
1. Call get_deployment_from_url with the deployment URL
|
|
59
|
+
2. Use the returned taskResourceUri (structured tree) or call grep_task_log with the returned taskId to search the raw log
|
|
60
|
+
|
|
61
|
+
${tasksDescription}`,
|
|
62
|
+
inputSchema: {
|
|
63
|
+
url: z.string()
|
|
64
|
+
.describe("Full Octopus Deploy task URL containing a task ID (e.g., https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456)")
|
|
65
|
+
},
|
|
66
|
+
annotations: READ_ONLY_TOOL_ANNOTATIONS,
|
|
67
|
+
}, async (args) => {
|
|
68
|
+
const { url } = args;
|
|
69
|
+
if (!url) {
|
|
70
|
+
throw new Error("URL is required");
|
|
71
|
+
}
|
|
72
|
+
const configuration = getClientConfigurationFromEnvironment();
|
|
73
|
+
const client = await Client.create(configuration);
|
|
74
|
+
const result = await getTaskFromUrl(client, { url });
|
|
75
|
+
return {
|
|
76
|
+
content: [
|
|
77
|
+
{
|
|
78
|
+
type: "text",
|
|
79
|
+
text: JSON.stringify(result, null, 2),
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
registerToolDefinition({
|
|
86
|
+
toolName: "get_task_from_url",
|
|
87
|
+
config: { toolset: "tasks", readOnly: true },
|
|
88
|
+
registerFn: registerGetTaskFromUrlTool,
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=getTaskFromUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTaskFromUrl.js","sourceRoot":"","sources":["../../src/tools/getTaskFromUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTenantVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getTenantVariables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getTenantVariables.d.ts","sourceRoot":"","sources":["../../src/tools/getTenantVariables.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,QA4E/D"}
|