/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * API specification * OpenAPI spec version: 0.1.0 */ import { useMutation, useQuery } from "@tanstack/react-query"; import type { MutationFunction, QueryFunction, QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, } from "@tanstack/react-query"; import type { CreateJobRequest, CreateJobResponse, DemoResponse, ErrorResponse, HealthStatus, JobStatusResponse, RunDemoParams, } from "./api.schemas"; import { customFetch } from "../custom-fetch"; import type { ErrorType, BodyType } from "../custom-fetch"; type AwaitedInput = PromiseLike | T; type Awaited = O extends AwaitedInput ? T : never; type SecondParameter unknown> = Parameters[1]; /** * Returns server health status * @summary Health check */ export const getHealthCheckUrl = () => { return `/api/healthz`; }; export const healthCheck = async ( options?: RequestInit, ): Promise => { return customFetch(getHealthCheckUrl(), { ...options, method: "GET", }); }; export const getHealthCheckQueryKey = () => { return [`/api/healthz`] as const; }; export const getHealthCheckQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getHealthCheckQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => healthCheck({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type HealthCheckQueryResult = NonNullable< Awaited> >; export type HealthCheckQueryError = ErrorType; /** * @summary Health check */ export function useHealthCheck< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getHealthCheckQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * Accepts a request, creates a job row, and issues an eval fee Lightning invoice. * @summary Create a new agent job */ export const getCreateJobUrl = () => { return `/api/jobs`; }; export const createJob = async ( createJobRequest: CreateJobRequest, options?: RequestInit, ): Promise => { return customFetch(getCreateJobUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(createJobRequest), }); }; export const getCreateJobMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["createJob"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return createJob(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CreateJobMutationResult = NonNullable< Awaited> >; export type CreateJobMutationBody = BodyType; export type CreateJobMutationError = ErrorType; /** * @summary Create a new agent job */ export const useCreateJob = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getCreateJobMutationOptions(options)); }; /** * Returns current job state. Automatically advances the state machine when a pending invoice is found to be paid. * @summary Get job status */ export const getGetJobUrl = (id: string) => { return `/api/jobs/${id}`; }; export const getJob = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getGetJobUrl(id), { ...options, method: "GET", }); }; export const getGetJobQueryKey = (id: string) => { return [`/api/jobs/${id}`] as const; }; export const getGetJobQueryOptions = < TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetJobQueryKey(id); const queryFn: QueryFunction>> = ({ signal, }) => getJob(id, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!id, ...queryOptions, } as UseQueryOptions>, TError, TData> & { queryKey: QueryKey; }; }; export type GetJobQueryResult = NonNullable>>; export type GetJobQueryError = ErrorType; /** * @summary Get job status */ export function useGetJob< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetJobQueryOptions(id, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * Runs the agent without payment. Limited to 5 requests per IP per hour. * @summary Free demo (rate-limited) */ export const getRunDemoUrl = (params: RunDemoParams) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? "null" : value.toString()); } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/demo?${stringifiedParams}` : `/api/demo`; }; export const runDemo = async ( params: RunDemoParams, options?: RequestInit, ): Promise => { return customFetch(getRunDemoUrl(params), { ...options, method: "GET", }); }; export const getRunDemoQueryKey = (params?: RunDemoParams) => { return [`/api/demo`, ...(params ? [params] : [])] as const; }; export const getRunDemoQueryOptions = < TData = Awaited>, TError = ErrorType, >( params: RunDemoParams, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getRunDemoQueryKey(params); const queryFn: QueryFunction>> = ({ signal, }) => runDemo(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type RunDemoQueryResult = NonNullable< Awaited> >; export type RunDemoQueryError = ErrorType; /** * @summary Free demo (rate-limited) */ export function useRunDemo< TData = Awaited>, TError = ErrorType, >( params: RunDemoParams, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getRunDemoQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; }