'use client' import { graphql } from '@/lib/gql/generates' import { WorkerKind } from '@/lib/gql/generates/graphql' import { useHealth } from '@/lib/hooks/use-health' import { useWorkers } from '@/lib/hooks/use-workers' import { useAuthenticatedGraphQLQuery, useGraphQLForm } from '@/lib/tabby/gql' import { Button } from '@/components/ui/button' import { IconRotate } from '@/components/ui/icons' import { Input } from '@/components/ui/input' import { Separator } from '@/components/ui/separator' import { CopyButton } from '@/components/copy-button' import WorkerCard from './worker-card' const getRegistrationTokenDocument = graphql(/* GraphQL */ ` query GetRegistrationToken { registrationToken } `) const resetRegistrationTokenDocument = graphql(/* GraphQL */ ` mutation ResetRegistrationToken { resetRegistrationToken } `) function toBadgeString(str: string) { return encodeURIComponent(str.replaceAll('-', '--')) } export default function Workers() { const { data: healthInfo } = useHealth() const workers = useWorkers() const { data: registrationTokenRes, mutate } = useAuthenticatedGraphQLQuery( getRegistrationTokenDocument ) const { onSubmit: resetRegistrationToken } = useGraphQLForm( resetRegistrationTokenDocument, { onSuccess: () => mutate() } ) if (!healthInfo) return return (

Congratulations, your tabby instance is up!

{!!registrationTokenRes?.registrationToken && (
Registration token:
)}
{!!workers?.[WorkerKind.Completion] && ( <> {workers[WorkerKind.Completion].map((worker, i) => { return })} )} {!!workers?.[WorkerKind.Chat] && ( <> {workers[WorkerKind.Chat].map((worker, i) => { return })} )}
) }