v2 message format and upgrade to ai sdk v5 (#743)

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Liang-Shih Lin <liangshihlin@proton.me>
Co-authored-by: Dominik Engelhardt <dominikengelhardt@ymail.com>
Co-authored-by: Jay V <air@live.ca>
Co-authored-by: adamdottv <2363879+adamdottv@users.noreply.github.com>
This commit is contained in:
Dax
2025-07-07 15:53:43 -04:00
committed by GitHub
parent 76b2e4539c
commit f884766445
116 changed files with 4707 additions and 6950 deletions

View File

@@ -26,13 +26,9 @@ async function fetchNpmDownloads(packageName: string): Promise<number> {
// Use a range from 2020 to current year + 5 years to ensure it works forever
const currentYear = new Date().getFullYear()
const endYear = currentYear + 5
const response = await fetch(
`https://api.npmjs.org/downloads/range/2020-01-01:${endYear}-12-31/${packageName}`,
)
const response = await fetch(`https://api.npmjs.org/downloads/range/2020-01-01:${endYear}-12-31/${packageName}`)
if (!response.ok) {
console.warn(
`Failed to fetch npm downloads for ${packageName}: ${response.status}`,
)
console.warn(`Failed to fetch npm downloads for ${packageName}: ${response.status}`)
return 0
}
const data: NpmDownloadsRange = await response.json()
@@ -53,9 +49,7 @@ async function fetchReleases(): Promise<Release[]> {
const response = await fetch(url)
if (!response.ok) {
throw new Error(
`GitHub API error: ${response.status} ${response.statusText}`,
)
throw new Error(`GitHub API error: ${response.status} ${response.statusText}`)
}
const batch: Release[] = await response.json()
@@ -115,11 +109,7 @@ async function save(githubTotal: number, npmDownloads: number) {
for (let i = lines.length - 1; i >= 0; i--) {
const line = lines[i].trim()
if (
line.startsWith("|") &&
!line.includes("Date") &&
!line.includes("---")
) {
if (line.startsWith("|") && !line.includes("Date") && !line.includes("---")) {
const match = line.match(
/\|\s*[\d-]+\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|\s*([\d,]+)\s*(?:\([^)]*\))?\s*\|/,
)
@@ -147,11 +137,7 @@ async function save(githubTotal: number, npmDownloads: number) {
? ` (${githubChange.toLocaleString()})`
: " (+0)"
const npmChangeStr =
npmChange > 0
? ` (+${npmChange.toLocaleString()})`
: npmChange < 0
? ` (${npmChange.toLocaleString()})`
: " (+0)"
npmChange > 0 ? ` (+${npmChange.toLocaleString()})` : npmChange < 0 ? ` (${npmChange.toLocaleString()})` : " (+0)"
const totalChangeStr =
totalChange > 0
? ` (+${totalChange.toLocaleString()})`
@@ -182,9 +168,7 @@ const { total: githubTotal, stats } = calculate(releases)
console.log("Fetching npm all-time downloads for opencode-ai...\n")
const npmDownloads = await fetchNpmDownloads("opencode-ai")
console.log(
`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n`,
)
console.log(`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n`)
await save(githubTotal, npmDownloads)
@@ -202,24 +186,18 @@ console.log("-".repeat(60))
stats
.sort((a, b) => b.downloads - a.downloads)
.forEach((release) => {
console.log(
`${release.tag.padEnd(15)} ${release.downloads.toLocaleString().padStart(10)} downloads`,
)
console.log(`${release.tag.padEnd(15)} ${release.downloads.toLocaleString().padStart(10)} downloads`)
if (release.assets.length > 1) {
release.assets
.sort((a, b) => b.downloads - a.downloads)
.forEach((asset) => {
console.log(
` └─ ${asset.name.padEnd(25)} ${asset.downloads.toLocaleString().padStart(8)}`,
)
console.log(` └─ ${asset.name.padEnd(25)} ${asset.downloads.toLocaleString().padStart(8)}`)
})
}
})
console.log("-".repeat(60))
console.log(
`GitHub Total: ${githubTotal.toLocaleString()} downloads across ${releases.length} releases`,
)
console.log(`GitHub Total: ${githubTotal.toLocaleString()} downloads across ${releases.length} releases`)
console.log(`npm Total: ${npmDownloads.toLocaleString()} downloads`)
console.log(`Combined Total: ${totalDownloads.toLocaleString()} downloads`)