@tokscale/cli 1.4.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.
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/package.json +19 -26
- package/dist/auth.d.ts +0 -17
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -162
- package/dist/auth.js.map +0 -1
- package/dist/cli.d.ts +0 -9
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -1523
- package/dist/cli.js.map +0 -1
- package/dist/credentials.d.ts +0 -50
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -151
- package/dist/credentials.js.map +0 -1
- package/dist/cursor.d.ts +0 -167
- package/dist/cursor.d.ts.map +0 -1
- package/dist/cursor.js +0 -906
- package/dist/cursor.js.map +0 -1
- package/dist/date-utils.d.ts +0 -10
- package/dist/date-utils.d.ts.map +0 -1
- package/dist/date-utils.js +0 -47
- package/dist/date-utils.js.map +0 -1
- package/dist/graph-types.d.ts +0 -142
- package/dist/graph-types.d.ts.map +0 -1
- package/dist/graph-types.js +0 -6
- package/dist/graph-types.js.map +0 -1
- package/dist/native-runner.d.ts +0 -11
- package/dist/native-runner.d.ts.map +0 -1
- package/dist/native-runner.js +0 -77
- package/dist/native-runner.js.map +0 -1
- package/dist/native.d.ts +0 -105
- package/dist/native.d.ts.map +0 -1
- package/dist/native.js +0 -302
- package/dist/native.js.map +0 -1
- package/dist/sessions/types.d.ts +0 -28
- package/dist/sessions/types.d.ts.map +0 -1
- package/dist/sessions/types.js +0 -27
- package/dist/sessions/types.js.map +0 -1
- package/dist/spinner.d.ts +0 -75
- package/dist/spinner.d.ts.map +0 -1
- package/dist/spinner.js +0 -203
- package/dist/spinner.js.map +0 -1
- package/dist/submit.d.ts +0 -22
- package/dist/submit.d.ts.map +0 -1
- package/dist/submit.js +0 -292
- package/dist/submit.js.map +0 -1
- package/dist/table.d.ts +0 -42
- package/dist/table.d.ts.map +0 -1
- package/dist/table.js +0 -181
- package/dist/table.js.map +0 -1
- package/dist/tui/App.d.ts +0 -4
- package/dist/tui/App.d.ts.map +0 -1
- package/dist/tui/App.js +0 -350
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/components/BarChart.d.ts +0 -17
- package/dist/tui/components/BarChart.d.ts.map +0 -1
- package/dist/tui/components/BarChart.js +0 -146
- package/dist/tui/components/BarChart.js.map +0 -1
- package/dist/tui/components/DailyView.d.ts +0 -13
- package/dist/tui/components/DailyView.d.ts.map +0 -1
- package/dist/tui/components/DailyView.js +0 -86
- package/dist/tui/components/DailyView.js.map +0 -1
- package/dist/tui/components/DateBreakdownPanel.d.ts +0 -7
- package/dist/tui/components/DateBreakdownPanel.d.ts.map +0 -1
- package/dist/tui/components/DateBreakdownPanel.js +0 -36
- package/dist/tui/components/DateBreakdownPanel.js.map +0 -1
- package/dist/tui/components/Footer.d.ts +0 -28
- package/dist/tui/components/Footer.d.ts.map +0 -1
- package/dist/tui/components/Footer.js +0 -130
- package/dist/tui/components/Footer.js.map +0 -1
- package/dist/tui/components/Header.d.ts +0 -9
- package/dist/tui/components/Header.d.ts.map +0 -1
- package/dist/tui/components/Header.js +0 -20
- package/dist/tui/components/Header.js.map +0 -1
- package/dist/tui/components/Legend.d.ts +0 -7
- package/dist/tui/components/Legend.d.ts.map +0 -1
- package/dist/tui/components/Legend.js +0 -16
- package/dist/tui/components/Legend.js.map +0 -1
- package/dist/tui/components/LoadingSpinner.d.ts +0 -8
- package/dist/tui/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/tui/components/LoadingSpinner.js +0 -55
- package/dist/tui/components/LoadingSpinner.js.map +0 -1
- package/dist/tui/components/ModelRow.d.ts +0 -13
- package/dist/tui/components/ModelRow.d.ts.map +0 -1
- package/dist/tui/components/ModelRow.js +0 -15
- package/dist/tui/components/ModelRow.js.map +0 -1
- package/dist/tui/components/ModelView.d.ts +0 -13
- package/dist/tui/components/ModelView.d.ts.map +0 -1
- package/dist/tui/components/ModelView.js +0 -96
- package/dist/tui/components/ModelView.js.map +0 -1
- package/dist/tui/components/OverviewView.d.ts +0 -14
- package/dist/tui/components/OverviewView.d.ts.map +0 -1
- package/dist/tui/components/OverviewView.js +0 -65
- package/dist/tui/components/OverviewView.js.map +0 -1
- package/dist/tui/components/StatsView.d.ts +0 -14
- package/dist/tui/components/StatsView.d.ts.map +0 -1
- package/dist/tui/components/StatsView.js +0 -102
- package/dist/tui/components/StatsView.js.map +0 -1
- package/dist/tui/components/TokenBreakdown.d.ts +0 -14
- package/dist/tui/components/TokenBreakdown.d.ts.map +0 -1
- package/dist/tui/components/TokenBreakdown.js +0 -10
- package/dist/tui/components/TokenBreakdown.js.map +0 -1
- package/dist/tui/components/index.d.ts +0 -16
- package/dist/tui/components/index.d.ts.map +0 -1
- package/dist/tui/components/index.js +0 -13
- package/dist/tui/components/index.js.map +0 -1
- package/dist/tui/config/settings.d.ts +0 -15
- package/dist/tui/config/settings.d.ts.map +0 -1
- package/dist/tui/config/settings.js +0 -147
- package/dist/tui/config/settings.js.map +0 -1
- package/dist/tui/config/themes.d.ts +0 -15
- package/dist/tui/config/themes.d.ts.map +0 -1
- package/dist/tui/config/themes.js +0 -82
- package/dist/tui/config/themes.js.map +0 -1
- package/dist/tui/hooks/useData.d.ts +0 -19
- package/dist/tui/hooks/useData.d.ts.map +0 -1
- package/dist/tui/hooks/useData.js +0 -467
- package/dist/tui/hooks/useData.js.map +0 -1
- package/dist/tui/index.d.ts +0 -4
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js +0 -36
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/types/index.d.ts +0 -137
- package/dist/tui/types/index.d.ts.map +0 -1
- package/dist/tui/types/index.js +0 -25
- package/dist/tui/types/index.js.map +0 -1
- package/dist/tui/utils/cleanup.d.ts +0 -22
- package/dist/tui/utils/cleanup.d.ts.map +0 -1
- package/dist/tui/utils/cleanup.js +0 -59
- package/dist/tui/utils/cleanup.js.map +0 -1
- package/dist/tui/utils/colors.d.ts +0 -19
- package/dist/tui/utils/colors.d.ts.map +0 -1
- package/dist/tui/utils/colors.js +0 -68
- package/dist/tui/utils/colors.js.map +0 -1
- package/dist/tui/utils/format.d.ts +0 -7
- package/dist/tui/utils/format.d.ts.map +0 -1
- package/dist/tui/utils/format.js +0 -45
- package/dist/tui/utils/format.js.map +0 -1
- package/dist/tui/utils/responsive.d.ts +0 -5
- package/dist/tui/utils/responsive.d.ts.map +0 -1
- package/dist/tui/utils/responsive.js +0 -5
- package/dist/tui/utils/responsive.js.map +0 -1
- package/dist/wrapped.d.ts +0 -43
- package/dist/wrapped.d.ts.map +0 -1
- package/dist/wrapped.js +0 -716
- package/dist/wrapped.js.map +0 -1
- package/src/auth.ts +0 -211
- package/src/cli.ts +0 -1865
- package/src/credentials.ts +0 -176
- package/src/cursor.ts +0 -1044
- package/src/date-utils.ts +0 -51
- package/src/graph-types.ts +0 -175
- package/src/native-runner.js +0 -4
- package/src/native-runner.ts +0 -91
- package/src/native.ts +0 -631
- package/src/sessions/types.ts +0 -59
- package/src/spinner.ts +0 -283
- package/src/submit.ts +0 -358
- package/src/table.ts +0 -233
- package/src/tui/App.tsx +0 -443
- package/src/tui/components/BarChart.tsx +0 -205
- package/src/tui/components/DailyView.tsx +0 -132
- package/src/tui/components/DateBreakdownPanel.tsx +0 -79
- package/src/tui/components/Footer.tsx +0 -368
- package/src/tui/components/Header.tsx +0 -68
- package/src/tui/components/Legend.tsx +0 -39
- package/src/tui/components/LoadingSpinner.tsx +0 -81
- package/src/tui/components/ModelRow.tsx +0 -47
- package/src/tui/components/ModelView.tsx +0 -147
- package/src/tui/components/OverviewView.tsx +0 -121
- package/src/tui/components/StatsView.tsx +0 -249
- package/src/tui/components/TokenBreakdown.tsx +0 -46
- package/src/tui/components/index.ts +0 -15
- package/src/tui/config/settings.ts +0 -183
- package/src/tui/config/themes.ts +0 -115
- package/src/tui/hooks/useData.ts +0 -557
- package/src/tui/index.tsx +0 -44
- package/src/tui/opentui.d.ts +0 -166
- package/src/tui/types/index.ts +0 -172
- package/src/tui/utils/cleanup.ts +0 -65
- package/src/tui/utils/colors.ts +0 -76
- package/src/tui/utils/format.ts +0 -36
- package/src/tui/utils/responsive.ts +0 -8
- package/src/types.d.ts +0 -28
- package/src/wrapped.ts +0 -845
package/dist/native.js
DELETED
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Native module loader for Rust core
|
|
3
|
-
*
|
|
4
|
-
* Exposes all Rust functions with proper TypeScript types.
|
|
5
|
-
* Native module is REQUIRED - no TypeScript fallback.
|
|
6
|
-
*/
|
|
7
|
-
import { loadSettings } from "./tui/config/settings.js";
|
|
8
|
-
// =============================================================================
|
|
9
|
-
// Module loading
|
|
10
|
-
// =============================================================================
|
|
11
|
-
let nativeCore = null;
|
|
12
|
-
try {
|
|
13
|
-
// Type assertion needed because dynamic import returns module namespace
|
|
14
|
-
// nativeCore.version() is called directly, async functions go through subprocess
|
|
15
|
-
nativeCore = await import("@tokscale/core").then((m) => (m.default || m));
|
|
16
|
-
}
|
|
17
|
-
catch (e) {
|
|
18
|
-
void e;
|
|
19
|
-
}
|
|
20
|
-
// =============================================================================
|
|
21
|
-
// Public API
|
|
22
|
-
// =============================================================================
|
|
23
|
-
/**
|
|
24
|
-
* Check if native module is available
|
|
25
|
-
*/
|
|
26
|
-
export function isNativeAvailable() {
|
|
27
|
-
return nativeCore !== null;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get native module version
|
|
31
|
-
*/
|
|
32
|
-
export function getNativeVersion() {
|
|
33
|
-
return nativeCore?.version() ?? null;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Convert native result to TypeScript format
|
|
37
|
-
*/
|
|
38
|
-
function fromNativeResult(result) {
|
|
39
|
-
return {
|
|
40
|
-
meta: {
|
|
41
|
-
generatedAt: result.meta.generatedAt,
|
|
42
|
-
version: result.meta.version,
|
|
43
|
-
dateRange: {
|
|
44
|
-
start: result.meta.dateRangeStart,
|
|
45
|
-
end: result.meta.dateRangeEnd,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
summary: {
|
|
49
|
-
totalTokens: result.summary.totalTokens,
|
|
50
|
-
totalCost: result.summary.totalCost,
|
|
51
|
-
totalDays: result.summary.totalDays,
|
|
52
|
-
activeDays: result.summary.activeDays,
|
|
53
|
-
averagePerDay: result.summary.averagePerDay,
|
|
54
|
-
maxCostInSingleDay: result.summary.maxCostInSingleDay,
|
|
55
|
-
sources: result.summary.sources,
|
|
56
|
-
models: result.summary.models,
|
|
57
|
-
},
|
|
58
|
-
years: result.years.map((y) => ({
|
|
59
|
-
year: y.year,
|
|
60
|
-
totalTokens: y.totalTokens,
|
|
61
|
-
totalCost: y.totalCost,
|
|
62
|
-
range: {
|
|
63
|
-
start: y.rangeStart,
|
|
64
|
-
end: y.rangeEnd,
|
|
65
|
-
},
|
|
66
|
-
})),
|
|
67
|
-
contributions: result.contributions.map((c) => ({
|
|
68
|
-
date: c.date,
|
|
69
|
-
timestampMs: c.timestampMs ?? undefined,
|
|
70
|
-
totals: {
|
|
71
|
-
tokens: c.totals.tokens,
|
|
72
|
-
cost: c.totals.cost,
|
|
73
|
-
messages: c.totals.messages,
|
|
74
|
-
},
|
|
75
|
-
intensity: c.intensity,
|
|
76
|
-
tokenBreakdown: {
|
|
77
|
-
input: c.tokenBreakdown.input,
|
|
78
|
-
output: c.tokenBreakdown.output,
|
|
79
|
-
cacheRead: c.tokenBreakdown.cacheRead,
|
|
80
|
-
cacheWrite: c.tokenBreakdown.cacheWrite,
|
|
81
|
-
reasoning: c.tokenBreakdown.reasoning,
|
|
82
|
-
},
|
|
83
|
-
sources: c.sources.map((s) => ({
|
|
84
|
-
source: s.source,
|
|
85
|
-
modelId: s.modelId,
|
|
86
|
-
providerId: s.providerId,
|
|
87
|
-
tokens: {
|
|
88
|
-
input: s.tokens.input,
|
|
89
|
-
output: s.tokens.output,
|
|
90
|
-
cacheRead: s.tokens.cacheRead,
|
|
91
|
-
cacheWrite: s.tokens.cacheWrite,
|
|
92
|
-
reasoning: s.tokens.reasoning,
|
|
93
|
-
},
|
|
94
|
-
cost: s.cost,
|
|
95
|
-
messages: s.messages,
|
|
96
|
-
})),
|
|
97
|
-
})),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
// =============================================================================
|
|
101
|
-
// Async Subprocess Wrappers (Non-blocking for UI)
|
|
102
|
-
// =============================================================================
|
|
103
|
-
import { fileURLToPath } from "node:url";
|
|
104
|
-
import { dirname, join } from "node:path";
|
|
105
|
-
import { writeFileSync, readFileSync, unlinkSync, mkdirSync, existsSync } from "node:fs";
|
|
106
|
-
import { tmpdir } from "node:os";
|
|
107
|
-
import { randomUUID } from "node:crypto";
|
|
108
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
109
|
-
const __dirname = dirname(__filename);
|
|
110
|
-
const SIGKILL_GRACE_MS = 500;
|
|
111
|
-
function getNativeTimeoutMs() {
|
|
112
|
-
const settings = loadSettings();
|
|
113
|
-
return process.env.TOKSCALE_NATIVE_TIMEOUT_MS
|
|
114
|
-
? parseInt(process.env.TOKSCALE_NATIVE_TIMEOUT_MS, 10)
|
|
115
|
-
: (settings.nativeTimeoutMs ?? 300_000);
|
|
116
|
-
}
|
|
117
|
-
function safeKill(proc, signal) {
|
|
118
|
-
try {
|
|
119
|
-
proc.kill(signal);
|
|
120
|
-
}
|
|
121
|
-
catch { }
|
|
122
|
-
}
|
|
123
|
-
async function runInSubprocess(method, args) {
|
|
124
|
-
const NATIVE_TIMEOUT_MS = getNativeTimeoutMs();
|
|
125
|
-
const runnerPath = join(__dirname, "native-runner.js");
|
|
126
|
-
const input = JSON.stringify({ method, args });
|
|
127
|
-
const tmpDir = join(tmpdir(), "tokscale");
|
|
128
|
-
mkdirSync(tmpDir, { recursive: true });
|
|
129
|
-
const id = randomUUID();
|
|
130
|
-
const inputFile = join(tmpDir, `input-${id}.json`);
|
|
131
|
-
const outputFile = join(tmpDir, `output-${id}.json`);
|
|
132
|
-
writeFileSync(inputFile, input, "utf-8");
|
|
133
|
-
const BunGlobal = globalThis.Bun;
|
|
134
|
-
let proc;
|
|
135
|
-
try {
|
|
136
|
-
proc = BunGlobal.spawn([process.execPath, runnerPath, inputFile, outputFile], {
|
|
137
|
-
stdout: "ignore",
|
|
138
|
-
stderr: "pipe",
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
catch (e) {
|
|
142
|
-
try {
|
|
143
|
-
unlinkSync(inputFile);
|
|
144
|
-
}
|
|
145
|
-
catch { }
|
|
146
|
-
throw new Error(`Failed to spawn subprocess: ${e.message}`);
|
|
147
|
-
}
|
|
148
|
-
let timeoutId = null;
|
|
149
|
-
let sigkillId = null;
|
|
150
|
-
let weInitiatedKill = false;
|
|
151
|
-
const cleanup = async () => {
|
|
152
|
-
if (timeoutId)
|
|
153
|
-
clearTimeout(timeoutId);
|
|
154
|
-
if (sigkillId)
|
|
155
|
-
clearTimeout(sigkillId);
|
|
156
|
-
try {
|
|
157
|
-
unlinkSync(inputFile);
|
|
158
|
-
}
|
|
159
|
-
catch { }
|
|
160
|
-
try {
|
|
161
|
-
unlinkSync(outputFile);
|
|
162
|
-
}
|
|
163
|
-
catch { }
|
|
164
|
-
};
|
|
165
|
-
try {
|
|
166
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
167
|
-
timeoutId = setTimeout(() => {
|
|
168
|
-
weInitiatedKill = true;
|
|
169
|
-
safeKill(proc, "SIGTERM");
|
|
170
|
-
sigkillId = setTimeout(() => {
|
|
171
|
-
safeKill(proc, "SIGKILL");
|
|
172
|
-
reject(new Error(`Subprocess '${method}' timed out after ${NATIVE_TIMEOUT_MS}ms (hard kill)`));
|
|
173
|
-
}, SIGKILL_GRACE_MS);
|
|
174
|
-
}, NATIVE_TIMEOUT_MS);
|
|
175
|
-
});
|
|
176
|
-
const exitCode = await Promise.race([proc.exited, timeoutPromise]);
|
|
177
|
-
if (timeoutId)
|
|
178
|
-
clearTimeout(timeoutId);
|
|
179
|
-
if (weInitiatedKill || proc.signalCode) {
|
|
180
|
-
throw new Error(`Subprocess '${method}' was killed (signal: ${proc.signalCode || "SIGTERM"})`);
|
|
181
|
-
}
|
|
182
|
-
if (exitCode !== 0) {
|
|
183
|
-
const stderr = await proc.stderr.text();
|
|
184
|
-
let errorMsg = `Process exited with code ${exitCode}`;
|
|
185
|
-
if (stderr) {
|
|
186
|
-
try {
|
|
187
|
-
const parsed = JSON.parse(stderr);
|
|
188
|
-
if (parsed.error) {
|
|
189
|
-
errorMsg = parsed.error;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
errorMsg = stderr;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
// Not JSON — include raw stderr so the user sees the actual error
|
|
197
|
-
// (e.g. dynamic linker errors on NixOS, missing shared libraries, etc.)
|
|
198
|
-
errorMsg = stderr;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
throw new Error(`Subprocess '${method}' failed: ${errorMsg}`);
|
|
202
|
-
}
|
|
203
|
-
if (!existsSync(outputFile)) {
|
|
204
|
-
throw new Error(`Subprocess '${method}' did not produce output file`);
|
|
205
|
-
}
|
|
206
|
-
try {
|
|
207
|
-
const output = readFileSync(outputFile, "utf-8");
|
|
208
|
-
return JSON.parse(output);
|
|
209
|
-
}
|
|
210
|
-
catch (e) {
|
|
211
|
-
throw new Error(`Failed to parse subprocess output: ${e.message}`);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
finally {
|
|
215
|
-
await cleanup();
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
export async function parseLocalSourcesAsync(options) {
|
|
219
|
-
if (!isNativeAvailable()) {
|
|
220
|
-
throw new Error("Native module required. Run: bun run build:core");
|
|
221
|
-
}
|
|
222
|
-
const nativeOptions = {
|
|
223
|
-
homeDir: options.homeDir,
|
|
224
|
-
sources: options.sources,
|
|
225
|
-
since: options.since,
|
|
226
|
-
until: options.until,
|
|
227
|
-
year: options.year,
|
|
228
|
-
sinceTs: options.sinceTs,
|
|
229
|
-
untilTs: options.untilTs,
|
|
230
|
-
};
|
|
231
|
-
return runInSubprocess("parseLocalSources", [nativeOptions]);
|
|
232
|
-
}
|
|
233
|
-
export async function finalizeReportAsync(options) {
|
|
234
|
-
if (!isNativeAvailable()) {
|
|
235
|
-
throw new Error("Native module required. Run: bun run build:core");
|
|
236
|
-
}
|
|
237
|
-
const nativeOptions = {
|
|
238
|
-
homeDir: undefined,
|
|
239
|
-
localMessages: options.localMessages,
|
|
240
|
-
includeCursor: options.includeCursor,
|
|
241
|
-
since: options.since,
|
|
242
|
-
until: options.until,
|
|
243
|
-
year: options.year,
|
|
244
|
-
sinceTs: options.sinceTs,
|
|
245
|
-
untilTs: options.untilTs,
|
|
246
|
-
};
|
|
247
|
-
return runInSubprocess("finalizeReport", [nativeOptions]);
|
|
248
|
-
}
|
|
249
|
-
export async function finalizeMonthlyReportAsync(options) {
|
|
250
|
-
if (!isNativeAvailable()) {
|
|
251
|
-
throw new Error("Native module required. Run: bun run build:core");
|
|
252
|
-
}
|
|
253
|
-
const nativeOptions = {
|
|
254
|
-
homeDir: undefined,
|
|
255
|
-
localMessages: options.localMessages,
|
|
256
|
-
includeCursor: options.includeCursor,
|
|
257
|
-
since: options.since,
|
|
258
|
-
until: options.until,
|
|
259
|
-
year: options.year,
|
|
260
|
-
sinceTs: options.sinceTs,
|
|
261
|
-
untilTs: options.untilTs,
|
|
262
|
-
};
|
|
263
|
-
return runInSubprocess("finalizeMonthlyReport", [nativeOptions]);
|
|
264
|
-
}
|
|
265
|
-
export async function finalizeGraphAsync(options) {
|
|
266
|
-
if (!isNativeAvailable()) {
|
|
267
|
-
throw new Error("Native module required. Run: bun run build:core");
|
|
268
|
-
}
|
|
269
|
-
const nativeOptions = {
|
|
270
|
-
homeDir: undefined,
|
|
271
|
-
localMessages: options.localMessages,
|
|
272
|
-
includeCursor: options.includeCursor,
|
|
273
|
-
since: options.since,
|
|
274
|
-
until: options.until,
|
|
275
|
-
year: options.year,
|
|
276
|
-
sinceTs: options.sinceTs,
|
|
277
|
-
untilTs: options.untilTs,
|
|
278
|
-
};
|
|
279
|
-
const result = await runInSubprocess("finalizeGraph", [nativeOptions]);
|
|
280
|
-
return fromNativeResult(result);
|
|
281
|
-
}
|
|
282
|
-
export async function finalizeReportAndGraphAsync(options) {
|
|
283
|
-
if (!isNativeAvailable()) {
|
|
284
|
-
throw new Error("Native module required. Run: bun run build:core");
|
|
285
|
-
}
|
|
286
|
-
const nativeOptions = {
|
|
287
|
-
homeDir: undefined,
|
|
288
|
-
localMessages: options.localMessages,
|
|
289
|
-
includeCursor: options.includeCursor,
|
|
290
|
-
since: options.since,
|
|
291
|
-
until: options.until,
|
|
292
|
-
year: options.year,
|
|
293
|
-
sinceTs: options.sinceTs,
|
|
294
|
-
untilTs: options.untilTs,
|
|
295
|
-
};
|
|
296
|
-
const result = await runInSubprocess("finalizeReportAndGraph", [nativeOptions]);
|
|
297
|
-
return {
|
|
298
|
-
report: result.report,
|
|
299
|
-
graph: fromNativeResult(result.graph),
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
//# sourceMappingURL=native.js.map
|
package/dist/native.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions/types.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified message types for session parsers (matches Rust UnifiedMessage)
|
|
3
|
-
*/
|
|
4
|
-
export interface TokenBreakdown {
|
|
5
|
-
input: number;
|
|
6
|
-
output: number;
|
|
7
|
-
cacheRead: number;
|
|
8
|
-
cacheWrite: number;
|
|
9
|
-
reasoning: number;
|
|
10
|
-
}
|
|
11
|
-
export interface UnifiedMessage {
|
|
12
|
-
source: string;
|
|
13
|
-
modelId: string;
|
|
14
|
-
providerId: string;
|
|
15
|
-
sessionId: string;
|
|
16
|
-
timestamp: number;
|
|
17
|
-
date: string;
|
|
18
|
-
tokens: TokenBreakdown;
|
|
19
|
-
cost: number;
|
|
20
|
-
agent?: string;
|
|
21
|
-
}
|
|
22
|
-
export type SourceType = "opencode" | "claude" | "codex" | "gemini" | "cursor" | "amp" | "droid" | "openclaw" | "pi";
|
|
23
|
-
/**
|
|
24
|
-
* Convert Unix milliseconds timestamp to YYYY-MM-DD date string
|
|
25
|
-
*/
|
|
26
|
-
export declare function timestampToDate(timestampMs: number): string;
|
|
27
|
-
export declare function createUnifiedMessage(source: string, modelId: string, providerId: string, sessionId: string, timestamp: number, tokens: TokenBreakdown, cost?: number, agent?: string): UnifiedMessage;
|
|
28
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sessions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AAErH;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE,MAAU,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAYhB"}
|
package/dist/sessions/types.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified message types for session parsers (matches Rust UnifiedMessage)
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Convert Unix milliseconds timestamp to YYYY-MM-DD date string
|
|
6
|
-
*/
|
|
7
|
-
export function timestampToDate(timestampMs) {
|
|
8
|
-
const date = new Date(timestampMs);
|
|
9
|
-
const year = date.getUTCFullYear();
|
|
10
|
-
const month = String(date.getUTCMonth() + 1).padStart(2, "0");
|
|
11
|
-
const day = String(date.getUTCDate()).padStart(2, "0");
|
|
12
|
-
return `${year}-${month}-${day}`;
|
|
13
|
-
}
|
|
14
|
-
export function createUnifiedMessage(source, modelId, providerId, sessionId, timestamp, tokens, cost = 0, agent) {
|
|
15
|
-
return {
|
|
16
|
-
source,
|
|
17
|
-
modelId,
|
|
18
|
-
providerId,
|
|
19
|
-
sessionId,
|
|
20
|
-
timestamp,
|
|
21
|
-
date: timestampToDate(timestamp),
|
|
22
|
-
tokens,
|
|
23
|
-
cost,
|
|
24
|
-
agent,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sessions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAe,EACf,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,MAAsB,EACtB,OAAe,CAAC,EAChB,KAAc;IAEd,OAAO;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC;QAChC,MAAM;QACN,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,CAAC"}
|
package/dist/spinner.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenCode-style Knight Rider Spinner
|
|
3
|
-
* Accurate port from: https://github.com/sst/opencode/blob/dev/packages/opencode/src/cli/cmd/tui/ui/spinner.ts
|
|
4
|
-
*
|
|
5
|
-
* Features:
|
|
6
|
-
* - Bidirectional sweep (left→right→left)
|
|
7
|
-
* - Hold frames at each end (pause effect)
|
|
8
|
-
* - Color gradient trail using ANSI 256 colors
|
|
9
|
-
* - Same characters as OpenCode: ■ (active) / ⬝ (inactive)
|
|
10
|
-
*/
|
|
11
|
-
type ColorName = "cyan" | "green" | "magenta" | "yellow" | "red" | "blue" | "white";
|
|
12
|
-
interface SpinnerOptions {
|
|
13
|
-
/** Width of the spinner in characters (default: 8) */
|
|
14
|
-
width?: number;
|
|
15
|
-
/** Frames to hold at start position (default: 30) */
|
|
16
|
-
holdStart?: number;
|
|
17
|
-
/** Frames to hold at end position (default: 9) */
|
|
18
|
-
holdEnd?: number;
|
|
19
|
-
/** Trail length - number of colored blocks behind lead (default: 4) */
|
|
20
|
-
trailLength?: number;
|
|
21
|
-
/** Color theme (default: "cyan") */
|
|
22
|
-
color?: ColorName;
|
|
23
|
-
/** Frame interval in ms (default: 40) */
|
|
24
|
-
interval?: number;
|
|
25
|
-
}
|
|
26
|
-
export declare class Spinner {
|
|
27
|
-
private intervalId;
|
|
28
|
-
private frameIndex;
|
|
29
|
-
private width;
|
|
30
|
-
private holdStart;
|
|
31
|
-
private holdEnd;
|
|
32
|
-
private trailLength;
|
|
33
|
-
private gradient;
|
|
34
|
-
private interval;
|
|
35
|
-
private message;
|
|
36
|
-
private totalFrames;
|
|
37
|
-
constructor(options?: SpinnerOptions);
|
|
38
|
-
/**
|
|
39
|
-
* Start the spinner with a message
|
|
40
|
-
*/
|
|
41
|
-
start(message: string): void;
|
|
42
|
-
/**
|
|
43
|
-
* Update the spinner message while running
|
|
44
|
-
*/
|
|
45
|
-
update(message: string): void;
|
|
46
|
-
/**
|
|
47
|
-
* Stop the spinner and show a success message
|
|
48
|
-
*/
|
|
49
|
-
success(message: string): void;
|
|
50
|
-
/**
|
|
51
|
-
* Stop the spinner and show an error message
|
|
52
|
-
*/
|
|
53
|
-
error(message: string): void;
|
|
54
|
-
/**
|
|
55
|
-
* Stop the spinner without a message
|
|
56
|
-
*/
|
|
57
|
-
stop(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Check if spinner is currently running
|
|
60
|
-
*/
|
|
61
|
-
isSpinning(): boolean;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Create a spinner with default OpenCode settings
|
|
65
|
-
*/
|
|
66
|
-
export declare function createSpinner(options?: SpinnerOptions): Spinner;
|
|
67
|
-
/**
|
|
68
|
-
* Run an async function with a spinner
|
|
69
|
-
*/
|
|
70
|
-
export declare function withSpinner<T>(message: string, fn: () => Promise<T>, options?: SpinnerOptions & {
|
|
71
|
-
successMessage?: string;
|
|
72
|
-
errorMessage?: string;
|
|
73
|
-
}): Promise<T>;
|
|
74
|
-
export {};
|
|
75
|
-
//# sourceMappingURL=spinner.d.ts.map
|
package/dist/spinner.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAmBpF,UAAU,cAAc;IACtB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkGD,qBAAa,OAAO;IAClB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,GAAE,cAAmB;IAaxC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAsB5B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,cAAc,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,OAAO,CAAC,CAAC,CAAC,CAYZ"}
|
package/dist/spinner.js
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenCode-style Knight Rider Spinner
|
|
3
|
-
* Accurate port from: https://github.com/sst/opencode/blob/dev/packages/opencode/src/cli/cmd/tui/ui/spinner.ts
|
|
4
|
-
*
|
|
5
|
-
* Features:
|
|
6
|
-
* - Bidirectional sweep (left→right→left)
|
|
7
|
-
* - Hold frames at each end (pause effect)
|
|
8
|
-
* - Color gradient trail using ANSI 256 colors
|
|
9
|
-
* - Same characters as OpenCode: ■ (active) / ⬝ (inactive)
|
|
10
|
-
*/
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// ANSI Color Helpers
|
|
13
|
-
// =============================================================================
|
|
14
|
-
function ansi256Fg(code) {
|
|
15
|
-
return `\x1b[38;5;${code}m`;
|
|
16
|
-
}
|
|
17
|
-
const RESET = "\x1b[0m";
|
|
18
|
-
const HIDE_CURSOR = "\x1B[?25l";
|
|
19
|
-
const SHOW_CURSOR = "\x1B[?25h";
|
|
20
|
-
const CLEAR_LINE = "\r\x1B[K";
|
|
21
|
-
const COLOR_GRADIENTS = {
|
|
22
|
-
// Bright → dim (6 steps for trail)
|
|
23
|
-
cyan: [51, 44, 37, 30, 23, 17],
|
|
24
|
-
green: [46, 40, 34, 28, 22, 22],
|
|
25
|
-
magenta: [201, 165, 129, 93, 57, 53],
|
|
26
|
-
yellow: [226, 220, 214, 178, 136, 94],
|
|
27
|
-
red: [196, 160, 124, 88, 52, 52],
|
|
28
|
-
blue: [33, 27, 21, 18, 17, 17],
|
|
29
|
-
white: [255, 250, 245, 240, 236, 232],
|
|
30
|
-
};
|
|
31
|
-
const INACTIVE_COLOR = 240; // Gray for ⬝
|
|
32
|
-
/**
|
|
33
|
-
* Calculate scanner state for a given frame index
|
|
34
|
-
* Matches OpenCode's getScannerState() exactly
|
|
35
|
-
*/
|
|
36
|
-
function getScannerState(frameIndex, width, holdStart, holdEnd) {
|
|
37
|
-
const forwardFrames = width;
|
|
38
|
-
const backwardFrames = width - 1;
|
|
39
|
-
const totalCycle = forwardFrames + holdEnd + backwardFrames + holdStart;
|
|
40
|
-
// Normalize frame index to cycle
|
|
41
|
-
const normalizedFrame = frameIndex % totalCycle;
|
|
42
|
-
if (normalizedFrame < forwardFrames) {
|
|
43
|
-
// Phase 1: Moving forward (0 → width-1)
|
|
44
|
-
return {
|
|
45
|
-
activePosition: normalizedFrame,
|
|
46
|
-
isMovingForward: true,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
else if (normalizedFrame < forwardFrames + holdEnd) {
|
|
50
|
-
// Phase 2: Holding at end
|
|
51
|
-
return {
|
|
52
|
-
activePosition: width - 1,
|
|
53
|
-
isMovingForward: true,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
else if (normalizedFrame < forwardFrames + holdEnd + backwardFrames) {
|
|
57
|
-
// Phase 3: Moving backward (width-2 → 0)
|
|
58
|
-
const backwardIndex = normalizedFrame - forwardFrames - holdEnd;
|
|
59
|
-
return {
|
|
60
|
-
activePosition: width - 2 - backwardIndex,
|
|
61
|
-
isMovingForward: false,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
// Phase 4: Holding at start
|
|
66
|
-
return {
|
|
67
|
-
activePosition: 0,
|
|
68
|
-
isMovingForward: false,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Generate a single frame string with colors
|
|
74
|
-
*/
|
|
75
|
-
function generateColoredFrame(frameIndex, width, holdStart, holdEnd, trailLength, gradient) {
|
|
76
|
-
const state = getScannerState(frameIndex, width, holdStart, holdEnd);
|
|
77
|
-
const { activePosition, isMovingForward } = state;
|
|
78
|
-
let result = "";
|
|
79
|
-
for (let i = 0; i < width; i++) {
|
|
80
|
-
// Calculate directional distance (positive = trailing behind)
|
|
81
|
-
const directionalDistance = isMovingForward
|
|
82
|
-
? activePosition - i // Forward: trail is to the left
|
|
83
|
-
: i - activePosition; // Backward: trail is to the right
|
|
84
|
-
if (directionalDistance >= 0 && directionalDistance < trailLength) {
|
|
85
|
-
// Active position with color gradient
|
|
86
|
-
const colorIdx = Math.min(directionalDistance, gradient.length - 1);
|
|
87
|
-
result += ansi256Fg(gradient[colorIdx]) + "■" + RESET;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
// Inactive position
|
|
91
|
-
result += ansi256Fg(INACTIVE_COLOR) + "⬝" + RESET;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return result;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Calculate total frames in one complete cycle
|
|
98
|
-
*/
|
|
99
|
-
function getTotalFrames(width, holdStart, holdEnd) {
|
|
100
|
-
return width + holdEnd + (width - 1) + holdStart;
|
|
101
|
-
}
|
|
102
|
-
// =============================================================================
|
|
103
|
-
// Spinner Class
|
|
104
|
-
// =============================================================================
|
|
105
|
-
export class Spinner {
|
|
106
|
-
intervalId = null;
|
|
107
|
-
frameIndex = 0;
|
|
108
|
-
width;
|
|
109
|
-
holdStart;
|
|
110
|
-
holdEnd;
|
|
111
|
-
trailLength;
|
|
112
|
-
gradient;
|
|
113
|
-
interval;
|
|
114
|
-
message = "";
|
|
115
|
-
totalFrames;
|
|
116
|
-
constructor(options = {}) {
|
|
117
|
-
this.width = options.width ?? 8;
|
|
118
|
-
this.holdStart = options.holdStart ?? 30;
|
|
119
|
-
this.holdEnd = options.holdEnd ?? 9;
|
|
120
|
-
this.trailLength = options.trailLength ?? 4;
|
|
121
|
-
this.interval = options.interval ?? 40;
|
|
122
|
-
const colorName = options.color ?? "cyan";
|
|
123
|
-
this.gradient = COLOR_GRADIENTS[colorName] || COLOR_GRADIENTS.cyan;
|
|
124
|
-
this.totalFrames = getTotalFrames(this.width, this.holdStart, this.holdEnd);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Start the spinner with a message
|
|
128
|
-
*/
|
|
129
|
-
start(message) {
|
|
130
|
-
this.message = message;
|
|
131
|
-
this.frameIndex = 0;
|
|
132
|
-
// Hide cursor
|
|
133
|
-
process.stdout.write(HIDE_CURSOR);
|
|
134
|
-
this.intervalId = setInterval(() => {
|
|
135
|
-
const frame = generateColoredFrame(this.frameIndex, this.width, this.holdStart, this.holdEnd, this.trailLength, this.gradient);
|
|
136
|
-
process.stdout.write(`${CLEAR_LINE} ${frame} ${this.message}`);
|
|
137
|
-
this.frameIndex = (this.frameIndex + 1) % this.totalFrames;
|
|
138
|
-
}, this.interval);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Update the spinner message while running
|
|
142
|
-
*/
|
|
143
|
-
update(message) {
|
|
144
|
-
this.message = message;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Stop the spinner and show a success message
|
|
148
|
-
*/
|
|
149
|
-
success(message) {
|
|
150
|
-
this.stop();
|
|
151
|
-
console.log(` \x1b[32m✓\x1b[0m ${message}`);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Stop the spinner and show an error message
|
|
155
|
-
*/
|
|
156
|
-
error(message) {
|
|
157
|
-
this.stop();
|
|
158
|
-
console.log(` \x1b[31m✗\x1b[0m ${message}`);
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Stop the spinner without a message
|
|
162
|
-
*/
|
|
163
|
-
stop() {
|
|
164
|
-
if (this.intervalId) {
|
|
165
|
-
clearInterval(this.intervalId);
|
|
166
|
-
this.intervalId = null;
|
|
167
|
-
}
|
|
168
|
-
process.stdout.write(CLEAR_LINE);
|
|
169
|
-
process.stdout.write(SHOW_CURSOR);
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Check if spinner is currently running
|
|
173
|
-
*/
|
|
174
|
-
isSpinning() {
|
|
175
|
-
return this.intervalId !== null;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// =============================================================================
|
|
179
|
-
// Convenience Functions
|
|
180
|
-
// =============================================================================
|
|
181
|
-
/**
|
|
182
|
-
* Create a spinner with default OpenCode settings
|
|
183
|
-
*/
|
|
184
|
-
export function createSpinner(options) {
|
|
185
|
-
return new Spinner(options);
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Run an async function with a spinner
|
|
189
|
-
*/
|
|
190
|
-
export async function withSpinner(message, fn, options) {
|
|
191
|
-
const spinner = new Spinner(options);
|
|
192
|
-
spinner.start(message);
|
|
193
|
-
try {
|
|
194
|
-
const result = await fn();
|
|
195
|
-
spinner.success(options?.successMessage ?? message);
|
|
196
|
-
return result;
|
|
197
|
-
}
|
|
198
|
-
catch (error) {
|
|
199
|
-
spinner.error(options?.errorMessage ?? `Failed: ${message}`);
|
|
200
|
-
throw error;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=spinner.js.map
|
package/dist/spinner.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../src/spinner.ts"],"names":[],"mappings":"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"}
|