← back to Dw Gemini Skip TK11321
lib/hourly-activation-count.js
16 lines
'use strict';
// Manual canaries and scheduled runs share the existing 21-per-hour allowance.
function countHourlyActivations(auditText, now = new Date()) {
const hour = now.toISOString().slice(0, 13);
let used = 0;
for (const line of auditText.split('\n')) {
if (!/"action"\s*:\s*"activated"/.test(line)) continue;
const row = JSON.parse(line); // A malformed activation event must stop the run.
if (typeof row.ts !== 'string' || !Number.isFinite(Date.parse(row.ts))) throw new Error('Invalid activation audit timestamp');
if (new Date(row.ts).toISOString().slice(0, 13) === hour) used++;
}
return used;
}
module.exports = { countHourlyActivations };