@deepseekdev/coder 1.0.78 → 1.0.80
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/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +3 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/headless/interactiveShell.js +34 -5
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +14 -3
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/runtime/agentController.d.ts.map +1 -1
- package/dist/runtime/agentController.js +1 -0
- package/dist/runtime/agentController.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +3 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +36 -14
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/utils/balanceTracker.d.ts +32 -0
- package/dist/utils/balanceTracker.d.ts.map +1 -0
- package/dist/utils/balanceTracker.js +90 -0
- package/dist/utils/balanceTracker.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepSeek API Balance Tracker
|
|
3
|
+
* Fetches and tracks API balance for live display
|
|
4
|
+
*/
|
|
5
|
+
export interface BalanceInfo {
|
|
6
|
+
currency: string;
|
|
7
|
+
totalBalance: string;
|
|
8
|
+
grantedBalance: string;
|
|
9
|
+
toppedUpBalance: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BalanceResult {
|
|
12
|
+
isAvailable: boolean;
|
|
13
|
+
balances: BalanceInfo[];
|
|
14
|
+
error?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fetch balance from DeepSeek API
|
|
18
|
+
*/
|
|
19
|
+
export declare function fetchDeepSeekBalance(): Promise<BalanceResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Format balance for display
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatBalance(result: BalanceResult): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get formatted balance string (async)
|
|
26
|
+
*/
|
|
27
|
+
export declare function getFormattedBalance(): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Clear cached balance (call after API usage to force refresh)
|
|
30
|
+
*/
|
|
31
|
+
export declare function clearBalanceCache(): void;
|
|
32
|
+
//# sourceMappingURL=balanceTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceTracker.d.ts","sourceRoot":"","sources":["../../src/utils/balanceTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAgEnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAW3D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepSeek API Balance Tracker
|
|
3
|
+
* Fetches and tracks API balance for live display
|
|
4
|
+
*/
|
|
5
|
+
import { getSecretValue } from '../core/secretStore.js';
|
|
6
|
+
let cachedBalance = null;
|
|
7
|
+
let lastFetchTime = 0;
|
|
8
|
+
const CACHE_DURATION_MS = 60000; // Cache for 1 minute
|
|
9
|
+
/**
|
|
10
|
+
* Fetch balance from DeepSeek API
|
|
11
|
+
*/
|
|
12
|
+
export async function fetchDeepSeekBalance() {
|
|
13
|
+
const apiKey = getSecretValue('DEEPSEEK_API_KEY') || process.env.DEEPSEEK_API_KEY;
|
|
14
|
+
if (!apiKey) {
|
|
15
|
+
return {
|
|
16
|
+
isAvailable: false,
|
|
17
|
+
balances: [],
|
|
18
|
+
error: 'No API key configured',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// Return cached result if still valid
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
if (cachedBalance && (now - lastFetchTime) < CACHE_DURATION_MS) {
|
|
24
|
+
return cachedBalance;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const response = await fetch('https://api.deepseek.com/user/balance', {
|
|
28
|
+
method: 'GET',
|
|
29
|
+
headers: {
|
|
30
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
31
|
+
'Content-Type': 'application/json',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
const errorText = await response.text();
|
|
36
|
+
return {
|
|
37
|
+
isAvailable: false,
|
|
38
|
+
balances: [],
|
|
39
|
+
error: `API error: ${response.status} ${errorText}`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const data = await response.json();
|
|
43
|
+
cachedBalance = {
|
|
44
|
+
isAvailable: data.is_available,
|
|
45
|
+
balances: data.balance_infos.map(info => ({
|
|
46
|
+
currency: info.currency,
|
|
47
|
+
totalBalance: info.total_balance,
|
|
48
|
+
grantedBalance: info.granted_balance,
|
|
49
|
+
toppedUpBalance: info.topped_up_balance,
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
52
|
+
lastFetchTime = now;
|
|
53
|
+
return cachedBalance;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return {
|
|
57
|
+
isAvailable: false,
|
|
58
|
+
balances: [],
|
|
59
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Format balance for display
|
|
65
|
+
*/
|
|
66
|
+
export function formatBalance(result) {
|
|
67
|
+
if (result.error) {
|
|
68
|
+
return `Balance: Error (${result.error})`;
|
|
69
|
+
}
|
|
70
|
+
if (!result.isAvailable || result.balances.length === 0) {
|
|
71
|
+
return 'Balance: Unavailable';
|
|
72
|
+
}
|
|
73
|
+
const primary = result.balances[0];
|
|
74
|
+
return `$${primary.totalBalance} ${primary.currency}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get formatted balance string (async)
|
|
78
|
+
*/
|
|
79
|
+
export async function getFormattedBalance() {
|
|
80
|
+
const result = await fetchDeepSeekBalance();
|
|
81
|
+
return formatBalance(result);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Clear cached balance (call after API usage to force refresh)
|
|
85
|
+
*/
|
|
86
|
+
export function clearBalanceCache() {
|
|
87
|
+
cachedBalance = null;
|
|
88
|
+
lastFetchTime = 0;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=balanceTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceTracker.js","sourceRoot":"","sources":["../../src/utils/balanceTracker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED