Skip to main content

AI Agent Tool DB Inventory

Auto-generated by backend/scripts/inventory-ai-tool-writes.ts. Do not edit by hand. Re-run the script after any change under backend/src/ai/tools/.

Why this exists

Layer-2 of the AI tool architectural cleanup. The script statically scans every file under backend/src/ai/tools/**/*.ts and lists every Prisma write, read, escape-hatch ($transaction / $queryRaw / etc.), and client import. The result is the complete bypass surface — what the AI agent panel touches directly today.

The punch list (files with WRITE or ESCAPE hits) is what Layer-3 extraction needs to migrate to domain/agentOps/* so the canonical services own these invariants instead of the tools reimplementing them.

Summary

  • Scanned files: 7
  • Total hits: 37
    • Mutating (WRITE): 0
    • Read (findUnique/findMany/...): 33
    • Escape-hatch ($transaction/$queryRaw/...): 0
    • Imports of the prisma client: 4
  • Files needing Layer-3 extraction: 0

Punch list (files with mutating DB access)

(none — every tool delegates to a domain service. Layer-3 work is done.)

Full hit list

FileLineKindReceiverEntityMethodSource
src/ai/tools/accountTools.ts10IMPORTprisma(import)(import)import { prisma } from '../../services/database.js';
src/ai/tools/accountTools.ts30READprismauserfindUniqueconst user = await prisma.user.findUnique({
src/ai/tools/accountTools.ts43READprismaorderaggregateconst pendingBets = await prisma.order.aggregate({
src/ai/tools/accountTools.ts133READprismauserfindUniqueconst userByWallet = await prisma.user.findUnique({
src/ai/tools/accountTools.ts152READprismauserfindUniqueconst targetUser = await prisma.user.findUnique({
src/ai/tools/accountTools.ts163READprismauserfindUniqueconst user = await prisma.user.findUnique({
src/ai/tools/adminTools.ts9IMPORTprisma(import)(import)import { prisma } from '../../services/database.js';
src/ai/tools/adminTools.ts77READprismauserfindUniqueconst targetUser = await prisma.user.findUnique({
src/ai/tools/adminTools.ts103READprismauserfindUniqueconst callerUser = await prisma.user.findUnique({
src/ai/tools/agentTools.ts35IMPORTprisma(import)(import)import { prisma } from '../../services/database.js';
src/ai/tools/agentTools.ts67READprismauserfindUniqueconst user = await prisma.user.findUnique({
src/ai/tools/agentTools.ts74READprismaagentfindUniqueconst agent = await prisma.agent.findUnique({
src/ai/tools/agentTools.ts133READprismauserfindUniqueconst exists = await prisma.user.findUnique({
src/ai/tools/agentTools.ts223READprismauserfindManyconst players = await prisma.user.findMany({
src/ai/tools/agentTools.ts295READprismaagentfindUniqueconst rootAgent = await prisma.agent.findUnique({
src/ai/tools/agentTools.ts305READprismaagentfindUniqueconst a = await prisma.agent.findUnique({
src/ai/tools/agentTools.ts319READprismaagentfindManyconst childAgents = await prisma.agent.findMany({
src/ai/tools/agentTools.ts329READprismauserfindManyconst childPlayers = await prisma.user.findMany({
src/ai/tools/agentTools.ts351READprismauserfindFirstconst selfUser = await prisma.user.findFirst({
src/ai/tools/agentTools.ts428READprismauserfindManyconst players = await prisma.user.findMany({
src/ai/tools/agentTools.ts445READprismatakeBalancefindManyconst takeRows = await prisma.takeBalance.findMany({
src/ai/tools/agentTools.ts539READprismav3ExposureLedgerfindManyconst ledgerRows = await prisma.v3ExposureLedger.findMany({
src/ai/tools/agentTools.ts661READprismauserfindManyconst players = await prisma.user.findMany({
src/ai/tools/agentTools.ts695READprismaorderfindManyconst orders = await prisma.order.findMany({
src/ai/tools/agentTools.ts797READprismauserfindFirstconst player = await prisma.user.findFirst({
src/ai/tools/agentTools.ts994READprismauserfindUniqueconst player = await prisma.user.findUnique({
src/ai/tools/agentTools.ts1063READprismauserfindManyconst players = await prisma.user.findMany({
src/ai/tools/agentTools.ts1081READprismacommissionRecordfindManyconst records = await prisma.commissionRecord.findMany({
src/ai/tools/agentTools.ts1193READprismatakeBalancefindUniqueconst takeRow = await prisma.takeBalance.findUnique({
src/ai/tools/agentTools.ts1298READprismauserfindUniqueconst callerUser = await prisma.user.findUnique({
src/ai/tools/agentTools.ts1308READprismatakeBalancefindUniqueconst takeRow = await prisma.takeBalance.findUnique({
src/ai/tools/agentTools.ts1430READprismauserfindUniqueconst callerUser = await prisma.user.findUnique({
src/ai/tools/agentTools.ts1522READprismauserfindUniqueconst callerUser = await prisma.user.findUnique({
src/ai/tools/agentTools.ts1863READprismauserfindManyconst downlinePlayers = await prisma.user.findMany({
src/ai/tools/betTools.ts11IMPORTprisma(import)(import)import { prisma } from '../../services/database.js';
src/ai/tools/betTools.ts169READprismauserfindUniqueconst user = await prisma.user.findUnique({
src/ai/tools/betTools.ts414READprismaorderfindManyconst orders = await prisma.order.findMany({