oc-go-usage-display 1.0.2 → 2.0.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.
Files changed (41) hide show
  1. package/README.md +249 -68
  2. package/bin/lib.js +433 -29
  3. package/bin/oc-go-usage-display-init.js +42 -13
  4. package/bin/oc-go-usage-display-remove.js +38 -0
  5. package/bin/oc-go-usage-display-show.js +47 -39
  6. package/bin/oc-go-usage-display-status.js +33 -42
  7. package/bin/oc-go-usage-display-update.js +27 -14
  8. package/dist/helpers.d.ts +116 -0
  9. package/dist/helpers.d.ts.map +1 -0
  10. package/dist/helpers.js +568 -0
  11. package/dist/helpers.js.map +1 -0
  12. package/dist/index.d.ts +5 -9
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +258 -278
  15. package/dist/index.js.map +1 -1
  16. package/dist/plugins/oc-go-usage-display.kilo.ts +678 -0
  17. package/dist/plugins/oc-go-usage-display.kilo.tsx +1272 -0
  18. package/dist/plugins/oc-go-usage-display.ts +678 -0
  19. package/dist/plugins/oc-go-usage-display.tsx +1018 -0
  20. package/dist/shared.d.ts +96 -0
  21. package/dist/shared.d.ts.map +1 -0
  22. package/dist/shared.js +575 -0
  23. package/dist/shared.js.map +1 -0
  24. package/dist/tui-shared.d.ts +109 -0
  25. package/dist/tui-shared.d.ts.map +1 -0
  26. package/dist/tui-shared.js +372 -0
  27. package/dist/tui-shared.js.map +1 -0
  28. package/dist/tui.d.ts.map +1 -1
  29. package/dist/tui.js +226 -377
  30. package/dist/tui.js.map +1 -1
  31. package/dist/tui.kilo.d.ts +8 -0
  32. package/dist/tui.kilo.d.ts.map +1 -0
  33. package/dist/tui.kilo.js +502 -0
  34. package/dist/tui.kilo.js.map +1 -0
  35. package/package.json +47 -13
  36. package/src/helpers.ts +733 -0
  37. package/src/index.ts +331 -304
  38. package/src/shared.ts +696 -0
  39. package/src/tui-shared.tsx +705 -0
  40. package/src/tui.kilo.tsx +816 -0
  41. package/src/tui.tsx +356 -465
