Skip to content

Commit 9aab79e

Browse files
authored
Merge pull request #12 from yepcode/bugfix/add-missing-process-update-tool
Add missing update_process tool
2 parents e6b351c + 27250ed commit 9aab79e

2 files changed

Lines changed: 151 additions & 0 deletions

File tree

src/server.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import {
5757
GetProcessesSchema,
5858
CreateProcessSchema,
5959
GetProcessSchema,
60+
UpdateProcessSchema,
6061
DeleteProcessSchema,
6162
GetProcessVersionsSchema,
6263
ExecuteProcessAsyncSchema,
@@ -640,6 +641,20 @@ class YepCodeMcpServer extends Server {
640641
}
641642
);
642643

644+
case processesToolNames.updateProcess:
645+
return this.handleToolRequest(
646+
UpdateProcessSchema,
647+
request,
648+
async (data) => {
649+
const { identifier, ...rest } = data;
650+
const process = await this.yepCodeApi.updateProcess(
651+
identifier,
652+
rest
653+
);
654+
return process;
655+
}
656+
);
657+
643658
case processesToolNames.deleteProcess:
644659
return this.handleToolRequest(
645660
DeleteProcessSchema,

src/tools/processes-tool-definitions.ts

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,73 @@ export const DeleteProcessSchema = z.object({
110110
.describe("Unique identifier of the process to delete (UUID or slug)"),
111111
});
112112

113+
// Schema for updating a process
114+
export const UpdateProcessSchema = z.object({
115+
identifier: z
116+
.string()
117+
.describe("Unique identifier of the process to update (UUID or slug)"),
118+
name: z
119+
.string()
120+
.optional()
121+
.describe(
122+
"The updated name of the process. This will be displayed in the UI and used for identification."
123+
),
124+
slug: z
125+
.string()
126+
.optional()
127+
.describe(
128+
"The updated unique identifier for the process. Used in URLs and API calls. Must be URL-safe (lowercase, hyphens, no spaces)."
129+
),
130+
description: z
131+
.string()
132+
.optional()
133+
.describe(
134+
"The updated detailed description of what the process does. This helps users understand the process purpose and functionality."
135+
),
136+
readme: z
137+
.string()
138+
.optional()
139+
.describe(
140+
"The updated markdown documentation for the process. This can include usage instructions, examples, and additional context."
141+
),
142+
sourceCode: z
143+
.string()
144+
.optional()
145+
.describe(
146+
"The updated source code of the process. This is the executable code that will run when the process is executed."
147+
),
148+
parametersSchema: z
149+
.string()
150+
.optional()
151+
.describe(
152+
"The updated JSON Schema defining the input parameters for the process. This schema is used to generate forms in the UI and validate input data."
153+
),
154+
webhook: z
155+
.record(z.any())
156+
.optional()
157+
.describe(
158+
"Updated webhook configuration for the process. Defines how the process can be triggered via HTTP webhooks."
159+
),
160+
settings: z
161+
.record(z.any())
162+
.optional()
163+
.describe(
164+
"Updated process settings and configuration options. Includes publication settings, form configurations, and dependencies."
165+
),
166+
manifest: z
167+
.record(z.any())
168+
.optional()
169+
.describe(
170+
"Updated process manifest configuration. Contains metadata and configuration for the process deployment and execution."
171+
),
172+
tags: z
173+
.array(z.string())
174+
.optional()
175+
.describe(
176+
"Updated tags for categorizing and organizing processes. Used for filtering and grouping in the UI."
177+
),
178+
});
179+
113180
// Schema for getting process versions
114181
export const GetProcessVersionsSchema = z.object({
115182
processId: z.string().describe("Process ID"),
@@ -218,6 +285,7 @@ export const processesToolNames = {
218285
getProcesses: "get_processes",
219286
createProcess: "create_process",
220287
getProcess: "get_process",
288+
updateProcess: "update_process",
221289
deleteProcess: "delete_process",
222290
getProcessVersions: "get_process_versions",
223291
executeProcessAsync: "execute_process_async",
@@ -346,6 +414,74 @@ export const processesToolDefinitions = [
346414
required: ["identifier"],
347415
},
348416
},
417+
{
418+
name: processesToolNames.updateProcess,
419+
title: "Update Process",
420+
description:
421+
"Updates an existing process with new configuration, source code, or metadata. All fields provided will replace the existing values.",
422+
inputSchema: {
423+
type: "object",
424+
properties: {
425+
identifier: {
426+
type: "string",
427+
description:
428+
"Unique identifier of the process to update (UUID or slug)",
429+
},
430+
name: {
431+
type: "string",
432+
description:
433+
"The updated name of the process. This will be displayed in the UI and used for identification.",
434+
},
435+
slug: {
436+
type: "string",
437+
description:
438+
"The updated unique identifier for the process. Used in URLs and API calls. Must be URL-safe (lowercase, hyphens, no spaces).",
439+
},
440+
description: {
441+
type: "string",
442+
description:
443+
"The updated detailed description of what the process does. This helps users understand the process purpose and functionality.",
444+
},
445+
readme: {
446+
type: "string",
447+
description:
448+
"The updated markdown documentation for the process. This can include usage instructions, examples, and additional context.",
449+
},
450+
sourceCode: {
451+
type: "string",
452+
description:
453+
"The updated source code of the process. This is the executable code that will run when the process is executed.",
454+
},
455+
parametersSchema: {
456+
type: "string",
457+
description:
458+
"The updated JSON Schema defining the input parameters for the process. This schema is used to generate forms in the UI and validate input data.",
459+
},
460+
webhook: {
461+
type: "object",
462+
description:
463+
"Updated webhook configuration for the process. Defines how the process can be triggered via HTTP webhooks.",
464+
},
465+
settings: {
466+
type: "object",
467+
description:
468+
"Updated process settings and configuration options. Includes publication settings, form configurations, and dependencies.",
469+
},
470+
manifest: {
471+
type: "object",
472+
description:
473+
"Updated process manifest configuration. Contains metadata and configuration for the process deployment and execution.",
474+
},
475+
tags: {
476+
type: "array",
477+
items: { type: "string" },
478+
description:
479+
"Updated tags for categorizing and organizing processes. Used for filtering and grouping in the UI.",
480+
},
481+
},
482+
required: ["identifier"],
483+
},
484+
},
349485
{
350486
name: processesToolNames.deleteProcess,
351487
title: "Delete Process",

0 commit comments

Comments
 (0)