oc-go-usage-display 1.0.2 → 1.1.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 +30 -1
- package/bin/lib.js +47 -1
- package/bin/oc-go-usage-display-remove.js +33 -0
- package/bin/oc-go-usage-display-status.js +19 -7
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -133
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +28 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +152 -0
- package/dist/shared.js.map +1 -0
- package/dist/tui.d.ts +17 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +26 -124
- package/dist/tui.js.map +1 -1
- package/package.json +4 -2
- package/src/index.ts +34 -148
- package/src/shared.ts +179 -0
- package/src/tui.tsx +42 -137
package/dist/shared.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Shared pure helpers for the server (`src/index.ts`) and TUI (`src/tui.tsx`)
|
|
2
|
+
// targets: auth.json resolution, tolerant API-payload parsing, snapshot
|
|
3
|
+
// builders, and small parsing/formatting primitives.
|
|
4
|
+
//
|
|
5
|
+
// Single source of truth for the duplicated logic so both surfaces parse the
|
|
6
|
+
// usage API identically. Secrets are never logged here. Behavior must stay
|
|
7
|
+
// identical for both consumers (import via `./shared.js` under NodeNext).
|
|
8
|
+
import * as fs from "node:fs";
|
|
9
|
+
import * as os from "node:os";
|
|
10
|
+
import * as path from "node:path";
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Constants
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
export const CONFIG_DIR = path.join(os.homedir(), ".config", "opencode");
|
|
15
|
+
export function dataShareAuthPath() {
|
|
16
|
+
const xdgDataHome = toNonEmptyString(process.env.XDG_DATA_HOME);
|
|
17
|
+
if (xdgDataHome)
|
|
18
|
+
return path.join(xdgDataHome, "opencode", "auth.json");
|
|
19
|
+
return path.join(os.homedir(), ".local", "share", "opencode", "auth.json");
|
|
20
|
+
}
|
|
21
|
+
export function authJsonPaths() {
|
|
22
|
+
return [dataShareAuthPath(), path.join(CONFIG_DIR, "auth.json")];
|
|
23
|
+
}
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Small pure helpers
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
export function isRecord(value) {
|
|
28
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
29
|
+
}
|
|
30
|
+
export function toFiniteNumber(value) {
|
|
31
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
32
|
+
return null;
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
export function toNonEmptyString(value) {
|
|
36
|
+
if (typeof value !== "string")
|
|
37
|
+
return null;
|
|
38
|
+
const trimmed = value.trim();
|
|
39
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
40
|
+
}
|
|
41
|
+
export function formatResetDuration(totalSec) {
|
|
42
|
+
if (totalSec === null || !Number.isFinite(totalSec) || totalSec < 0)
|
|
43
|
+
return null;
|
|
44
|
+
const sec = Math.floor(totalSec);
|
|
45
|
+
const hours = Math.floor(sec / 3600);
|
|
46
|
+
const minutes = Math.floor((sec % 3600) / 60);
|
|
47
|
+
if (hours > 0)
|
|
48
|
+
return `${hours}h${minutes}m`;
|
|
49
|
+
if (minutes > 0)
|
|
50
|
+
return `${minutes}m`;
|
|
51
|
+
return `${sec}s`;
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Credentials boundary (auth.json; secrets never logged)
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
export function readAuthJsonApiKey() {
|
|
57
|
+
for (const authPath of authJsonPaths()) {
|
|
58
|
+
let raw;
|
|
59
|
+
try {
|
|
60
|
+
raw = fs.readFileSync(authPath, "utf8");
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
let parsed;
|
|
66
|
+
try {
|
|
67
|
+
parsed = JSON.parse(raw);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (!isRecord(parsed))
|
|
73
|
+
continue;
|
|
74
|
+
const goEntry = parsed["opencode-go"];
|
|
75
|
+
const fallbackEntry = parsed["opencode"];
|
|
76
|
+
const goKey = isRecord(goEntry) ? toNonEmptyString(goEntry.key) : null;
|
|
77
|
+
if (goKey)
|
|
78
|
+
return goKey;
|
|
79
|
+
const fallbackKey = isRecord(fallbackEntry) ? toNonEmptyString(fallbackEntry.key) : null;
|
|
80
|
+
if (fallbackKey)
|
|
81
|
+
return fallbackKey;
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
// API payload boundary (tolerant JSON parsing; shape may evolve)
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
export function extractWindow(candidate) {
|
|
89
|
+
if (!isRecord(candidate))
|
|
90
|
+
return null;
|
|
91
|
+
const percent = toFiniteNumber(candidate.percent ??
|
|
92
|
+
candidate.usagePercent ??
|
|
93
|
+
candidate.usedPercent ??
|
|
94
|
+
candidate.value ??
|
|
95
|
+
candidate.usage);
|
|
96
|
+
if (percent === null)
|
|
97
|
+
return null;
|
|
98
|
+
const resetInSec = toFiniteNumber(candidate.resetInSec ?? candidate.resetInSeconds ?? null);
|
|
99
|
+
const status = toNonEmptyString(candidate.status);
|
|
100
|
+
const resetText = toNonEmptyString(candidate.resetText ?? candidate.reset ?? null);
|
|
101
|
+
return { percent: Math.round(percent), resetInSec, status, resetText };
|
|
102
|
+
}
|
|
103
|
+
export function extractSnapshotFromApiPayload(payload) {
|
|
104
|
+
if (!isRecord(payload))
|
|
105
|
+
return null;
|
|
106
|
+
const containers = [payload];
|
|
107
|
+
for (const key of ["usage", "data", "go"]) {
|
|
108
|
+
if (isRecord(payload[key]))
|
|
109
|
+
containers.push(payload[key]);
|
|
110
|
+
}
|
|
111
|
+
for (const container of containers) {
|
|
112
|
+
if (!isRecord(container))
|
|
113
|
+
continue;
|
|
114
|
+
const rolling = extractWindow(container.rolling ?? container.rollingUsage ?? container["5h"]);
|
|
115
|
+
const weekly = extractWindow(container.weekly ?? container.weeklyUsage ?? container["7d"]);
|
|
116
|
+
const monthly = extractWindow(container.monthly ?? container.monthlyUsage ?? container["30d"]);
|
|
117
|
+
if (rolling !== null || weekly !== null || monthly !== null) {
|
|
118
|
+
return {
|
|
119
|
+
rolling,
|
|
120
|
+
weekly,
|
|
121
|
+
monthly,
|
|
122
|
+
source: "api",
|
|
123
|
+
fetchedAt: Date.now(),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// Snapshot builders
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
export function mockSnapshot() {
|
|
133
|
+
return {
|
|
134
|
+
rolling: { percent: 42, resetInSec: 7543, status: "active", resetText: null },
|
|
135
|
+
weekly: { percent: 15, resetInSec: null, status: "active", resetText: null },
|
|
136
|
+
monthly: { percent: 61, resetInSec: null, status: "active", resetText: null },
|
|
137
|
+
source: "mock",
|
|
138
|
+
fetchedAt: Date.now(),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export function unavailableSnapshot(error, source = "unavailable") {
|
|
142
|
+
return {
|
|
143
|
+
rolling: null,
|
|
144
|
+
weekly: null,
|
|
145
|
+
monthly: null,
|
|
146
|
+
source,
|
|
147
|
+
fetchedAt: Date.now(),
|
|
148
|
+
apiUnavailable: true,
|
|
149
|
+
apiError: error,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/** @jsxImportSource @opentui/solid */
|
|
2
2
|
import type { TuiPlugin } from "@opencode-ai/plugin/tui";
|
|
3
|
+
import { formatResetDuration } from "./shared.js";
|
|
4
|
+
import type { UsageSnapshot } from "./shared.js";
|
|
5
|
+
export { formatResetDuration };
|
|
6
|
+
type DisplayMode = "sidebar" | "statusline" | "both";
|
|
7
|
+
type SurfaceSelection = {
|
|
8
|
+
sidebar: boolean;
|
|
9
|
+
statusline: boolean;
|
|
10
|
+
};
|
|
11
|
+
type UsageRow = {
|
|
12
|
+
label: string;
|
|
13
|
+
value: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function surfaceSelectionFromDisplayMode(mode: DisplayMode): SurfaceSelection;
|
|
16
|
+
export declare function parseBooleanFlag(value: unknown): boolean | null;
|
|
17
|
+
export declare function isSnapshotEmpty(snapshot: UsageSnapshot): boolean;
|
|
18
|
+
export declare function formatCompactLine(snapshot: UsageSnapshot): string;
|
|
19
|
+
export declare function buildUsageRows(snapshot: UsageSnapshot): UsageRow[];
|
|
3
20
|
declare const _default: {
|
|
4
21
|
id: string;
|
|
5
22
|
tui: TuiPlugin;
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAqDtC,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,yBAAyB,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAqDtC,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,mBAAmB,EAMpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAqB/B,KAAK,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAUF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAY/D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAKjE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,EAAE,CASlE;;;;;AAkSD,wBAAwF"}
|
package/dist/tui.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
|
|
2
2
|
import { For, Show, createEffect, createSignal } from "solid-js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { extractSnapshotFromApiPayload, formatResetDuration, isRecord, mockSnapshot, readAuthJsonApiKey, toNonEmptyString, unavailableSnapshot, } from "./shared.js";
|
|
4
|
+
// Re-exported so `dist/tui.js` keeps the helper surface used by tests.
|
|
5
|
+
export { formatResetDuration };
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
7
|
// Constants
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
@@ -15,40 +15,16 @@ const KV_COLLAPSED_SIDEBAR_KEY = "collapsed_sidebar";
|
|
|
15
15
|
const KV_COLLAPSED_STATUSLINE_KEY = "collapsed_statusline";
|
|
16
16
|
const KV_COLLAPSED_LEGACY_KEY = "collapsed";
|
|
17
17
|
const LOG_SERVICE = "oc-go-usage-display";
|
|
18
|
-
const CONFIG_DIR = path.join(os.homedir(), ".config", "opencode");
|
|
19
|
-
function dataShareAuthPath() {
|
|
20
|
-
const xdgDataHome = toNonEmptyString(process.env.XDG_DATA_HOME);
|
|
21
|
-
if (xdgDataHome)
|
|
22
|
-
return path.join(xdgDataHome, "opencode", "auth.json");
|
|
23
|
-
return path.join(os.homedir(), ".local", "share", "opencode", "auth.json");
|
|
24
|
-
}
|
|
25
|
-
function authJsonPaths() {
|
|
26
|
-
return [dataShareAuthPath(), path.join(CONFIG_DIR, "auth.json")];
|
|
27
|
-
}
|
|
28
18
|
// ---------------------------------------------------------------------------
|
|
29
19
|
// Small pure helpers
|
|
30
20
|
// ---------------------------------------------------------------------------
|
|
31
|
-
function isRecord(value) {
|
|
32
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
33
|
-
}
|
|
34
|
-
function toFiniteNumber(value) {
|
|
35
|
-
if (typeof value !== "number" || !Number.isFinite(value))
|
|
36
|
-
return null;
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
function toNonEmptyString(value) {
|
|
40
|
-
if (typeof value !== "string")
|
|
41
|
-
return null;
|
|
42
|
-
const trimmed = value.trim();
|
|
43
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
44
|
-
}
|
|
45
21
|
function isDisplayMode(value) {
|
|
46
22
|
return value === "sidebar" || value === "statusline" || value === "both";
|
|
47
23
|
}
|
|
48
|
-
function surfaceSelectionFromDisplayMode(mode) {
|
|
24
|
+
export function surfaceSelectionFromDisplayMode(mode) {
|
|
49
25
|
return { sidebar: mode !== "statusline", statusline: mode !== "sidebar" };
|
|
50
26
|
}
|
|
51
|
-
function parseBooleanFlag(value) {
|
|
27
|
+
export function parseBooleanFlag(value) {
|
|
52
28
|
if (typeof value === "boolean")
|
|
53
29
|
return value;
|
|
54
30
|
if (typeof value === "number") {
|
|
@@ -67,27 +43,16 @@ function parseBooleanFlag(value) {
|
|
|
67
43
|
return false;
|
|
68
44
|
return null;
|
|
69
45
|
}
|
|
70
|
-
function
|
|
71
|
-
if (totalSec === null || !Number.isFinite(totalSec) || totalSec < 0)
|
|
72
|
-
return null;
|
|
73
|
-
const sec = Math.floor(totalSec);
|
|
74
|
-
const hours = Math.floor(sec / 3600);
|
|
75
|
-
const minutes = Math.floor((sec % 3600) / 60);
|
|
76
|
-
if (hours > 0)
|
|
77
|
-
return `${hours}h${minutes}m`;
|
|
78
|
-
if (minutes > 0)
|
|
79
|
-
return `${minutes}m`;
|
|
80
|
-
return `${sec}s`;
|
|
81
|
-
}
|
|
82
|
-
function isSnapshotEmpty(snapshot) {
|
|
46
|
+
export function isSnapshotEmpty(snapshot) {
|
|
83
47
|
return snapshot.rolling === null && snapshot.weekly === null && snapshot.monthly === null;
|
|
84
48
|
}
|
|
85
|
-
function formatCompactLine(snapshot) {
|
|
49
|
+
export function formatCompactLine(snapshot) {
|
|
86
50
|
const rolling = snapshot.rolling === null ? "5h n/a" : `5h ${snapshot.rolling.percent}%`;
|
|
87
51
|
const weekly = snapshot.weekly === null ? "7d n/a" : `7d ${snapshot.weekly.percent}%`;
|
|
88
|
-
|
|
52
|
+
const monthly = snapshot.monthly === null ? "30d n/a" : `30d ${snapshot.monthly.percent}%`;
|
|
53
|
+
return `Go ${rolling} | ${weekly} | ${monthly}`;
|
|
89
54
|
}
|
|
90
|
-
function buildUsageRows(snapshot) {
|
|
55
|
+
export function buildUsageRows(snapshot) {
|
|
91
56
|
const rows = [];
|
|
92
57
|
if (snapshot.rolling !== null) {
|
|
93
58
|
const reset = formatResetDuration(snapshot.rolling.resetInSec) ?? snapshot.rolling.resetText;
|
|
@@ -162,71 +127,6 @@ function migrateLegacyCollapsedFlag(api) {
|
|
|
162
127
|
// ---------------------------------------------------------------------------
|
|
163
128
|
// Data boundary (auth.json -> Bearer usage fetch; throws nothing)
|
|
164
129
|
// ---------------------------------------------------------------------------
|
|
165
|
-
function readAuthJsonApiKey() {
|
|
166
|
-
for (const authPath of authJsonPaths()) {
|
|
167
|
-
let raw;
|
|
168
|
-
try {
|
|
169
|
-
raw = fs.readFileSync(authPath, "utf8");
|
|
170
|
-
}
|
|
171
|
-
catch {
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
let parsed;
|
|
175
|
-
try {
|
|
176
|
-
parsed = JSON.parse(raw);
|
|
177
|
-
}
|
|
178
|
-
catch {
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
if (!isRecord(parsed))
|
|
182
|
-
continue;
|
|
183
|
-
const goEntry = parsed["opencode-go"];
|
|
184
|
-
const fallbackEntry = parsed["opencode"];
|
|
185
|
-
const goKey = isRecord(goEntry) ? toNonEmptyString(goEntry.key) : null;
|
|
186
|
-
if (goKey)
|
|
187
|
-
return goKey;
|
|
188
|
-
const fallbackKey = isRecord(fallbackEntry) ? toNonEmptyString(fallbackEntry.key) : null;
|
|
189
|
-
if (fallbackKey)
|
|
190
|
-
return fallbackKey;
|
|
191
|
-
}
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
function extractWindow(candidate) {
|
|
195
|
-
if (!isRecord(candidate))
|
|
196
|
-
return null;
|
|
197
|
-
const percent = toFiniteNumber(candidate.percent ??
|
|
198
|
-
candidate.usagePercent ??
|
|
199
|
-
candidate.usedPercent ??
|
|
200
|
-
candidate.value ??
|
|
201
|
-
candidate.usage);
|
|
202
|
-
if (percent === null)
|
|
203
|
-
return null;
|
|
204
|
-
return {
|
|
205
|
-
percent: Math.round(percent),
|
|
206
|
-
resetInSec: toFiniteNumber(candidate.resetInSec ?? candidate.resetInSeconds ?? null),
|
|
207
|
-
resetText: toNonEmptyString(candidate.resetText ?? candidate.reset ?? null),
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
function extractSnapshotFromApiPayload(payload) {
|
|
211
|
-
if (!isRecord(payload))
|
|
212
|
-
return null;
|
|
213
|
-
const containers = [payload];
|
|
214
|
-
for (const key of ["usage", "data", "go"]) {
|
|
215
|
-
if (isRecord(payload[key]))
|
|
216
|
-
containers.push(payload[key]);
|
|
217
|
-
}
|
|
218
|
-
for (const container of containers) {
|
|
219
|
-
if (!isRecord(container))
|
|
220
|
-
continue;
|
|
221
|
-
const rolling = extractWindow(container.rolling ?? container.rollingUsage ?? container["5h"]);
|
|
222
|
-
const weekly = extractWindow(container.weekly ?? container.weeklyUsage ?? container["7d"]);
|
|
223
|
-
const monthly = extractWindow(container.monthly ?? container.monthlyUsage ?? container["30d"]);
|
|
224
|
-
if (rolling !== null || weekly !== null || monthly !== null) {
|
|
225
|
-
return { rolling, weekly, monthly, source: "api", fetchedAt: Date.now() };
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
130
|
async function fetchJsonWithTimeout(url, apiKey) {
|
|
231
131
|
const controller = new AbortController();
|
|
232
132
|
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
@@ -253,15 +153,6 @@ async function fetchJsonWithTimeout(url, apiKey) {
|
|
|
253
153
|
clearTimeout(timer);
|
|
254
154
|
}
|
|
255
155
|
}
|
|
256
|
-
function mockSnapshot() {
|
|
257
|
-
return {
|
|
258
|
-
rolling: { percent: 42, resetInSec: 7543, resetText: null },
|
|
259
|
-
weekly: { percent: 15, resetInSec: null, resetText: null },
|
|
260
|
-
monthly: { percent: 61, resetInSec: null, resetText: null },
|
|
261
|
-
source: "mock",
|
|
262
|
-
fetchedAt: Date.now(),
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
156
|
async function loadUsageSnapshot() {
|
|
266
157
|
if (process.env.OPENCODE_GO_MOCK === "1")
|
|
267
158
|
return mockSnapshot();
|
|
@@ -271,8 +162,11 @@ async function loadUsageSnapshot() {
|
|
|
271
162
|
const payload = await fetchJsonWithTimeout(API_USAGE_URL, apiKey);
|
|
272
163
|
if (payload === null)
|
|
273
164
|
return null;
|
|
274
|
-
|
|
275
|
-
|
|
165
|
+
// Mirror the server: a rejected key is a distinct unavailable snapshot
|
|
166
|
+
// (surfaced via `apiError`) rather than a silent null.
|
|
167
|
+
if (isRecord(payload) && payload.__rejected === true) {
|
|
168
|
+
return unavailableSnapshot("API key rejected (401/403)");
|
|
169
|
+
}
|
|
276
170
|
return extractSnapshotFromApiPayload(payload);
|
|
277
171
|
}
|
|
278
172
|
async function logUsageError(api, message) {
|
|
@@ -342,7 +236,7 @@ const goUsageTui = async (api, options) => {
|
|
|
342
236
|
createEffect(() => {
|
|
343
237
|
const snapshot = usageSnapshot();
|
|
344
238
|
if (snapshot !== null && snapshot.source === "unavailable") {
|
|
345
|
-
void logUsageError(api, "Go usage snapshot unavailable");
|
|
239
|
+
void logUsageError(api, snapshot.apiError ? `Go usage unavailable (${snapshot.apiError})` : "Go usage snapshot unavailable");
|
|
346
240
|
}
|
|
347
241
|
});
|
|
348
242
|
return (_jsxs("box", { flexDirection: "column", children: [_jsx("text", { fg: props.theme.current.text, children: _jsx("b", { children: "Go Usage" }) }), _jsx(Show, { when: usageSnapshot(), fallback: _jsx("text", { fg: props.theme.current.textMuted, wrapMode: "none", children: "Go loading\u2026" }), children: (snapshot) => (_jsx(For, { each: buildUsageRows(snapshot()), children: (row) => (_jsxs("text", { fg: props.theme.current.textMuted, wrapMode: "none", children: [row.label, " ", row.value] })) })) })] }));
|
|
@@ -355,6 +249,10 @@ const goUsageTui = async (api, options) => {
|
|
|
355
249
|
} }));
|
|
356
250
|
}
|
|
357
251
|
if (surfaces.sidebar) {
|
|
252
|
+
// Host-owned slot: `register` returns an id but the SDK exposes no
|
|
253
|
+
// unregister API, so there is nothing to dispose here (the slot dies
|
|
254
|
+
// with the host). Interval/event/command teardown below is the full
|
|
255
|
+
// dispose path.
|
|
358
256
|
api.slots.register({
|
|
359
257
|
order: SLOT_ORDER,
|
|
360
258
|
slots: {
|
|
@@ -371,6 +269,8 @@ const goUsageTui = async (api, options) => {
|
|
|
371
269
|
});
|
|
372
270
|
}
|
|
373
271
|
if (surfaces.statusline) {
|
|
272
|
+
// Host-owned slot (see sidebar note above): no unregister API exists,
|
|
273
|
+
// so disposal is a no-op for slots.
|
|
374
274
|
api.slots.register({
|
|
375
275
|
order: SLOT_ORDER,
|
|
376
276
|
slots: {
|
|
@@ -384,7 +284,9 @@ const goUsageTui = async (api, options) => {
|
|
|
384
284
|
},
|
|
385
285
|
});
|
|
386
286
|
}
|
|
387
|
-
|
|
287
|
+
// `api.command` is a deprecated legacy shim that hosts may omit; guard so
|
|
288
|
+
// the plugin still initializes and disposes safely without it.
|
|
289
|
+
const unregisterToggleCommand = api.command?.register(() => [
|
|
388
290
|
{
|
|
389
291
|
title: "Go usage: toggle sidebar",
|
|
390
292
|
value: "oc-go-usage-display.toggle-sidebar",
|
|
@@ -397,7 +299,7 @@ const goUsageTui = async (api, options) => {
|
|
|
397
299
|
category: "Go",
|
|
398
300
|
onSelect: () => toggleStatuslineCollapsed(),
|
|
399
301
|
},
|
|
400
|
-
]);
|
|
302
|
+
]) ?? (() => { });
|
|
401
303
|
const unsubscribeSession = api.event.on("session.updated", () => {
|
|
402
304
|
void refreshUsage();
|
|
403
305
|
});
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.tsx"],"names":[],"mappings":";AA4DA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,uEAAuE;AACvE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAC3D,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAC5C,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAmB1C,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAiB;IAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,YAAY,EAAE,UAAU,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,OAAO,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAuB;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC;IACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC;IACtF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC;IAC3F,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAuB;IACpD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7F,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAC/F,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,4BAA4B;AAC5B,8EAA8E;AAE9E,SAAS,uBAAuB,CAAC,OAAkC,EAAE,GAAiB;IACpF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,aAAa,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,UAAU,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAClF,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,+BAA+B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC3E,IAAI,UAAU,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,UAAU,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrE,IAAI,UAAU,KAAK,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,OAAO,+BAA+B,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,aAAa,CAAC,MAAM,CAAC;YAAE,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAiB,EAAE,GAAW;IACvD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAU,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAiB;IACnD,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAU,uBAAuB,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,IAAI,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAAc;IAC7D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3E,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG;QAAE,OAAO,YAAY,EAAE,CAAC;IAEhE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,kBAAkB,EAAE,CAAC;IACzF,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAiB,EAAE,OAAe;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,UAAU,GAAc,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACnD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,CAAuB,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,YAAY,CAC9D,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CACjD,CAAC;IACF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,YAAY,CACpE,iBAAiB,CAAC,GAAG,EAAE,2BAA2B,CAAC,CACpD,CAAC;IAEF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,KAAK,UAAU,YAAY;QACzB,IAAI,eAAe;YAAE,OAAO;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,gBAAgB,IAAI,aAAa,EAAE,KAAK,IAAI;YAAE,OAAO;QACjF,eAAe,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAC3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC7B,MAAM,aAAa,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;gBAAS,CAAC;YACT,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS,sBAAsB;QAC7B,MAAM,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED,SAAS,yBAAyB;QAChC,MAAM,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,KAA0B;QAChD,YAAY,CAAC,GAAG,EAAE;YAChB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC3D,KAAK,aAAa,CAChB,GAAG,EACH,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,+BAA+B,CACpG,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CACL,eAAK,aAAa,EAAC,QAAQ,aACzB,eAAM,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,YAChC,mCAAe,GACV,EACP,KAAC,IAAI,IACH,IAAI,EAAE,aAAa,EAAE,EACrB,QAAQ,EACN,eAAM,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,iCAEjD,YAGR,CAAC,QAAQ,EAAE,EAAE,CAAC,CACb,KAAC,GAAG,IAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,YAClC,CAAC,GAAG,EAAE,EAAE,CAAC,CACR,gBAAM,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,aACrD,GAAG,CAAC,KAAK,OAAG,GAAG,CAAC,KAAK,IACjB,CACR,GACG,CACP,GACI,IACH,CACP,CAAC;IACJ,CAAC;IAED,SAAS,YAAY;QACnB,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,YACxC,CAAC,QAAQ,EAAE,EAAE;gBACZ,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC7C,OAAO,yBAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC,GAAQ,CAAC;YACtD,CAAC,GACI,CACR,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,mEAAmE;QACnE,qEAAqE;QACrE,oEAAoE;QACpE,gBAAgB;QAChB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,eAAe,CAAC,GAAmB,EAAE,KAA6B;oBAChE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,IAAI,CAAC;oBAC/C,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACtD,IAAI,kBAAkB,EAAE;wBAAE,OAAO,IAAI,CAAC;oBACtC,OAAO,KAAC,cAAc,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAI,CAAC;gBAC9C,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,sEAAsE;QACtE,oCAAoC;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,oBAAoB,CAAC,IAAoB,EAAE,KAA6B;oBACtE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,IAAI,CAAC;oBAC/C,IAAI,qBAAqB,EAAE;wBAAE,OAAO,IAAI,CAAC;oBACzC,OAAO,KAAC,YAAY,KAAG,CAAC;gBAC1B,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,uBAAuB,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC1D;YACE,KAAK,EAAE,0BAA0B;YACjC,KAAK,EAAE,oCAAoC;YAC3C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE;SACzC;QACD;YACE,KAAK,EAAE,6BAA6B;YACpC,KAAK,EAAE,uCAAuC;YAC9C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;SAC5C;KACF,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEjB,MAAM,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC9D,KAAK,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC9D,KAAK,YAAY,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,KAAK,YAAY,EAAE,CAAC;IACtB,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;QAC3B,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE,CAAC;QACrB,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,eAAe,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,UAAU,EAA4B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-go-usage-display",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "OpenCode Go subscription usage opencode-plugin: go_usage tool (server) and Go Usage sidebar panel + session_prompt_right statusline (TUI).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"bin": {
|
|
23
23
|
"oc-go-usage-display-init": "bin/oc-go-usage-display-init.js",
|
|
24
|
+
"oc-go-usage-display-remove": "bin/oc-go-usage-display-remove.js",
|
|
24
25
|
"oc-go-usage-display-show": "bin/oc-go-usage-display-show.js",
|
|
25
26
|
"oc-go-usage-display-status": "bin/oc-go-usage-display-status.js",
|
|
26
27
|
"oc-go-usage-display-update": "bin/oc-go-usage-display-update.js"
|
|
@@ -50,7 +51,8 @@
|
|
|
50
51
|
"scripts": {
|
|
51
52
|
"build": "tsc -p tsconfig.json",
|
|
52
53
|
"check": "tsc --noEmit -p tsconfig.json",
|
|
53
|
-
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
54
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
55
|
+
"test": "node --test \"test/**/*.test.js\""
|
|
54
56
|
},
|
|
55
57
|
"peerDependencies": {
|
|
56
58
|
"@opencode-ai/plugin": "^1.4.0"
|