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({
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' })),
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({
@ -26,7 +26,7 @@ const UpdateTaskParams = Type.Object({
description: Type.Optional(Type.String({ description: 'New description' })),
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' })),
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({
@ -51,13 +51,13 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition<any>[] {
{
name: '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,
async execute(_id: string, params: any) {
const query: Record<string, string> = {};
if (params.project_slug) query.project_slug = params.project_slug;
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);
return ok(JSON.stringify(tasks, null, 2));
},
@ -86,7 +86,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition<any>[] {
{
name: '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,
async execute(_id: string, params: any) {
const { task_id, ...fields } = params;