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 underbackend/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: 6
- Total hits: 51
- Mutating (
WRITE): 1 - Read (
findUnique/findMany/...): 47 - Escape-hatch (
$transaction/$queryRaw/...): 0 - Imports of the prisma client: 3
- Mutating (
- Files needing Layer-3 extraction: 1
Punch list (files with mutating DB access)
| File | Writes | Escape-hatch ($tx/$queryRaw) |
|---|---|---|
src/ai/tools/agentTools.ts | 1 | 0 |
Full hit list
| File | Line | Kind | Receiver | Entity | Method | Source |
|---|---|---|---|---|---|---|
src/ai/tools/accountTools.ts | 10 | IMPORT | prisma | (import) | (import) | import { prisma } from '../../services/database.js'; |
src/ai/tools/accountTools.ts | 32 | READ | prisma | user | findUnique | const user = await prisma.user.findUnique({ |
src/ai/tools/accountTools.ts | 45 | READ | prisma | order | aggregate | const pendingBets = await prisma.order.aggregate({ |
src/ai/tools/accountTools.ts | 127 | READ | prisma | user | findUnique | const userByWallet = await prisma.user.findUnique({ |
src/ai/tools/accountTools.ts | 146 | READ | prisma | user | findUnique | const targetUser = await prisma.user.findUnique({ |
src/ai/tools/accountTools.ts | 157 | READ | prisma | user | findUnique | const user = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 40 | IMPORT | prisma | (import) | (import) | import { prisma } from '../../services/database.js'; |
src/ai/tools/agentTools.ts | 76 | READ | prisma | user | findUnique | const user = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 83 | READ | prisma | agent | findUnique | const agent = await prisma.agent.findUnique({ |
src/ai/tools/agentTools.ts | 142 | READ | prisma | user | findUnique | const exists = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 262 | READ | prisma | user | findMany | const players = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 334 | READ | prisma | agent | findUnique | const rootAgent = await prisma.agent.findUnique({ |
src/ai/tools/agentTools.ts | 344 | READ | prisma | agent | findUnique | const a = await prisma.agent.findUnique({ |
src/ai/tools/agentTools.ts | 358 | READ | prisma | agent | findMany | const childAgents = await prisma.agent.findMany({ |
src/ai/tools/agentTools.ts | 368 | READ | prisma | user | findMany | const childPlayers = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 390 | READ | prisma | user | findFirst | const selfUser = await prisma.user.findFirst({ |
src/ai/tools/agentTools.ts | 477 | READ | prisma | takeBalance | findUnique | prisma.takeBalance.findUnique({ |
src/ai/tools/agentTools.ts | 481 | READ | prisma | agent | findUnique | prisma.agent.findUnique({ |
src/ai/tools/agentTools.ts | 485 | READ | prisma | user | findUnique | prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 520 | READ | prisma | user | findMany | const players = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 538 | READ | prisma | takeBalance | findMany | const takeRows = await prisma.takeBalance.findMany({ |
src/ai/tools/agentTools.ts | 651 | READ | prisma | user | findMany | const downlinePlayers = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 680 | READ | prisma | marketExposure | findMany | const v1Rows = await prisma.marketExposure.findMany({ |
src/ai/tools/agentTools.ts | 750 | READ | prisma | order | findMany | const labelOrders = await prisma.order.findMany({ |
src/ai/tools/agentTools.ts | 926 | READ | prisma | user | findMany | const players = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 966 | READ | prisma | order | findMany | const orders = await prisma.order.findMany({ |
src/ai/tools/agentTools.ts | 1070 | READ | prisma | user | findFirst | const player = await prisma.user.findFirst({ |
src/ai/tools/agentTools.ts | 1262 | READ | prisma | user | findUnique | const player = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 1336 | READ | prisma | user | findMany | const players = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 1354 | READ | prisma | commissionRecord | findMany | const records = await prisma.commissionRecord.findMany({ |
src/ai/tools/agentTools.ts | 1487 | READ | prisma | user | findMany | const players = await prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 1509 | READ | prisma | commissionRecord | findMany | const records = await prisma.commissionRecord.findMany({ |
src/ai/tools/agentTools.ts | 1536 | READ | prisma | order | findMany | const orderMeta = await prisma.order.findMany({ |
src/ai/tools/agentTools.ts | 1708 | READ | prisma | user | findMany | prisma.user.findMany({ |
src/ai/tools/agentTools.ts | 1718 | READ | prisma | agent | findMany | : prisma.agent.findMany({ |
src/ai/tools/agentTools.ts | 1742 | READ | prisma | transferSettlement | findMany | const settlements = await prisma.transferSettlement.findMany({ |
src/ai/tools/agentTools.ts | 1834 | READ | prisma | takeBalance | findUnique | const takeRow = await prisma.takeBalance.findUnique({ |
src/ai/tools/agentTools.ts | 1937 | READ | prisma | user | findUnique | const callerUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 1947 | READ | prisma | takeBalance | findUnique | const takeRow = await prisma.takeBalance.findUnique({ |
src/ai/tools/agentTools.ts | 2067 | READ | prisma | user | findUnique | const callerUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2159 | READ | prisma | user | findUnique | const callerUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2273 | READ | prisma | user | findUnique | const credUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2333 | READ | prisma | user | findUnique | const callerUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2342 | READ | prisma | user | findUnique | const credUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2352 | WRITE | prisma | user | update | await prisma.user.update({ |
src/ai/tools/agentTools.ts | 2435 | READ | prisma | user | findUnique | const current = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2499 | READ | prisma | user | findUnique | const callerUser = await prisma.user.findUnique({ |
src/ai/tools/agentTools.ts | 2822 | READ | prisma | user | findMany | const downlinePlayers = await prisma.user.findMany({ |
src/ai/tools/betTools.ts | 11 | IMPORT | prisma | (import) | (import) | import { prisma } from '../../services/database.js'; |
src/ai/tools/betTools.ts | 173 | READ | prisma | user | findUnique | const user = await prisma.user.findUnique({ |
src/ai/tools/betTools.ts | 427 | READ | prisma | order | findMany | const orders = await prisma.order.findMany({ |