From 8784c5121f3d4b4387b08ef5b246d0fe759f1def Mon Sep 17 00:00:00 2001 From: iliassjabali Date: Sun, 12 Apr 2026 00:40:59 +0100 Subject: [PATCH 1/4] feat(docs): add og:image social card for link previews Closes #31. - Add scripts/generate-og-card.ts using satori + resvg to render a 1280x640 PNG from a plain-object tree (no JSX config needed). Output: docs/public/og-card.png. Run with `pnpm og-card`. - Add a vitest spec that asserts PNG magic bytes and dimensions. Wired into root `pnpm test` via a new `test:scripts` target. - Wire og:* and twitter:* meta tags in docs/.vitepress/config.mts pointing at https://agents-oss.github.io/agentspec/og-card.png. Manual follow-up (cannot be scripted): upload the same PNG to Settings -> Social preview on the GitHub repo. --- docs/.vitepress/config.mts | 16 ++ docs/public/og-card.png | Bin 0 -> 62139 bytes package.json | 9 +- pnpm-lock.yaml | 299 +++++++++++++++++++++ scripts/__tests__/generate-og-card.test.ts | 28 ++ scripts/generate-og-card.ts | 251 +++++++++++++++++ vitest.config.ts | 7 + 7 files changed, 608 insertions(+), 2 deletions(-) create mode 100644 docs/public/og-card.png create mode 100644 scripts/__tests__/generate-og-card.test.ts create mode 100644 scripts/generate-og-card.ts create mode 100644 vitest.config.ts diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 950e112..a8a2918 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -11,6 +11,22 @@ export default defineConfig({ cleanUrls: true, srcExclude: ['**/CLAUDE.md'], + // Social link previews. Update the absolute URLs below when the + // agentspec.io custom domain goes live. + head: [ + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:title', content: 'AgentSpec: Universal Agent Manifest System' }], + ['meta', { property: 'og:description', content: 'The universal manifest for AI agents. Validate, health-check, audit, and generate any agent from one agent.yaml.' }], + ['meta', { property: 'og:url', content: 'https://agents-oss.github.io/agentspec/' }], + ['meta', { property: 'og:image', content: 'https://agents-oss.github.io/agentspec/og-card.png' }], + ['meta', { property: 'og:image:width', content: '1280' }], + ['meta', { property: 'og:image:height', content: '640' }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { name: 'twitter:title', content: 'AgentSpec: Universal Agent Manifest System' }], + ['meta', { name: 'twitter:description', content: 'The universal manifest for AI agents. Validate, health-check, audit, and generate any agent from one agent.yaml.' }], + ['meta', { name: 'twitter:image', content: 'https://agents-oss.github.io/agentspec/og-card.png' }], + ], + themeConfig: { // https://vitepress.dev/reference/default-theme-config nav: [ diff --git a/docs/public/og-card.png b/docs/public/og-card.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae335152549379794a48c4d0980737a93639588 GIT binary patch literal 62139 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%0Dc%eDLG8Bum92sD!_c() zeWst1_w99hME`Z-)Mu}pv$Af3gYD&qHl?B5&E0>!bHj#V=VtYneOXMmY5e`s**B9d zs&TF8!tmkftA(BOoF}MkV>ld#Xp&eF9jI>=l~#dJPgt$kYYN@)aOu$cdTm)h5;j5| zM&)hBl-sHU4Pof>cG`tm%#gQRSf!4S&mq+`Vb`_2{7^c)83Edv3I~yiplFH5NH>ee&PT@U&5h7tN$=x4{s=ZQY?mf*3ziUg#9g8^`Bcfr7C?! zPWtuT#cw+(>&ZevwD5t?a%>0^9CcVC?)ituLoTY(GcplTSAKbL^`r)2!bUz;*Sqc8 z8x^0cL|u$ZPOGxfkh{T-+E4sB;uOkj>>8i_eFUL;a z7RYoNoI;GHxrIkV(UZalXl)7V!8sS{haMV*FPS0t{zEDlWyW>H(H5qD2W2o@X^q77 zH_f`>ukY!qV?K)7r?pM;r2WgB3q3yA>f+I0RdZ9@hu$y?9{HUM5NY5s3U0A15~3&S z(pWvt*-35VPRGd&xgJ>!zq<-!fOgkn?Y^9?5b0{A7zW;;RY#HImO9we>0z{?GOLcG zJz0!fR1!C~{S)sJ^DgbL3%*@lbzxHjZf;Mb+Y~kNOjik6SFBOV`3{-mZHzL8C=Q0+ z)RIPyY9MdnVet)z
dNc5mUEjiZ@AZHePJn{OJ9b4aLDqhk}) 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 V{W&Iufl?!~^I;T%ekkDLzX4qe+?W6W literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 8b1bfc5..c24542b 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,20 @@ }, "scripts": { "build": "pnpm -r build", - "test": "pnpm -r test", + "test": "pnpm -r test && pnpm test:scripts", "lint": "pnpm -r lint", "clean": "pnpm -r clean", "typecheck": "pnpm -r typecheck", - "schema:export": "tsx packages/sdk/src/scripts/export-schema.ts" + "schema:export": "tsx packages/sdk/src/scripts/export-schema.ts", + "og-card": "tsx scripts/generate-og-card.ts", + "test:scripts": "vitest run --config vitest.config.ts" }, "devDependencies": { + "@fontsource/inter": "^5.2.8", + "@resvg/resvg-js": "^2.6.2", "@types/node": "^20.17.0", "@vitest/coverage-v8": "^2.1.9", + "satori": "^0.26.0", "tsup": "^8.3.5", "tsx": "^4.19.2", "typescript": "^5.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0d165a..0b24d50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,12 +8,21 @@ importers: .: devDependencies: + '@fontsource/inter': + specifier: ^5.2.8 + version: 5.2.8 + '@resvg/resvg-js': + specifier: ^2.6.2 + version: 2.6.2 '@types/node': specifier: ^20.17.0 version: 20.19.34 '@vitest/coverage-v8': specifier: ^2.1.9 version: 2.1.9(vitest@2.1.9(@types/node@20.19.34)) + satori: + specifier: ^0.26.0 + version: 0.26.0 tsup: specifier: ^8.3.5 version: 8.5.1(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3) @@ -630,6 +639,9 @@ packages: '@fastify/reply-from@9.8.0': resolution: {integrity: sha512-bPNVaFhEeNI0Lyl6404YZaPFokudCplidE3QoOcr78yOy6H9sYw97p5KPYvY/NJNUHfFtvxOaSAHnK+YSiv/Mg==} + '@fontsource/inter@5.2.8': + resolution: {integrity: sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==} + '@iconify-json/simple-icons@1.2.71': resolution: {integrity: sha512-rNoDFbq1fAYiEexBvrw613/xiUOPEu5MKVV/X8lI64AgdTzLQUUemr9f9fplxUMPoxCBP2rWzlhOEeTHk/Sf0Q==} @@ -668,6 +680,86 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@resvg/resvg-js-android-arm-eabi@2.6.2': + resolution: {integrity: sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@resvg/resvg-js-android-arm64@2.6.2': + resolution: {integrity: sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@resvg/resvg-js-darwin-arm64@2.6.2': + resolution: {integrity: sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@resvg/resvg-js-darwin-x64@2.6.2': + resolution: {integrity: sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + resolution: {integrity: sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + resolution: {integrity: sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + resolution: {integrity: sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + resolution: {integrity: sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@resvg/resvg-js@2.6.2': + resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} + engines: {node: '>= 10'} + '@rollup/rollup-android-arm-eabi@4.59.0': resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} cpu: [arm] @@ -702,66 +794,79 @@ packages: resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.59.0': resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.59.0': resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.59.0': resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.59.0': resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.59.0': resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.59.0': resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.59.0': resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.59.0': resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.59.0': resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.59.0': resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.59.0': resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.59.0': resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.59.0': resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} @@ -820,6 +925,11 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@shuding/opentype.js@1.4.0-beta.0': + resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} + engines: {node: '>= 8.0.0'} + hasBin: true + '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} @@ -1110,6 +1220,10 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} + base64-js@0.0.8: + resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} + engines: {node: '>= 0.4'} + birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} @@ -1134,6 +1248,9 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1207,6 +1324,23 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-background-parser@0.1.0: + resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} + + css-box-shadow@1.0.0-3: + resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} + + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-gradient-parser@0.0.17: + resolution: {integrity: sha512-w2Xy9UMMwlKtou0vlRnXvWglPAceXCTtcmVSo8ZBUvqCV5aXEFP/PC6d+I464810I9FT++UACwTD5511bmGPUg==} + engines: {node: '>=16'} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -1252,6 +1386,10 @@ packages: emoji-regex-xs@1.0.0: resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex-xs@2.0.1: + resolution: {integrity: sha512-1QFuh8l7LqUcKe24LsPUNzjrzJQ7pgRwp1QMcZ5MX6mFplk2zQ08NVCM84++1cveaUUYtcCYHmeFEuNg16sU4g==} + engines: {node: '>=10.0.0'} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1294,6 +1432,9 @@ packages: engines: {node: '>=18'} hasBin: true + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -1355,6 +1496,9 @@ packages: picomatch: optional: true + fflate@0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} @@ -1449,6 +1593,10 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hex-rgb@4.3.0: + resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} + engines: {node: '>=6'} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -1543,6 +1691,9 @@ packages: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} + linebreak@1.1.0: + resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -1692,6 +1843,12 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + parse-css-color@0.2.1: + resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -1766,6 +1923,9 @@ packages: yaml: optional: true + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -1851,6 +2011,10 @@ packages: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} + satori@0.26.0: + resolution: {integrity: sha512-tkMFrfIs3l2mQ2JEcyW0ADTy3zGggFRFzi6Ef8YozQSFsFKEqaSO1Y8F9wJg4//PJGQauMalHGTUEkPrFwhVPA==} + engines: {node: '>=16'} + search-insights@2.17.3: resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} @@ -1922,6 +2086,9 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -1974,6 +2141,9 @@ packages: thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -2067,6 +2237,9 @@ packages: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -2254,6 +2427,9 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} + yoga-layout@3.2.1: + resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} + zod-to-json-schema@3.25.1: resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} peerDependencies: @@ -2644,6 +2820,8 @@ snapshots: toad-cache: 3.7.0 undici: 5.29.0 + '@fontsource/inter@5.2.8': {} + '@iconify-json/simple-icons@1.2.71': dependencies: '@iconify/types': 2.0.0 @@ -2684,6 +2862,57 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@resvg/resvg-js-android-arm-eabi@2.6.2': + optional: true + + '@resvg/resvg-js-android-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-x64@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js@2.6.2': + optionalDependencies: + '@resvg/resvg-js-android-arm-eabi': 2.6.2 + '@resvg/resvg-js-android-arm64': 2.6.2 + '@resvg/resvg-js-darwin-arm64': 2.6.2 + '@resvg/resvg-js-darwin-x64': 2.6.2 + '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.2 + '@resvg/resvg-js-linux-arm64-gnu': 2.6.2 + '@resvg/resvg-js-linux-arm64-musl': 2.6.2 + '@resvg/resvg-js-linux-x64-gnu': 2.6.2 + '@resvg/resvg-js-linux-x64-musl': 2.6.2 + '@resvg/resvg-js-win32-arm64-msvc': 2.6.2 + '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 + '@resvg/resvg-js-win32-x64-msvc': 2.6.2 + '@rollup/rollup-android-arm-eabi@4.59.0': optional: true @@ -2801,6 +3030,11 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} + '@shuding/opentype.js@1.4.0-beta.0': + dependencies: + fflate: 0.7.4 + string.prototype.codepointat: 0.2.1 + '@sinclair/typebox@0.27.10': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -3121,6 +3355,8 @@ snapshots: balanced-match@4.0.4: {} + base64-js@0.0.8: {} + birpc@2.9.0: {} brace-expansion@2.0.2: @@ -3143,6 +3379,8 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + camelize@1.0.1: {} + ccount@2.0.1: {} chai@4.5.0: @@ -3211,6 +3449,20 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-background-parser@0.1.0: {} + + css-box-shadow@1.0.0-3: {} + + css-color-keywords@1.0.0: {} + + css-gradient-parser@0.0.17: {} + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + csstype@3.2.3: {} debug@4.4.3: @@ -3243,6 +3495,8 @@ snapshots: emoji-regex-xs@1.0.0: {} + emoji-regex-xs@2.0.1: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -3325,6 +3579,8 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + escape-html@1.0.3: {} + estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -3415,6 +3671,8 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fflate@0.7.4: {} + figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 @@ -3534,6 +3792,8 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hex-rgb@4.3.0: {} + hookable@5.5.3: {} html-escaper@2.0.2: {} @@ -3613,6 +3873,11 @@ snapshots: lilconfig@3.1.3: {} + linebreak@1.1.0: + dependencies: + base64-js: 0.0.8 + unicode-trie: 2.0.0 + lines-and-columns@1.2.4: {} load-tsconfig@0.2.5: {} @@ -3757,6 +4022,13 @@ snapshots: package-json-from-dist@1.0.1: {} + pako@0.2.9: {} + + parse-css-color@0.2.1: + dependencies: + color-name: 1.1.4 + hex-rgb: 4.3.0 + parse-ms@4.0.0: {} path-key@3.1.1: {} @@ -3817,6 +4089,8 @@ snapshots: postcss: 8.5.6 tsx: 4.21.0 + postcss-value-parser@4.2.0: {} + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -3913,6 +4187,20 @@ snapshots: safe-stable-stringify@2.5.0: {} + satori@0.26.0: + dependencies: + '@shuding/opentype.js': 1.4.0-beta.0 + css-background-parser: 0.1.0 + css-box-shadow: 1.0.0-3 + css-gradient-parser: 0.0.17 + css-to-react-native: 3.2.0 + emoji-regex-xs: 2.0.1 + escape-html: 1.0.3 + linebreak: 1.1.0 + parse-css-color: 0.2.1 + postcss-value-parser: 4.2.0 + yoga-layout: 3.2.1 + search-insights@2.17.3: {} secure-json-parse@2.7.0: {} @@ -3974,6 +4262,8 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.2.0 + string.prototype.codepointat@0.2.1: {} + stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -4033,6 +4323,8 @@ snapshots: dependencies: real-require: 0.2.0 + tiny-inflate@1.0.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -4111,6 +4403,11 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + unicorn-magic@0.3.0: {} unist-util-is@6.0.1: @@ -4366,6 +4663,8 @@ snapshots: yoctocolors@2.1.2: {} + yoga-layout@3.2.1: {} + zod-to-json-schema@3.25.1(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/scripts/__tests__/generate-og-card.test.ts b/scripts/__tests__/generate-og-card.test.ts new file mode 100644 index 0000000..0756384 --- /dev/null +++ b/scripts/__tests__/generate-og-card.test.ts @@ -0,0 +1,28 @@ +import { describe, it, expect } from 'vitest' +import { buildOgCardPng } from '../generate-og-card.js' + +describe('buildOgCardPng', () => { + it('returns a valid PNG buffer with 1280x640 dimensions', async () => { + const png = await buildOgCardPng() + + expect(Buffer.isBuffer(png)).toBe(true) + expect(png.length).toBeGreaterThan(0) + + // PNG magic bytes: 89 50 4E 47 0D 0A 1A 0A + expect(png[0]).toBe(0x89) + expect(png[1]).toBe(0x50) + expect(png[2]).toBe(0x4e) + expect(png[3]).toBe(0x47) + expect(png[4]).toBe(0x0d) + expect(png[5]).toBe(0x0a) + expect(png[6]).toBe(0x1a) + expect(png[7]).toBe(0x0a) + + // IHDR chunk starts at byte 8: 4 bytes length + "IHDR" + 4 bytes width + 4 bytes height + // Width is at bytes 16..19, height at bytes 20..23 (big-endian). + const width = png.readUInt32BE(16) + const height = png.readUInt32BE(20) + expect(width).toBe(1280) + expect(height).toBe(640) + }, 30_000) +}) diff --git a/scripts/generate-og-card.ts b/scripts/generate-og-card.ts new file mode 100644 index 0000000..da11ba2 --- /dev/null +++ b/scripts/generate-og-card.ts @@ -0,0 +1,251 @@ +/** + * Generate the og:image social card for link previews. + * + * Output: docs/public/og-card.png (1280x640 PNG) + * + * Run: + * pnpm og-card + */ + +import { readFile, mkdir, writeFile } from 'node:fs/promises' +import { dirname, resolve } from 'node:path' +import { fileURLToPath, pathToFileURL } from 'node:url' + +import satori, { type SatoriOptions } from 'satori' +import { Resvg } from '@resvg/resvg-js' + +// ── Constants ──────────────────────────────────────────────────────────────── + +const WIDTH = 1280 +const HEIGHT = 640 +const WORDMARK = 'AgentSpec' +const TAGLINE = 'The universal manifest for AI agents' +const FEATURES = ['validate', 'health-check', 'audit', 'generate'] +const FOOTER = 'agents-oss.github.io/agentspec' + +const BG = '#0B0F1A' +const BG_ACCENT = '#111827' +const ACCENT_FROM = '#6366F1' +const ACCENT_TO = '#22D3EE' +const TEXT_PRIMARY = '#F8FAFC' +const TEXT_SECONDARY = '#CBD5E1' +const TEXT_MUTED = '#64748B' +const CHIP_BORDER = '#1E293B' +const CHIP_TEXT = '#E2E8F0' + +// ── Private helpers ────────────────────────────────────────────────────────── + +const REPO_ROOT = resolve(fileURLToPath(import.meta.url), '..', '..') +const FONT_DIR = resolve(REPO_ROOT, 'node_modules/@fontsource/inter/files') +const OUTPUT_PATH = resolve(REPO_ROOT, 'docs/public/og-card.png') + +async function loadFonts(): Promise { + const [regular, bold] = await Promise.all([ + readFile(resolve(FONT_DIR, 'inter-latin-400-normal.woff')), + readFile(resolve(FONT_DIR, 'inter-latin-700-normal.woff')), + ]) + return [ + { name: 'Inter', data: regular, weight: 400, style: 'normal' }, + { name: 'Inter', data: bold, weight: 700, style: 'normal' }, + ] +} + +type Node = { + type: string + props: { style?: Record; children?: unknown } +} + +function logoTile(): Node { + return { + type: 'div', + props: { + style: { + width: 88, + height: 88, + borderRadius: 20, + background: `linear-gradient(135deg, ${ACCENT_FROM} 0%, ${ACCENT_TO} 100%)`, + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + boxShadow: '0 0 48px rgba(99, 102, 241, 0.35)', + }, + children: { + type: 'div', + props: { + style: { + fontSize: 60, + fontWeight: 700, + color: '#0B0F1A', + letterSpacing: '-0.06em', + lineHeight: 1, + marginTop: -6, + }, + children: '{ }', + }, + }, + }, + } +} + +function featureChip(label: string): Node { + return { + type: 'div', + props: { + style: { + display: 'flex', + alignItems: 'center', + fontSize: 26, + fontWeight: 400, + color: CHIP_TEXT, + backgroundColor: BG_ACCENT, + border: `1.5px solid ${CHIP_BORDER}`, + borderRadius: 999, + padding: '12px 24px', + marginRight: 16, + }, + children: label, + }, + } +} + +function chipRow(): Node { + return { + type: 'div', + props: { + style: { + display: 'flex', + flexDirection: 'row', + marginTop: 40, + }, + children: FEATURES.map(featureChip), + }, + } +} + +function buildTree(): Parameters[0] { + // Satori accepts a React-element-shaped plain object: { type, props: { children, style } } + // Plain object tree avoids needing JSX in tsconfig. + const root: Node = { + type: 'div', + props: { + style: { + width: `${WIDTH}px`, + height: `${HEIGHT}px`, + display: 'flex', + flexDirection: 'row', + backgroundColor: BG, + fontFamily: 'Inter', + }, + children: [ + // Accent bar on the left + { + type: 'div', + props: { + style: { + width: 16, + height: '100%', + background: `linear-gradient(180deg, ${ACCENT_FROM} 0%, ${ACCENT_TO} 100%)`, + }, + }, + }, + // Content column + { + type: 'div', + props: { + style: { + flex: 1, + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + padding: '72px 96px', + }, + children: [ + logoTile(), + { + type: 'div', + props: { + style: { + fontSize: 128, + fontWeight: 700, + color: TEXT_PRIMARY, + letterSpacing: '-0.045em', + lineHeight: 1, + marginTop: 28, + }, + children: WORDMARK, + }, + }, + { + type: 'div', + props: { + style: { + fontSize: 36, + fontWeight: 400, + color: TEXT_SECONDARY, + marginTop: 20, + lineHeight: 1.3, + }, + children: TAGLINE, + }, + }, + chipRow(), + { + type: 'div', + props: { + style: { + fontSize: 22, + fontWeight: 400, + color: TEXT_MUTED, + marginTop: 44, + letterSpacing: '0.04em', + }, + children: FOOTER, + }, + }, + ], + }, + }, + ], + }, + } + return root as unknown as Parameters[0] +} + +async function renderSvg(): Promise { + const fonts = await loadFonts() + const tree = buildTree() + return satori(tree, { width: WIDTH, height: HEIGHT, fonts }) +} + +function rasterize(svg: string): Buffer { + const resvg = new Resvg(svg, { fitTo: { mode: 'width', value: WIDTH } }) + return resvg.render().asPng() +} + +// ── Public API ─────────────────────────────────────────────────────────────── + +export async function buildOgCardPng(): Promise { + const svg = await renderSvg() + return rasterize(svg) +} + +export async function writeOgCard(path: string = OUTPUT_PATH): Promise { + const png = await buildOgCardPng() + await mkdir(dirname(path), { recursive: true }) + await writeFile(path, png) + return path +} + +// ── CLI entry ──────────────────────────────────────────────────────────────── + +const isMain = import.meta.url === pathToFileURL(process.argv[1] ?? '').href +if (isMain) { + writeOgCard() + .then((path) => { + console.log(`og-card written to ${path}`) + }) + .catch((err: unknown) => { + console.error('og-card generation failed:', err) + process.exit(1) + }) +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..87d363e --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + include: ['scripts/**/*.test.ts'], + }, +}) From 08ab87b2e64c43888a3bedb8d9a941d618eca09e Mon Sep 17 00:00:00 2001 From: iliassjabali Date: Sun, 12 Apr 2026 00:54:58 +0100 Subject: [PATCH 2/4] feat(docs): use real AgentSpec logomark on og-card Swap the placeholder `{ }` tile for the transparent logomark at logo/agentspec.png and shift the accent palette from indigo/cyan to the brand purple family (#A855F7 -> #5A2387) to match. Validated locally with Playwright MCP against a vitepress preview build: all og:* and twitter:* meta tags render correctly and the PNG loads at 1280x640. --- docs/public/og-card.png | Bin 62139 -> 56918 bytes scripts/generate-og-card.ts | 96 ++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 47 deletions(-) diff --git a/docs/public/og-card.png b/docs/public/og-card.png index 4ae335152549379794a48c4d0980737a93639588..2258f1c45773394f51229d47bb1e462f3d19f848 100644 GIT binary patch literal 56918 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 AfB*mh literal 62139 zcmbTec|6qX8$bLZB`K{aB{`LfP_mSWXtyQCKBjWCkS!)z#>}axNX|Khkgc-J42JB3 z;Sf&A62?e0mTWWD7|X2BJu`GV-|z4DJm1&TALq==ET8MX?`wHq@9Vnm#~01du3ICw z27;h<=g*zG1VJmoOHs_~Rp5U$GvrhV`hM^Hsgu@sUyk)ir0Chghd4ybvkx{{pR)h+ z$+=T8hibmR-FpQVBlcX?@YSEEiVp3${Od;3mW}84927OWc*p))Snkn#M%5bO=R{ZU zKD5bDFPshz0g1rB+{ddS5y2~r>KSOY;1zT$FY)Zl@~hBYHIZGyzvN>7`B>4+l=O-! zoehwv@V)I3&<5eF&Z}Y=;j1c{-O$n#iaMKW6!Nb^3xT4B!Z$BlZCw7Y@ zCHziq?VXU(%4`{kG>!i8?S%0E`P)B>ZxRJR46&2NFv6d%O8@1Dtl)Vuxvz`1+jPN% zyE3;|)Ucp48{-928UG;syyMN`H~bCQ2u)lG(i++BmImJ;c;~Xkmt&*P!CSnOP>KIo zY?ap^(RTs_Z(;O9A#eP~1x9|WiSSo0zupLWN{d$N*#w>!{^iyd(JK9@7B4523O(Up z?#PSuCY>57K5i3;75-&x4fxFc7O(uQ*|$Og?Gh57nS=ENgU^;|A71#9%_?Zk(f!k` z+(P)3&0?7C?!`vhUmCwS*Ip?59)4%0NcdIa_{$P-F4sh>K6c2HvRQK-9%(&65_FQj z;G3Am)sRjd@m>kCrzzdxroX~vc<~CsJBJiRdULiP|9yK9$0MeqG5SvJ-bhq}3qe8f z?&TArRq*^<=Q`@`=sVpjjI#?GnhtjadVE9*zwP(s*tCzzDhy#Sw8QhsF4bXO-yHWu zo37~Xw{ukFToQ$1&uoNpU=x>B>zTK+T%KhY1lius+8rH)629BB8los&Zz=jfv?=wh z5!pu3YWBD7I=$V-o}x_g_)w}Q_!!1h4CDTX%6`W?`VGz&Ll1(*GqY>_$-3EFq|}0X zTnUut?!u));P=jw<&)Ose+-N%F*oTf&iUQTKD)2?Qfe#e+DOn%jnb4~+}A})B$i!;y*va*Ohl|E-mwewcN0kA;vNC#=IWnxn1Wr2(7+ITBP@bjl?^qQ*pfp zY%11ZmY#2#;7TYS%PCn1GztCf^F8phe)fYz;W{t4t%hv#Znco-1ASxgMh5iFY*i_? zOk)&NO(%v_MrRK)#qJ?D-0-cb3YfWsigkCGTiV47zUB*qz)Wl>DUkQ)U0KbHp@Yv< z7wB?PGL2q7D`S~B!N=J0ZXDA9{bN1E(U373tMD+4+j@_pw=yT^M=ZWQ0O$ zl8GF&>3Zy7N`MbN@WFPpcwXFk^mqrc=|lgnTz5T(pPwr&a@p(1AJ*$5a@r1~PcBe) zwla1&D$U}Dn!i}ynI&L}T}B>@T`(pk&DrCN^ycip;O<*Hy|R!fqt(K*)c)L5W9|r? z+Z zRMnxTEbdV5F^@KvY&teeMyx4;;u=R6ZX_oR%8k{%O1t^>yZnsI1N8WBaNn%MJ*&B0 z6h-n~;_i>@Sq|c|H=OrX6q2qHHqVr3ZprdG&~)pC#I($+-x_a5YEmriy;dLf6Z*wm zg^iG!b^Uq$Mn{s%*WM|wzxqG+pZQ7oKcmMBJ>jfG%7H@IJmz2SReJ4ckyN7^{Lnsec^1q=P%+j-{sB5oB6~! zF}rQPXgoVS?0e)&ium?x_sZ9v+@-inu&B;0Vi@1hzcVue8t#0wTA;|VKi|5mb3M>< z%GRuYpTi%B9XM07b1$D#&eaCMWf~E0#)LXBN+mdIN7=}<@C6Sqi@!+an_$tqd6tGt*ZjDfw>yUAghy?yNch>wj($7C|>?z zr|IRK@Z(_^C>QqVKG^VE4drRom2Z;8(Ap^ZX0;4?Hmv7@ZeIwqAV^nBzo$I%^0lmE z6}VaMd6Qi2?M00Va~zY5eJDb@l&Jn6FG?euc6qlZmzuk>H+cX3RU} z+Z4H@SohB{(|OefjDgLWoz2gpJAEQeUSzyJUs>Ap_&l`&JDBblsjgDdyjhBzKD@^& zUN)fgaSmzH_oW)1AmjCyZ;hd=TcZ0qk+QlkYnKmQTnuAn^sUW`@>X>~zAxEK+)bXN z%uaB&(H!4rk(XQ+O>F!9sRfgv>$2_xNu9n}IONx^MLKBkR=aILs#9tAv!rVy)oEF2 zIU%?m^W^fOsZ6~;GAW;Ti)F=n>=F}VE4mSMbniQT{f~}0hb{V&3s+*=`W((y?q<95 z;OM*oxn!I9*KZ99bBG8Vgn8ro-Poam!pOl53dXo&+HrR}V@$D+>walguXW3ttlz+L zW%T<*CRT3ue!t<67)E=usCI_c%upIrO&D?J?k6IGtAT%0Dc%eDLG8Bum92sD!_c() zeWst1_w99hME`Z-)Mu}pv$Af3gYD&qHl?B5&E0>!bHj#V=VtYneOXMmY5e`s**B9d zs&TF8!tmkftA(BOoF}MkV>ld#Xp&eF9jI>=l~#dJPgt$kYYN@)aOu$cdTm)h5;j5| zM&)hBl-sHU4Pof>cG`tm%#gQRSf!4S&mq+`Vb`_2{7^c)83Edv3I~yiplFH5NH>ee&PT@U&5h7tN$=x4{s=ZQY?mf*3ziUg#9g8^`Bcfr7C?! zPWtuT#cw+(>&ZevwD5t?a%>0^9CcVC?)ituLoTY(GcplTSAKbL^`r)2!bUz;*Sqc8 z8x^0cL|u$ZPOGxfkh{T-+E4sB;uOkj>>8i_eFUL;a z7RYoNoI;GHxrIkV(UZalXl)7V!8sS{haMV*FPS0t{zEDlWyW>H(H5qD2W2o@X^q77 zH_f`>ukY!qV?K)7r?pM;r2WgB3q3yA>f+I0RdZ9@hu$y?9{HUM5NY5s3U0A15~3&S z(pWvt*-35VPRGd&xgJ>!zq<-!fOgkn?Y^9?5b0{A7zW;;RY#HImO9we>0z{?GOLcG zJz0!fR1!C~{S)sJ^DgbL3%*@lbzxHjZf;Mb+Y~kNOjik6SFBOV`3{-mZHzL8C=Q0+ z)RIPyY9MdnVet)z
dNc5mUEjiZ@AZHePJn{OJ9b4aLDqhk}) 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 V{W&Iufl?!~^I;T%ekkDLzX4qe+?W6W diff --git a/scripts/generate-og-card.ts b/scripts/generate-og-card.ts index da11ba2..4a54ca2 100644 --- a/scripts/generate-og-card.ts +++ b/scripts/generate-og-card.ts @@ -23,20 +23,21 @@ const TAGLINE = 'The universal manifest for AI agents' const FEATURES = ['validate', 'health-check', 'audit', 'generate'] const FOOTER = 'agents-oss.github.io/agentspec' -const BG = '#0B0F1A' -const BG_ACCENT = '#111827' -const ACCENT_FROM = '#6366F1' -const ACCENT_TO = '#22D3EE' +const BG = '#0B0817' +const BG_CHIP = '#170B2B' +const ACCENT_FROM = '#A855F7' +const ACCENT_TO = '#5A2387' const TEXT_PRIMARY = '#F8FAFC' -const TEXT_SECONDARY = '#CBD5E1' -const TEXT_MUTED = '#64748B' -const CHIP_BORDER = '#1E293B' -const CHIP_TEXT = '#E2E8F0' +const TEXT_SECONDARY = '#D4C5EA' +const TEXT_MUTED = '#6B5B82' +const CHIP_BORDER = '#2E1F46' +const CHIP_TEXT = '#E9D8FD' // ── Private helpers ────────────────────────────────────────────────────────── const REPO_ROOT = resolve(fileURLToPath(import.meta.url), '..', '..') const FONT_DIR = resolve(REPO_ROOT, 'node_modules/@fontsource/inter/files') +const LOGO_PATH = resolve(REPO_ROOT, 'logo/agentspec.png') const OUTPUT_PATH = resolve(REPO_ROOT, 'docs/public/og-card.png') async function loadFonts(): Promise { @@ -50,39 +51,54 @@ async function loadFonts(): Promise { ] } +async function loadLogoDataUrl(): Promise { + const png = await readFile(LOGO_PATH) + return `data:image/png;base64,${png.toString('base64')}` +} + type Node = { type: string props: { style?: Record; children?: unknown } } -function logoTile(): Node { +function brandHeader(logoDataUrl: string): Node { return { type: 'div', props: { style: { - width: 88, - height: 88, - borderRadius: 20, - background: `linear-gradient(135deg, ${ACCENT_FROM} 0%, ${ACCENT_TO} 100%)`, display: 'flex', + flexDirection: 'row', alignItems: 'center', - justifyContent: 'center', - boxShadow: '0 0 48px rgba(99, 102, 241, 0.35)', + gap: 32, }, - children: { - type: 'div', - props: { - style: { - fontSize: 60, - fontWeight: 700, - color: '#0B0F1A', - letterSpacing: '-0.06em', - lineHeight: 1, - marginTop: -6, + children: [ + { + type: 'img', + props: { + src: logoDataUrl, + width: 148, + height: 136, + style: { + width: 148, + height: 136, + filter: 'drop-shadow(0 0 48px rgba(168, 85, 247, 0.35))', + }, }, - children: '{ }', }, - }, + { + type: 'div', + props: { + style: { + fontSize: 128, + fontWeight: 700, + color: TEXT_PRIMARY, + letterSpacing: '-0.045em', + lineHeight: 1, + }, + children: WORDMARK, + }, + }, + ], }, } } @@ -97,7 +113,7 @@ function featureChip(label: string): Node { fontSize: 26, fontWeight: 400, color: CHIP_TEXT, - backgroundColor: BG_ACCENT, + backgroundColor: BG_CHIP, border: `1.5px solid ${CHIP_BORDER}`, borderRadius: 999, padding: '12px 24px', @@ -122,7 +138,7 @@ function chipRow(): Node { } } -function buildTree(): Parameters[0] { +function buildTree(logoDataUrl: string): Parameters[0] { // Satori accepts a React-element-shaped plain object: { type, props: { children, style } } // Plain object tree avoids needing JSX in tsconfig. const root: Node = { @@ -160,21 +176,7 @@ function buildTree(): Parameters[0] { padding: '72px 96px', }, children: [ - logoTile(), - { - type: 'div', - props: { - style: { - fontSize: 128, - fontWeight: 700, - color: TEXT_PRIMARY, - letterSpacing: '-0.045em', - lineHeight: 1, - marginTop: 28, - }, - children: WORDMARK, - }, - }, + brandHeader(logoDataUrl), { type: 'div', props: { @@ -182,7 +184,7 @@ function buildTree(): Parameters[0] { fontSize: 36, fontWeight: 400, color: TEXT_SECONDARY, - marginTop: 20, + marginTop: 32, lineHeight: 1.3, }, children: TAGLINE, @@ -212,8 +214,8 @@ function buildTree(): Parameters[0] { } async function renderSvg(): Promise { - const fonts = await loadFonts() - const tree = buildTree() + const [fonts, logoDataUrl] = await Promise.all([loadFonts(), loadLogoDataUrl()]) + const tree = buildTree(logoDataUrl) return satori(tree, { width: WIDTH, height: HEIGHT, fonts }) } From 91c4b0f88d6ee984e4b56384e68cfb4f1d4074e6 Mon Sep 17 00:00:00 2001 From: iliassjabali Date: Sun, 12 Apr 2026 01:05:31 +0100 Subject: [PATCH 3/4] chore: ignore .worktrees/ directory --- .gitignore | 3 +++ vitest.config.ts => scripts/vitest.config.ts | 0 2 files changed, 3 insertions(+) rename vitest.config.ts => scripts/vitest.config.ts (100%) diff --git a/.gitignore b/.gitignore index 9c83c17..26c5207 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,9 @@ packages/sdk-python/.venv/ # ── Operator (Python) ───────────────────────────────────────────────────────── +# ── Worktrees ───────────────────────────────────────────────────────────────── +.worktrees/ + # ── Misc ────────────────────────────────────────────────────────────────────── *.ots commit.txt diff --git a/vitest.config.ts b/scripts/vitest.config.ts similarity index 100% rename from vitest.config.ts rename to scripts/vitest.config.ts From 2266b1eefee0ee335a83a6ecd674b6d89d7fb1a1 Mon Sep 17 00:00:00 2001 From: iliassjabali Date: Sun, 12 Apr 2026 01:13:31 +0100 Subject: [PATCH 4/4] fix(ci): point test:scripts at scripts/vitest.config.ts The vitest.config.ts file was moved to scripts/ in 91c4b0f so that vitest's upward config search from packages/* would not inherit the `include: ['scripts/**/*.test.ts']` pattern and override the default include used by config-less packages (adapter-claude, cli, mcp-server). That move fixed the inheritance, but the root `test:scripts` npm script was still pointing at the old path, so `pnpm test:scripts` in CI failed to find the moved config. Update the script to reference the new location. Add a docblock on the config explaining why it lives under scripts/ so the layout does not regress. --- package.json | 2 +- scripts/vitest.config.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c24542b..6e5ee8d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "typecheck": "pnpm -r typecheck", "schema:export": "tsx packages/sdk/src/scripts/export-schema.ts", "og-card": "tsx scripts/generate-og-card.ts", - "test:scripts": "vitest run --config vitest.config.ts" + "test:scripts": "vitest run --config scripts/vitest.config.ts" }, "devDependencies": { "@fontsource/inter": "^5.2.8", diff --git a/scripts/vitest.config.ts b/scripts/vitest.config.ts index 87d363e..17c3088 100644 --- a/scripts/vitest.config.ts +++ b/scripts/vitest.config.ts @@ -1,5 +1,10 @@ import { defineConfig } from 'vitest/config' +// Kept under scripts/ (not the repo root) so vitest's upward config search +// from packages/* does not inherit this pattern. Packages without a local +// vitest.config fall back to vitest's default include instead. +// Include pattern is relative to the cwd where vitest runs (repo root via +// `pnpm test:scripts`), not the config file's directory. export default defineConfig({ test: { include: ['scripts/**/*.test.ts'],