Files
codex-market-app/electron/lib/token_watch.js
T

44 lines
1.3 KiB
JavaScript

// token_watch.js —— Token 用量监控(对外的薄包装层)。
// 注入脚本由 voice_cdp.js 在连接 Codex 时自动注入(与语音脚本同 session)。
// 本模块暴露 status / reset 给 IPC handler 和前端面板。
"use strict";
const voice = require("./voice_cdp");
const tokenUsage = require("./token_usage");
function status() {
const snap = voice.status();
return {
phase: snap.phase,
date: "",
total: 0,
};
}
async function tokenStatus() {
try {
const snap = voice.status();
const page = await voice.tokenStatus();
const local = await tokenUsage.readDaily();
if (local && local.available) {
await voice.tokenSet(local);
return { ok: true, phase: snap.phase, connected: snap.phase === "connected", ...local, network: page.network };
}
return { ok: true, phase: snap.phase, connected: snap.phase === "connected", ...page };
} catch {
return { ok: false, error: "无法读取 token 用量(Codex 可能未连接)" };
}
}
async function tokenReset() {
try {
const local = await tokenUsage.reset();
const ok = await voice.tokenSet(local);
await voice.tokenReset();
return { ok: ok || true };
} catch {
return { ok: false, error: "无法重置" };
}
}
module.exports = { status, tokenStatus, tokenReset };