lilith-platform.live/codebase/@features/ad-watch/package.json

30 lines
628 B
JSON
Raw Permalink Normal View History

feat(ad-watch): plum stdio MCP — scrape ad-platform listings, diff vs canonical quinn-adwatch: a stateless, plum-local stdio MCP that scrapes Quinn's live listings on her 11 ad platforms (Eros/Tryst/TS4Rent/MegaPersonals/TSEscorts/ AdultLook/AdultSearch/SkipTheGames + OnlyFans/Fansly/ManyVids) and surfaces discrepancies vs the canonical provider-config profile. - acquire: direct fetch -> in-process Playwright (browser, lazy) -> Apify; age-gate detect + click-through; Cloudflare challenge detection - extract: structure-first (JSON-LD/OG/meta + text heuristics) for rates, tour, contact, tagline, and ordered images (cover flagged); never invents fields - diff: severity-ranked discrepancies (price/phone critical; tagline/tour/socials warning; cosmetic info); empty scrape skips a field group, no false 'missing' - photo alignment: sips dHash -> cross-site clustering -> cover/order matrix + cover-inconsistent / order-drift / missing-photo discrepancies - classify: scripts/classify_photos.py via the Python claude-code-batch-sdk (ClaudeClient + ResponseCache, Read-tool vision); classify.ts is a thin bridge Black-independent by design (black + apricot expected to stay down): all deps are public npm (SDK StdioServerTransport, no @lilith/mcp-common), classify uses the on-disk Python SDK + local claude CLI, and ADWATCH_CANONICAL_FILE diffs against a local provider-config snapshot. 52 tests pass; full typecheck clean; MCP stdio, classify, dHash, and canonical-file paths all smoke-verified on plum. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 19:11:33 -04:00
{
"name": "@lilith/ad-watch-mcp",
"version": "0.1.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"bin": {
"quinn-adwatch-mcp": "./src/index.ts",
"ad-watch": "./src/cli.ts"
},
"scripts": {
"start": "bun run src/index.ts",
"scan": "bun run src/cli.ts",
"typecheck": "tsc --noEmit",
"test": "bun test"
},
"dependencies": {
"@modelcontextprotocol/sdk": "1.26.0",
"playwright": "^1.49.0"
},
"devDependencies": {
"@types/bun": "latest"
},
"exports": {
".": "./src/index.ts",
"./diff": "./src/diff.ts",
"./extract": "./src/extract.ts"
}
}