@routstr/sdk 0.3.10 → 0.3.12
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 +19 -6
- package/dist/browser.d.mts +2 -2
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +201 -66
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +198 -67
- package/dist/browser.mjs.map +1 -1
- package/dist/bun.d.mts +5 -5
- package/dist/bun.d.ts +5 -5
- package/dist/bun.js +275 -66
- package/dist/bun.js.map +1 -1
- package/dist/bun.mjs +272 -67
- package/dist/bun.mjs.map +1 -1
- package/dist/{bunSqlite-BMTseLIz.d.ts → bunSqlite-BmXWNc25.d.ts} +1 -1
- package/dist/{bunSqlite-D6AreVE2.d.mts → bunSqlite-Bro9efsl.d.mts} +1 -1
- package/dist/client/index.d.mts +31 -10
- package/dist/client/index.d.ts +31 -10
- package/dist/client/index.js +185 -36
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +182 -37
- package/dist/client/index.mjs.map +1 -1
- package/dist/discovery/index.d.mts +3 -3
- package/dist/discovery/index.d.ts +3 -3
- package/dist/discovery/index.js +12 -20
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/index.mjs +12 -20
- package/dist/discovery/index.mjs.map +1 -1
- package/dist/index.d.mts +8 -6
- package/dist/index.d.ts +8 -6
- package/dist/index.js +201 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +198 -67
- package/dist/index.mjs.map +1 -1
- package/dist/node.d.mts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +276 -66
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +273 -67
- package/dist/node.mjs.map +1 -1
- package/dist/storage/bun.d.mts +4 -4
- package/dist/storage/bun.d.ts +4 -4
- package/dist/storage/bun.js +173 -0
- package/dist/storage/bun.js.map +1 -1
- package/dist/storage/bun.mjs +173 -0
- package/dist/storage/bun.mjs.map +1 -1
- package/dist/storage/index.d.mts +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +99 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/index.mjs +99 -0
- package/dist/storage/index.mjs.map +1 -1
- package/dist/storage/node.d.mts +2 -2
- package/dist/storage/node.d.ts +2 -2
- package/dist/storage/node.js +174 -0
- package/dist/storage/node.js.map +1 -1
- package/dist/storage/node.mjs +174 -0
- package/dist/storage/node.mjs.map +1 -1
- package/dist/{store-C8MZlfuz.d.ts → store-CAQLSbEj.d.ts} +38 -1
- package/dist/{store-BiuM2V9N.d.mts → store-CuXwe5Rg.d.mts} +38 -1
- package/dist/wallet/index.js +38 -24
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/index.mjs +38 -24
- package/dist/wallet/index.mjs.map +1 -1
- package/package.json +7 -3
package/dist/storage/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as StorageDriver,
|
|
2
|
-
export { L as ListUsageTrackingOptions,
|
|
1
|
+
import { a as StorageDriver, c as UsageTrackingDriver, d as UsageTrackingEntry, S as SdkStore } from '../store-CuXwe5Rg.mjs';
|
|
2
|
+
export { A as AggregateUsageOptions, L as ListUsageTrackingOptions, U as UsageAggregateRow, b as UsageGroupBy, e as createDiscoveryAdapterFromStore, f as createProviderRegistryFromStore, g as createSdkStore, h as createStorageAdapterFromStore } from '../store-CuXwe5Rg.mjs';
|
|
3
3
|
import { D as DiscoveryAdapter } from '../interfaces-Cv1k2EUK.mjs';
|
|
4
4
|
import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-Csn8Uq04.mjs';
|
|
5
5
|
export { X as XCashuTokenEntry } from '../interfaces-Csn8Uq04.mjs';
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as StorageDriver,
|
|
2
|
-
export { L as ListUsageTrackingOptions,
|
|
1
|
+
import { a as StorageDriver, c as UsageTrackingDriver, d as UsageTrackingEntry, S as SdkStore } from '../store-CAQLSbEj.js';
|
|
2
|
+
export { A as AggregateUsageOptions, L as ListUsageTrackingOptions, U as UsageAggregateRow, b as UsageGroupBy, e as createDiscoveryAdapterFromStore, f as createProviderRegistryFromStore, g as createSdkStore, h as createStorageAdapterFromStore } from '../store-CAQLSbEj.js';
|
|
3
3
|
import { D as DiscoveryAdapter } from '../interfaces-iL7CWeG5.js';
|
|
4
4
|
import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-C-DYd9Jy.js';
|
|
5
5
|
export { X as XCashuTokenEntry } from '../interfaces-C-DYd9Jy.js';
|
package/dist/storage/index.js
CHANGED
|
@@ -244,6 +244,91 @@ var SDK_STORAGE_KEYS = {
|
|
|
244
244
|
PROVIDERS_ON_COOLDOWN: "providers_on_cooldown"
|
|
245
245
|
};
|
|
246
246
|
|
|
247
|
+
// storage/usageTracking/aggregate.ts
|
|
248
|
+
var pad2 = (n) => String(n).padStart(2, "0");
|
|
249
|
+
var jsGroupKey = (entry, groupBy, tzOffsetMinutes) => {
|
|
250
|
+
switch (groupBy) {
|
|
251
|
+
case "modelId":
|
|
252
|
+
return entry.modelId ?? null;
|
|
253
|
+
case "baseUrl":
|
|
254
|
+
return entry.baseUrl ?? null;
|
|
255
|
+
case "client":
|
|
256
|
+
return entry.client ?? null;
|
|
257
|
+
case "sessionId":
|
|
258
|
+
return entry.sessionId ?? null;
|
|
259
|
+
case "provider":
|
|
260
|
+
return entry.provider ?? null;
|
|
261
|
+
case "day": {
|
|
262
|
+
const d = new Date(entry.timestamp - tzOffsetMinutes * 6e4);
|
|
263
|
+
return `${d.getUTCFullYear()}-${pad2(d.getUTCMonth() + 1)}-${pad2(d.getUTCDate())}`;
|
|
264
|
+
}
|
|
265
|
+
case "hour": {
|
|
266
|
+
const d = new Date(entry.timestamp - tzOffsetMinutes * 6e4);
|
|
267
|
+
return pad2(d.getUTCHours());
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
var reduceAggregate = (entries, options = {}) => {
|
|
272
|
+
const emptyRow = (group) => ({
|
|
273
|
+
group,
|
|
274
|
+
requests: 0,
|
|
275
|
+
promptTokens: 0,
|
|
276
|
+
completionTokens: 0,
|
|
277
|
+
totalTokens: 0,
|
|
278
|
+
cost: 0,
|
|
279
|
+
satsCost: 0,
|
|
280
|
+
baseMsats: 0,
|
|
281
|
+
inputMsats: 0,
|
|
282
|
+
outputMsats: 0,
|
|
283
|
+
totalMsats: 0,
|
|
284
|
+
totalUsd: 0,
|
|
285
|
+
cacheReadInputTokens: 0,
|
|
286
|
+
cacheCreationInputTokens: 0,
|
|
287
|
+
cacheReadMsats: 0,
|
|
288
|
+
cacheCreationMsats: 0
|
|
289
|
+
});
|
|
290
|
+
const accumulate = (row, entry) => {
|
|
291
|
+
row.requests += 1;
|
|
292
|
+
row.promptTokens += entry.promptTokens;
|
|
293
|
+
row.completionTokens += entry.completionTokens;
|
|
294
|
+
row.totalTokens += entry.totalTokens;
|
|
295
|
+
row.cost += entry.cost;
|
|
296
|
+
row.satsCost += entry.satsCost;
|
|
297
|
+
row.baseMsats += entry.baseMsats ?? 0;
|
|
298
|
+
row.inputMsats += entry.inputMsats ?? 0;
|
|
299
|
+
row.outputMsats += entry.outputMsats ?? 0;
|
|
300
|
+
row.totalMsats += entry.totalMsats ?? 0;
|
|
301
|
+
row.totalUsd += entry.totalUsd ?? 0;
|
|
302
|
+
row.cacheReadInputTokens += entry.cacheReadInputTokens ?? 0;
|
|
303
|
+
row.cacheCreationInputTokens += entry.cacheCreationInputTokens ?? 0;
|
|
304
|
+
row.cacheReadMsats += entry.cacheReadMsats ?? 0;
|
|
305
|
+
row.cacheCreationMsats += entry.cacheCreationMsats ?? 0;
|
|
306
|
+
};
|
|
307
|
+
if (!options.groupBy) {
|
|
308
|
+
const total = emptyRow(null);
|
|
309
|
+
for (const entry of entries) accumulate(total, entry);
|
|
310
|
+
return [total];
|
|
311
|
+
}
|
|
312
|
+
const tz = options.tzOffsetMinutes ?? 0;
|
|
313
|
+
const groups = /* @__PURE__ */ new Map();
|
|
314
|
+
for (const entry of entries) {
|
|
315
|
+
const key = jsGroupKey(entry, options.groupBy, tz);
|
|
316
|
+
let row = groups.get(key);
|
|
317
|
+
if (!row) {
|
|
318
|
+
row = emptyRow(key);
|
|
319
|
+
groups.set(key, row);
|
|
320
|
+
}
|
|
321
|
+
accumulate(row, entry);
|
|
322
|
+
}
|
|
323
|
+
const rows = [...groups.values()];
|
|
324
|
+
if (options.groupBy === "day" || options.groupBy === "hour") {
|
|
325
|
+
rows.sort((a, b) => (a.group ?? "").localeCompare(b.group ?? ""));
|
|
326
|
+
} else {
|
|
327
|
+
rows.sort((a, b) => b.satsCost - a.satsCost);
|
|
328
|
+
}
|
|
329
|
+
return rows;
|
|
330
|
+
};
|
|
331
|
+
|
|
247
332
|
// storage/usageTracking/indexedDB.ts
|
|
248
333
|
var DEFAULT_DB_NAME = "routstr-sdk";
|
|
249
334
|
var DEFAULT_STORE_NAME = "usage_tracking";
|
|
@@ -306,6 +391,9 @@ var matchesFilters = (entry, options = {}) => {
|
|
|
306
391
|
if (options.client && entry.client !== options.client) {
|
|
307
392
|
return false;
|
|
308
393
|
}
|
|
394
|
+
if (options.clients && options.clients.length > 0 && (entry.client == null || !options.clients.includes(entry.client))) {
|
|
395
|
+
return false;
|
|
396
|
+
}
|
|
309
397
|
if (options.provider && entry.provider !== options.provider) {
|
|
310
398
|
return false;
|
|
311
399
|
}
|
|
@@ -404,6 +492,10 @@ var createIndexedDBUsageTrackingDriver = (options = {}) => {
|
|
|
404
492
|
const results = await this.list(options2);
|
|
405
493
|
return results.length;
|
|
406
494
|
},
|
|
495
|
+
async aggregate(options2 = {}) {
|
|
496
|
+
const entries = await this.list(options2);
|
|
497
|
+
return reduceAggregate(entries, options2);
|
|
498
|
+
},
|
|
407
499
|
async deleteOlderThan(timestamp) {
|
|
408
500
|
await ensureMigrated();
|
|
409
501
|
const db = await getDb();
|
|
@@ -461,6 +553,9 @@ var matchesFilters2 = (entry, options = {}) => {
|
|
|
461
553
|
if (options.client && entry.client !== options.client) {
|
|
462
554
|
return false;
|
|
463
555
|
}
|
|
556
|
+
if (options.clients && options.clients.length > 0 && (entry.client == null || !options.clients.includes(entry.client))) {
|
|
557
|
+
return false;
|
|
558
|
+
}
|
|
464
559
|
if (options.provider && entry.provider !== options.provider) {
|
|
465
560
|
return false;
|
|
466
561
|
}
|
|
@@ -493,6 +588,10 @@ var createMemoryUsageTrackingDriver = (seed = []) => {
|
|
|
493
588
|
async count(options = {}) {
|
|
494
589
|
return (await this.list(options)).length;
|
|
495
590
|
},
|
|
591
|
+
async aggregate(options = {}) {
|
|
592
|
+
const entries = [...store.values()].filter((entry) => matchesFilters2(entry, options));
|
|
593
|
+
return reduceAggregate(entries, options);
|
|
594
|
+
},
|
|
496
595
|
async deleteOlderThan(timestamp) {
|
|
497
596
|
let deleted = 0;
|
|
498
597
|
for (const [id, entry] of store.entries()) {
|