@routstr/sdk 0.2.4 → 0.2.6

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 (40) hide show
  1. package/README.md +10 -2
  2. package/dist/client/index.d.mts +38 -11
  3. package/dist/client/index.d.ts +38 -11
  4. package/dist/client/index.js +1771 -391
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/index.mjs +1771 -392
  7. package/dist/client/index.mjs.map +1 -1
  8. package/dist/discovery/index.d.mts +2 -2
  9. package/dist/discovery/index.d.ts +2 -2
  10. package/dist/discovery/index.js +1 -4
  11. package/dist/discovery/index.js.map +1 -1
  12. package/dist/discovery/index.mjs +1 -4
  13. package/dist/discovery/index.mjs.map +1 -1
  14. package/dist/index.d.mts +26 -22
  15. package/dist/index.d.ts +26 -22
  16. package/dist/index.js +3005 -2107
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.mjs +2997 -2108
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/{interfaces-B85Wx7ni.d.mts → interfaces-B62Rw-dd.d.ts} +20 -15
  21. package/dist/{interfaces-DGdP8fQp.d.mts → interfaces-BWJJTCXO.d.mts} +1 -1
  22. package/dist/{interfaces-CC0LT9p9.d.ts → interfaces-BxDEka72.d.ts} +1 -1
  23. package/dist/{interfaces-BVNyAmKu.d.ts → interfaces-C5fLD3jB.d.mts} +20 -15
  24. package/dist/storage/index.d.mts +38 -142
  25. package/dist/storage/index.d.ts +38 -142
  26. package/dist/storage/index.js +852 -158
  27. package/dist/storage/index.js.map +1 -1
  28. package/dist/storage/index.mjs +846 -159
  29. package/dist/storage/index.mjs.map +1 -1
  30. package/dist/store-BJlwiDX5.d.ts +151 -0
  31. package/dist/store-C5lnyX8k.d.mts +151 -0
  32. package/dist/{types-BlHjmWRK.d.mts → types-BYj_8c5c.d.mts} +3 -0
  33. package/dist/{types-BlHjmWRK.d.ts → types-BYj_8c5c.d.ts} +3 -0
  34. package/dist/wallet/index.d.mts +24 -26
  35. package/dist/wallet/index.d.ts +24 -26
  36. package/dist/wallet/index.js +130 -259
  37. package/dist/wallet/index.js.map +1 -1
  38. package/dist/wallet/index.mjs +130 -259
  39. package/dist/wallet/index.mjs.map +1 -1
  40. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { P as ProviderInfo, M as Model, a as Message, T as TransactionHistory } from './types-BlHjmWRK.mjs';
1
+ import { P as ProviderInfo, M as Model, a as Message, T as TransactionHistory } from './types-BYj_8c5c.js';
2
2
 
3
3
  /**
4
4
  * Interfaces for the Routstr SDK wallet abstraction layer
@@ -55,20 +55,13 @@ interface ChildKeyEntry {
55
55
  validityDate?: number;
56
56
  createdAt: number;
57
57
  }
58
+ interface XCashuTokenEntry {
59
+ baseUrl: string;
60
+ token: string;
61
+ createdAt: number;
62
+ tryCount: number;
63
+ }
58
64
  interface StorageAdapter {
59
- /** Get stored API token for a provider */
60
- getToken(baseUrl: string): string | null;
61
- /** Store API token for a provider */
62
- setToken(baseUrl: string, token: string): void;
63
- /** Remove API token for a provider */
64
- removeToken(baseUrl: string): void;
65
- /** Update balance for an existing stored token */
66
- updateTokenBalance(baseUrl: string, balance: number): void;
67
- /** Get all stored tokens as distribution (baseUrl -> amount in sats) */
68
- getCachedTokenDistribution(): Array<{
69
- baseUrl: string;
70
- amount: number;
71
- }>;
72
65
  /** Save provider info to cache */
73
66
  saveProviderInfo(baseUrl: string, info: ProviderInfo): void;
74
67
  /** Get cached provider info */
