--- import { Base64 } from "js-base64"; import config from "virtual:starlight/user-config"; import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; import Share from "../../components/Share.tsx"; const apiUrl = import.meta.env.VITE_API_URL; const { id } = Astro.params; const res = await fetch(`${apiUrl}/share_data?id=${id}`); const data = await res.json(); if (!data.info) { return new Response(null, { status: 404, statusText: 'Not found' }); } const models: Set = new Set(); const version = data.info.version ? `v${data.info.version}` : "v0.0.1"; Object.values(data.messages).forEach((d) => { const assistant = d.metadata?.assistant; if (assistant) { models.add(assistant.modelID); } }); const encodedTitle = encodeURIComponent( Base64.encode( // Convert to ASCII encodeURIComponent( // Truncate to fit S3's max key size data.info.title.substring(0, 700), ) ) ); const ogImage = `https://social-cards.sst.dev/opencode-share/${encodedTitle}.png?model=${Array.from(models).join(",")}&version=${version}&id=${id}`; ---