@catchmexz/fedin-vibe-mcp-server 0.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.
Files changed (83) hide show
  1. package/LICENSE +202 -0
  2. package/dist/common/errors.js +69 -0
  3. package/dist/common/modularTemplates.js +483 -0
  4. package/dist/common/pipelineTemplates.js +19 -0
  5. package/dist/common/types.js +42 -0
  6. package/dist/common/utils.js +347 -0
  7. package/dist/common/version.js +1 -0
  8. package/dist/index.js +217 -0
  9. package/dist/operations/appstack/appOrchestrations.js +235 -0
  10. package/dist/operations/appstack/appTags.js +147 -0
  11. package/dist/operations/appstack/appTemplates.js +67 -0
  12. package/dist/operations/appstack/applications.js +154 -0
  13. package/dist/operations/appstack/changeOrders.js +293 -0
  14. package/dist/operations/appstack/changeRequests.js +263 -0
  15. package/dist/operations/appstack/deploymentResources.js +265 -0
  16. package/dist/operations/appstack/globalVars.js +200 -0
  17. package/dist/operations/appstack/releaseWorkflows.js +178 -0
  18. package/dist/operations/appstack/variableGroups.js +216 -0
  19. package/dist/operations/codeup/branches.js +144 -0
  20. package/dist/operations/codeup/changeRequestComments.js +89 -0
  21. package/dist/operations/codeup/changeRequests.js +203 -0
  22. package/dist/operations/codeup/compare.js +26 -0
  23. package/dist/operations/codeup/files.js +483 -0
  24. package/dist/operations/codeup/repositories.js +83 -0
  25. package/dist/operations/codeup/types.js +372 -0
  26. package/dist/operations/flow/hostGroup.js +48 -0
  27. package/dist/operations/flow/pipeline.js +530 -0
  28. package/dist/operations/flow/pipelineJob.js +113 -0
  29. package/dist/operations/flow/serviceConnection.js +23 -0
  30. package/dist/operations/flow/types.js +377 -0
  31. package/dist/operations/git/git-repository.js +334 -0
  32. package/dist/operations/git/index.js +210 -0
  33. package/dist/operations/organization/members.js +94 -0
  34. package/dist/operations/organization/organization.js +73 -0
  35. package/dist/operations/organization/types.js +111 -0
  36. package/dist/operations/packages/artifacts.js +64 -0
  37. package/dist/operations/packages/repositories.js +35 -0
  38. package/dist/operations/packages/types.js +56 -0
  39. package/dist/operations/projex/project.js +206 -0
  40. package/dist/operations/projex/sprint.js +90 -0
  41. package/dist/operations/projex/types.js +390 -0
  42. package/dist/operations/projex/workitem.js +452 -0
  43. package/dist/tool-handlers/appstack-change-orders.js +55 -0
  44. package/dist/tool-handlers/appstack-change-requests.js +49 -0
  45. package/dist/tool-handlers/appstack-deployment-resources.js +43 -0
  46. package/dist/tool-handlers/appstack-global-vars.js +43 -0
  47. package/dist/tool-handlers/appstack-orchestrations.js +49 -0
  48. package/dist/tool-handlers/appstack-tags.js +43 -0
  49. package/dist/tool-handlers/appstack-templates.js +19 -0
  50. package/dist/tool-handlers/appstack-variable-groups.js +55 -0
  51. package/dist/tool-handlers/appstack.js +37 -0
  52. package/dist/tool-handlers/code-management.js +174 -0
  53. package/dist/tool-handlers/git/branch-operations.js +1 -0
  54. package/dist/tool-handlers/git/clone-repository.js +36 -0
  55. package/dist/tool-handlers/git/create-branch.js +26 -0
  56. package/dist/tool-handlers/git/get-repository-status.js +33 -0
  57. package/dist/tool-handlers/git/pull-repository.js +27 -0
  58. package/dist/tool-handlers/git/push-repository.js +37 -0
  59. package/dist/tool-handlers/git/switch-branch.js +25 -0
  60. package/dist/tool-handlers/index.js +43 -0
  61. package/dist/tool-handlers/organization.js +90 -0
  62. package/dist/tool-handlers/packages.js +32 -0
  63. package/dist/tool-handlers/pipeline.js +272 -0
  64. package/dist/tool-handlers/project-management.js +152 -0
  65. package/dist/tool-handlers/service-connections.js +16 -0
  66. package/dist/tool-registry/appstack-change-orders.js +40 -0
  67. package/dist/tool-registry/appstack-change-requests.js +35 -0
  68. package/dist/tool-registry/appstack-deployment-resources.js +30 -0
  69. package/dist/tool-registry/appstack-global-vars.js +30 -0
  70. package/dist/tool-registry/appstack-orchestrations.js +35 -0
  71. package/dist/tool-registry/appstack-tags.js +30 -0
  72. package/dist/tool-registry/appstack-templates.js +10 -0
  73. package/dist/tool-registry/appstack-variable-groups.js +40 -0
  74. package/dist/tool-registry/appstack.js +25 -0
  75. package/dist/tool-registry/code-management.js +89 -0
  76. package/dist/tool-registry/git-repository.js +41 -0
  77. package/dist/tool-registry/index.js +6 -0
  78. package/dist/tool-registry/organization.js +65 -0
  79. package/dist/tool-registry/packages.js +21 -0
  80. package/dist/tool-registry/pipeline.js +157 -0
  81. package/dist/tool-registry/project-management.js +108 -0
  82. package/dist/tool-registry/service-connections.js +10 -0
  83. package/package.json +39 -0