@@ -112,6 +105,18 @@ interface StorageAdapter {
112
105
  unit: "sat" | "msat";
113
106
  createdAt?: number;
114
107
  }>): void;
108
+ /** Get all stored xcashu tokens */
109
+ getXcashuTokens(): Record<string, XCashuTokenEntry[]>;
110
+ /** Get xcashu tokens for a specific baseUrl */
111
+ getXcashuTokensForBaseUrl(baseUrl: string): XCashuTokenEntry[];
112
+ /** Add an xcashu token for a baseUrl */
113
+ addXcashuToken(baseUrl: string, token: string): void;
114
+ /** Remove an xcashu token */
115
+ removeXcashuToken(baseUrl: string, token: string): void;
116
+ /** Clear all xcashu tokens for a baseUrl */
117
+ clearXcashuTokensForBaseUrl(baseUrl: string): void;
118
+ /** Update try count for a specific token */
119
+ updateXcashuTokenTryCount(token: string, tryCount: number): void;
115
120
  }
116
121
  /**
117
122
  * ProviderRegistry - Provides access to provider/model data
@@ -168,4 +173,4 @@ interface RoutstrClientOptions {
168
173
  relayUrls?: string[];
169
174
  }
170
175
 
171
- export type { ApiKeyEntry as A, ChildKeyEntry as C, ProviderRegistry as P, RoutstrClientOptions as R, StorageAdapter as S, WalletAdapter as W, StreamingCallbacks as a };
176
+ export type { ApiKeyEntry as A, ChildKeyEntry as C, ProviderRegistry as P, RoutstrClientOptions as R, StorageAdapter as S, WalletAdapter as W, XCashuTokenEntry as X, StreamingCallbacks as a };
@@ -1,4 +1,4 @@
1
- import { M as Model, P as ProviderInfo } from './types-BlHjmWRK.mjs';
1
+ import { M as Model, P as ProviderInfo } from './types-BYj_8c5c.mjs';
2
2
 
3
3
  /**
4
4
  * Interfaces for the model and provider discovery system
@@ -1,4 +1,4 @@
1
- import { M as Model, P as ProviderInfo } from './types-BlHjmWRK.js';
1
+ import { M as Model, P as ProviderInfo } from './types-BYj_8c5c.js';
2
2
 
3
3
  /**
4
4
  * Interfaces for the model and provider discovery system
@@ -1,4 +1,4 @@
1
- import { P as ProviderInfo, M as Model, a as Message, T as TransactionHistory } from './types-BlHjmWRK.js';
1
+ import { P as ProviderInfo, M as Model, a as Message, T as TransactionHistory } from './types-BYj_8c5c.mjs';
2
2
 
3
3
  /**
4
4
  * Interfaces for the Routstr SDK wallet abstraction layer
@@ -55,20 +55,13 @@ interface ChildKeyEntry {
55
55
  validityDate?: number;
56
56
  createdAt: number;
57
57
  }
58
+ interface XCashuTokenEntry {
59
+ baseUrl: string;
60
+ token: string;
61
+ createdAt: number;
62
+ tryCount: number;
63
+ }
58
64
  interface StorageAdapter {
59
- /** Get stored API token for a provider */
60
- getToken(baseUrl: string): string | null;
61
- /** Store API token for a provider */
62
- setToken(baseUrl: string, token: string): void;
63
- /** Remove API token for a provider */
64
- removeToken(baseUrl: string): void;
65
- /** Update balance for an existing stored token */
66
- updateTokenBalance(baseUrl: string, balance: number): void;
67
- /** Get all stored tokens as distribution (baseUrl -> amount in sats) */
68
- getCachedTokenDistribution(): Array<{
69
- baseUrl: string;
70
- amount: number;
71
- }>;
72
65
  /** Save provider info to cache */
73
66
  saveProviderInfo(baseUrl: string, info: ProviderInfo): void;
74
67
  /** Get cached provider info */
@@ -112,6 +105,18 @@ interface StorageAdapter {
112
105
  unit: "sat" | "msat";
113
106
  createdAt?: number;
114
107
  }>): void;