@@ -0,0 +1,96 @@
1
+ export declare function resolveConfigDir(homedir?: () => string): string;
2
+ export type UsageHost = "opencode" | "kilo";
3
+ export type HostRoots = {
4
+ configDir: string;
5
+ dataDir: string;
6
+ };
7
+ export declare function usageHostFromEnv(env: NodeJS.ProcessEnv | undefined): UsageHost;
8
+ export declare function resolveUsageHost(): UsageHost;
9
+ export declare function hostEnvName(host: UsageHost, suffix: string): string;
10
+ export declare function hostEnv(host: UsageHost, suffix: string, env?: NodeJS.ProcessEnv | undefined): string | undefined;
11
+ export declare function resolveHostRoots(host: UsageHost, env?: NodeJS.ProcessEnv, homedir?: () => string): HostRoots;
12
+ export declare const CONFIG_DIR: string;
13
+ export declare function safeJoinPath(base: string, ...segments: unknown[]): string;
14
+ export declare function dataShareAuthPath(host?: UsageHost, env?: NodeJS.ProcessEnv, homedir?: () => string): string;
15
+ export declare function authJsonPaths(host?: UsageHost, env?: NodeJS.ProcessEnv, homedir?: () => string): string[];
16
+ export type UsageWindow = {
17
+ percent: number;
18
+ status: string | null;
19
+ limited: boolean;
20
+ resetInSec: number | null;
21
+ resetText: string | null;
22
+ };
23
+ export type UsageSnapshot = {
24
+ rolling: UsageWindow | null;
25
+ weekly: UsageWindow | null;
26
+ monthly: UsageWindow | null;
27
+ source: "api" | "scrape" | "mock" | "unavailable";
28
+ fetchedAt: number;
29
+ apiUnavailable?: boolean;
30
+ apiError?: string;
31
+ };
32
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
33
+ export declare function toFiniteNumber(value: unknown): number | null;
34
+ export declare function toUsageCount(value: unknown): number;
35
+ export declare function toNonEmptyString(value: unknown): string | null;
36
+ export declare function errorMessage(error: unknown): string;
37
+ export declare const KILO_SIDEBAR_ORDERS: Readonly<Record<string, number>>;
38
+ export declare const KILO_SLOT_ORDER = 125;
39
+ export declare const KILO_INTEGRATED_SLOT_ORDER = 150;
40
+ export declare const KILO_USAGE_PANEL_PLUGIN_ID = "internal:kilo-sidebar-usage";
41
+ export declare const KILO_TOKEN_USAGE_ROWS: readonly string[];
42
+ export declare const GO_PROVIDER_ID = "opencode-go";
43
+ export declare const KILO_MODEL_NAME_MAX_CHARS = 19;
44
+ export declare const KILO_STEPS_COLUMN_WIDTH = 5;
45
+ export declare const KILO_COST_COLUMN_WIDTH = 9;
46
+ export declare const SIDEBAR_COLLAPSED_GLYPH = "\u25B6";
47
+ export declare const SIDEBAR_EXPANDED_GLYPH = "\u25BE";
48
+ export declare const CACHE_RATE_DECIMALS = 1;
49
+ export declare const CACHE_RATE_EMPTY = "-";
50
+ export declare const OPENCODE_MODEL_NAME_MAX_CHARS = 12;
51
+ export declare const PERCENT_CELL_WIDTH = 5;
52
+ export declare const TOP_GO_MODELS_LIMIT = 3;
53
+ export declare const GO_MODEL_MIX_NAME_MAX_CHARS = 6;
54
+ export declare const GO_MODEL_MIX_BUDGET = 28;
55
+ export declare const GO_MODEL_MIX_SEPARATOR = "\u00B7";
56
+ export declare const TOP_GO_MODELS_LABEL = "Top Go models";
57
+ export declare const INTEGRATED_TOKENS_SECTION_LABEL = "Session Tokens";
58
+ export declare const INTEGRATED_MODELS_SECTION_LABEL = "Models";
59
+ export declare const GO_PLAN_HEADING = "Go Plan";
60
+ export declare const INTEGRATED_GO_SHARE_LABEL = "Go share";
61
+ export declare const MODELS_EMPTY_LABEL = "No model usage yet";
62
+ export declare const INTEGRATED_LOADING_LABEL = "Loading usage...";
63
+ export declare const INTEGRATED_UNAVAILABLE_LABEL = "Usage unavailable";
64
+ export declare function formatResetDuration(totalSec: number | null): string | null;
65
+ export declare function readAuthJsonApiKey(host?: UsageHost, env?: NodeJS.ProcessEnv, homedir?: () => string): string | null;
66
+ export declare function isLimitedStatus(status: string | null): boolean;
67
+ export declare function extractWindow(candidate: unknown, now?: number): UsageWindow | null;
68
+ export declare function extractSnapshotFromApiPayload(payload: unknown, now?: number): UsageSnapshot | null;
69
+ export declare function mockSnapshot(): UsageSnapshot;
70
+ export declare function unavailableSnapshot(error: string): UsageSnapshot;
71
+ export type UsageTokens = {
72
+ input: number;
73
+ output: number;
74
+ reasoning: number;
75
+ cache: {
76
+ read: number;
77
+ write: number;
78
+ };
79
+ };
80
+ export type UsageTotals = {
81
+ steps: number;
82
+ cost: number;
83
+ tokens: UsageTokens;
84
+ };
85
+ export type ModelUsage = UsageTotals & {
86
+ providerID: string;
87
+ modelID: string;
88
+ };
89
+ export type SessionModelUsage = {
90
+ sessionIDs: string[];
91
+ totals: UsageTotals;
92
+ models: ModelUsage[];
93
+ };
94
+ export declare function parseSessionModelUsage(payload: unknown): SessionModelUsage | null;
95
+ export declare function aggregateModelUsageFromMessages(messages: readonly unknown[]): SessionModelUsage;
96
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}