gitextract_opj8cugc/ ├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── app/ │ ├── globals.css │ ├── layout.tsx │ └── page.tsx ├── components/ │ ├── card-grid-skeleton.tsx │ ├── deploy-button.tsx │ ├── error.tsx │ ├── image-card.tsx │ ├── image-search.tsx │ ├── loading-spinner.tsx │ ├── match-badge.tsx │ ├── no-images-found.tsx │ ├── search-box.tsx │ ├── suspended-image-search.tsx │ └── ui/ │ ├── alert.tsx │ ├── badge.tsx │ ├── button.tsx │ ├── card.tsx │ ├── input.tsx │ └── skeleton.tsx ├── components.json ├── drizzle.config.ts ├── lib/ │ ├── ai/ │ │ ├── 0-upload.ts │ │ ├── 1-generate-metadata.ts │ │ ├── 2-embed-and-save.ts │ │ └── utils.ts │ ├── db/ │ │ ├── api.ts │ │ ├── index.ts │ │ └── schema.ts │ ├── hooks/ │ │ └── use-shared-transition.tsx │ └── utils.ts ├── next.config.mjs ├── package.json ├── postcss.config.mjs ├── tailwind.config.ts └── tsconfig.json