import { requestCodeIndex } from "~/server/code/search-index";
import { createServerFn } from "@tanstack/react-start";
import { kickRepoInsights } from "~/server/insights/repo-insights-do";
import { assertBelowCap, CAPS, limitWrite, limitAccountWrite, withinRateLimit, MAX_PAGE } from "~/server/limits";
import { z } from "zod";
import { MAX_TOPIC_LENGTH, MAX_TOPICS, normalizeTopics, parseTopics, TopicError } from "~/lib/topics";
import { requireViewer, viewerMiddleware } from "./middleware";
import { all, batch, first, run } from "~/server/db";
import { addCounter, counterTotals } from "~/server/counters";
import { REPO_STARS } from "~/server/counter-keys";
import { repoMoveStatements } from "~/server/redirects";
import { syncHostingForRepo } from "~/server/sites/sync";
import { isScratchRepo } from "~/server/sites/config";
import {
assertOwnerNotDisabled,
assertNotArchived,
canCreateInAccount,
hasPermission,
hasPrivateForkAncestor,
requireRepoAccess,
toRepoSummaries,
toRepoSummary,
visibleReposClause,
} from "~/server/repos";
import {
createRepository,
deleteRepository,
forkRepository,
importRepository,
refreshRepoStatus,
reindexRepo,
} from "~/server/repo-ops";
import { listRefs } from "~/server/git/refs";
import { containersEnabled } from "~/server/editor/container-config";
import { containersAllowedFor } from "~/server/editor/container-meter";
import { ownerAccount, setCollaborator as setRepoCollaborator } from "~/server/collaborators";
import { assertCanFork } from "~/server/fork-policy";
import { purgeRepoCaches } from "~/server/git/cache-purge";
import { dropHiddenRefsForRepo, requestHiddenRefCleanup } from "~/server/git/pull-bridge";
import { syncRepoAdvisoryIndex } from "~/server/security/advisory-packages";