mirror of
https://github.com/sst/opencode.git
synced 2025-07-08 00:25:00 +00:00
Merge ed6d5d5b03
into d87922c0eb
This commit is contained in:
commit
263b9a73e9
1 changed files with 27 additions and 1 deletions
|
@ -59,10 +59,36 @@ export namespace Provider {
|
||||||
"anthropic-beta": "oauth-2025-04-20",
|
"anthropic-beta": "oauth-2025-04-20",
|
||||||
}
|
}
|
||||||
delete headers["x-api-key"]
|
delete headers["x-api-key"]
|
||||||
return fetch(input, {
|
const response = await fetch(input, {
|
||||||
...init,
|
...init,
|
||||||
headers,
|
headers,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (response.status === 429) {
|
||||||
|
const resetTimestampStr = response.headers.get("anthropic-ratelimit-unified-reset")
|
||||||
|
let userMessage = `Anthropic API rate limit exceeded. `
|
||||||
|
let resetTimestamp = parseInt(resetTimestampStr || "", 10)
|
||||||
|
|
||||||
|
if (!isNaN(resetTimestamp)) {
|
||||||
|
const resetDate = new Date(resetTimestamp * 1000)
|
||||||
|
const currentDate = new Date()
|
||||||
|
|
||||||
|
let resetStr: string;
|
||||||
|
if (currentDate.toLocaleDateString() == resetDate.toLocaleDateString()) {
|
||||||
|
resetStr = resetDate.toLocaleTimeString()
|
||||||
|
} else {
|
||||||
|
resetStr = resetDate.toLocaleString()
|
||||||
|
}
|
||||||
|
|
||||||
|
userMessage += `Please try again after ${resetStr}.`
|
||||||
|
} else {
|
||||||
|
userMessage += "Please try again later."
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(userMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
return response
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue