devops-mcp-server-extension 1.0.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/LICENSE +218 -0
- package/README.md +527 -0
- package/README.zh-cn.md +503 -0
- package/dist/common/errors.js +77 -0
- package/dist/common/modularTemplates.js +483 -0
- package/dist/common/pipelineTemplates.js +19 -0
- package/dist/common/toolsetManager.js +123 -0
- package/dist/common/toolsets.js +23 -0
- package/dist/common/types.js +60 -0
- package/dist/common/utils.js +381 -0
- package/dist/common/version.js +1 -0
- package/dist/index.js +225 -0
- package/dist/operations/appstack/appOrchestrations.js +260 -0
- package/dist/operations/appstack/appTags.js +168 -0
- package/dist/operations/appstack/appTemplates.js +72 -0
- package/dist/operations/appstack/applications.js +171 -0
- package/dist/operations/appstack/changeOrders.js +320 -0
- package/dist/operations/appstack/changeRequests.js +288 -0
- package/dist/operations/appstack/deploymentResources.js +286 -0
- package/dist/operations/appstack/globalVars.js +221 -0
- package/dist/operations/appstack/releaseWorkflows.js +695 -0
- package/dist/operations/appstack/variableGroups.js +245 -0
- package/dist/operations/codeup/branches.js +157 -0
- package/dist/operations/codeup/changeRequestComments.js +140 -0
- package/dist/operations/codeup/changeRequests.js +230 -0
- package/dist/operations/codeup/commits.js +121 -0
- package/dist/operations/codeup/compare.js +30 -0
- package/dist/operations/codeup/files.js +249 -0
- package/dist/operations/codeup/repositories.js +71 -0
- package/dist/operations/codeup/types.js +414 -0
- package/dist/operations/flow/hostGroup.js +52 -0
- package/dist/operations/flow/pipeline.js +609 -0
- package/dist/operations/flow/pipelineJob.js +126 -0
- package/dist/operations/flow/resourceMember.js +137 -0
- package/dist/operations/flow/serviceConnection.js +27 -0
- package/dist/operations/flow/tag.js +191 -0
- package/dist/operations/flow/types.js +523 -0
- package/dist/operations/flow/vmDeployOrder.js +171 -0
- package/dist/operations/organization/members.js +106 -0
- package/dist/operations/organization/organization.js +110 -0
- package/dist/operations/organization/types.js +111 -0
- package/dist/operations/packages/artifacts.js +71 -0
- package/dist/operations/packages/repositories.js +39 -0
- package/dist/operations/packages/types.js +56 -0
- package/dist/operations/projex/effort.js +122 -0
- package/dist/operations/projex/project.js +243 -0
- package/dist/operations/projex/sprint.js +103 -0
- package/dist/operations/projex/types.js +618 -0
- package/dist/operations/projex/workitem.js +826 -0
- package/dist/operations/testhub/testcases.js +240 -0
- package/dist/operations/testhub/testplans.js +128 -0
- package/dist/tool-handlers/appstack-app-release-workflows.js +103 -0
- package/dist/tool-handlers/appstack-change-orders.js +55 -0
- package/dist/tool-handlers/appstack-change-requests.js +49 -0
- package/dist/tool-handlers/appstack-deployment-resources.js +31 -0
- package/dist/tool-handlers/appstack-global-vars.js +37 -0
- package/dist/tool-handlers/appstack-orchestrations.js +49 -0
- package/dist/tool-handlers/appstack-release-workflows.js +37 -0
- package/dist/tool-handlers/appstack-tags.js +37 -0
- package/dist/tool-handlers/appstack-templates.js +19 -0
- package/dist/tool-handlers/appstack-variable-groups.js +55 -0
- package/dist/tool-handlers/appstack.js +37 -0
- package/dist/tool-handlers/base.js +25 -0
- package/dist/tool-handlers/code-management.js +150 -0
- package/dist/tool-handlers/commit.js +31 -0
- package/dist/tool-handlers/effort.js +103 -0
- package/dist/tool-handlers/index.js +119 -0
- package/dist/tool-handlers/organization.js +72 -0
- package/dist/tool-handlers/packages.js +32 -0
- package/dist/tool-handlers/pipeline.js +289 -0
- package/dist/tool-handlers/project-management.js +201 -0
- package/dist/tool-handlers/resourceMember.js +43 -0
- package/dist/tool-handlers/service-connections.js +16 -0
- package/dist/tool-handlers/tag.js +64 -0
- package/dist/tool-handlers/test-management.js +74 -0
- package/dist/tool-handlers/vmDeployOrder.js +50 -0
- package/dist/tool-registry/appstack-app-release-workflows.js +80 -0
- package/dist/tool-registry/appstack-change-orders.js +40 -0
- package/dist/tool-registry/appstack-change-requests.js +35 -0
- package/dist/tool-registry/appstack-deployment-resources.js +20 -0
- package/dist/tool-registry/appstack-global-vars.js +25 -0
- package/dist/tool-registry/appstack-orchestrations.js +35 -0
- package/dist/tool-registry/appstack-release-workflows.js +25 -0
- package/dist/tool-registry/appstack-tags.js +25 -0
- package/dist/tool-registry/appstack-templates.js +10 -0
- package/dist/tool-registry/appstack-variable-groups.js +40 -0
- package/dist/tool-registry/appstack.js +25 -0
- package/dist/tool-registry/base.js +19 -0
- package/dist/tool-registry/code-management.js +109 -0
- package/dist/tool-registry/commit.js +20 -0
- package/dist/tool-registry/effort.js +39 -0
- package/dist/tool-registry/index.js +7 -0
- package/dist/tool-registry/organization.js +65 -0
- package/dist/tool-registry/packages.js +21 -0
- package/dist/tool-registry/pipeline.js +190 -0
- package/dist/tool-registry/project-management.js +143 -0
- package/dist/tool-registry/resourceMember.js +29 -0
- package/dist/tool-registry/service-connections.js +10 -0
- package/dist/tool-registry/tag.js +44 -0
- package/dist/tool-registry/test-management.js +59 -0
- package/dist/tool-registry/vmDeployOrder.js +34 -0
- package/package.json +52 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as project from '../operations/projex/project.js';
|
|
2
|
+
import * as workitem from '../operations/projex/workitem.js';
|
|
3
|
+
import * as sprint from '../operations/projex/sprint.js';
|
|
4
|
+
import * as types from '../common/types.js';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export const handleProjectManagementTools = async (request) => {
|
|
7
|
+
switch (request.params.name) {
|
|
8
|
+
// Project Operations
|
|
9
|
+
case "get_project": {
|
|
10
|
+
const args = types.GetProjectSchema.parse(request.params.arguments);
|
|
11
|
+
const projectInfo = await project.getProjectFunc(args.organizationId, args.id);
|
|
12
|
+
return {
|
|
13
|
+
content: [{ type: "text", text: JSON.stringify(projectInfo, null, 2) }],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
case "search_projects": {
|
|
17
|
+
const args = types.SearchProjectsSchema.parse(request.params.arguments);
|
|
18
|
+
const projects = await project.searchProjectsFunc(args.organizationId, args.name ?? undefined, args.status ?? undefined, args.createdAfter ?? undefined, args.createdBefore ?? undefined, args.creator ?? undefined, args.adminUserId ?? undefined, args.logicalStatus ?? undefined, args.advancedConditions ?? undefined, args.extraConditions ?? undefined, args.orderBy, args.page, args.perPage, args.sort, args.scenarioFilter ?? undefined, args.userId ?? undefined);
|
|
19
|
+
return {
|
|
20
|
+
content: [{ type: "text", text: JSON.stringify(projects, null, 2) }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
case "list_project_members": {
|
|
24
|
+
const args = types.ListProjectMembersSchema.parse(request.params.arguments);
|
|
25
|
+
const members = await project.listProjectMembersFunc(args.organizationId, args.id, args.name, args.roleId);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: JSON.stringify(members, null, 2) }],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Sprint Operations
|
|
31
|
+
case "get_sprint": {
|
|
32
|
+
const args = types.GetSprintSchema.parse(request.params.arguments);
|
|
33
|
+
const sprintInfo = await sprint.getSprintFunc(args.organizationId, args.projectId, args.id);
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: "text", text: JSON.stringify(sprintInfo, null, 2) }],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
case "list_sprints": {
|
|
39
|
+
const args = types.ListSprintsSchema.parse(request.params.arguments);
|
|
40
|
+
const sprints = await sprint.listSprintsFunc(args.organizationId, args.id, args.status, args.page, args.perPage);
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: "text", text: JSON.stringify(sprints, null, 2) }],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
case "create_sprint": {
|
|
46
|
+
const args = types.CreateSprintSchema.parse(request.params.arguments);
|
|
47
|
+
const sprintResult = await sprint.createSprintFunc(args.organizationId, args.projectId, args.name, args.owners, args.startDate, args.endDate, args.description, args.capacityHours);
|
|
48
|
+
return {
|
|
49
|
+
content: [{ type: "text", text: JSON.stringify(sprintResult, null, 2) }],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
case "update_sprint": {
|
|
53
|
+
const args = types.UpdateSprintSchema.parse(request.params.arguments);
|
|
54
|
+
await sprint.updateSprintFunc(args.organizationId, args.projectId, args.id, args.name, args.owners, args.startDate, args.endDate, args.description, args.capacityHours);
|
|
55
|
+
return {
|
|
56
|
+
content: [{ type: "text", text: "Sprint updated successfully" }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Work Item Operations
|
|
60
|
+
case "get_work_item": {
|
|
61
|
+
const args = types.GetWorkItemSchema.parse(request.params.arguments);
|
|
62
|
+
const workItemInfo = await workitem.getWorkItemFunc(args.organizationId, args.workItemId);
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: "text", text: JSON.stringify(workItemInfo, null, 2) }],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
case "create_work_item": {
|
|
68
|
+
const args = types.CreateWorkItemSchema.parse(request.params.arguments);
|
|
69
|
+
const workItemInfo = await workitem.createWorkItemFunc(args.organizationId, args.assignedTo, args.spaceId, args.subject, args.workitemTypeId, args.customFieldValues, args.description, args.labels, args.parentId, args.participants, args.sprint, args.trackers, args.verifier, args.versions);
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: "text", text: JSON.stringify(workItemInfo, null, 2) }],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
case "search_workitems": {
|
|
75
|
+
const args = types.SearchWorkitemsSchema.parse(request.params.arguments);
|
|
76
|
+
const result = await workitem.searchWorkitemsFunc(args.organizationId, args.category, args.spaceId, args.subject ?? undefined, args.status ?? undefined, args.createdAfter ?? undefined, args.createdBefore ?? undefined, args.updatedAfter ?? undefined, args.updatedBefore ?? undefined, args.creator ?? undefined, args.assignedTo ?? undefined, args.sprint ?? undefined, args.workitemType ?? undefined, args.statusStage ?? undefined, args.tag ?? undefined, args.priority ?? undefined, args.subjectDescription ?? undefined, args.finishTimeAfter ?? undefined, args.finishTimeBefore ?? undefined, args.updateStatusAtAfter ?? undefined, args.updateStatusAtBefore ?? undefined, args.advancedConditions ?? undefined, args.orderBy ?? "gmtCreate", args.sort ?? "desc", args.page, args.perPage, args.includeDetails ?? false);
|
|
77
|
+
return {
|
|
78
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
case "get_work_item_types": {
|
|
82
|
+
const args = z.object({
|
|
83
|
+
organizationId: z.string().describe("organization id"),
|
|
84
|
+
id: z.string().describe("project id or space id"),
|
|
85
|
+
category: z.string().describe("Req、Task、Bug etc.")
|
|
86
|
+
}).parse(request.params.arguments);
|
|
87
|
+
const workItemTypes = await workitem.getWorkItemTypesFunc(args.organizationId, args.id, args.category);
|
|
88
|
+
return {
|
|
89
|
+
content: [{ type: "text", text: JSON.stringify(workItemTypes, null, 2) }],
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
case "update_work_item": {
|
|
93
|
+
const args = types.UpdateWorkItemSchema.parse(request.params.arguments);
|
|
94
|
+
await workitem.updateWorkItemFunc(args.organizationId, args.workItemId, args.updateWorkItemFields);
|
|
95
|
+
return {
|
|
96
|
+
content: [{ type: "text", text: JSON.stringify({ success: true, message: "Work item updated successfully" }, null, 2) }],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Work Item Type Operations
|
|
100
|
+
case "list_all_work_item_types": {
|
|
101
|
+
const args = types.ListAllWorkItemTypesSchema.parse(request.params.arguments);
|
|
102
|
+
const workItemTypes = await workitem.listAllWorkItemTypesFunc(args.organizationId);
|
|
103
|
+
return {
|
|
104
|
+
content: [{ type: "text", text: JSON.stringify(workItemTypes, null, 2) }],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
case "list_work_item_types": {
|
|
108
|
+
const args = types.ListWorkItemTypesSchema.parse(request.params.arguments);
|
|
109
|
+
const workItemTypes = await workitem.listWorkItemTypesFunc(args.organizationId, args.projectId, args.category);
|
|
110
|
+
return {
|
|
111
|
+
content: [{ type: "text", text: JSON.stringify(workItemTypes, null, 2) }],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
case "get_work_item_type": {
|
|
115
|
+
const args = types.GetWorkItemTypeSchema.parse(request.params.arguments);
|
|
116
|
+
const workItemType = await workitem.getWorkItemTypeFunc(args.organizationId, args.id);
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: "text", text: JSON.stringify(workItemType, null, 2) }],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
case "list_work_item_relation_work_item_types": {
|
|
122
|
+
const args = types.ListWorkItemRelationWorkItemTypesSchema.parse(request.params.arguments);
|
|
123
|
+
const workItemTypes = await workitem.listWorkItemRelationWorkItemTypesFunc(args.organizationId, args.workItemTypeId, args.relationType);
|
|
124
|
+
return {
|
|
125
|
+
content: [{ type: "text", text: JSON.stringify(workItemTypes, null, 2) }],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
case "get_work_item_type_field_config": {
|
|
129
|
+
const args = types.GetWorkItemTypeFieldConfigSchema.parse(request.params.arguments);
|
|
130
|
+
const fieldConfig = await workitem.getWorkItemTypeFieldConfigFunc(args.organizationId, args.projectId, args.workItemTypeId);
|
|
131
|
+
return {
|
|
132
|
+
content: [{ type: "text", text: JSON.stringify(fieldConfig, null, 2) }],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
case "get_work_item_workflow": {
|
|
136
|
+
const args = types.GetWorkItemWorkflowSchema.parse(request.params.arguments);
|
|
137
|
+
const workflow = await workitem.getWorkItemWorkflowFunc(args.organizationId, args.projectId, args.workItemTypeId);
|
|
138
|
+
return {
|
|
139
|
+
content: [{ type: "text", text: JSON.stringify(workflow, null, 2) }],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
case "list_work_item_comments": {
|
|
143
|
+
const args = types.ListWorkItemCommentsSchema.parse(request.params.arguments);
|
|
144
|
+
const comments = await workitem.listWorkItemCommentsFunc(args.organizationId, args.workItemId, args.page, args.perPage);
|
|
145
|
+
return {
|
|
146
|
+
content: [{ type: "text", text: JSON.stringify(comments, null, 2) }],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
case "create_work_item_comment": {
|
|
150
|
+
const args = types.CreateWorkItemCommentSchema.parse(request.params.arguments);
|
|
151
|
+
const comment = await workitem.createWorkItemCommentFunc(args.organizationId, args.workItemId, args.content);
|
|
152
|
+
return {
|
|
153
|
+
content: [{ type: "text", text: JSON.stringify(comment, null, 2) }],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
case "list_workitem_activities": {
|
|
157
|
+
const args = types.ListWorkitemActivitiesSchema.parse(request.params.arguments);
|
|
158
|
+
const activities = await workitem.listWorkitemActivitiesFunc(args.organizationId, args.workItemId);
|
|
159
|
+
return {
|
|
160
|
+
content: [{ type: "text", text: JSON.stringify(activities, null, 2) }],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
case "list_workitem_attachments": {
|
|
164
|
+
const args = types.ListWorkitemAttachmentsSchema.parse(request.params.arguments);
|
|
165
|
+
const attachments = await workitem.listWorkitemAttachmentsFunc(args.organizationId, args.workItemId);
|
|
166
|
+
return {
|
|
167
|
+
content: [{ type: "text", text: JSON.stringify(attachments, null, 2) }],
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
case "get_workitem_file": {
|
|
171
|
+
const args = types.GetWorkitemFileSchema.parse(request.params.arguments);
|
|
172
|
+
const file = await workitem.getWorkitemFileFunc(args.organizationId, args.workItemId, args.fileId);
|
|
173
|
+
return {
|
|
174
|
+
content: [{ type: "text", text: JSON.stringify(file, null, 2) }],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
case "list_workitem_relation_records": {
|
|
178
|
+
const args = types.ListWorkitemRelationRecordsSchema.parse(request.params.arguments);
|
|
179
|
+
const relations = await workitem.listWorkitemRelationRecordsFunc(args.organizationId, args.workItemId, args.relationType);
|
|
180
|
+
return {
|
|
181
|
+
content: [{ type: "text", text: JSON.stringify(relations, null, 2) }],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
case "create_workitem_relation_record": {
|
|
185
|
+
const args = types.CreateWorkitemRelationRecordSchema.parse(request.params.arguments);
|
|
186
|
+
const result = await workitem.createWorkitemRelationRecordFunc(args.organizationId, args.workItemId, args.relationType, args.relatedWorkitemId);
|
|
187
|
+
return {
|
|
188
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
case "delete_workitem_relation_record": {
|
|
192
|
+
const args = types.DeleteWorkitemRelationRecordSchema.parse(request.params.arguments);
|
|
193
|
+
await workitem.deleteWorkitemRelationRecordFunc(args.organizationId, args.workItemId, args.relationType, args.relatedWorkitemId);
|
|
194
|
+
return {
|
|
195
|
+
content: [{ type: "text", text: JSON.stringify({ success: true, message: "Work item relation record deleted successfully" }, null, 2) }],
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
default:
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as resourceMember from '../operations/flow/resourceMember.js';
|
|
2
|
+
import * as types from '../common/types.js';
|
|
3
|
+
export const handleResourceMemberTools = async (request) => {
|
|
4
|
+
switch (request.params.name) {
|
|
5
|
+
case "delete_resource_member": {
|
|
6
|
+
const args = types.DeleteResourceMemberSchema.parse(request.params.arguments);
|
|
7
|
+
const result = await resourceMember.deleteResourceMemberFunc(args.organizationId, args.resourceType, args.resourceId, args.userId);
|
|
8
|
+
return {
|
|
9
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
case "list_resource_members": {
|
|
13
|
+
const args = types.ResourceMemberBaseSchema.parse(request.params.arguments);
|
|
14
|
+
const members = await resourceMember.listResourceMembersFunc(args.organizationId, args.resourceType, args.resourceId);
|
|
15
|
+
return {
|
|
16
|
+
content: [{ type: "text", text: JSON.stringify(members, null, 2) }],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
case "update_resource_member": {
|
|
20
|
+
const args = types.UpdateResourceMemberSchema.parse(request.params.arguments);
|
|
21
|
+
const result = await resourceMember.updateResourceMemberFunc(args.organizationId, args.resourceType, args.resourceId, args.roleName, args.userId);
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
case "create_resource_member": {
|
|
27
|
+
const args = types.CreateResourceMemberSchema.parse(request.params.arguments);
|
|
28
|
+
const result = await resourceMember.createResourceMemberFunc(args.organizationId, args.resourceType, args.resourceId, args.roleName, args.userId);
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
case "update_resource_owner": {
|
|
34
|
+
const args = types.UpdateResourceOwnerSchema.parse(request.params.arguments);
|
|
35
|
+
const result = await resourceMember.updateResourceOwnerFunc(args.organizationId, args.resourceType, args.resourceId, args.newOwnerId);
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
default:
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as serviceConnection from '../operations/flow/serviceConnection.js';
|
|
2
|
+
import * as types from '../common/types.js';
|
|
3
|
+
export const handleServiceConnectionTools = async (request) => {
|
|
4
|
+
switch (request.params.name) {
|
|
5
|
+
// Service Connection Operations
|
|
6
|
+
case "list_service_connections": {
|
|
7
|
+
const args = types.ListServiceConnectionsSchema.parse(request.params.arguments);
|
|
8
|
+
const serviceConnections = await serviceConnection.listServiceConnectionsFunc(args.organizationId, args.serviceConnectionType);
|
|
9
|
+
return {
|
|
10
|
+
content: [{ type: "text", text: JSON.stringify(serviceConnections, null, 2) }],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
default:
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as tag from '../operations/flow/tag.js';
|
|
2
|
+
import * as types from '../common/types.js';
|
|
3
|
+
export const handleTagTools = async (request) => {
|
|
4
|
+
switch (request.params.name) {
|
|
5
|
+
case "create_tag": {
|
|
6
|
+
const args = types.CreateTagSchema.parse(request.params.arguments);
|
|
7
|
+
const tagId = await tag.createTagFunc(args.organizationId, args.name, args.color, args.flowTagGroupId);
|
|
8
|
+
return {
|
|
9
|
+
content: [{ type: "text", text: JSON.stringify({ id: tagId }) }],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
case "create_tag_group": {
|
|
13
|
+
const args = types.CreateTagGroupSchema.parse(request.params.arguments);
|
|
14
|
+
const tagGroupId = await tag.createTagGroupFunc(args.organizationId, args.name);
|
|
15
|
+
return {
|
|
16
|
+
content: [{ type: "text", text: JSON.stringify({ id: tagGroupId }) }],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
case "list_tag_groups": {
|
|
20
|
+
const args = types.BaseTagSchema.parse(request.params.arguments);
|
|
21
|
+
const tagGroups = await tag.listTagGroupsFunc(args.organizationId);
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: "text", text: JSON.stringify(tagGroups, null, 2) }],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
case "delete_tag_group": {
|
|
27
|
+
const args = types.DeleteTagGroupSchema.parse(request.params.arguments);
|
|
28
|
+
const result = await tag.deleteTagGroupFunc(args.organizationId, args.id);
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
case "update_tag_group": {
|
|
34
|
+
const args = types.UpdateTagGroupSchema.parse(request.params.arguments);
|
|
35
|
+
const result = await tag.updateTagGroupFunc(args.organizationId, args.id, args.name);
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
case "get_tag_group": {
|
|
41
|
+
const args = types.GetTagGroupSchema.parse(request.params.arguments);
|
|
42
|
+
const tagGroup = await tag.getTagGroupFunc(args.organizationId, args.id);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: "text", text: JSON.stringify(tagGroup, null, 2) }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
case "delete_tag": {
|
|
48
|
+
const args = types.DeleteTagSchema.parse(request.params.arguments);
|
|
49
|
+
const result = await tag.deleteTagFunc(args.organizationId, args.id);
|
|
50
|
+
return {
|
|
51
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
case "update_tag": {
|
|
55
|
+
const args = types.UpdateTagSchema.parse(request.params.arguments);
|
|
56
|
+
const result = await tag.updateTagFunc(args.organizationId, args.id, args.name, args.color, args.flowTagGroupId);
|
|
57
|
+
return {
|
|
58
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
default:
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { listDirectories, createTestcaseDirectory, getTestcaseFieldConfig, createTestcase, searchTestcases, getTestcase, deleteTestcase, ListDirectoriesRequestSchema, CreateTestcaseDirectoryRequestSchema, GetTestcaseFieldConfigRequestSchema, CreateTestcaseRequestSchema, SearchTestcasesRequestSchema, GetTestcaseRequestSchema, DeleteTestcaseRequestSchema, } from '../operations/testhub/testcases.js';
|
|
2
|
+
import { listTestPlan, getTestResultList, updateTestResult, ListTestPlanRequestSchema, GetTestResultListRequestSchema, UpdateTestResultRequestSchema, } from '../operations/testhub/testplans.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handle the test management tool requests
|
|
5
|
+
*
|
|
6
|
+
* @param request - The tool request
|
|
7
|
+
* @returns The tool response or null if not handled
|
|
8
|
+
*/
|
|
9
|
+
export async function handleTestManagementTools(request) {
|
|
10
|
+
switch (request.params.name) {
|
|
11
|
+
case 'list_testcase_directories':
|
|
12
|
+
const listDirsParams = ListDirectoriesRequestSchema.parse(request.params.arguments);
|
|
13
|
+
const listDirsResult = await listDirectories(listDirsParams);
|
|
14
|
+
return {
|
|
15
|
+
content: [{ type: "text", text: JSON.stringify(listDirsResult, null, 2) }],
|
|
16
|
+
};
|
|
17
|
+
case 'create_testcase_directory':
|
|
18
|
+
const createDirParams = CreateTestcaseDirectoryRequestSchema.parse(request.params.arguments);
|
|
19
|
+
const createDirResult = await createTestcaseDirectory(createDirParams);
|
|
20
|
+
return {
|
|
21
|
+
content: [{ type: "text", text: JSON.stringify(createDirResult, null, 2) }],
|
|
22
|
+
};
|
|
23
|
+
case 'get_testcase_field_config':
|
|
24
|
+
const getFieldConfigParams = GetTestcaseFieldConfigRequestSchema.parse(request.params.arguments);
|
|
25
|
+
const getFieldConfigResult = await getTestcaseFieldConfig(getFieldConfigParams);
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: JSON.stringify(getFieldConfigResult, null, 2) }],
|
|
28
|
+
};
|
|
29
|
+
case 'create_testcase':
|
|
30
|
+
const createParams = CreateTestcaseRequestSchema.parse(request.params.arguments);
|
|
31
|
+
const createResult = await createTestcase(createParams);
|
|
32
|
+
return {
|
|
33
|
+
content: [{ type: "text", text: JSON.stringify(createResult, null, 2) }],
|
|
34
|
+
};
|
|
35
|
+
case 'search_testcases':
|
|
36
|
+
const searchParams = SearchTestcasesRequestSchema.parse(request.params.arguments);
|
|
37
|
+
const searchResult = await searchTestcases(searchParams);
|
|
38
|
+
return {
|
|
39
|
+
content: [{ type: "text", text: JSON.stringify(searchResult, null, 2) }],
|
|
40
|
+
};
|
|
41
|
+
case 'get_testcase':
|
|
42
|
+
const getParams = GetTestcaseRequestSchema.parse(request.params.arguments);
|
|
43
|
+
const getResult = await getTestcase(getParams);
|
|
44
|
+
return {
|
|
45
|
+
content: [{ type: "text", text: JSON.stringify(getResult, null, 2) }],
|
|
46
|
+
};
|
|
47
|
+
case 'delete_testcase':
|
|
48
|
+
const deleteParams = DeleteTestcaseRequestSchema.parse(request.params.arguments);
|
|
49
|
+
const deleteResult = await deleteTestcase(deleteParams);
|
|
50
|
+
return {
|
|
51
|
+
content: [{ type: "text", text: JSON.stringify(deleteResult, null, 2) }],
|
|
52
|
+
};
|
|
53
|
+
case 'list_test_plans':
|
|
54
|
+
const listTestPlanParams = ListTestPlanRequestSchema.parse(request.params.arguments);
|
|
55
|
+
const listTestPlanResult = await listTestPlan(listTestPlanParams);
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: "text", text: JSON.stringify(listTestPlanResult, null, 2) }],
|
|
58
|
+
};
|
|
59
|
+
case 'get_test_result_list':
|
|
60
|
+
const getTestResultListParams = GetTestResultListRequestSchema.parse(request.params.arguments);
|
|
61
|
+
const getTestResultListResult = await getTestResultList(getTestResultListParams);
|
|
62
|
+
return {
|
|
63
|
+
content: [{ type: "text", text: JSON.stringify(getTestResultListResult, null, 2) }],
|
|
64
|
+
};
|
|
65
|
+
case 'update_test_result':
|
|
66
|
+
const updateTestResultParams = UpdateTestResultRequestSchema.parse(request.params.arguments);
|
|
67
|
+
const updateTestResultResult = await updateTestResult(updateTestResultParams);
|
|
68
|
+
return {
|
|
69
|
+
content: [{ type: "text", text: JSON.stringify(updateTestResultResult, null, 2) }],
|
|
70
|
+
};
|
|
71
|
+
default:
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as vmDeployOrder from '../operations/flow/vmDeployOrder.js';
|
|
2
|
+
import * as types from '../common/types.js';
|
|
3
|
+
export const handleVMDeployOrderTools = async (request) => {
|
|
4
|
+
switch (request.params.name) {
|
|
5
|
+
case "stop_vm_deploy_order": {
|
|
6
|
+
const args = types.StopVMDeployOrderSchema.parse(request.params.arguments);
|
|
7
|
+
const result = await vmDeployOrder.stopVMDeployOrderFunc(args.organizationId, args.pipelineId, args.deployOrderId);
|
|
8
|
+
return {
|
|
9
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
case "skip_vm_deploy_machine": {
|
|
13
|
+
const args = types.SkipVMDeployMachineSchema.parse(request.params.arguments);
|
|
14
|
+
const result = await vmDeployOrder.skipVMDeployMachineFunc(args.organizationId, args.pipelineId, args.deployOrderId, args.machineSn);
|
|
15
|
+
return {
|
|
16
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
case "retry_vm_deploy_machine": {
|
|
20
|
+
const args = types.RetryVMDeployMachineSchema.parse(request.params.arguments);
|
|
21
|
+
const result = await vmDeployOrder.retryVMDeployMachineFunc(args.organizationId, args.pipelineId, args.deployOrderId, args.machineSn);
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
case "resume_vm_deploy_order": {
|
|
27
|
+
const args = types.ResumeVMDeployOrderSchema.parse(request.params.arguments);
|
|
28
|
+
const result = await vmDeployOrder.resumeVMDeployOrderFunc(args.organizationId, args.pipelineId, args.deployOrderId);
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: "text", text: JSON.stringify({ success: result }) }],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
case "get_vm_deploy_order": {
|
|
34
|
+
const args = types.GetVMDeployOrderSchema.parse(request.params.arguments);
|
|
35
|
+
const deployOrder = await vmDeployOrder.getVMDeployOrderFunc(args.organizationId, args.pipelineId, args.deployOrderId);
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: "text", text: JSON.stringify(deployOrder, null, 2) }],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
case "get_vm_deploy_machine_log": {
|
|
41
|
+
const args = types.GetVMDeployMachineLogSchema.parse(request.params.arguments);
|
|
42
|
+
const log = await vmDeployOrder.getVMDeployMachineLogFunc(args.organizationId, args.pipelineId, args.deployOrderId, args.machineSn);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: "text", text: JSON.stringify(log, null, 2) }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
2
|
+
import { ListAllReleaseWorkflowsRequestSchema, ListAllReleaseWorkflowBriefsRequestSchema, GetReleaseWorkflowStageRequestSchema, ListAllReleaseStageBriefsRequestSchema, UpdateAppReleaseStageRequestSchema, ListAppReleaseStageRunsRequestSchema, ExecuteChangeRequestReleaseStageRequestSchema, CancelExecutionReleaseStageRequestSchema, RetryChangeRequestStagePipelineRequestSchema, SkipChangeRequestStagePipelineRequestSchema, ListAppReleaseStageExecutionIntegratedMetadataRequestSchema, GetReleaseStagePipelineRunRequestSchema, PassReleaseStagePipelineValidateRequestSchema, GetAppReleaseStageExecutionPipelineJobLogRequestSchema, RefuseReleaseStagePipelineValidateRequestSchema } from '../operations/appstack/releaseWorkflows.js';
|
|
3
|
+
// Export all appstack app release workflow tools (application level)
|
|
4
|
+
export const getAppStackAppReleaseWorkflowTools = () => [
|
|
5
|
+
{
|
|
6
|
+
name: 'list_app_release_workflows',
|
|
7
|
+
description: '[application delivery] 查询应用下所有发布流程',
|
|
8
|
+
inputSchema: zodToJsonSchema(ListAllReleaseWorkflowsRequestSchema),
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'list_app_release_workflow_briefs',
|
|
12
|
+
description: '[application delivery] 查询应用下所有发布流程摘要',
|
|
13
|
+
inputSchema: zodToJsonSchema(ListAllReleaseWorkflowBriefsRequestSchema),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'get_app_release_workflow_stage',
|
|
17
|
+
description: '[application delivery] 获取发布流程阶段详情',
|
|
18
|
+
inputSchema: zodToJsonSchema(GetReleaseWorkflowStageRequestSchema),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'list_app_release_stage_briefs',
|
|
22
|
+
description: '[application delivery] 查询发布流程阶段摘要列表',
|
|
23
|
+
inputSchema: zodToJsonSchema(ListAllReleaseStageBriefsRequestSchema),
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'update_app_release_stage',
|
|
27
|
+
description: '[application delivery] 更新应用发布流程阶段',
|
|
28
|
+
inputSchema: zodToJsonSchema(UpdateAppReleaseStageRequestSchema),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'list_app_release_stage_runs',
|
|
32
|
+
description: '[application delivery] 查询发布流程阶段执行记录列表',
|
|
33
|
+
inputSchema: zodToJsonSchema(ListAppReleaseStageRunsRequestSchema),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'execute_app_release_stage',
|
|
37
|
+
description: '[application delivery] 执行变更请求的发布流程阶段',
|
|
38
|
+
inputSchema: zodToJsonSchema(ExecuteChangeRequestReleaseStageRequestSchema),
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'cancel_app_release_stage_execution',
|
|
42
|
+
description: '[application delivery] 取消发布流程阶段执行',
|
|
43
|
+
inputSchema: zodToJsonSchema(CancelExecutionReleaseStageRequestSchema),
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'retry_app_release_stage_pipeline',
|
|
47
|
+
description: '[application delivery] 重试变更请求的发布流程阶段流水线',
|
|
48
|
+
inputSchema: zodToJsonSchema(RetryChangeRequestStagePipelineRequestSchema),
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'skip_app_release_stage_pipeline',
|
|
52
|
+
description: '[application delivery] 跳过变更请求的发布流程阶段流水线',
|
|
53
|
+
inputSchema: zodToJsonSchema(SkipChangeRequestStagePipelineRequestSchema),
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'list_app_release_stage_metadata',
|
|
57
|
+
description: '[application delivery] 查询研发阶段执行记录集成变更信息',
|
|
58
|
+
inputSchema: zodToJsonSchema(ListAppReleaseStageExecutionIntegratedMetadataRequestSchema),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'get_app_release_stage_pipeline_run',
|
|
62
|
+
description: '[application delivery] 获取研发阶段流水线运行实例',
|
|
63
|
+
inputSchema: zodToJsonSchema(GetReleaseStagePipelineRunRequestSchema),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'pass_app_release_stage_validate',
|
|
67
|
+
description: '[application delivery] 通过发布流程阶段验证',
|
|
68
|
+
inputSchema: zodToJsonSchema(PassReleaseStagePipelineValidateRequestSchema),
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'get_app_release_stage_job_log',
|
|
72
|
+
description: '[application delivery] 查询研发阶段流水线任务运行日志',
|
|
73
|
+
inputSchema: zodToJsonSchema(GetAppReleaseStageExecutionPipelineJobLogRequestSchema),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'refuse_app_release_stage_validate',
|
|
77
|
+
description: '[application delivery] 拒绝发布流程阶段验证',
|
|
78
|
+
inputSchema: zodToJsonSchema(RefuseReleaseStagePipelineValidateRequestSchema),
|
|
79
|
+
}
|
|
80
|
+
];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
2
|
+
import { CreateChangeOrderRequestSchema, ListChangeOrderVersionsRequestSchema, GetChangeOrderRequestSchema, ListChangeOrderJobLogsRequestSchema, FindTaskOperationLogRequestSchema, ExecuteJobActionRequestSchema, ListChangeOrdersByOriginRequestSchema } from '../operations/appstack/changeOrders.js';
|
|
3
|
+
// Export all appstack change order tools
|
|
4
|
+
export const getAppStackChangeOrderTools = () => [
|
|
5
|
+
{
|
|
6
|
+
name: 'create_change_order',
|
|
7
|
+
description: '[application delivery] 创建部署单',
|
|
8
|
+
inputSchema: zodToJsonSchema(CreateChangeOrderRequestSchema),
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'list_change_order_versions',
|
|
12
|
+
description: '[application delivery] 查看部署单版本列表',
|
|
13
|
+
inputSchema: zodToJsonSchema(ListChangeOrderVersionsRequestSchema),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'get_change_order',
|
|
17
|
+
description: '[application delivery] 读取部署单使用的物料和工单状态',
|
|
18
|
+
inputSchema: zodToJsonSchema(GetChangeOrderRequestSchema),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'list_change_order_job_logs',
|
|
22
|
+
description: '[application delivery] 查询环境部署单日志',
|
|
23
|
+
inputSchema: zodToJsonSchema(ListChangeOrderJobLogsRequestSchema),
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'find_task_operation_log',
|
|
27
|
+
description: '[application delivery] 查询部署任务执行日志,其中通常包含下游部署引擎的调度细节信息',
|
|
28
|
+
inputSchema: zodToJsonSchema(FindTaskOperationLogRequestSchema),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'execute_job_action',
|
|
32
|
+
description: '[application delivery] 操作环境部署单',
|
|
33
|
+
inputSchema: zodToJsonSchema(ExecuteJobActionRequestSchema),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'list_change_orders_by_origin',
|
|
37
|
+
description: '[application delivery] 根据创建来源查询部署单',
|
|
38
|
+
inputSchema: zodToJsonSchema(ListChangeOrdersByOriginRequestSchema),
|
|
39
|
+
}
|
|
40
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
2
|
+
import { CreateChangeRequestRequestSchema, GetChangeRequestAuditItemsRequestSchema, ListChangeRequestExecutionsRequestSchema, ListChangeRequestWorkItemsRequestSchema, CancelChangeRequestRequestSchema, CloseChangeRequestRequestSchema } from '../operations/appstack/changeRequests.js';
|
|
3
|
+
// Export all appstack change requests tools
|
|
4
|
+
export const getAppStackChangeRequestTools = () => [
|
|
5
|
+
{
|
|
6
|
+
name: 'create_appstack_change_request',
|
|
7
|
+
description: '[application delivery] Create a change request',
|
|
8
|
+
inputSchema: zodToJsonSchema(CreateChangeRequestRequestSchema),
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'get_appstack_change_request_audit_items',
|
|
12
|
+
description: '[application delivery] Get audit items for a change request',
|
|
13
|
+
inputSchema: zodToJsonSchema(GetChangeRequestAuditItemsRequestSchema),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'list_appstack_change_request_executions',
|
|
17
|
+
description: '[application delivery] List change request executions',
|
|
18
|
+
inputSchema: zodToJsonSchema(ListChangeRequestExecutionsRequestSchema),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'list_appstack_change_request_work_items',
|
|
22
|
+
description: '[application delivery] List work items for a change request',
|
|
23
|
+
inputSchema: zodToJsonSchema(ListChangeRequestWorkItemsRequestSchema),
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'cancel_appstack_change_request',
|
|
27
|
+
description: '[application delivery] Cancel a change request',
|
|
28
|
+
inputSchema: zodToJsonSchema(CancelChangeRequestRequestSchema),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'close_appstack_change_request',
|
|
32
|
+
description: '[application delivery] Close a change request',
|
|
33
|
+
inputSchema: zodToJsonSchema(CloseChangeRequestRequestSchema),
|
|
34
|
+
}
|
|
35
|
+
];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
2
|
+
import { GetMachineDeployLogRequestSchema, AddHostListToHostGroupRequestSchema, AddHostListToDeployGroupRequestSchema } from '../operations/appstack/deploymentResources.js';
|
|
3
|
+
// Export all appstack deployment resources tools
|
|
4
|
+
export const getAppStackDeploymentResourceTools = () => [
|
|
5
|
+
{
|
|
6
|
+
name: 'get_machine_deploy_log',
|
|
7
|
+
description: '[application delivery] Get machine deployment log',
|
|
8
|
+
inputSchema: zodToJsonSchema(GetMachineDeployLogRequestSchema),
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'add_host_list_to_host_group',
|
|
12
|
+
description: '[application delivery] Add host list to host group',
|
|
13
|
+
inputSchema: zodToJsonSchema(AddHostListToHostGroupRequestSchema),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'add_host_list_to_deploy_group',
|
|
17
|
+
description: '[application delivery] Add host list to deploy group',
|
|
18
|
+
inputSchema: zodToJsonSchema(AddHostListToDeployGroupRequestSchema),
|
|
19
|
+
},
|
|
20
|
+
];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
2
|
+
import { CreateGlobalVarRequestSchema, GetGlobalVarRequestSchema, UpdateGlobalVarRequestSchema, ListGlobalVarsRequestSchema } from '../operations/appstack/globalVars.js';
|
|
3
|
+
// Export all appstack global variables tools
|
|
4
|
+
export const getAppStackGlobalVarTools = () => [
|
|
5
|
+
{
|
|
6
|
+
name: 'create_global_var',
|
|
7
|
+
description: '[application delivery] Create a global variable group',
|
|
8
|
+
inputSchema: zodToJsonSchema(CreateGlobalVarRequestSchema),
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'get_global_var',
|
|
12
|
+
description: '[application delivery] Get a global variable group',
|
|
13
|
+
inputSchema: zodToJsonSchema(GetGlobalVarRequestSchema),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'update_global_var',
|
|
17
|
+
description: '[application delivery] Update a global variable group',
|
|
18
|
+
inputSchema: zodToJsonSchema(UpdateGlobalVarRequestSchema),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'list_global_vars',
|
|
22
|
+
description: '[application delivery] List global variable groups',
|
|
23
|
+
inputSchema: zodToJsonSchema(ListGlobalVarsRequestSchema),
|
|
24
|
+
}
|
|
25
|
+
];
|