@routstr/sdk 0.2.6 → 0.2.8

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.
@@ -1,5 +1,5 @@
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';
1
+ import { a as StorageDriver, U as UsageTrackingDriver, b as UsageTrackingEntry, S as SdkStore } from '../store-DGeLPv9E.mjs';
2
+ export { L as ListUsageTrackingOptions, c as createDiscoveryAdapterFromStore, d as createProviderRegistryFromStore, e as createSdkStore, f as createStorageAdapterFromStore } from '../store-DGeLPv9E.mjs';
3
3
  import { D as DiscoveryAdapter } from '../interfaces-BWJJTCXO.mjs';
4
4
  import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-C5fLD3jB.mjs';
5
5
  export { X as XCashuTokenEntry } from '../interfaces-C5fLD3jB.mjs';
@@ -66,6 +66,9 @@ declare const SDK_STORAGE_KEYS: {
66
66
  readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
67
67
  readonly USAGE_TRACKING: "usage_tracking";
68
68
  readonly CLIENT_IDS: "client_ids";
69
+ readonly FAILED_PROVIDERS: "failed_providers";
70
+ readonly LAST_FAILED: "last_failed";
71
+ readonly PROVIDERS_ON_COOLDOWN: "providers_on_cooldown";
69
72
  };
70
73
 
71
74
  declare const getDefaultSdkDriver: () => StorageDriver;
@@ -1,5 +1,5 @@
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';
1
+ import { a as StorageDriver, U as UsageTrackingDriver, b as UsageTrackingEntry, S as SdkStore } from '../store-h7m23ffq.js';
2
+ export { L as ListUsageTrackingOptions, c as createDiscoveryAdapterFromStore, d as createProviderRegistryFromStore, e as createSdkStore, f as createStorageAdapterFromStore } from '../store-h7m23ffq.js';
3
3
  import { D as DiscoveryAdapter } from '../interfaces-BxDEka72.js';
4
4
  import { P as ProviderRegistry, S as StorageAdapter } from '../interfaces-B62Rw-dd.js';
5
5
  export { X as XCashuTokenEntry } from '../interfaces-B62Rw-dd.js';
@@ -66,6 +66,9 @@ declare const SDK_STORAGE_KEYS: {
66
66
  readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
67
67
  readonly USAGE_TRACKING: "usage_tracking";
68
68
  readonly CLIENT_IDS: "client_ids";
69
+ readonly FAILED_PROVIDERS: "failed_providers";
70
+ readonly LAST_FAILED: "last_failed";
71
+ readonly PROVIDERS_ON_COOLDOWN: "providers_on_cooldown";
69
72
  };
70
73
 
71
74
  declare const getDefaultSdkDriver: () => StorageDriver;
@@ -355,7 +355,10 @@ var SDK_STORAGE_KEYS = {
355
355
  LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate",
356
356
  CACHED_RECEIVE_TOKENS: "cached_receive_tokens",
357
357
  USAGE_TRACKING: "usage_tracking",
358
- CLIENT_IDS: "client_ids"
358
+ CLIENT_IDS: "client_ids",
359
+ FAILED_PROVIDERS: "failed_providers",
360
+ LAST_FAILED: "last_failed",
361
+ PROVIDERS_ON_COOLDOWN: "providers_on_cooldown"
359
362
  };
360
363
 
361
364
  // storage/usageTracking/indexedDB.ts
