@slkiser/opencode-quota 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -74
- package/dist/lib/firmware.d.ts +22 -0
- package/dist/lib/firmware.d.ts.map +1 -1
- package/dist/lib/firmware.js +96 -7
- package/dist/lib/firmware.js.map +1 -1
- package/dist/lib/markdown-table.d.ts +7 -0
- package/dist/lib/markdown-table.d.ts.map +1 -1
- package/dist/lib/markdown-table.js +76 -9
- package/dist/lib/markdown-table.js.map +1 -1
- package/dist/lib/quota-stats-format.d.ts.map +1 -1
- package/dist/lib/quota-stats-format.js +9 -3
- package/dist/lib/quota-stats-format.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +76 -157
- package/dist/plugin.js.map +1 -1
- package/dist/providers/firmware.d.ts.map +1 -1
- package/dist/providers/firmware.js +40 -7
- package/dist/providers/firmware.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-table.js","sourceRoot":"","sources":["../../src/lib/markdown-table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown-table.js","sourceRoot":"","sources":["../../src/lib/markdown-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-stats-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-stats-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AA+FtE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAoLT"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { renderMarkdownTable } from "./markdown-table.js";
|
|
2
|
+
/** Use markdown-conceal for proper TUI alignment (strips markdown syntax for width calc) */
|
|
3
|
+
const TABLE_WIDTH_MODE = "markdown-conceal";
|
|
2
4
|
function fmtUsd(n) {
|
|
3
5
|
if (!Number.isFinite(n))
|
|
4
6
|
return "$0.00";
|
|
@@ -111,6 +113,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
111
113
|
lines.push(renderMarkdownTable({
|
|
112
114
|
headers: ["Messages", "Tokens", "Cost"],
|
|
113
115
|
aligns: ["right", "right", "right"],
|
|
116
|
+
widthMode: TABLE_WIDTH_MODE,
|
|
114
117
|
rows: [
|
|
115
118
|
[
|
|
116
119
|
fmtCompact(r.totals.messageCount),
|
|
@@ -124,6 +127,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
124
127
|
lines.push(renderMarkdownTable({
|
|
125
128
|
headers: ["Window", "Messages", "Sessions", "Tokens", "Cost"],
|
|
126
129
|
aligns: ["left", "right", "right", "right", "right"],
|
|
130
|
+
widthMode: TABLE_WIDTH_MODE,
|
|
127
131
|
rows: [
|
|
128
132
|
[
|
|
129
133
|
fmtWindow(r.window),
|
|
@@ -189,9 +193,9 @@ export function formatQuotaStatsReport(params) {
|
|
|
189
193
|
lines.push("");
|
|
190
194
|
lines.push(`## Models`);
|
|
191
195
|
lines.push("");
|
|
192
|
-
lines.push(renderMarkdownTable({ headers, rows, aligns }));
|
|
196
|
+
lines.push(renderMarkdownTable({ headers, rows, aligns, widthMode: TABLE_WIDTH_MODE }));
|
|
193
197
|
}
|
|
194
|
-
// Skip Top Sessions for session-only reports (e.g., /
|
|
198
|
+
// Skip Top Sessions for session-only reports (e.g., /tokens_session)
|
|
195
199
|
if (r.bySession.length > 0 && !sessionOnly) {
|
|
196
200
|
lines.push("");
|
|
197
201
|
lines.push(`## Top Sessions`);
|
|
@@ -226,6 +230,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
226
230
|
lines.push(renderMarkdownTable({
|
|
227
231
|
headers: ["", "Session", "Cost", "Tokens", "Msgs", "Title"],
|
|
228
232
|
aligns: ["left", "left", "right", "right", "right", "left"],
|
|
233
|
+
widthMode: TABLE_WIDTH_MODE,
|
|
229
234
|
rows: sessionRows,
|
|
230
235
|
}));
|
|
231
236
|
}
|
|
@@ -236,6 +241,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
236
241
|
lines.push(renderMarkdownTable({
|
|
237
242
|
headers: ["Source", "Model", "Mapped", "Tokens", "Msgs"],
|
|
238
243
|
aligns: ["left", "left", "left", "right", "right"],
|
|
244
|
+
widthMode: TABLE_WIDTH_MODE,
|
|
239
245
|
rows: r.unknown.slice(0, 20).map((u) => {
|
|
240
246
|
const mapped = u.key.mappedProvider && u.key.mappedModel
|
|
241
247
|
? `${u.key.mappedProvider}/${u.key.mappedModel}`
|
|
@@ -250,7 +256,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
250
256
|
}),
|
|
251
257
|
}));
|
|
252
258
|
lines.push("");
|
|
253
|
-
lines.push(`Run /
|
|
259
|
+
lines.push(`Run /quota_status to see the full unknown pricing report.`);
|
|
254
260
|
}
|
|
255
261
|
return lines.join("\n");
|
|
256
262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-stats-format.js","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota-stats-format.js","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuOlD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MA48B9B,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -16,13 +16,12 @@ import { aggregateUsage, getSessionTokenSummary, SessionNotFoundError } from "./
|
|
|
16
16
|
import { formatQuotaStatsReport } from "./lib/quota-stats-format.js";
|
|
17
17
|
import { buildQuotaStatusReport } from "./lib/quota-status.js";
|
|
18
18
|
import { refreshGoogleTokensForAllAccounts } from "./lib/google.js";
|
|
19
|
+
import { resetFirmwareQuotaWindow } from "./lib/firmware.js";
|
|
19
20
|
/** All token report command specifications */
|
|
20
21
|
const TOKEN_REPORT_COMMANDS = [
|
|
21
22
|
{
|
|
22
23
|
id: "tokens_today",
|
|
23
|
-
legacyId: "quota_today",
|
|
24
24
|
template: "/tokens_today",
|
|
25
|
-
legacyTemplate: "/quota_today",
|
|
26
25
|
description: "Token + official API cost summary for today (calendar day, local timezone).",
|
|
27
26
|
title: "Tokens used (Today) (/tokens_today)",
|
|
28
27
|
metadataTitle: "Tokens used (Today)",
|
|
@@ -30,9 +29,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
30
29
|
},
|
|
31
30
|
{
|
|
32
31
|
id: "tokens_daily",
|
|
33
|
-
legacyId: "quota_daily",
|
|
34
32
|
template: "/tokens_daily",
|
|
35
|
-
legacyTemplate: "/quota_daily",
|
|
36
33
|
description: "Token + official API cost summary for the last 24 hours (rolling).",
|
|
37
34
|
title: "Tokens used (Last 24 Hours) (/tokens_daily)",
|
|
38
35
|
metadataTitle: "Tokens used (Last 24 Hours)",
|
|
@@ -41,9 +38,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
41
38
|
},
|
|
42
39
|
{
|
|
43
40
|
id: "tokens_weekly",
|
|
44
|
-
legacyId: "quota_weekly",
|
|
45
41
|
template: "/tokens_weekly",
|
|
46
|
-
legacyTemplate: "/quota_weekly",
|
|
47
42
|
description: "Token + official API cost summary for the last 7 days (rolling).",
|
|
48
43
|
title: "Tokens used (Last 7 Days) (/tokens_weekly)",
|
|
49
44
|
metadataTitle: "Tokens used (Last 7 Days)",
|
|
@@ -52,9 +47,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
52
47
|
},
|
|
53
48
|
{
|
|
54
49
|
id: "tokens_monthly",
|
|
55
|
-
legacyId: "quota_monthly",
|
|
56
50
|
template: "/tokens_monthly",
|
|
57
|
-
legacyTemplate: "/quota_monthly",
|
|
58
51
|
description: "Token + official API cost summary for the last 30 days (rolling).",
|
|
59
52
|
title: "Tokens used (Last 30 Days) (/tokens_monthly)",
|
|
60
53
|
metadataTitle: "Tokens used (Last 30 Days)",
|
|
@@ -63,9 +56,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
63
56
|
},
|
|
64
57
|
{
|
|
65
58
|
id: "tokens_all",
|
|
66
|
-
legacyId: "quota_all",
|
|
67
59
|
template: "/tokens_all",
|
|
68
|
-
legacyTemplate: "/quota_all",
|
|
69
60
|
description: "Token + official API cost summary for all locally saved OpenCode history.",
|
|
70
61
|
title: "Tokens used (All Time) (/tokens_all)",
|
|
71
62
|
metadataTitle: "Tokens used (All Time)",
|
|
@@ -75,9 +66,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
75
66
|
},
|
|
76
67
|
{
|
|
77
68
|
id: "tokens_session",
|
|
78
|
-
legacyId: "quota_session",
|
|
79
69
|
template: "/tokens_session",
|
|
80
|
-
legacyTemplate: "/quota_session",
|
|
81
70
|
description: "Token + official API cost summary for current session only.",
|
|
82
71
|
title: "Tokens used (Current Session) (/tokens_session)",
|
|
83
72
|
metadataTitle: "Tokens used (Current Session)",
|
|
@@ -85,9 +74,7 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
85
74
|
},
|
|
86
75
|
{
|
|
87
76
|
id: "tokens_between",
|
|
88
|
-
legacyId: "quota_between",
|
|
89
77
|
template: "/tokens_between",
|
|
90
|
-
legacyTemplate: "/quota_between",
|
|
91
78
|
description: "Token + cost report between two YYYY-MM-DD dates (local timezone, inclusive).",
|
|
92
79
|
titleForRange: (startYmd, endYmd) => {
|
|
93
80
|
const formatYmd = (ymd) => {
|
|
@@ -102,12 +89,11 @@ const TOKEN_REPORT_COMMANDS = [
|
|
|
102
89
|
kind: "between",
|
|
103
90
|
},
|
|
104
91
|
];
|
|
105
|
-
/** Build a lookup map from command ID
|
|
92
|
+
/** Build a lookup map from command ID to spec */
|
|
106
93
|
const TOKEN_REPORT_COMMANDS_BY_ID = (() => {
|
|
107
94
|
const map = new Map();
|
|
108
95
|
for (const spec of TOKEN_REPORT_COMMANDS) {
|
|
109
96
|
map.set(spec.id, spec);
|
|
110
|
-
map.set(spec.legacyId, spec);
|
|
111
97
|
}
|
|
112
98
|
return map;
|
|
113
99
|
})();
|
|
@@ -225,7 +211,7 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
225
211
|
return new Date(ymd.y, ymd.m - 1, ymd.d + 1).getTime();
|
|
226
212
|
}
|
|
227
213
|
/**
|
|
228
|
-
* Parse /
|
|
214
|
+
* Parse /tokens_between arguments. Supports:
|
|
229
215
|
* - Positional: "2026-01-01 2026-01-15"
|
|
230
216
|
* - JSON: {"starting_date":"2026-01-01","ending_date":"2026-01-15"}
|
|
231
217
|
*/
|
|
@@ -685,18 +671,16 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
685
671
|
template: "/quota_status",
|
|
686
672
|
description: "Diagnostics for toast + pricing + local storage (includes unknown pricing report).",
|
|
687
673
|
};
|
|
688
|
-
|
|
674
|
+
cfg.command["firmware_reset_window"] = {
|
|
675
|
+
template: "/firmware_reset_window",
|
|
676
|
+
description: "Manually reset your Firmware 5-hour spending window (consumes 1 of 2 weekly resets).",
|
|
677
|
+
};
|
|
678
|
+
// Register token report commands (/tokens_*)
|
|
689
679
|
for (const spec of TOKEN_REPORT_COMMANDS) {
|
|
690
|
-
// Primary command (/tokens_*)
|
|
691
680
|
cfg.command[spec.id] = {
|
|
692
681
|
template: spec.template,
|
|
693
682
|
description: spec.description,
|
|
694
683
|
};
|
|
695
|
-
// Legacy alias (/quota_*) for backwards compatibility
|
|
696
|
-
cfg.command[spec.legacyId] = {
|
|
697
|
-
template: spec.legacyTemplate,
|
|
698
|
-
description: `${spec.description} (Legacy alias for /${spec.id})`,
|
|
699
|
-
};
|
|
700
684
|
}
|
|
701
685
|
},
|
|
702
686
|
"command.execute.before": async (input) => {
|
|
@@ -736,7 +720,7 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
736
720
|
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
737
721
|
}
|
|
738
722
|
const untilMs = Date.now();
|
|
739
|
-
// Handle token report commands
|
|
723
|
+
// Handle token report commands (/tokens_*)
|
|
740
724
|
if (isTokenReportCommand(cmd)) {
|
|
741
725
|
const spec = TOKEN_REPORT_COMMANDS_BY_ID.get(cmd);
|
|
742
726
|
if (spec.kind === "between") {
|
|
@@ -812,74 +796,51 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
812
796
|
await injectRawOutput(sessionID, out);
|
|
813
797
|
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
814
798
|
}
|
|
799
|
+
// Handle /firmware_reset_window (reset 5-hour spending window)
|
|
800
|
+
if (cmd === "firmware_reset_window") {
|
|
801
|
+
const raw = input.arguments?.trim() || "";
|
|
802
|
+
// Check for confirmation: accept "confirm" as positional or {"confirm": true} as JSON
|
|
803
|
+
let confirmed = false;
|
|
804
|
+
if (raw.toLowerCase() === "confirm") {
|
|
805
|
+
confirmed = true;
|
|
806
|
+
}
|
|
807
|
+
else if (raw.startsWith("{")) {
|
|
808
|
+
try {
|
|
809
|
+
const parsed = JSON.parse(raw);
|
|
810
|
+
confirmed = parsed["confirm"] === true;
|
|
811
|
+
}
|
|
812
|
+
catch {
|
|
813
|
+
await injectRawOutput(sessionID, `Invalid JSON arguments for /firmware_reset_window\n\nTo proceed, run:\n/firmware_reset_window confirm`);
|
|
814
|
+
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
// Require explicit confirmation (destructive action with limited weekly resets)
|
|
818
|
+
if (!confirmed) {
|
|
819
|
+
await injectRawOutput(sessionID, `⚠️ This will reset your Firmware 5-hour spending window.\nYou have a maximum of 2 resets per week.\n\nTo proceed, run:\n/firmware_reset_window confirm`);
|
|
820
|
+
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
821
|
+
}
|
|
822
|
+
const result = await resetFirmwareQuotaWindow();
|
|
823
|
+
if (!result) {
|
|
824
|
+
await injectRawOutput(sessionID, "Firmware API key not configured. Cannot reset window.");
|
|
825
|
+
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
826
|
+
}
|
|
827
|
+
if (!result.success) {
|
|
828
|
+
await injectRawOutput(sessionID, `Failed to reset Firmware window:\n${result.error}`);
|
|
829
|
+
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
830
|
+
}
|
|
831
|
+
// Build success message
|
|
832
|
+
const resetsLeft = result.windowResetsRemaining;
|
|
833
|
+
const resetsMsg = resetsLeft !== undefined
|
|
834
|
+
? ` (${resetsLeft} reset${resetsLeft === 1 ? "" : "s"} remaining this week)`
|
|
835
|
+
: "";
|
|
836
|
+
// Fetch updated quota to show new status
|
|
837
|
+
const quotaMsg = await fetchQuotaCommandMessage("command:/firmware_reset_window", sessionID);
|
|
838
|
+
const successOutput = `✓ Firmware 5-hour window reset successful${resetsMsg}${quotaMsg ? `\n\n${quotaMsg}` : ""}`;
|
|
839
|
+
await injectRawOutput(sessionID, successOutput);
|
|
840
|
+
throw new Error("__QUOTA_COMMAND_HANDLED__");
|
|
841
|
+
}
|
|
815
842
|
},
|
|
816
843
|
tool: {
|
|
817
|
-
quota_daily: tool({
|
|
818
|
-
description: "Token + official API cost summary for the last 24 hours (rolling).",
|
|
819
|
-
args: {},
|
|
820
|
-
async execute(_args, context) {
|
|
821
|
-
const untilMs = Date.now();
|
|
822
|
-
const sinceMs = untilMs - 24 * 60 * 60 * 1000;
|
|
823
|
-
const out = await buildQuotaReport({
|
|
824
|
-
title: "Tokens used (Last 24 Hours) (/tokens_daily)",
|
|
825
|
-
sinceMs,
|
|
826
|
-
untilMs,
|
|
827
|
-
sessionID: context.sessionID,
|
|
828
|
-
});
|
|
829
|
-
context.metadata({ title: "Tokens used (Last 24 Hours)" });
|
|
830
|
-
await injectRawOutput(context.sessionID, out);
|
|
831
|
-
return ""; // Empty return - output already injected with noReply
|
|
832
|
-
},
|
|
833
|
-
}),
|
|
834
|
-
quota_weekly: tool({
|
|
835
|
-
description: "Token + official API cost summary for the last 7 days (rolling).",
|
|
836
|
-
args: {},
|
|
837
|
-
async execute(_args, context) {
|
|
838
|
-
const untilMs = Date.now();
|
|
839
|
-
const sinceMs = untilMs - 7 * 24 * 60 * 60 * 1000;
|
|
840
|
-
const out = await buildQuotaReport({
|
|
841
|
-
title: "Tokens used (Last 7 Days) (/tokens_weekly)",
|
|
842
|
-
sinceMs,
|
|
843
|
-
untilMs,
|
|
844
|
-
sessionID: context.sessionID,
|
|
845
|
-
});
|
|
846
|
-
context.metadata({ title: "Tokens used (Last 7 Days)" });
|
|
847
|
-
await injectRawOutput(context.sessionID, out);
|
|
848
|
-
return ""; // Empty return - output already injected with noReply
|
|
849
|
-
},
|
|
850
|
-
}),
|
|
851
|
-
quota_monthly: tool({
|
|
852
|
-
description: "Token + official API cost summary for the last 30 days (rolling).",
|
|
853
|
-
args: {},
|
|
854
|
-
async execute(_args, context) {
|
|
855
|
-
const untilMs = Date.now();
|
|
856
|
-
const sinceMs = untilMs - 30 * 24 * 60 * 60 * 1000;
|
|
857
|
-
const out = await buildQuotaReport({
|
|
858
|
-
title: "Tokens used (Last 30 Days) (/tokens_monthly)",
|
|
859
|
-
sinceMs,
|
|
860
|
-
untilMs,
|
|
861
|
-
sessionID: context.sessionID,
|
|
862
|
-
});
|
|
863
|
-
context.metadata({ title: "Tokens used (Last 30 Days)" });
|
|
864
|
-
await injectRawOutput(context.sessionID, out);
|
|
865
|
-
return ""; // Empty return - output already injected with noReply
|
|
866
|
-
},
|
|
867
|
-
}),
|
|
868
|
-
quota_all: tool({
|
|
869
|
-
description: "Token + official API cost summary for all locally saved OpenCode history.",
|
|
870
|
-
args: {},
|
|
871
|
-
async execute(_args, context) {
|
|
872
|
-
const out = await buildQuotaReport({
|
|
873
|
-
title: "Tokens used (All Time) (/tokens_all)",
|
|
874
|
-
sessionID: context.sessionID,
|
|
875
|
-
topModels: 12,
|
|
876
|
-
topSessions: 12,
|
|
877
|
-
});
|
|
878
|
-
context.metadata({ title: "Tokens used (All Time)" });
|
|
879
|
-
await injectRawOutput(context.sessionID, out);
|
|
880
|
-
return ""; // Empty return - output already injected with noReply
|
|
881
|
-
},
|
|
882
|
-
}),
|
|
883
844
|
quota_status: tool({
|
|
884
845
|
description: "Diagnostics for toast + pricing + local storage (includes unknown pricing report).",
|
|
885
846
|
args: {
|
|
@@ -909,81 +870,39 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
909
870
|
return ""; // Empty return - output already injected with noReply
|
|
910
871
|
},
|
|
911
872
|
}),
|
|
912
|
-
|
|
913
|
-
description: "
|
|
914
|
-
args: {},
|
|
915
|
-
async execute(_args, context) {
|
|
916
|
-
const now = new Date();
|
|
917
|
-
const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
918
|
-
const sinceMs = startOfDay.getTime();
|
|
919
|
-
const untilMs = now.getTime();
|
|
920
|
-
const out = await buildQuotaReport({
|
|
921
|
-
title: "Tokens used (Today) (/tokens_today)",
|
|
922
|
-
sinceMs,
|
|
923
|
-
untilMs,
|
|
924
|
-
sessionID: context.sessionID,
|
|
925
|
-
});
|
|
926
|
-
context.metadata({ title: "Tokens used (Today)" });
|
|
927
|
-
await injectRawOutput(context.sessionID, out);
|
|
928
|
-
return ""; // Empty return - output already injected with noReply
|
|
929
|
-
},
|
|
930
|
-
}),
|
|
931
|
-
quota_session: tool({
|
|
932
|
-
description: "Token + official API cost summary for current session only.",
|
|
933
|
-
args: {},
|
|
934
|
-
async execute(_args, context) {
|
|
935
|
-
const out = await buildQuotaReport({
|
|
936
|
-
title: "Tokens used (Current Session) (/tokens_session)",
|
|
937
|
-
sessionID: context.sessionID,
|
|
938
|
-
filterSessionID: context.sessionID,
|
|
939
|
-
sessionOnly: true,
|
|
940
|
-
});
|
|
941
|
-
context.metadata({ title: "Tokens used (Current Session)" });
|
|
942
|
-
await injectRawOutput(context.sessionID, out);
|
|
943
|
-
return ""; // Empty return - output already injected with noReply
|
|
944
|
-
},
|
|
945
|
-
}),
|
|
946
|
-
quota_between: tool({
|
|
947
|
-
description: "Token + official API cost summary between two YYYY-MM-DD dates (local timezone, inclusive).",
|
|
873
|
+
firmware_reset_window: tool({
|
|
874
|
+
description: "Manually reset your Firmware 5-hour spending window. Consumes 1 of 2 weekly resets. Requires confirm=true.",
|
|
948
875
|
args: {
|
|
949
|
-
|
|
950
|
-
.
|
|
951
|
-
.
|
|
952
|
-
.describe("
|
|
953
|
-
endingDate: tool.schema
|
|
954
|
-
.string()
|
|
955
|
-
.regex(/^\d{4}-\d{2}-\d{2}$/)
|
|
956
|
-
.describe("Ending date in YYYY-MM-DD format (local timezone, inclusive)"),
|
|
876
|
+
confirm: tool.schema
|
|
877
|
+
.boolean()
|
|
878
|
+
.optional()
|
|
879
|
+
.describe("Must be true to proceed (destructive action with limited weekly resets)"),
|
|
957
880
|
},
|
|
958
881
|
async execute(args, context) {
|
|
959
|
-
|
|
960
|
-
if (
|
|
961
|
-
await injectRawOutput(context.sessionID,
|
|
882
|
+
// Require explicit confirmation (destructive action with limited weekly resets)
|
|
883
|
+
if (args.confirm !== true) {
|
|
884
|
+
await injectRawOutput(context.sessionID, `⚠️ This will reset your Firmware 5-hour spending window.\nYou have a maximum of 2 resets per week.\n\nTo proceed, call with confirm: true`);
|
|
962
885
|
return "";
|
|
963
886
|
}
|
|
964
|
-
const
|
|
965
|
-
if (!
|
|
966
|
-
await injectRawOutput(context.sessionID,
|
|
887
|
+
const result = await resetFirmwareQuotaWindow();
|
|
888
|
+
if (!result) {
|
|
889
|
+
await injectRawOutput(context.sessionID, "Firmware API key not configured. Cannot reset window.");
|
|
967
890
|
return "";
|
|
968
891
|
}
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
if (endMs < startMs) {
|
|
972
|
-
await injectRawOutput(context.sessionID, `Ending date (${args.endingDate}) is before starting date (${args.startingDate}).`);
|
|
892
|
+
if (!result.success) {
|
|
893
|
+
await injectRawOutput(context.sessionID, `Failed to reset Firmware window:\n${result.error}`);
|
|
973
894
|
return "";
|
|
974
895
|
}
|
|
975
|
-
|
|
976
|
-
const
|
|
977
|
-
const
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
context.metadata({ title: "Tokens used (Date Range)" });
|
|
986
|
-
await injectRawOutput(context.sessionID, out);
|
|
896
|
+
// Build success message
|
|
897
|
+
const resetsLeft = result.windowResetsRemaining;
|
|
898
|
+
const resetsMsg = resetsLeft !== undefined
|
|
899
|
+
? ` (${resetsLeft} reset${resetsLeft === 1 ? "" : "s"} remaining this week)`
|
|
900
|
+
: "";
|
|
901
|
+
// Fetch updated quota to show new status
|
|
902
|
+
const quotaMsg = await fetchQuotaCommandMessage("tool:firmware_reset_window", context.sessionID);
|
|
903
|
+
const successOutput = `✓ Firmware 5-hour window reset successful${resetsMsg}${quotaMsg ? `\n\n${quotaMsg}` : ""}`;
|
|
904
|
+
context.metadata({ title: "Firmware Window Reset" });
|
|
905
|
+
await injectRawOutput(context.sessionID, successOutput);
|
|
987
906
|
return ""; // Empty return - output already injected with noReply
|
|
988
907
|
},
|
|
989
908
|
}),
|