refactor: обновление типов под UUID member refs

- tasks.ts: assignee_slug -> assignee_id в параметрах
- Обновлены описания и фильтры для использования UUID идентификаторов
- TrackerClient методы остались без изменений (пока)
This commit is contained in:
Markov 2026-02-25 00:13:41 +01:00
parent 195c2eb691
commit 5e60e34c3f

View File

@ -5,7 +5,7 @@ import type { ToolContext } from './types.js';
const ListTasksParams = Type.Object({ const ListTasksParams = Type.Object({
project_slug: Type.Optional(Type.String({ description: 'Filter by project slug' })), project_slug: Type.Optional(Type.String({ description: 'Filter by project slug' })),
status: Type.Optional(Type.String({ description: 'Filter by status: backlog|todo|in_progress|in_review|done' })), status: Type.Optional(Type.String({ description: 'Filter by status: backlog|todo|in_progress|in_review|done' })),
assignee_slug: Type.Optional(Type.String({ description: 'Filter by assignee slug' })), assignee_id: Type.Optional(Type.String({ description: 'Filter by assignee ID (UUID)' })),
}); });
const GetTaskParams = Type.Object({ const GetTaskParams = Type.Object({
@ -26,7 +26,7 @@ const UpdateTaskParams = Type.Object({
description: Type.Optional(Type.String({ description: 'New description' })), description: Type.Optional(Type.String({ description: 'New description' })),
status: Type.Optional(Type.String({ description: 'New status: backlog|todo|in_progress|in_review|done' })), status: Type.Optional(Type.String({ description: 'New status: backlog|todo|in_progress|in_review|done' })),
priority: Type.Optional(Type.String({ description: 'New priority: low|medium|high|critical' })), priority: Type.Optional(Type.String({ description: 'New priority: low|medium|high|critical' })),
assignee_slug: Type.Optional(Type.String({ description: 'Assignee slug (or null to unassign)' })), assignee_id: Type.Optional(Type.String({ description: 'Assignee ID (UUID, or null to unassign)' })),
}); });
const TakeTaskParams = Type.Object({ const TakeTaskParams = Type.Object({
@ -51,13 +51,13 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition<any>[] {
{ {
name: 'list_tasks', name: 'list_tasks',
label: 'List Tasks', label: 'List Tasks',
description: 'List tasks with optional filters (project_slug, status, assignee_slug). Returns array of task objects.', description: 'List tasks with optional filters (project_slug, status, assignee_id). Returns array of task objects.',
parameters: ListTasksParams, parameters: ListTasksParams,
async execute(_id: string, params: any) { async execute(_id: string, params: any) {
const query: Record<string, string> = {}; const query: Record<string, string> = {};
if (params.project_slug) query.project_slug = params.project_slug; if (params.project_slug) query.project_slug = params.project_slug;
if (params.status) query.status = params.status; if (params.status) query.status = params.status;
if (params.assignee_slug) query.assignee_slug = params.assignee_slug; if (params.assignee_id) query.assignee_id = params.assignee_id;
const tasks = await ctx.trackerClient.listTasks(query); const tasks = await ctx.trackerClient.listTasks(query);
return ok(JSON.stringify(tasks, null, 2)); return ok(JSON.stringify(tasks, null, 2));
}, },
@ -86,7 +86,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition<any>[] {
{ {
name: 'update_task', name: 'update_task',
label: 'Update Task', label: 'Update Task',
description: 'Update task fields (title, description, status, priority, assignee_slug). Only pass fields you want to change.', description: 'Update task fields (title, description, status, priority, assignee_id). Only pass fields you want to change.',
parameters: UpdateTaskParams, parameters: UpdateTaskParams,
async execute(_id: string, params: any) { async execute(_id: string, params: any) {
const { task_id, ...fields } = params; const { task_id, ...fields } = params;