feat: add quota tracking

This commit is contained in:
2026-09-12 09:51:04 +02:00
parent 4ea9b4a695
commit 411cdd13ff
13 changed files with 1269 additions and 16 deletions
+9 -2
View File
@@ -42,7 +42,13 @@ bun -e '
if (!plugin || plugin.id !== "stanp-opencode" || typeof plugin.setup !== "function") {
throw new Error("Latest release is not a native OpenCode V2 plugin. Publish a V2-compatible release first.");
}
' "$install/package/dist/index.js"
const tuiFile = Bun.file(process.argv[2]);
const manifest = await Bun.file(process.argv[3]).json();
const exportsTui = manifest?.exports?.["./tui"];
if (!await tuiFile.exists() || !new Bun.Transpiler({ loader: "js" }).scan(await tuiFile.text()).exports.includes("default") || (typeof exportsTui !== "string" && typeof exportsTui?.import !== "string")) {
throw new Error("Latest release lacks the ChatGPT quota TUI plugin.");
}
' "$install/package/dist/index.js" "$install/package/dist/tui.js" "$install/package/package.json"
tag=$(jq -r '.tag_name' "$install/release.json")
config_file="$config/opencode.json"
@@ -68,8 +74,9 @@ staged="$config/plugins/.stanp-opencode.new.$$"
backup="$config/plugins/.stanp-opencode.old.$$"
mkdir "$staged"
mv "$install/package/dist/index.js" "$staged/index.js"
mv "$install/package/dist/tui.js" "$staged/tui.js"
cat > "$staged/package.json" <<'EOF'
{"name":"stanp-opencode","type":"module","main":"./index.js","exports":"./index.js"}
{"name":"stanp-opencode","type":"module","main":"./index.js","exports":{".":"./index.js","./tui":"./tui.js"}}
EOF
if [[ -e "$target" || -L "$target" ]]; then mv "$target" "$backup"; fi
if ! mv "$staged" "$target"; then