Files
turbostarter/packages/api/tests/check-document.ts
Alejandro Gutiérrez 3527e732d4 feat: turbostarter boilerplate
Production-ready Next.js boilerplate with:
- Runtime env validation (fail-fast on missing vars)
- Feature-gated config (S3, Stripe, email, OAuth)
- Docker + Coolify deployment pipeline
- PostgreSQL + pgvector, MinIO S3, Better Auth
- TypeScript strict mode (no ignoreBuildErrors)
- i18n (en/es), AI modules, billing, monitoring

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 01:01:55 +01:00

82 lines
2.2 KiB
TypeScript

/**
* Script to check a specific document and its embeddings
* Run: pnpm with-env npx tsx packages/api/tests/check-document.ts
*/
import { sql } from "@turbostarter/db";
import { db } from "@turbostarter/db/server";
const DOC_ID = "JnOv9Z7JK2ZWU92OrFFFuuCY1TSksaWv";
async function check() {
console.log(`\n=== Checking document: ${DOC_ID} ===\n`);
// 1. Check if document exists in pdf.document
const docResult = await db.execute<{
id: string;
path: string;
name: string | null;
chat_id: string;
created_at: Date;
}>(sql`
SELECT id, path, name, chat_id, created_at
FROM pdf.document
WHERE id = ${DOC_ID}
`);
console.log("Document record:", docResult);
if (!Array.isArray(docResult) || docResult.length === 0) {
console.log("❌ Document NOT FOUND in pdf.document table!");
// Check if it might be in a different table or with different ID
const allDocs = await db.execute<{
id: string;
path: string;
chat_id: string;
}>(sql`SELECT id, path, chat_id FROM pdf.document ORDER BY created_at DESC LIMIT 10`);
console.log("\nRecent documents in pdf.document:");
for (const doc of allDocs as { id: string; path: string }[]) {
console.log(` - ${doc.id} | ${doc.path}`);
}
process.exit(0);
}
const doc = docResult[0]!;
console.log(`✅ Document found: ${doc.name ?? doc.path}`);
// 2. Count embeddings for this document
const embeddingCount = await db.execute<{ count: number }>(sql`
SELECT COUNT(*)::int as count
FROM pdf.embedding
WHERE document_id = ${DOC_ID}
`);
const count = (embeddingCount as { count: number }[])[0]?.count ?? 0;
console.log(`📊 Embedding count: ${count}`);
if (count === 0) {
console.log("❌ Document has 0 embeddings - needs regeneration!");
console.log(` Path: ${doc.path}`);
} else {
console.log("✅ Document has embeddings");
// Show sample embeddings
const samples = await db.execute(sql`
SELECT id, LEFT(content, 80) as preview, page_number
FROM pdf.embedding
WHERE document_id = ${DOC_ID}
LIMIT 3
`);
console.log("\nSample embeddings:", samples);
}
process.exit(0);
}
check().catch((e) => {
console.error("Error:", e);
process.exit(1);
});