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

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

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

export const tool$featureFlagsGetStatus: ToolDefinition<typeof args> = {
  name: "get-flag-status-across-environments",
  description:
    `Returns lifecycle status (new, active, inactive, launched) based on actual usage patterns, evaluation counts, and configuration stability. This is the key intelligence for removal readiness assessment.
`,
  scopes: ["read"],
  args,
  tool: async (client, args, ctx) => {
    const [result, apiCall] = await featureFlagsGetStatus(
      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);
  },
};
