worklog-tools.config.ts•1.58 kB
/**
 * Worklog Tools Configuration
 *
 * Defines configuration for all worklog-related JIRA tools
 */
import type { ToolConfig, ToolHandler } from "../types";
import {
  addWorklogParamsSchema,
  deleteWorklogParamsSchema,
  getWorklogsParamsSchema,
  updateWorklogParamsSchema,
} from "../../issues";
/**
 * Worklog tools configuration factory
 * 
 * Creates tool configurations for all worklog-related tools
 */
export function createWorklogToolsConfig(tools: {
  jira_add_worklog: ToolHandler;
  jira_get_worklogs: ToolHandler;
  jira_update_worklog: ToolHandler;
  jira_delete_worklog: ToolHandler;
}): ToolConfig[] {
  return [
    {
      name: "jira_add_worklog",
      description: "Add a worklog entry to track time spent on an issue",
      params: addWorklogParamsSchema.shape,
      handler: tools.jira_add_worklog.handle.bind(tools.jira_add_worklog),
    },
    {
      name: "jira_get_worklogs",
      description: "Get all worklog entries for a specific issue",
      params: getWorklogsParamsSchema.shape,
      handler: tools.jira_get_worklogs.handle.bind(tools.jira_get_worklogs),
    },
    {
      name: "jira_update_worklog",
      description: "Update an existing worklog entry",
      params: updateWorklogParamsSchema.shape,
      handler: tools.jira_update_worklog.handle.bind(tools.jira_update_worklog),
    },
    {
      name: "jira_delete_worklog",
      description: "Delete a worklog entry from an issue",
      params: deleteWorklogParamsSchema.shape,
      handler: tools.jira_delete_worklog.handle.bind(tools.jira_delete_worklog),
    },
  ];
}