108
+ /** Get all stored xcashu tokens */
109
+ getXcashuTokens(): Record<string, XCashuTokenEntry[]>;
110
+ /** Get xcashu tokens for a specific baseUrl */
111
+ getXcashuTokensForBaseUrl(baseUrl: string): XCashuTokenEntry[];
112
+ /** Add an xcashu token for a baseUrl */
113
+ addXcashuToken(baseUrl: string, token: string): void;
114
+ /** Remove an xcashu token */
115
+ removeXcashuToken(baseUrl: string, token: string): void;
116
+ /** Clear all xcashu tokens for a baseUrl */
117
+ clearXcashuTokensForBaseUrl(baseUrl: string): void;
118
+ /** Update try count for a specific token */
119
+ updateXcashuTokenTryCount(token: string, tryCount: number): void;
115
120
  }
116
121
  /**
117
122
  * ProviderRegistry - Provides access to provider/model data
@@ -168,4 +173,4 @@ interface RoutstrClientOptions {
168
173
  relayUrls?: string[];
169
174
  }
170
175
 
171
- export type { ApiKeyEntry as A, ChildKeyEntry as C, ProviderRegistry as P, RoutstrClientOptions as R, StorageAdapter as S, WalletAdapter as W, StreamingCallbacks as a };
176
+ export type { ApiKeyEntry as A, ChildKeyEntry as C, ProviderRegistry as P, RoutstrClientOptions as R, StorageAdapter as S, WalletAdapter as W, XCashuTokenEntry as X, StreamingCallbacks as a };
@@ -1,73 +1,36 @@
1
- import { M as Model, P as ProviderInfo } from '../types-BlHjmWRK.mjs';
2
- import { StoreApi } from 'zustand/vanilla';
3
- import { D as DiscoveryAdapter } from '../interfaces-DGdP8fQp.mjs';
4
- import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-B85Wx7ni.mjs';
1
+ import { a as StorageDriver, U as UsageTrackingDriver, b as UsageTrackingEntry, S as SdkStore } from '../store-C5lnyX8k.mjs';
2
+ export { L as ListUsageTrackingOptions, c as createDiscoveryAdapterFromStore, d as createProviderRegistryFromStore, e as createSdkStore, f as createStorageAdapterFromStore } from '../store-C5lnyX8k.mjs';
3
+ import { D as DiscoveryAdapter } from '../interfaces-BWJJTCXO.mjs';
4
+ import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-C5fLD3jB.mjs';
5
+ export { X as XCashuTokenEntry } from '../interfaces-C5fLD3jB.mjs';
6
+ import 'zustand/vanilla';
7
+ import '../types-BYj_8c5c.mjs';
5
8
 
6
- interface StorageDriver {
7
- getItem<T>(key: string, defaultValue: T): Promise<T>;
8
- setItem<T>(key: string, value: T): Promise<void>;
9
- removeItem(key: string): Promise<void>;
9
+ interface IndexedDBUsageTrackingDriverOptions {
10
+ dbName?: string;
11
+ storeName?: string;
12
+ legacyStorageDriver?: StorageDriver;
10
13
  }
11
- interface SdkStorageState {
12
- modelsFromAllProviders: Record<string, Model[]>;
13
- lastUsedModel: string | null;
14
- baseUrlsList: string[];
15
- disabledProviders: string[];
16
- mintsFromAllProviders: Record<string, string[]>;
17
- infoFromAllProviders: Record<string, ProviderInfo>;
18
- lastModelsUpdate: Record<string, number>;
19
- lastBaseUrlsUpdate: number | null;
20
- cachedTokens: Array<{
21
- baseUrl: string;
22
- token: string;
23
- balance: number;
24
- lastUsed: number | null;
25
- }>;
26
- apiKeys: Array<{
27
- baseUrl: string;
28
- key: string;
29
- balance: number;
30
- lastUsed: number | null;
31
- }>;
32
- childKeys: Array<{
33
- parentBaseUrl: string;
34
- childKey: string;
35
- balance: number;
36
- balanceLimit?: number;
37
- validityDate?: number;
38
- createdAt: number;
39
- }>;
40
- routstr21Models: string[];
41
- lastRoutstr21ModelsUpdate: number | null;
42
- cachedReceiveTokens: Array<{
43
- token: string;
44
- amount: number;
45
- unit: "sat" | "msat";
46
- createdAt: number;
47
- }>;
48
- usageTracking: Array<{
49
- id: string;
50
- timestamp: number;
51
- modelId: string;
52
- baseUrl: string;
53
- requestId: string;
54
- cost: number;
55
- satsCost: number;
56
- promptTokens: number;
57
- completionTokens: number;
58
- totalTokens: number;
59
- client?: string;
60
- sessionId?: string;
61
- tags?: string[];
62
- }>;
63
- clientIds: Array<{
64
- clientId: string;
65
- name: string;
66
- apiKey: string;
67
- createdAt: number;
68
- lastUsed?: number | null;
69
- }>;
14
+ declare const createIndexedDBUsageTrackingDriver: (options?: IndexedDBUsageTrackingDriverOptions) => UsageTrackingDriver;
15
+
16
+ interface SqliteUsageTrackingDriverOptions {
17
+ dbPath?: string;
18
+ tableName?: string;
19
+ legacyStorageDriver?: StorageDriver;
20
+ }
21
+ declare const createSqliteUsageTrackingDriver: (options?: SqliteUsageTrackingDriverOptions) => UsageTrackingDriver;
22
+
23
+ interface BunSqliteUsageTrackingDriverOptions {
24
+ dbPath?: string;
25
+ tableName?: string;
26
+ legacyStorageDriver?: StorageDriver;
27
+ sqlite?: {
28
+ Database: any;
29
+ };
70
30
  }
31
+ declare const createBunSqliteUsageTrackingDriver: (options?: BunSqliteUsageTrackingDriverOptions) => UsageTrackingDriver;
32
+
33
+ declare const createMemoryUsageTrackingDriver: (seed?: UsageTrackingEntry[]) => UsageTrackingDriver;
71
34
 
72
35
  declare const localStorageDriver: StorageDriver;
73
36
 
@@ -78,6 +41,7 @@ interface SqliteDriverOptions {
78
41
  tableName?: string;
79
42
  }
80
43
  declare const createSqliteDriver: (options?: SqliteDriverOptions) => StorageDriver;
44
+ declare function createBunSqliteDriver(dbPath: string): Promise<StorageDriver>;
81
45
 
82
46
  interface IndexedDBDriverOptions {
83
47
  dbName?: string;
@@ -85,79 +49,6 @@ interface IndexedDBDriverOptions {
85
49
  }
86
50
  declare const createIndexedDBDriver: (options?: IndexedDBDriverOptions) => StorageDriver;
87
51
 
88
- interface SdkStoreOptions {
89
- driver: StorageDriver;
90
- }
91
- interface SdkStorageStore extends SdkStorageState {
92
- setModelsFromAllProviders: (value: Record<string, Model[]>) => void;
93
- setLastUsedModel: (value: string | null) => void;
94
- setBaseUrlsList: (value: string[]) => void;
95
- setBaseUrlsLastUpdate: (value: number | null) => void;
96
- setDisabledProviders: (value: string[]) => void;
97
- setMintsFromAllProviders: (value: Record<string, string[]>) => void;
98
- setInfoFromAllProviders: (value: Record<string, ProviderInfo>) => void;
99
- setLastModelsUpdate: (value: Record<string, number>) => void;
100
- setCachedTokens: (value: Array<{
101
- baseUrl: string;
102
- token: string;
103
- balance?: number;
104
- lastUsed?: number | null;
105
- }> | ((current: SdkStorageStore["cachedTokens"]) => SdkStorageStore["cachedTokens"])) => void;
106
- setApiKeys: (value: Array<{
107
- baseUrl: string;
108
- key: string;
109
- balance?: number;
110
- lastUsed?: number | null;
111
- }> | ((current: SdkStorageStore["apiKeys"]) => SdkStorageStore["apiKeys"])) => void;
112
- setChildKeys: (value: Array<{
113
- parentBaseUrl: string;
114
- childKey: string;
115
- balance?: number;
116
- balanceLimit?: number;
117
- validityDate?: number;
118
- createdAt?: number;
119
- }>) => void;
120
- setRoutstr21Models: (value: string[]) => void;
121
- setRoutstr21ModelsLastUpdate: (value: number | null) => void;
122
- setCachedReceiveTokens: (value: Array<{
123
- token: string;
124
- amount: number;
125
- unit: "sat" | "msat";
126
- createdAt?: number;
127
- }>) => void;
128
- setUsageTracking: (value: Array<{
129
- id: string;
130
- timestamp: number;
131
- modelId: string;
132
- baseUrl: string;
133
- requestId: string;
134
- cost: number;
135
- satsCost: number;
136
- promptTokens: number;
137
- completionTokens: number;
138
- totalTokens: number;
139
- client?: string;
140
- sessionId?: string;
141
- tags?: string[];
142
- }>) => void;
143
- setClientIds: (value: Array<{
144
- clientId: string;
145
- name: string;
146
- apiKey: string;
147
- createdAt?: number;
148
- lastUsed?: number | null;
149
- }> | ((current: SdkStorageStore["clientIds"]) => SdkStorageStore["clientIds"])) => void;
150
- }
151
- /** Store type returned after async initialization */
152
- type SdkStore = StoreApi<SdkStorageStore>;
153
- declare const createSdkStore: ({ driver, }: SdkStoreOptions) => {
154
- store: SdkStore;
155
- hydrate: Promise<void>;
156
- };
157
- declare const createDiscoveryAdapterFromStore: (store: SdkStore) => DiscoveryAdapter;
158
- declare const createStorageAdapterFromStore: (store: SdkStore) => StorageAdapter;
159
- declare const createProviderRegistryFromStore: (store: SdkStore) => ProviderRegistry;
160
-
161
52
  declare const SDK_STORAGE_KEYS: {
162
53
  readonly MODELS_FROM_ALL_PROVIDERS: "modelsFromAllProviders";
163
54
  readonly LAST_USED_MODEL: "lastUsedModel";
@@ -167,9 +58,9 @@ declare const SDK_STORAGE_KEYS: {
167
58
  readonly INFO_FROM_ALL_PROVIDERS: "info_from_all_providers";
168
59
  readonly LAST_MODELS_UPDATE: "lastModelsUpdate";
169
60
  readonly LAST_BASE_URLS_UPDATE: "lastBaseUrlsUpdate";
170
- readonly LOCAL_CASHU_TOKENS: "local_cashu_tokens";
171
61
  readonly API_KEYS: "api_keys";
172
62
  readonly CHILD_KEYS: "child_keys";
63
+ readonly XCASHU_TOKENS: "xcashu_tokens";
173
64
  readonly ROUTSTR21_MODELS: "routstr21Models";
174
65
  readonly LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate";
175
66
  readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
@@ -179,8 +70,13 @@ declare const SDK_STORAGE_KEYS: {
179
70
 
180
71
  declare const getDefaultSdkDriver: () => StorageDriver;
181
72
  declare const getDefaultSdkStore: () => Promise<SdkStore>;
73
+ declare const getDefaultUsageTrackingDriver: () => UsageTrackingDriver;
74
+ /**
75
+ * Allow setting a custom usage tracking driver (useful for routstrd to use proper DB path)
76
+ */
77
+ declare const setDefaultUsageTrackingDriver: (driver: UsageTrackingDriver) => void;
182
78
  declare const getDefaultDiscoveryAdapter: () => Promise<DiscoveryAdapter>;
183
79
  declare const getDefaultStorageAdapter: () => Promise<StorageAdapter>;
184
80
  declare const getDefaultProviderRegistry: () => Promise<ProviderRegistry>;
185
81
 
186
- export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, type SdkStore, StorageAdapter, type StorageDriver, createDiscoveryAdapterFromStore, createIndexedDBDriver, createMemoryDriver, createProviderRegistryFromStore, createSdkStore, createSqliteDriver, createStorageAdapterFromStore, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, localStorageDriver };
82
+ export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, SdkStore, StorageAdapter, StorageDriver, UsageTrackingDriver, UsageTrackingEntry, createBunSqliteDriver, createBunSqliteUsageTrackingDriver, createIndexedDBDriver, createIndexedDBUsageTrackingDriver, createMemoryDriver, createMemoryUsageTrackingDriver, createSqliteDriver, createSqliteUsageTrackingDriver, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, getDefaultUsageTrackingDriver, localStorageDriver, setDefaultUsageTrackingDriver };
@@ -1,73 +1,36 @@
1
- import { M as Model, P as ProviderInfo } from '../types-BlHjmWRK.js';
2
- import { StoreApi } from 'zustand/vanilla';
3
- import { D as DiscoveryAdapter } from '../interfaces-CC0LT9p9.js';
4
- import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-BVNyAmKu.js';
1
+ import { a as StorageDriver, U as UsageTrackingDriver, b as UsageTrackingEntry, S as SdkStore } from '../store-BJlwiDX5.js';
2
+ export { L as ListUsageTrackingOptions, c as createDiscoveryAdapterFromStore, d as createProviderRegistryFromStore, e as createSdkStore, f as createStorageAdapterFromStore } from '../store-BJlwiDX5.js';
3
+ import { D as DiscoveryAdapter } from '../interfaces-BxDEka72.js';
4
+ import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-B62Rw-dd.js';
5
+ export { X as XCashuTokenEntry } from '../interfaces-B62Rw-dd.js';
6
+ import 'zustand/vanilla';
7
+ import '../types-BYj_8c5c.js';
5
8
 
6
- interface StorageDriver {
7
- getItem<T>(key: string, defaultValue: T): Promise<T>;
8
- setItem<T>(key: string, value: T): Promise<void>;
9
- removeItem(key: string): Promise<void>;
9
+ interface IndexedDBUsageTrackingDriverOptions {
10
+ dbName?: string;
11
+ storeName?: string;
12
+ legacyStorageDriver?: StorageDriver;
10
13
  }
11
- interface SdkStorageState {
12
- modelsFromAllProviders: Record<string, Model[]>;
13
- lastUsedModel: string | null;
14
- baseUrlsList: string[];
15
- disabledProviders: string[];
16
- mintsFromAllProviders: Record<string, string[]>;
17
- infoFromAllProviders: Record<string, ProviderInfo>;
18
- lastModelsUpdate: Record<string, number>;
19
- lastBaseUrlsUpdate: number | null;
20
- cachedTokens: Array<{
21
- baseUrl: string;
22
- token: string;
23
- balance: number;
24
- lastUsed: number | null;
25
- }>;
26
- apiKeys: Array<{
27
- baseUrl: string;
28
- key: string;
29
- balance: number;
30
- lastUsed: number | null;
31
- }>;
32
- childKeys: Array<{
33
- parentBaseUrl: string;
34
- childKey: string;
35
- balance: number;
36
- balanceLimit?: number;
37
- validityDate?: number;
38
- createdAt: number;
39
- }>;
40
- routstr21Models: string[];
41
- lastRoutstr21ModelsUpdate: number | null;
42
- cachedReceiveTokens: Array<{
43
- token: string;
44
- amount: number;
45
- unit: "sat" | "msat";
46
- createdAt: number;
47
- }>;
48
- usageTracking: Array<{
49
- id: string;
50
- timestamp: number;
51
- modelId: string;
52
- baseUrl: string;
53
- requestId: string;
54
- cost: number;
55
- satsCost: number;
56
- promptTokens: number;
57
- completionTokens: number;
58
- totalTokens: number;
59
- client?: string;
60
- sessionId?: string;
61
- tags?: string[];
62
- }>;
63
- clientIds: Array<{
64
- clientId: string;
65
- name: string;
66
- apiKey: string;
67
- createdAt: number;
68
- lastUsed?: number | null;
69
- }>;
14
+ declare const createIndexedDBUsageTrackingDriver: (options?: IndexedDBUsageTrackingDriverOptions) => UsageTrackingDriver;
15
+
16
+ interface SqliteUsageTrackingDriverOptions {
17
+ dbPath?: string;
18
+ tableName?: string;
19
+ legacyStorageDriver?: StorageDriver;
20
+ }
21
+ declare const createSqliteUsageTrackingDriver: (options?: SqliteUsageTrackingDriverOptions) => UsageTrackingDriver;
22
+
23
+ interface BunSqliteUsageTrackingDriverOptions {
24
+ dbPath?: string;
25
+ tableName?: string;
26
+ legacyStorageDriver?: StorageDriver;
27
+ sqlite?: {
28
+ Database: any;
29
+ };
70
30
  }
31
+ declare const createBunSqliteUsageTrackingDriver: (options?: BunSqliteUsageTrackingDriverOptions) => UsageTrackingDriver;
32
+
33
+ declare const createMemoryUsageTrackingDriver: (seed?: UsageTrackingEntry[]) => UsageTrackingDriver;
71
34
 
72
35
  declare const localStorageDriver: StorageDriver;
73
36
 
@@ -78,6 +41,7 @@ interface SqliteDriverOptions {
78
41
  tableName?: string;
79
42
  }
80
43
  declare const createSqliteDriver: (options?: SqliteDriverOptions) => StorageDriver;
44
+ declare function createBunSqliteDriver(dbPath: string): Promise<StorageDriver>;
81
45
 
82
46
  interface IndexedDBDriverOptions {
83
47
  dbName?: string;
@@ -85,79 +49,6 @@ interface IndexedDBDriverOptions {
85
49
  }
86
50
  declare const createIndexedDBDriver: (options?: IndexedDBDriverOptions) => StorageDriver;
87
51
 
88
- interface SdkStoreOptions {
89
- driver: StorageDriver;
90
- }
91
- interface SdkStorageStore extends SdkStorageState {
92
- setModelsFromAllProviders: (value: Record<string, Model[]>) => void;
93
- setLastUsedModel: (value: string | null) => void;
94
- setBaseUrlsList: (value: string[]) => void;
95
- setBaseUrlsLastUpdate: (value: number | null) => void;
96
- setDisabledProviders: (value: string[]) => void;
97
- setMintsFromAllProviders: (value: Record<string, string[]>) => void;
98
- setInfoFromAllProviders: (value: Record<string, ProviderInfo>) => void;
99
- setLastModelsUpdate: (value: Record<string, number>) => void;
100
- setCachedTokens: (value: Array<{
101
- baseUrl: string;
102
- token: string;
103
- balance?: number;
104
- lastUsed?: number | null;
105
- }> | ((current: SdkStorageStore["cachedTokens"]) => SdkStorageStore["cachedTokens"])) => void;
106
- setApiKeys: (value: Array<{
107
- baseUrl: string;
108
- key: string;
109
- balance?: number;
110
- lastUsed?: number | null;
111
- }> | ((current: SdkStorageStore["apiKeys"]) => SdkStorageStore["apiKeys"])) => void;
112
- setChildKeys: (value: Array<{
113
- parentBaseUrl: string;
114
- childKey: string;
115
- balance?: number;
116
- balanceLimit?: number;
117
- validityDate?: number;
118
- createdAt?: number;
119
- }>) => void;
120
- setRoutstr21Models: (value: string[]) => void;
121
- setRoutstr21ModelsLastUpdate: (value: number | null) => void;
122
- setCachedReceiveTokens: (value: Array<{
123
- token: string;
124
- amount: number;
125
- unit: "sat" | "msat";
126
- createdAt?: number;
127
- }>) => void;
128
- setUsageTracking: (value: Array<{
129
- id: string;
130
- timestamp: number;
131
- modelId: string;
132
- baseUrl: string;
133
- requestId: string;
134
- cost: number;
135
- satsCost: number;
136
- promptTokens: number;
137
- completionTokens: number;
138
- totalTokens: number;
139
- client?: string;
140
- sessionId?: string;
141
- tags?: string[];
142
- }>) => void;
143
- setClientIds: (value: Array<{
144
- clientId: string;
145
- name: string;
146
- apiKey: string;
147
- createdAt?: number;
148
- lastUsed?: number | null;
149
- }> | ((current: SdkStorageStore["clientIds"]) => SdkStorageStore["clientIds"])) => void;
150
- }
151
- /** Store type returned after async initialization */
152
- type SdkStore = StoreApi<SdkStorageStore>;
153
- declare const createSdkStore: ({ driver, }: SdkStoreOptions) => {
154
- store: SdkStore;
155
- hydrate: Promise<void>;
156
- };
157
- declare const createDiscoveryAdapterFromStore: (store: SdkStore) => DiscoveryAdapter;
158
- declare const createStorageAdapterFromStore: (store: SdkStore) => StorageAdapter;
159
- declare const createProviderRegistryFromStore: (store: SdkStore) => ProviderRegistry;
160
-
161
52
  declare const SDK_STORAGE_KEYS: {
162
53
  readonly MODELS_FROM_ALL_PROVIDERS: "modelsFromAllProviders";
163
54
  readonly LAST_USED_MODEL: "lastUsedModel";
@@ -167,9 +58,9 @@ declare const SDK_STORAGE_KEYS: {
167
58
  readonly INFO_FROM_ALL_PROVIDERS: "info_from_all_providers";
168
59
  readonly LAST_MODELS_UPDATE: "lastModelsUpdate";
169
60
  readonly LAST_BASE_URLS_UPDATE: "lastBaseUrlsUpdate";
170
- readonly LOCAL_CASHU_TOKENS: "local_cashu_tokens";
171
61
  readonly API_KEYS: "api_keys";
172
62
  readonly CHILD_KEYS: "child_keys";
63
+ readonly XCASHU_TOKENS: "xcashu_tokens";
173
64
  readonly ROUTSTR21_MODELS: "routstr21Models";
174
65
  readonly LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate";
175
66
  readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
@@ -179,8 +70,13 @@ declare const SDK_STORAGE_KEYS: {
179
70
 
180
71
  declare const getDefaultSdkDriver: () => StorageDriver;
181
72
  declare const getDefaultSdkStore: () => Promise<SdkStore>;
73
+ declare const getDefaultUsageTrackingDriver: () => UsageTrackingDriver;
74
+ /**
75
+ * Allow setting a custom usage tracking driver (useful for routstrd to use proper DB path)
76
+ */
77
+ declare const setDefaultUsageTrackingDriver: (driver: UsageTrackingDriver) => void;
182
78
  declare const getDefaultDiscoveryAdapter: () => Promise<DiscoveryAdapter>;
183
79
  declare const getDefaultStorageAdapter: () => Promise<StorageAdapter>;
184
80
  declare const getDefaultProviderRegistry: () => Promise<ProviderRegistry>;
185
81
 
186
- export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, type SdkStore, StorageAdapter, type StorageDriver, createDiscoveryAdapterFromStore, createIndexedDBDriver, createMemoryDriver, createProviderRegistryFromStore, createSdkStore, createSqliteDriver, createStorageAdapterFromStore, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, localStorageDriver };
82
+ export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, SdkStore, StorageAdapter, StorageDriver, UsageTrackingDriver, UsageTrackingEntry, createBunSqliteDriver, createBunSqliteUsageTrackingDriver, createIndexedDBDriver, createIndexedDBUsageTrackingDriver, createMemoryDriver, createMemoryUsageTrackingDriver, createSqliteDriver, createSqliteUsageTrackingDriver, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, getDefaultUsageTrackingDriver, localStorageDriver, setDefaultUsageTrackingDriver };