import { parseLanguages } from "~/lib/languages";
import { requestCodeIndex } from "../code/search-index";
import { MAX_TOPIC_LENGTH, MAX_TOPICS, normalizeTopics, parseTopics, TopicError } from "~/lib/topics";
import { assertCanFork } from "../fork-policy";
import { kickRepoInsights } from "../insights/repo-insights-do";
import { purgeRepoCaches } from "../git/cache-purge";
import { waitUntil } from "cloudflare:workers";
import { syncHostingForRepo } from "../sites/sync";
import { z } from "zod";
import { all, first, run } from "../db";
import { conflict, forbidden, notFoundError } from "../errors";
import { listRefs } from "../git/refs";
import { resyncImportedRefs } from "../git/ref-sync";
import { dropHiddenRefsForRepo, requestHiddenRefCleanup } from "../git/pull-bridge";
import { syncRepoAdvisoryIndex } from "../security/advisory-packages";
import { purgeInaccessibleFollowers } from "../access-revocation";
import { assertBelowCap, CAPS, limitHeavy, limitWrite, limitAccountWrite } from "../limits";
import {
assertOwnerNotDisabled,
assertNotArchived,
canCreateInAccount,
hasPrivateForkAncestor,
loadRepo,
REPO_SELECT,
visibleReposClause,
} from "../repos";
import {
createRepository,
deleteRepository,
forkRepository,
importRepository,
refreshRepoStatus,
reindexRepo,
} from "../repo-ops";
import { credentialAllows } from "../token-scope";
import { syncSiteForRepo } from "../sites/sync";
import { findCollaboratorUser, setCollaborator } from "../collaborators";
import { repoName } from "~/lib/validation";
import type { RepoRow } from "~/lib/types";
import {