/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import { codeReferencesListRepositories } from "../../funcs/codeReferencesListRepositories.js";
import * as operations from "../../models/operations/index.js";
import { formatResult, ToolDefinition } from "../tools.js";

const args = {
  request: operations.GetRepositoriesRequest$inboundSchema,
};

export const tool$codeReferencesListRepositories: ToolDefinition<typeof args> =
  {
    name: "get-code-references",
    description:
      `Identifies which repositories have code references to a given flag, helping agents determine if they're operating on the correct repository and understand the scope of cleanup (single vs multi-repo).
`,
    scopes: ["read"],
    args,
    tool: async (client, args, ctx) => {
      const [result, apiCall] = await codeReferencesListRepositories(
        client,
        args.request,
        { fetchOptions: { signal: ctx.signal } },
      ).$inspect();

      if (!result.ok) {
        return {
          content: [{ type: "text", text: result.error.message }],
          isError: true,
        };
      }

      const value = result.value;

      return formatResult(value, apiCall);
    },
  };