@@ -0,0 +1,377 @@
1
+ import { z } from "zod";
2
+ // Flow Pipeline related schemas
3
+ export const PipelineConfigSourceSchema = z.object({
4
+ data: z.object({
5
+ branch: z.string().nullable().optional().describe("Default branch"),
6
+ cloneDepth: z.number().int().nullable().optional().describe("Clone depth"),
7
+ credentialId: z.number().int().nullable().optional().describe("Credential ID"),
8
+ credentialLabel: z.string().nullable().optional().describe("Credential label"),
9
+ credentialType: z.string().nullable().optional().describe("Credential type"),
10
+ events: z.array(z.string()).nullable().optional().describe("Trigger events"),
11
+ isBranchMode: z.boolean().nullable().optional().describe("Whether branch mode is enabled"),
12
+ isCloneDepth: z.boolean().nullable().optional().describe("Whether clone depth is enabled"),
13
+ isSubmodule: z.boolean().nullable().optional().describe("Whether submodule is enabled"),
14
+ isTrigger: z.boolean().nullable().optional().describe("Whether commit trigger is enabled"),
15
+ label: z.string().nullable().optional().describe("Display name"),
16
+ namespace: z.string().nullable().optional().describe("Namespace"),
17
+ repo: z.string().nullable().optional().describe("Repository URL"),
18
+ serviceConnectionId: z.number().int().nullable().optional().describe("Service connection ID"),
19
+ triggerFilter: z.string().nullable().optional().describe("Trigger filter condition"),
20
+ webhook: z.string().nullable().optional().describe("Webhook URL"),
21
+ }),
22
+ sign: z.string().nullable().optional().describe("Code source identifier"),
23
+ type: z.string().nullable().optional().describe("Code source type"),
24
+ });
25
+ export const PipelineTagSchema = z.object({
26
+ id: z.number().int().nullable().optional().describe("Tag ID"),
27
+ name: z.string().nullable().optional().describe("Tag name"),
28
+ });
29
+ export const PipelineConfigSchema = z.object({
30
+ flow: z.string().nullable().optional().describe("Flow configuration"),
31
+ settings: z.string().nullable().optional().describe("Pipeline settings"),
32
+ sources: z.array(PipelineConfigSourceSchema).nullable().optional().describe("Code source configurations"),
33
+ });
34
+ // Flow Pipeline detail schema
35
+ export const PipelineDetailSchema = z.object({
36
+ createTime: z.number().int().nullable().optional().describe("Creation time"),
37
+ creatorAccountId: z.string().nullable().optional().describe("Creator account ID"),
38
+ envId: z.number().int().nullable().optional().describe("Environment ID: 0-Daily 1-Pre-release 2-Production"),
39
+ envName: z.string().nullable().optional().describe("Environment name"),
40
+ groupId: z.number().int().nullable().optional().describe("Pipeline group ID"),
41
+ modifierAccountId: z.string().nullable().optional().describe("Last modifier account ID"),
42
+ name: z.string().nullable().optional().describe("Pipeline name"),
43
+ pipelineConfig: PipelineConfigSchema.nullable().optional().describe("Pipeline configuration"),
44
+ tagList: z.array(PipelineTagSchema).nullable().optional().describe("Tag list"),
45
+ updateTime: z.number().int().nullable().optional().describe("Update time"),
46
+ });
47
+ // Flow Get pipeline schema
48
+ export const GetPipelineSchema = z.object({
49
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
50
+ pipelineId: z.string().describe("Pipeline ID"),
51
+ });
52
+ // Flow Create pipeline schema
53
+ export const CreatePipelineSchema = z.object({
54
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
55
+ name: z.string().max(60).describe("Pipeline name, maximum 60 characters"),
56
+ content: z.string().describe("Pipeline YAML description, refer to YAML pipeline documentation for writing. This should be a complete YAML configuration including sources, stages, jobs, and steps."),
57
+ });
58
+ // Flow Create pipeline with structured options schema
59
+ export const CreatePipelineWithStructuredOptionsSchema = z.object({
60
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
61
+ name: z.string().max(60).describe("Pipeline name (required). LLM should generate a meaningful name based on user's request"),
62
+ // 技术栈参数(必需,由大模型从IDE上下文和用户描述中提取)
63
+ buildLanguage: z.enum(['java', 'nodejs', 'python', 'go', 'dotnet']).describe("Programming language (REQUIRED). LLM should detect from project files: pom.xml→java, package.json→nodejs, requirements.txt→python, go.mod→go, *.csproj→dotnet"),
64
+ buildTool: z.enum(['maven', 'gradle', 'npm', 'yarn', 'pip', 'go', 'dotnet']).describe("Build tool (REQUIRED). LLM should infer from buildLanguage and project files: java+pom.xml→maven, java+build.gradle→gradle, nodejs+package-lock.json→npm, nodejs+yarn.lock→yarn, python→pip, go→go, dotnet→dotnet"),
65
+ deployTarget: z.enum(['vm', 'k8s', 'none']).optional().describe("Deployment target from user description. vm: Virtual Machine/Host deployment, k8s: Kubernetes deployment, none: Build only without deployment. Default: none"),
66
+ // 代码源相关参数(由大模型从IDE上下文中获取)
67
+ repoUrl: z.string().optional().describe("Repository URL (LLM should get from 'git config --get remote.origin.url')"),
68
+ branch: z.string().optional().describe("Git branch (LLM should get from 'git branch --show-current')"),
69
+ serviceName: z.string().optional().describe("Service name (LLM can derive from repository name or project directory name)"),
70
+ serviceConnectionId: z.string().optional().describe("Service connection UUID for repository access"),
71
+ // 版本相关参数(大模型应该从项目文件中提取)
72
+ jdkVersion: z.string().optional().describe("JDK version for Java projects (LLM should read from pom.xml or gradle.properties). Options: 1.6, 1.7, 1.8, 11, 17, 21. Default: 1.8"),
73
+ mavenVersion: z.string().optional().describe("Maven version for Java projects. Options: 3.6.1, 3.6.3, 3.8.4, 3.9.3. Default: 3.6.3"),
74
+ nodeVersion: z.string().optional().describe("Node.js version for Node projects (LLM should read from package.json engines.node or .nvmrc). Options: 16.8, 18.12, 20. Default: 18.12"),
75
+ pythonVersion: z.string().optional().describe("Python version for Python projects (LLM should read from .python-version or pyproject.toml). Options: 3.9, 3.12. Default: 3.12"),
76
+ goVersion: z.string().optional().describe("Go version for Go projects (LLM should read from go.mod). Options: 1.19.x, 1.20.x, 1.21.x. Default: 1.21.x"),
77
+ kubectlVersion: z.string().optional().describe("Kubectl version for Kubernetes apply. Options: 1.25.16, 1.26.12, 1.27.9. Default: 1.27.9"),
78
+ // 构建配置
79
+ buildCommand: z.string().optional().describe("Custom build command to override default"),
80
+ testCommand: z.string().optional().describe("Custom test command to override default"),
81
+ // 构建物上传相关参数
82
+ uploadType: z.enum(['flowPublic', 'packages']).optional().describe("Artifact upload type. flowPublic: Yunxiao public storage space, packages: Organization private generic package repository. Default: packages"),
83
+ artifactName: z.string().optional().describe("Custom artifact name. Default: 'Artifacts_${PIPELINE_ID}'"),
84
+ artifactVersion: z.string().optional().describe("Artifact version number, required when uploadType is packages. Default: '1.0'"),
85
+ packagesServiceConnection: z.string().optional().describe("Packages service connection UUID, required when uploadType is packages"),
86
+ packagesRepoId: z.string().optional().describe("Packages generic repository ID, required when uploadType is packages. Default: 'flow_generic_repo'"),
87
+ includePathInArtifact: z.boolean().optional().describe("Whether to include full path in artifact. Default: false"),
88
+ // VM部署相关参数(当deployTarget为'vm'时)
89
+ machineGroupId: z.string().optional().describe("Machine group UUID for VM deployment (required when deployTarget=vm)"),
90
+ executeUser: z.string().optional().describe("User for executing deployment scripts (root, admin). Default: root"),
91
+ artifactDownloadPath: z.string().optional().describe("Path to download artifacts on target machine for VM deployment. Default: /home/admin/app/package.tgz"),
92
+ deployCommand: z.string().optional().describe("Custom deploy command for VM deployment"),
93
+ pauseStrategy: z.enum(['firstBatchPause', 'noPause', 'eachBatchPause']).optional().describe("Pause strategy for VM deployment. firstBatchPause: The first batch is paused. noPause: No pause. eachBatchPause: Pause each batch. Default: firstBatchPause"),
94
+ batchNumber: z.number().int().optional().describe("Number of batches for VM deployment. Default: 2"),
95
+ // Kubernetes部署相关参数(当deployTarget为'k8s'时)
96
+ kubernetesClusterId: z.string().optional().describe("Kubernetes cluster ID for K8s deployment (required when deployTarget=k8s)"),
97
+ namespace: z.string().optional().describe("Kubernetes namespace for K8s deployment"),
98
+ dockerImage: z.string().optional().describe("Docker image name for container deployment"),
99
+ yamlPath: z.string().optional().describe("Path to Kubernetes YAML file for K8s deployment"),
100
+ });
101
+ // 兼容性:保留原有的schema名称,但指向新的schema
102
+ export const CreatePipelineFromDescriptionSchema = CreatePipelineWithStructuredOptionsSchema;
103
+ // Flow List pipelines schema
104
+ export const ListPipelinesSchema = z.object({
105
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
106
+ createStartTime: z.number().int().optional().describe("Creation start time in milliseconds timestamp format (e.g., 1729178040000). For filtering pipelines created after this time."),
107
+ createEndTime: z.number().int().optional().describe("Creation end time in milliseconds timestamp format (e.g., 1729178040000). For filtering pipelines created before this time."),
108
+ executeStartTime: z.number().int().optional().describe("Execution start time in milliseconds timestamp format (e.g., 1729178040000). For filtering pipelines executed after this time."),
109
+ executeEndTime: z.number().int().optional().describe("Execution end time in milliseconds timestamp format (e.g., 1729178040000). For filtering pipelines executed before this time."),
110
+ pipelineName: z.string().optional().describe("Pipeline name for filtering"),
111
+ statusList: z.string().optional().describe("Pipeline status list, comma separated (SUCCESS,RUNNING,FAIL,CANCELED,WAITING)"),
112
+ perPage: z.number().int().min(1).max(30).default(10).optional().describe("Number of items per page, default 10, max 30"),
113
+ page: z.number().int().min(1).default(1).optional().describe("Page number, default 1"),
114
+ });
115
+ // Flow Pipeline list item schema
116
+ export const PipelineListItemSchema = z.object({
117
+ name: z.string().nullable().optional().describe("Pipeline name"),
118
+ id: z.number().int().nullable().optional().describe("Pipeline ID"),
119
+ creatorAccountId: z.string().nullable().optional().describe("Creator account ID"),
120
+ createTime: z.number().int().nullable().optional().describe("Creation time"),
121
+ });
122
+ // Flow Create pipeline run schema
123
+ export const CreatePipelineRunSchema = z.object({
124
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
125
+ pipelineId: z.string().describe("Pipeline ID to run"),
126
+ params: z.string().optional().describe("Pipeline run parameters in JSON string format. Can include: branchModeBranchs(array), envs(object), runningBranchs(object), runningTags(object), runningPipelineArtifacts(object), runningAcrArtifacts(object), runningPackagesArtifacts(object), comment(string), needCreateBranch(boolean), releaseBranch(string)"),
127
+ // 添加自然语言相关参数,这些参数将被转换为params参数的内容
128
+ description: z.string().optional().describe("Natural language description of how to run the pipeline, e.g. 'Run pipeline using branch mode with branches main and develop'"),
129
+ branches: z.array(z.string()).optional().describe("Branches to use in branch mode or specific branches for repositories"),
130
+ branchMode: z.boolean().optional().describe("Whether to run in branch mode"),
131
+ releaseBranch: z.string().optional().describe("Specific release branch to use"),
132
+ createReleaseBranch: z.boolean().optional().describe("Whether to create a release branch"),
133
+ environmentVariables: z.record(z.string()).optional().describe("Environment variables for the pipeline run"),
134
+ repositories: z.array(z.object({
135
+ url: z.string().describe("Repository URL"),
136
+ branch: z.string().optional().describe("Branch to use for this repository"),
137
+ tag: z.string().optional().describe("Tag to use for this repository")
138
+ })).optional().describe("Specific repository configurations")
139
+ });
140
+ // Flow Pipeline run related schemas
141
+ export const PipelineRunActionSchema = z.object({
142
+ data: z.string().nullable().optional().describe("Action data"),
143
+ disable: z.boolean().nullable().optional().describe("Whether the action is disabled"),
144
+ displayType: z.string().nullable().optional().describe("Display type of the action"),
145
+ name: z.string().nullable().optional().describe("Action name"),
146
+ order: z.number().int().nullable().optional().describe("Order of the action"),
147
+ params: z.record(z.any()).nullable().optional().describe("Action parameters"),
148
+ title: z.string().nullable().optional().describe("Action title"),
149
+ type: z.string().nullable().optional().describe("Action type")
150
+ });
151
+ export const PipelineRunJobSchema = z.object({
152
+ id: z.number().int().nullable().optional().describe("Job ID"),
153
+ name: z.string().nullable().optional().describe("Job name"),
154
+ startTime: z.number().int().nullable().optional().describe("Start time of the job"),
155
+ endTime: z.number().int().nullable().optional().describe("End time of the job"),
156
+ status: z.string().nullable().optional().describe("Job status: FAIL, SUCCESS, RUNNING"),
157
+ params: z.string().nullable().optional().describe("Job parameters in JSON string format"),
158
+ jobSign: z.string().nullable().optional().describe("Job unique identifier"),
159
+ result: z.string().nullable().optional().describe("Job result data in JSON string format"),
160
+ actions: z.array(PipelineRunActionSchema).nullable().optional().describe("Available actions for the job"),
161
+ });
162
+ export const PipelineStageInfoSchema = z.object({
163
+ startTime: z.number().int().nullable().optional().describe("Start time of the stage"),
164
+ endTime: z.number().int().nullable().optional().describe("End time of the stage"),
165
+ name: z.string().nullable().optional().describe("Stage name"),
166
+ status: z.string().nullable().optional().describe("Stage status: FAIL, SUCCESS, RUNNING"),
167
+ id: z.number().int().nullable().optional().describe("Stage ID"),
168
+ jobs: z.array(PipelineRunJobSchema).nullable().optional().describe("Jobs in this stage"),
169
+ });
170
+ export const PipelineStageSchema = z.object({
171
+ index: z.string().nullable().optional().describe("Stage index"),
172
+ name: z.string().nullable().optional().describe("Stage name"),
173
+ stageInfo: PipelineStageInfoSchema.nullable().optional().describe("Stage detailed information")
174
+ });
175
+ export const PipelineRunSourceSchema = z.object({
176
+ data: z.record(z.any()).optional().describe("Source configuration data"),
177
+ name: z.string().nullable().optional().describe("Source name"),
178
+ sign: z.string().nullable().optional().describe("Source identifier"),
179
+ type: z.string().nullable().optional().describe("Source type"),
180
+ label: z.string().nullable().optional().describe("Source label"),
181
+ });
182
+ export const PipelineRunGlobalParamSchema = z.object({
183
+ key: z.string().nullable().optional().describe("Parameter key"),
184
+ value: z.string().nullable().optional().describe("Parameter value"),
185
+ masked: z.boolean().nullable().optional().describe("Whether the parameter is masked"),
186
+ runningConfig: z.boolean().nullable().optional().describe("Whether the parameter is running configuration"),
187
+ encrypted: z.boolean().nullable().optional().describe("Whether the parameter is encrypted"),
188
+ metaData: z.string().nullable().optional().describe("Parameter metadata"),
189
+ type: z.string().nullable().optional().describe("Parameter type"),
190
+ description: z.string().nullable().optional().describe("Parameter description"),
191
+ optionType: z.string().nullable().optional().describe("Parameter option type"),
192
+ });
193
+ export const PipelineRunGroupSchema = z.object({
194
+ id: z.number().int().nullable().optional().describe("Group ID"),
195
+ name: z.string().nullable().optional().describe("Group name")
196
+ });
197
+ export const PipelineRunSchema = z.object({
198
+ updateTime: z.number().int().nullable().optional().describe("Last update time"),
199
+ pipelineConfigId: z.number().int().nullable().optional().describe("Pipeline configuration ID"),
200
+ createTime: z.number().int().nullable().optional().describe("Creation time of the run"),
201
+ pipelineId: z.number().int().nullable().optional().describe("Pipeline ID"),
202
+ pipelineRunId: z.number().int().nullable().optional().describe("Pipeline run ID"),
203
+ status: z.string().optional().nullable().describe("Pipeline run status: FAIL, SUCCESS, RUNNING"),
204
+ triggerMode: z.number().int().nullable().optional().describe("Trigger mode: 1-Manual, 2-Scheduled, 3-Code commit, 5-Pipeline, 6-Webhook"),
205
+ stageGroup: z.array(z.array(z.string())).nullable().optional().describe("Stage groups"),
206
+ groups: z.array(PipelineRunGroupSchema).nullable().optional().describe("Pipeline groups"),
207
+ pipelineType: z.string().nullable().optional().describe("Pipeline type"),
208
+ creatorAccountId: z.string().nullable().optional().describe("Creator account ID"),
209
+ modifierAccountId: z.string().optional().describe("Last modifier account ID"),
210
+ stages: z.array(PipelineStageSchema).nullable().optional().describe("Pipeline stages"),
211
+ sources: z.array(PipelineRunSourceSchema).nullable().optional().describe("Code sources used in this run"),
212
+ creator: z.string().nullable().optional().describe("Creator"),
213
+ modifier: z.string().nullable().optional().describe("Last modifier"),
214
+ globalParams: z.array(PipelineRunGlobalParamSchema).nullable().optional().describe("Global parameters"),
215
+ });
216
+ // Flow Get latest pipeline run schema
217
+ export const GetLatestPipelineRunSchema = z.object({
218
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
219
+ pipelineId: z.string().describe("Pipeline ID to get the latest run information"),
220
+ });
221
+ // Flow Get pipeline run schema
222
+ export const GetPipelineRunSchema = z.object({
223
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
224
+ pipelineId: z.string().describe("Pipeline ID"),
225
+ pipelineRunId: z.string().describe("Pipeline run ID to retrieve details for"),
226
+ });
227
+ // Flow Pipeline run list item schema
228
+ export const PipelineRunListItemSchema = z.object({
229
+ status: z.string().nullable().optional().describe("Pipeline run status: FAIL, SUCCESS, RUNNING"),
230
+ startTime: z.number().int().nullable().optional().describe("Start time of the run"),
231
+ triggerMode: z.number().int().nullable().optional().describe("Trigger mode: 1-Manual, 2-Scheduled, 3-Code commit, 5-Pipeline, 6-Webhook"),
232
+ pipelineRunId: z.number().int().nullable().optional().describe("Pipeline run ID"),
233
+ pipelineId: z.number().int().nullable().optional().describe("Pipeline ID"),
234
+ endTime: z.number().int().nullable().optional().describe("End time of the run"),
235
+ creator: z.string().nullable().optional().describe("Creator"),
236
+ creatorAccountId: z.string().nullable().optional().describe("Creator account ID"),
237
+ });
238
+ // Flow List pipeline runs schema
239
+ export const ListPipelineRunsSchema = z.object({
240
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
241
+ pipelineId: z.string().describe("Pipeline ID to list runs for"),
242
+ perPage: z.number().int().min(1).max(30).default(10).optional().describe("Number of items per page, default 10, max 30"),
243
+ page: z.number().int().min(1).default(1).optional().describe("Page number, default 1"),
244
+ startTime: z.number().int().optional().describe("Execution start time filter in milliseconds timestamp format"),
245
+ endTime: z.number().int().optional().describe("Execution end time filter in milliseconds timestamp format"),
246
+ status: z.string().optional().describe("Run status filter: FAIL, SUCCESS, or RUNNING"),
247
+ triggerMode: z.number().int().optional().describe("Trigger mode filter: 1-Manual, 2-Scheduled, 3-Code commit, 5-Pipeline, 6-Webhook")
248
+ });
249
+ // Flow Pipeline job related schemas
250
+ export const ListPipelineJobsByCategorySchema = z.object({
251
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
252
+ pipelineId: z.string().describe("Pipeline ID"),
253
+ category: z.string().describe("Task category, currently only supports DEPLOY")
254
+ });
255
+ export const PipelineJobItemSchema = z.object({
256
+ identifier: z.string().nullable().optional().describe("Task identifier"),
257
+ jobName: z.string().nullable().optional().describe("Task name"),
258
+ lastJobId: z.number().int().nullable().optional().describe("ID of the last executed task"),
259
+ lastJobParams: z.string().nullable().optional().describe("Parameters of the last executed task in JSON format")
260
+ });
261
+ // Flow Pipeline job history related schemas
262
+ export const ListPipelineJobHistorysSchema = z.object({
263
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
264
+ pipelineId: z.string().describe("Pipeline ID"),
265
+ category: z.string().describe("Task category, currently only supports DEPLOY"),
266
+ identifier: z.string().describe("Task identifier"),
267
+ perPage: z.number().int().min(1).max(30).default(10).optional().describe("Number of items per page, default 10, max 30"),
268
+ page: z.number().int().min(1).default(1).optional().describe("Page number, default 1")
269
+ });
270
+ export const PipelineJobHistoryItemSchema = z.object({
271
+ executeNumber: z.number().int().nullable().optional().describe("Task execution number"),
272
+ identifier: z.string().nullable().optional().describe("Task identifier"),
273
+ jobId: z.number().int().nullable().optional().describe("Job ID"),
274
+ jobName: z.string().nullable().optional().describe("Job name"),
275
+ operatorAccountId: z.string().nullable().optional().describe("Operator account ID"),
276
+ pipelineId: z.number().int().nullable().optional().describe("Pipeline ID"),
277
+ pipelineRunId: z.number().int().nullable().optional().describe("Pipeline run instance ID"),
278
+ sources: z.string().nullable().optional().describe("Code source information for the job run, in JSON format"),
279
+ status: z.string().nullable().optional().describe("Job execution status")
280
+ });
281
+ // Flow Execute pipeline job run schema
282
+ export const ExecutePipelineJobRunSchema = z.object({
283
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
284
+ pipelineId: z.string().describe("Pipeline ID"),
285
+ pipelineRunId: z.string().describe("Pipeline run instance ID"),
286
+ jobId: z.string().describe("Job ID for the pipeline run task")
287
+ });
288
+ // Flow Get pipeline job run log schema
289
+ export const GetPipelineJobRunLogSchema = z.object({
290
+ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"),
291
+ pipelineId: z.string().describe("Pipeline ID"),
292
+ pipelineRunId: z.string().describe("Pipeline run instance ID"),
293
+ jobId: z.string().describe("Job ID of the pipeline run task")
294
+ });
295
+ export const PipelineJobRunLogSchema = z.object({
296
+ content: z.string().nullable().optional().describe("Log content"),
297
+ last: z.number().int().nullable().optional().describe("Last log line number"),
298
+ more: z.boolean().nullable().optional().describe("Whether there are more logs available")
299
+ });
300
+ // Flow Update pipeline schema
301
+ export const UpdatePipelineSchema = z.object({
302
+ organizationId: z.string().describe("Organization ID"),
303
+ pipelineId: z.string().describe("Pipeline ID"),
304
+ content: z.string().describe("Pipeline YAML content"),
305
+ name: z.string().max(60).describe("Pipeline name, max 60 chars")
306
+ });
307
+ // Service Connection related types
308
+ export const ServiceConnectionSchema = z.object({
309
+ createTime: z.number().int().nullable().optional().describe("创建时间"),
310
+ id: z.number().int().nullable().optional().describe("服务连接ID"),
311
+ name: z.string().nullable().optional().describe("服务连接名称"),
312
+ ownerAccountId: z.union([z.string(), z.number().int()]).nullable().optional().describe("拥有者阿里云账号ID"),
313
+ type: z.string().nullable().optional().describe("服务连接类型"),
314
+ uuid: z.string().nullable().optional().describe("UUID"),
315
+ });
316
+ export const ListServiceConnectionsSchema = z.object({
317
+ organizationId: z.string().describe("组织ID,可在组织管理后台的基本信息页面获取"),
318
+ serviceConnectionType: z.enum([
319
+ "aliyun_code",
320
+ "codeup",
321
+ "gitee",
322
+ "github",
323
+ "ack",
324
+ "docker_register_aliyun",
325
+ "ecs",
326
+ "edas",
327
+ "emas",
328
+ "fc",
329
+ "kubernetes",
330
+ "oss",
331
+ "packages",
332
+ "ros",
333
+ "sae"
334
+ ]).describe("服务连接类型: aliyun_code-阿里云代码, codeup-Codeup, gitee-码云, github-Github, ack-容器服务Kubernetes(ACK), docker_register_aliyun-容器镜像服务(ACR), ecs-ECS主机, edas-企业级分布式应用(EDAS), emas-移动研发平台(EMAS), fc-阿里云函数计算(FC), kubernetes-自建k8s集群, oss-对象存储(OSS), packages-制品仓库, ros-资源编排服务(ROS), sae-Serverless应用引擎(SAE)"),
335
+ });
336
+ // Host Group related types
337
+ export const HostInfoSchema = z.object({
338
+ aliyunRegion: z.string().nullable().optional().describe("阿里云区域"),
339
+ createTime: z.number().int().nullable().optional().describe("创建时间"),
340
+ creatorAccountId: z.string().nullable().optional().describe("创建者阿里云账号"),
341
+ instanceName: z.string().nullable().optional().describe("主机名"),
342
+ ip: z.string().nullable().optional().describe("机器IP"),
343
+ machineSn: z.string().nullable().optional().describe("机器SN"),
344
+ modiferAccountId: z.string().nullable().optional().describe("修改者阿里云账号"),
345
+ objectType: z.string().nullable().optional().describe("对象类型,固定为MachineInfo"),
346
+ updateTime: z.number().int().nullable().optional().describe("更新时间"),
347
+ });
348
+ export const HostGroupSchema = z.object({
349
+ aliyunRegion: z.string().nullable().optional().describe("阿里云区域"),
350
+ createTime: z.number().int().nullable().optional().describe("创建时间"),
351
+ creatorAccountId: z.string().nullable().optional().describe("创建人"),
352
+ description: z.string().nullable().optional().describe("主机组描述"),
353
+ ecsLabelKey: z.string().nullable().optional().describe("ECS标签Key"),
354
+ ecsLabelValue: z.string().nullable().optional().describe("ECS标签Value"),
355
+ ecsType: z.string().nullable().optional().describe("ECS类型,暂只支持ECS_ALIYUN"),
356
+ hostInfos: z.array(HostInfoSchema).nullable().optional().describe("主机信息列表"),
357
+ hostNum: z.number().int().nullable().optional().describe("主机数"),
358
+ id: z.number().int().nullable().optional().describe("主机组ID"),
359
+ uuid: z.string().nullable().optional().describe("主机组UUID"),
360
+ modiferAccountId: z.string().nullable().optional().describe("更新人"),
361
+ name: z.string().nullable().optional().describe("主机组名称"),
362
+ serviceConnectionId: z.number().int().nullable().optional().describe("服务连接ID"),
363
+ type: z.string().nullable().optional().describe("主机组类型"),
364
+ updateTime: z.number().int().nullable().optional().describe("更新时间"),
365
+ });
366
+ export const ListHostGroupsSchema = z.object({
367
+ organizationId: z.string().describe("组织ID,可在组织管理后台的基本信息页面获取"),
368
+ ids: z.string().optional().describe("主机组ID,多个逗号分割"),
369
+ name: z.string().optional().describe("主机组名称"),
370
+ createStartTime: z.number().int().optional().describe("主机组创建开始时间"),
371
+ createEndTime: z.number().int().optional().describe("主机组创建结束时间"),
372
+ creatorAccountIds: z.string().optional().describe("创建阿里云账号ID,多个逗号分割"),
373
+ perPage: z.number().int().min(1).max(30).default(10).optional().describe("每页数据条数,默认10,最大支持30"),
374
+ page: z.number().int().min(1).default(1).optional().describe("当前页,默认1"),
375
+ pageSort: z.string().optional().describe("排序条件ID"),
376
+ pageOrder: z.enum(["DESC", "ASC"]).default("DESC").optional().describe("排序顺序 DESC 降序 ASC 升序"),
377
+ });