The world's first AI-powered expired intellectual property intelligence engine. Mine 180+ jurisdictions for dead trademarks, expired patents and public domain assets — scored, ranked and ready to claim.
export default {
async fetch(request, env) {
const { query, class: niceClass, era, jurisdiction } =
await request.json();
// 1. Check KV cache first (sub-millisecond)
const cacheKey = `search:${query}:${niceClass}:${era}:${jurisdiction}`;
const cached = await env.GRAVITAS_KV.get(cacheKey, 'json');
if (cached) return Response.json(cached);
// 2. Query D1 database for dead marks
const marks = await env.DB.prepare(`
SELECT * FROM ip_assets
WHERE status IN ('DEAD','EXPIRED','CANCELLED')
AND nice_class = ? AND era = ? AND jurisdiction = ?
AND lower(name) LIKE lower(?)
ORDER BY opportunity_score DESC LIMIT 20
`).bind(niceClass, era, jurisdiction, `%${query}%`).all();
// 3. Enrich with Claude AI analysis via AI Gateway
const enriched = await Promise.all(marks.results.map(async (mark) => {
const analysis = await env.AI_GATEWAY.run('claude-sonnet-4-6', {
system: OPPORTUNITY_ANALYST_PROMPT,
messages: [{ role: 'user', content: JSON.stringify(mark) }]
});
return { ...mark, ai_analysis: analysis };
}));
// 4. Cache results in KV (TTL: 1 hour)
await env.GRAVITAS_KV.put(cacheKey, JSON.stringify(enriched),
{ expirationTtl: 3600 });
// 5. Queue background enrichment (eBay demand, Trends data)
await env.ENRICHMENT_QUEUE.send({ marks: marks.results });
return Response.json(enriched);
}
}