Skip to content

Commit f3e0f77

Browse files
Removed redundant tool schemas
1 parent 96f9af1 commit f3e0f77

File tree

2 files changed

+1
-130
lines changed

2 files changed

+1
-130
lines changed

src/types/index.ts

Lines changed: 0 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { z } from "zod";
2-
31
// Task and Project Interfaces
42
export interface Task {
53
id: string;
@@ -34,127 +32,6 @@ export const VALID_STATUS_TRANSITIONS = {
3432

3533
export type TaskState = "open" | "pending_approval" | "completed" | "all";
3634

37-
// Tool schemas
38-
// Project action schemas
39-
const ListProjectActionSchema = z.object({
40-
action: z.literal("list"),
41-
arguments: z.object({
42-
state: z.enum(["open", "pending_approval", "completed", "all"]).optional()
43-
}).strict()
44-
});
45-
46-
const CreateProjectActionSchema = z.object({
47-
action: z.literal("create"),
48-
arguments: z.object({
49-
initialPrompt: z.string().min(1, "Initial prompt is required"),
50-
projectPlan: z.string().optional(),
51-
tasks: z.array(z.object({
52-
title: z.string().min(1, "Task title is required"),
53-
description: z.string().min(1, "Task description is required")
54-
})).min(1, "At least one task is required")
55-
}).strict()
56-
});
57-
58-
const DeleteProjectActionSchema = z.object({
59-
action: z.literal("delete"),
60-
arguments: z.object({
61-
projectId: z.string().min(1, "Project ID is required")
62-
}).strict()
63-
});
64-
65-
const AddTasksActionSchema = z.object({
66-
action: z.literal("add_tasks"),
67-
arguments: z.object({
68-
projectId: z.string().min(1, "Project ID is required"),
69-
tasks: z.array(z.object({
70-
title: z.string().min(1, "Task title is required"),
71-
description: z.string().min(1, "Task description is required")
72-
})).min(1, "At least one task is required")
73-
}).strict()
74-
});
75-
76-
const FinalizeActionSchema = z.object({
77-
action: z.literal("finalize"),
78-
arguments: z.object({
79-
projectId: z.string().min(1, "Project ID is required")
80-
}).strict()
81-
});
82-
83-
// Task action schemas
84-
const ListTaskActionSchema = z.object({
85-
action: z.literal("list"),
86-
arguments: z.object({
87-
projectId: z.string().min(1, "Project ID is required").optional(),
88-
state: z.enum(["open", "pending_approval", "completed", "all"]).optional()
89-
}).strict()
90-
});
91-
92-
const ReadTaskActionSchema = z.object({
93-
action: z.literal("read"),
94-
arguments: z.object({
95-
taskId: z.string().min(1, "Task ID is required")
96-
}).strict()
97-
});
98-
99-
const UpdateTaskActionSchema = z.object({
100-
action: z.literal("update"),
101-
arguments: z.object({
102-
projectId: z.string().min(1, "Project ID is required"),
103-
taskId: z.string().min(1, "Task ID is required"),
104-
title: z.string().optional(),
105-
description: z.string().optional(),
106-
status: z.enum(["not started", "in progress", "done"]).optional(),
107-
completedDetails: z.string().optional()
108-
}).strict().refine(
109-
data => {
110-
if (data.status === 'done' && !data.completedDetails) {
111-
return false;
112-
}
113-
return true;
114-
},
115-
{
116-
message: 'completedDetails is required when status is "done"',
117-
path: ['completedDetails']
118-
}
119-
)
120-
});
121-
122-
const DeleteTaskActionSchema = z.object({
123-
action: z.literal("delete"),
124-
arguments: z.object({
125-
projectId: z.string().min(1, "Project ID is required"),
126-
taskId: z.string().min(1, "Task ID is required")
127-
}).strict()
128-
});
129-
130-
// Combined action schemas using discriminated unions
131-
export const ProjectActionSchema = z.discriminatedUnion("action", [
132-
ListProjectActionSchema,
133-
CreateProjectActionSchema,
134-
DeleteProjectActionSchema,
135-
AddTasksActionSchema,
136-
FinalizeActionSchema
137-
]);
138-
139-
export const TaskActionSchema = z.discriminatedUnion("action", [
140-
ListTaskActionSchema,
141-
ReadTaskActionSchema,
142-
UpdateTaskActionSchema,
143-
DeleteTaskActionSchema
144-
]);
145-
146-
// The project tool schema
147-
export const ProjectToolSchema = z.object({
148-
tool: z.literal("project"),
149-
params: ProjectActionSchema
150-
});
151-
152-
// The task tool schema
153-
export const TaskToolSchema = z.object({
154-
tool: z.literal("task"),
155-
params: TaskActionSchema
156-
});
157-
15835
// Error Types
15936
export enum ErrorCategory {
16037
Validation = 'VALIDATION',

tests/unit/tools.test.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { jest, describe, it, expect } from '@jest/globals';
1+
import { describe, it, expect } from '@jest/globals';
22
import { ALL_TOOLS } from '../../src/server/tools.js';
33
import { Tool } from '@modelcontextprotocol/sdk/types.js';
44

@@ -14,12 +14,6 @@ interface ToolInputSchema {
1414
required?: string[];
1515
}
1616

17-
interface TaskItemSchema {
18-
type: string;
19-
properties: Record<string, SchemaProperty>;
20-
required: string[];
21-
}
22-
2317
interface TasksInputSchema {
2418
type: string;
2519
properties: {

0 commit comments

Comments
 (0)