@@ -1002,6 +1005,9 @@ var createEmptyStore = (driver) => vanilla.createStore((set, get) => ({
1002
1005
  lastRoutstr21ModelsUpdate: null,
1003
1006
  cachedReceiveTokens: [],
1004
1007
  clientIds: [],
1008
+ failedProviders: [],
1009
+ lastFailed: {},
1010
+ providersOnCooldown: [],
1005
1011
  setModelsFromAllProviders: (value) => {
1006
1012
  const normalized = {};
1007
1013
  for (const [baseUrl, models] of Object.entries(value)) {
@@ -1141,6 +1147,71 @@ var createEmptyStore = (driver) => vanilla.createStore((set, get) => ({
1141
1147
  void driver.setItem(SDK_STORAGE_KEYS.CLIENT_IDS, normalized);
1142
1148
  return { clientIds: normalized };
1143
1149
  });
1150
+ },
1151
+ // ========== Failure Tracking ==========
1152
+ setFailedProviders: (value) => {
1153
+ const normalized = value.map((url) => normalizeBaseUrl5(url));
1154
+ void driver.setItem(SDK_STORAGE_KEYS.FAILED_PROVIDERS, normalized);
1155
+ set({ failedProviders: normalized });
1156
+ },
1157
+ addFailedProvider: (baseUrl) => {
1158
+ const normalized = normalizeBaseUrl5(baseUrl);
1159
+ const current = get().failedProviders;
1160
+ if (!current.includes(normalized)) {
1161
+ const updated = [...current, normalized];
1162
+ void driver.setItem(SDK_STORAGE_KEYS.FAILED_PROVIDERS, updated);
1163
+ set({ failedProviders: updated });
1164
+ }
1165
+ },
1166
+ removeFailedProvider: (baseUrl) => {
1167
+ const normalized = normalizeBaseUrl5(baseUrl);
1168
+ const current = get().failedProviders;
1169
+ const updated = current.filter((url) => url !== normalized);
1170
+ void driver.setItem(SDK_STORAGE_KEYS.FAILED_PROVIDERS, updated);
1171
+ set({ failedProviders: updated });
1172
+ },
1173
+ setLastFailed: (value) => {
1174
+ const normalized = {};
1175
+ for (const [baseUrl, timestamp] of Object.entries(value)) {
1176
+ normalized[normalizeBaseUrl5(baseUrl)] = timestamp;
1177
+ }
1178
+ void driver.setItem(SDK_STORAGE_KEYS.LAST_FAILED, normalized);
1179
+ set({ lastFailed: normalized });
1180
+ },
1181
+ setLastFailedTimestamp: (baseUrl, timestamp) => {
1182
+ const normalized = normalizeBaseUrl5(baseUrl);
1183
+ const current = get().lastFailed;
1184
+ const updated = { ...current, [normalized]: timestamp };
1185
+ void driver.setItem(SDK_STORAGE_KEYS.LAST_FAILED, updated);
1186
+ set({ lastFailed: updated });
1187
+ },
1188
+ setProvidersOnCooldown: (value) => {
1189
+ const normalized = value.map((entry) => ({
1190
+ baseUrl: normalizeBaseUrl5(entry.baseUrl),
1191
+ timestamp: entry.timestamp
1192
+ }));
1193
+ void driver.setItem(SDK_STORAGE_KEYS.PROVIDERS_ON_COOLDOWN, normalized);
1194
+ set({ providersOnCooldown: normalized });
1195
+ },
1196
+ addProviderOnCooldown: (baseUrl, timestamp) => {
1197
+ const normalized = normalizeBaseUrl5(baseUrl);
1198
+ const current = get().providersOnCooldown;
1199
+ if (!current.some((entry) => entry.baseUrl === normalized)) {
1200
+ const updated = [...current, { baseUrl: normalized, timestamp }];
1201
+ void driver.setItem(SDK_STORAGE_KEYS.PROVIDERS_ON_COOLDOWN, updated);
1202
+ set({ providersOnCooldown: updated });
1203
+ }
1204
+ },
1205
+ removeProviderFromCooldown: (baseUrl) => {
1206
+ const normalized = normalizeBaseUrl5(baseUrl);
1207
+ const current = get().providersOnCooldown;
1208
+ const updated = current.filter((entry) => entry.baseUrl !== normalized);
1209
+ void driver.setItem(SDK_STORAGE_KEYS.PROVIDERS_ON_COOLDOWN, updated);
1210
+ set({ providersOnCooldown: updated });
1211
+ },
1212
+ clearProvidersOnCooldown: () => {
1213
+ void driver.setItem(SDK_STORAGE_KEYS.PROVIDERS_ON_COOLDOWN, []);
1214
+ set({ providersOnCooldown: [] });
1144
1215
  }
1145
1216
  }));
1146
1217
  var hydrateStoreFromDriver = async (store, driver) => {
@@ -1159,7 +1230,10 @@ var hydrateStoreFromDriver = async (store, driver) => {
1159
1230
  rawRoutstr21Models,
1160
1231
  rawLastRoutstr21ModelsUpdate,
1161
1232
  rawCachedReceiveTokens,
1162
- rawClientIds
1233
+ rawClientIds,
1234
+ rawFailedProviders,
1235
+ rawLastFailed,
1236
+ rawProvidersOnCooldown
1163
1237
  ] = await Promise.all([
1164
1238
  driver.getItem(
1165
1239
  SDK_STORAGE_KEYS.MODELS_FROM_ALL_PROVIDERS,
@@ -1190,7 +1264,10 @@ var hydrateStoreFromDriver = async (store, driver) => {
1190
1264
  null
1191
1265
  ),
1192
1266
  driver.getItem(SDK_STORAGE_KEYS.CACHED_RECEIVE_TOKENS, []),
1193
- driver.getItem(SDK_STORAGE_KEYS.CLIENT_IDS, [])
1267
+ driver.getItem(SDK_STORAGE_KEYS.CLIENT_IDS, []),
1268
+ driver.getItem(SDK_STORAGE_KEYS.FAILED_PROVIDERS, []),
1269
+ driver.getItem(SDK_STORAGE_KEYS.LAST_FAILED, {}),
1270
+ driver.getItem(SDK_STORAGE_KEYS.PROVIDERS_ON_COOLDOWN, [])
1194
1271
  ]);
1195
1272
  const modelsFromAllProviders = Object.fromEntries(
1196
1273
  Object.entries(rawModels).map(([baseUrl, models]) => [
@@ -1258,6 +1335,17 @@ var hydrateStoreFromDriver = async (store, driver) => {
1258
1335
  createdAt: entry.createdAt ?? Date.now(),
1259
1336
  lastUsed: entry.lastUsed ?? null
1260
1337
  }));
1338
+ const failedProviders = rawFailedProviders.map((url) => normalizeBaseUrl5(url));
1339
+ const lastFailed = Object.fromEntries(
1340
+ Object.entries(rawLastFailed).map(([baseUrl, timestamp]) => [
1341
+ normalizeBaseUrl5(baseUrl),
1342
+ timestamp
1343
+ ])
1344
+ );
1345
+ const providersOnCooldown = rawProvidersOnCooldown.map((entry) => ({
1346
+ baseUrl: normalizeBaseUrl5(entry.baseUrl),
1347
+ timestamp: entry.timestamp
1348
+ }));
1261
1349
  store.setState({
1262
1350
  modelsFromAllProviders,
1263
1351
  lastUsedModel,
@@ -1273,7 +1361,10 @@ var hydrateStoreFromDriver = async (store, driver) => {
1273
1361
  routstr21Models,
1274
1362
  lastRoutstr21ModelsUpdate,
1275
1363
  cachedReceiveTokens,
1276
- clientIds
1364
+ clientIds,
1365
+ failedProviders,
1366
+ lastFailed,
1367
+ providersOnCooldown
1277
1368
  });
1278
1369
  };
1279
1370
  var createSdkStore = ({