@routstr/sdk 0.3.8 → 0.3.9
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/client/index.js +80 -25
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +80 -25
- package/dist/client/index.mjs.map +1 -1
- package/dist/discovery/index.d.mts +37 -3
- package/dist/discovery/index.d.ts +37 -3
- package/dist/discovery/index.js +231 -75
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/index.mjs +231 -75
- package/dist/discovery/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +592 -102
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +591 -103
- package/dist/index.mjs.map +1 -1
- package/dist/storage/index.d.mts +27 -1
- package/dist/storage/index.d.ts +27 -1
- package/dist/storage/index.js +281 -2
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/index.mjs +280 -3
- package/dist/storage/index.mjs.map +1 -1
- package/dist/wallet/index.d.mts +4 -0
- package/dist/wallet/index.d.ts +4 -0
- package/dist/wallet/index.js +11 -4
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/index.mjs +11 -4
- package/dist/wallet/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/storage/index.d.mts
CHANGED
|
@@ -73,6 +73,32 @@ declare const SDK_STORAGE_KEYS: {
|
|
|
73
73
|
readonly PROVIDERS_ON_COOLDOWN: "providers_on_cooldown";
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Sharded DiscoveryAdapter
|
|
78
|
+
*
|
|
79
|
+
* Replaces the SQLite/IndexedDB ModelsDatabase layer with provider-scoped
|
|
80
|
+
* sharding over the existing key-value StorageDriver.
|
|
81
|
+
*
|
|
82
|
+
* Instead of one giant blob:
|
|
83
|
+
* modelsFromAllProviders → Record<string, Model[]>
|
|
84
|
+
* lastModelsUpdate → Record<string, number>
|
|
85
|
+
*
|
|
86
|
+
* We use provider-scoped keys:
|
|
87
|
+
* models:provider:<encodedBaseUrl> → Model[]
|
|
88
|
+
* models:provider_timestamp:<encodedBaseUrl> → number
|
|
89
|
+
*
|
|
90
|
+
* All model data is hydrated into memory at creation time so the
|
|
91
|
+
* synchronous DiscoveryAdapter contract is satisfied. Writes are
|
|
92
|
+
* fire-and-forget via void driver.setItem(...).
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
interface ShardedDiscoveryAdapterOptions {
|
|
96
|
+
/** Key-value StorageDriver */
|
|
97
|
+
driver: StorageDriver;
|
|
98
|
+
}
|
|
99
|
+
declare const createShardedDiscoveryAdapter: (options: ShardedDiscoveryAdapterOptions) => Promise<DiscoveryAdapter>;
|
|
100
|
+
declare const createProviderRegistryFromDiscoveryAdapter: (adapter: DiscoveryAdapter, logger?: SdkLogger) => ProviderRegistry;
|
|
101
|
+
|
|
76
102
|
declare const getDefaultSdkDriver: () => StorageDriver;
|
|
77
103
|
declare const getDefaultSdkStore: () => Promise<SdkStore>;
|
|
78
104
|
declare const getDefaultUsageTrackingDriver: () => UsageTrackingDriver;
|
|
@@ -84,4 +110,4 @@ declare const getDefaultDiscoveryAdapter: () => Promise<DiscoveryAdapter>;
|
|
|
84
110
|
declare const getDefaultStorageAdapter: () => Promise<StorageAdapter>;
|
|
85
111
|
declare const getDefaultProviderRegistry: () => Promise<ProviderRegistry>;
|
|
86
112
|
|
|
87
|
-
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 };
|
|
113
|
+
export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, SdkStore, type ShardedDiscoveryAdapterOptions, StorageAdapter, StorageDriver, UsageTrackingDriver, UsageTrackingEntry, createBunSqliteDriver, createBunSqliteUsageTrackingDriver, createIndexedDBDriver, createIndexedDBUsageTrackingDriver, createMemoryDriver, createMemoryUsageTrackingDriver, createProviderRegistryFromDiscoveryAdapter, createShardedDiscoveryAdapter, createSqliteDriver, createSqliteUsageTrackingDriver, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, getDefaultUsageTrackingDriver, localStorageDriver, setDefaultUsageTrackingDriver };
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -73,6 +73,32 @@ declare const SDK_STORAGE_KEYS: {
|
|
|
73
73
|
readonly PROVIDERS_ON_COOLDOWN: "providers_on_cooldown";
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Sharded DiscoveryAdapter
|
|
78
|
+
*
|
|
79
|
+
* Replaces the SQLite/IndexedDB ModelsDatabase layer with provider-scoped
|
|
80
|
+
* sharding over the existing key-value StorageDriver.
|
|
81
|
+
*
|
|
82
|
+
* Instead of one giant blob:
|
|
83
|
+
* modelsFromAllProviders → Record<string, Model[]>
|
|
84
|
+
* lastModelsUpdate → Record<string, number>
|
|
85
|
+
*
|
|
86
|
+
* We use provider-scoped keys:
|
|
87
|
+
* models:provider:<encodedBaseUrl> → Model[]
|
|
88
|
+
* models:provider_timestamp:<encodedBaseUrl> → number
|
|
89
|
+
*
|
|
90
|
+
* All model data is hydrated into memory at creation time so the
|
|
91
|
+
* synchronous DiscoveryAdapter contract is satisfied. Writes are
|
|
92
|
+
* fire-and-forget via void driver.setItem(...).
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
interface ShardedDiscoveryAdapterOptions {
|
|
96
|
+
/** Key-value StorageDriver */
|
|
97
|
+
driver: StorageDriver;
|
|
98
|
+
}
|
|
99
|
+
declare const createShardedDiscoveryAdapter: (options: ShardedDiscoveryAdapterOptions) => Promise<DiscoveryAdapter>;
|
|
100
|
+
declare const createProviderRegistryFromDiscoveryAdapter: (adapter: DiscoveryAdapter, logger?: SdkLogger) => ProviderRegistry;
|
|
101
|
+
|
|
76
102
|
declare const getDefaultSdkDriver: () => StorageDriver;
|
|
77
103
|
declare const getDefaultSdkStore: () => Promise<SdkStore>;
|
|
78
104
|
declare const getDefaultUsageTrackingDriver: () => UsageTrackingDriver;
|
|
@@ -84,4 +110,4 @@ declare const getDefaultDiscoveryAdapter: () => Promise<DiscoveryAdapter>;
|
|
|
84
110
|
declare const getDefaultStorageAdapter: () => Promise<StorageAdapter>;
|
|
85
111
|
declare const getDefaultProviderRegistry: () => Promise<ProviderRegistry>;
|
|
86
112
|
|
|
87
|
-
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 };
|
|
113
|
+
export { DiscoveryAdapter, ProviderRegistry, SDK_STORAGE_KEYS, SdkStore, type ShardedDiscoveryAdapterOptions, StorageAdapter, StorageDriver, UsageTrackingDriver, UsageTrackingEntry, createBunSqliteDriver, createBunSqliteUsageTrackingDriver, createIndexedDBDriver, createIndexedDBUsageTrackingDriver, createMemoryDriver, createMemoryUsageTrackingDriver, createProviderRegistryFromDiscoveryAdapter, createShardedDiscoveryAdapter, createSqliteDriver, createSqliteUsageTrackingDriver, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, getDefaultUsageTrackingDriver, localStorageDriver, setDefaultUsageTrackingDriver };
|
package/dist/storage/index.js
CHANGED
|
@@ -1642,6 +1642,277 @@ var createProviderRegistryFromStore = (store, logger) => {
|
|
|
1642
1642
|
};
|
|
1643
1643
|
};
|
|
1644
1644
|
|
|
1645
|
+
// storage/shardedDiscoveryAdapter.ts
|
|
1646
|
+
var MODEL_KEY_PREFIX = "models:provider:";
|
|
1647
|
+
var MODEL_TS_KEY_PREFIX = "models:provider_timestamp:";
|
|
1648
|
+
var PROVIDER_INDEX_KEY = "models:provider_index";
|
|
1649
|
+
var MIGRATION_MARKER_KEY4 = "models_sharded_migration_v1";
|
|
1650
|
+
var encodeBaseUrl = (baseUrl) => encodeURIComponent(baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`);
|
|
1651
|
+
var modelKey = (baseUrl) => `${MODEL_KEY_PREFIX}${encodeBaseUrl(baseUrl)}`;
|
|
1652
|
+
var modelTsKey = (baseUrl) => `${MODEL_TS_KEY_PREFIX}${encodeBaseUrl(baseUrl)}`;
|
|
1653
|
+
var normalizeBaseUrl6 = (baseUrl) => baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
1654
|
+
var createShardedDiscoveryAdapter = async (options) => {
|
|
1655
|
+
const { driver } = options;
|
|
1656
|
+
const legacyModels = await driver.getItem(SDK_STORAGE_KEYS.MODELS_FROM_ALL_PROVIDERS, {});
|
|
1657
|
+
const legacyTimestamps = await driver.getItem(SDK_STORAGE_KEYS.LAST_MODELS_UPDATE, {});
|
|
1658
|
+
if (Object.keys(legacyModels).length > 0) {
|
|
1659
|
+
const migratedProviders = [];
|
|
1660
|
+
for (const [baseUrl, models] of Object.entries(legacyModels)) {
|
|
1661
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1662
|
+
await driver.setItem(modelKey(normalized), models);
|
|
1663
|
+
const ts = legacyTimestamps[normalized] ?? Date.now();
|
|
1664
|
+
await driver.setItem(modelTsKey(normalized), ts);
|
|
1665
|
+
migratedProviders.push(normalized);
|
|
1666
|
+
}
|
|
1667
|
+
const existingIndex = await driver.getItem(
|
|
1668
|
+
PROVIDER_INDEX_KEY,
|
|
1669
|
+
[]
|
|
1670
|
+
);
|
|
1671
|
+
const merged = [.../* @__PURE__ */ new Set([...existingIndex, ...migratedProviders])];
|
|
1672
|
+
await driver.setItem(PROVIDER_INDEX_KEY, merged);
|
|
1673
|
+
await driver.removeItem(SDK_STORAGE_KEYS.MODELS_FROM_ALL_PROVIDERS);
|
|
1674
|
+
await driver.removeItem(SDK_STORAGE_KEYS.LAST_MODELS_UPDATE);
|
|
1675
|
+
}
|
|
1676
|
+
await driver.setItem(MIGRATION_MARKER_KEY4, true);
|
|
1677
|
+
const [
|
|
1678
|
+
rawMints,
|
|
1679
|
+
rawInfo,
|
|
1680
|
+
lastUsedModel,
|
|
1681
|
+
rawDisabled,
|
|
1682
|
+
rawBaseUrls,
|
|
1683
|
+
lastBaseUrlsUpdate,
|
|
1684
|
+
rawRoutstr21Models,
|
|
1685
|
+
lastRoutstr21ModelsUpdate
|
|
1686
|
+
] = await Promise.all([
|
|
1687
|
+
driver.getItem(
|
|
1688
|
+
SDK_STORAGE_KEYS.MINTS_FROM_ALL_PROVIDERS,
|
|
1689
|
+
{}
|
|
1690
|
+
),
|
|
1691
|
+
driver.getItem(
|
|
1692
|
+
SDK_STORAGE_KEYS.INFO_FROM_ALL_PROVIDERS,
|
|
1693
|
+
{}
|
|
1694
|
+
),
|
|
1695
|
+
driver.getItem(SDK_STORAGE_KEYS.LAST_USED_MODEL, null),
|
|
1696
|
+
driver.getItem(SDK_STORAGE_KEYS.DISABLED_PROVIDERS, []),
|
|
1697
|
+
driver.getItem(SDK_STORAGE_KEYS.BASE_URLS_LIST, []),
|
|
1698
|
+
driver.getItem(SDK_STORAGE_KEYS.LAST_BASE_URLS_UPDATE, null),
|
|
1699
|
+
driver.getItem(SDK_STORAGE_KEYS.ROUTSTR21_MODELS, []),
|
|
1700
|
+
driver.getItem(
|
|
1701
|
+
SDK_STORAGE_KEYS.LAST_ROUTSTR21_MODELS_UPDATE,
|
|
1702
|
+
null
|
|
1703
|
+
)
|
|
1704
|
+
]);
|
|
1705
|
+
const modelsByBaseUrl = /* @__PURE__ */ new Map();
|
|
1706
|
+
const timestampsByBaseUrl = /* @__PURE__ */ new Map();
|
|
1707
|
+
const providerIndex = /* @__PURE__ */ new Set();
|
|
1708
|
+
const knownProviders = /* @__PURE__ */ new Set();
|
|
1709
|
+
for (const baseUrl of Object.keys(rawInfo)) {
|
|
1710
|
+
knownProviders.add(normalizeBaseUrl6(baseUrl));
|
|
1711
|
+
}
|
|
1712
|
+
for (const baseUrl of Object.keys(rawMints)) {
|
|
1713
|
+
knownProviders.add(normalizeBaseUrl6(baseUrl));
|
|
1714
|
+
}
|
|
1715
|
+
for (const baseUrl of rawBaseUrls) {
|
|
1716
|
+
knownProviders.add(normalizeBaseUrl6(baseUrl));
|
|
1717
|
+
}
|
|
1718
|
+
for (const baseUrl of rawDisabled) {
|
|
1719
|
+
knownProviders.add(normalizeBaseUrl6(baseUrl));
|
|
1720
|
+
}
|
|
1721
|
+
for (const baseUrl of Object.keys(legacyModels)) {
|
|
1722
|
+
knownProviders.add(normalizeBaseUrl6(baseUrl));
|
|
1723
|
+
}
|
|
1724
|
+
const indexProviders = await driver.getItem(
|
|
1725
|
+
PROVIDER_INDEX_KEY,
|
|
1726
|
+
[]
|
|
1727
|
+
);
|
|
1728
|
+
for (const baseUrl of indexProviders) {
|
|
1729
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1730
|
+
providerIndex.add(normalized);
|
|
1731
|
+
knownProviders.add(normalized);
|
|
1732
|
+
}
|
|
1733
|
+
for (const baseUrl of knownProviders) {
|
|
1734
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1735
|
+
const models = await driver.getItem(
|
|
1736
|
+
modelKey(normalized),
|
|
1737
|
+
null
|
|
1738
|
+
);
|
|
1739
|
+
const ts = await driver.getItem(
|
|
1740
|
+
modelTsKey(normalized),
|
|
1741
|
+
null
|
|
1742
|
+
);
|
|
1743
|
+
if (models !== null) {
|
|
1744
|
+
modelsByBaseUrl.set(normalized, models);
|
|
1745
|
+
}
|
|
1746
|
+
if (ts !== null) {
|
|
1747
|
+
timestampsByBaseUrl.set(normalized, ts);
|
|
1748
|
+
}
|
|
1749
|
+
if (models !== null || ts !== null) {
|
|
1750
|
+
providerIndex.add(normalized);
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
let mints = Object.fromEntries(
|
|
1754
|
+
Object.entries(rawMints).map(([baseUrl, mintList]) => [
|
|
1755
|
+
normalizeBaseUrl6(baseUrl),
|
|
1756
|
+
mintList.map((mint) => mint.endsWith("/") ? mint.slice(0, -1) : mint)
|
|
1757
|
+
])
|
|
1758
|
+
);
|
|
1759
|
+
let info = Object.fromEntries(
|
|
1760
|
+
Object.entries(rawInfo).map(([baseUrl, entry]) => [
|
|
1761
|
+
normalizeBaseUrl6(baseUrl),
|
|
1762
|
+
entry
|
|
1763
|
+
])
|
|
1764
|
+
);
|
|
1765
|
+
let _lastUsedModel = lastUsedModel;
|
|
1766
|
+
let _disabledProviders = rawDisabled.map(normalizeBaseUrl6);
|
|
1767
|
+
let _baseUrlsList = rawBaseUrls.map(normalizeBaseUrl6);
|
|
1768
|
+
let _lastBaseUrlsUpdate = lastBaseUrlsUpdate;
|
|
1769
|
+
let _routstr21Models = rawRoutstr21Models;
|
|
1770
|
+
let _lastRoutstr21ModelsUpdate = lastRoutstr21ModelsUpdate;
|
|
1771
|
+
const persistProviderIndex = () => {
|
|
1772
|
+
void driver.setItem(PROVIDER_INDEX_KEY, [...providerIndex]);
|
|
1773
|
+
};
|
|
1774
|
+
return {
|
|
1775
|
+
// -- Models (sharded kv) --
|
|
1776
|
+
getCachedModels: () => {
|
|
1777
|
+
const result = {};
|
|
1778
|
+
for (const [baseUrl, models] of modelsByBaseUrl.entries()) {
|
|
1779
|
+
result[baseUrl] = models;
|
|
1780
|
+
}
|
|
1781
|
+
return result;
|
|
1782
|
+
},
|
|
1783
|
+
setCachedModels: (models) => {
|
|
1784
|
+
const nextKeys = new Set(
|
|
1785
|
+
Object.keys(models).map((baseUrl) => normalizeBaseUrl6(baseUrl))
|
|
1786
|
+
);
|
|
1787
|
+
for (const baseUrl of [...modelsByBaseUrl.keys()]) {
|
|
1788
|
+
if (!nextKeys.has(normalizeBaseUrl6(baseUrl))) {
|
|
1789
|
+
providerIndex.delete(baseUrl);
|
|
1790
|
+
modelsByBaseUrl.delete(baseUrl);
|
|
1791
|
+
timestampsByBaseUrl.delete(baseUrl);
|
|
1792
|
+
void driver.removeItem(modelKey(baseUrl));
|
|
1793
|
+
void driver.removeItem(modelTsKey(baseUrl));
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
for (const [baseUrl, modelList] of Object.entries(models)) {
|
|
1797
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1798
|
+
providerIndex.add(normalized);
|
|
1799
|
+
modelsByBaseUrl.set(normalized, modelList);
|
|
1800
|
+
const ts = timestampsByBaseUrl.get(normalized) ?? Date.now();
|
|
1801
|
+
timestampsByBaseUrl.set(normalized, ts);
|
|
1802
|
+
void driver.setItem(modelKey(normalized), modelList);
|
|
1803
|
+
void driver.setItem(modelTsKey(normalized), ts);
|
|
1804
|
+
}
|
|
1805
|
+
persistProviderIndex();
|
|
1806
|
+
},
|
|
1807
|
+
getProviderLastUpdate: (baseUrl) => {
|
|
1808
|
+
return timestampsByBaseUrl.get(normalizeBaseUrl6(baseUrl)) ?? null;
|
|
1809
|
+
},
|
|
1810
|
+
setProviderLastUpdate: (baseUrl, timestamp) => {
|
|
1811
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1812
|
+
providerIndex.add(normalized);
|
|
1813
|
+
timestampsByBaseUrl.set(normalized, timestamp);
|
|
1814
|
+
void driver.setItem(modelTsKey(normalized), timestamp);
|
|
1815
|
+
persistProviderIndex();
|
|
1816
|
+
},
|
|
1817
|
+
// -- Mints (kv) --
|
|
1818
|
+
getCachedMints: () => mints,
|
|
1819
|
+
setCachedMints: (value) => {
|
|
1820
|
+
const normalized = {};
|
|
1821
|
+
for (const [baseUrl, mintList] of Object.entries(value)) {
|
|
1822
|
+
normalized[normalizeBaseUrl6(baseUrl)] = mintList.map(
|
|
1823
|
+
(mint) => mint.endsWith("/") ? mint.slice(0, -1) : mint
|
|
1824
|
+
);
|
|
1825
|
+
}
|
|
1826
|
+
mints = normalized;
|
|
1827
|
+
void driver.setItem(SDK_STORAGE_KEYS.MINTS_FROM_ALL_PROVIDERS, normalized);
|
|
1828
|
+
},
|
|
1829
|
+
// -- Provider info (kv) --
|
|
1830
|
+
getCachedProviderInfo: () => info,
|
|
1831
|
+
setCachedProviderInfo: (value) => {
|
|
1832
|
+
const normalized = {};
|
|
1833
|
+
for (const [baseUrl, entry] of Object.entries(value)) {
|
|
1834
|
+
normalized[normalizeBaseUrl6(baseUrl)] = entry;
|
|
1835
|
+
}
|
|
1836
|
+
info = normalized;
|
|
1837
|
+
void driver.setItem(SDK_STORAGE_KEYS.INFO_FROM_ALL_PROVIDERS, normalized);
|
|
1838
|
+
},
|
|
1839
|
+
// -- Last used model (kv) --
|
|
1840
|
+
getLastUsedModel: () => _lastUsedModel,
|
|
1841
|
+
setLastUsedModel: (modelId) => {
|
|
1842
|
+
_lastUsedModel = modelId;
|
|
1843
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_USED_MODEL, modelId);
|
|
1844
|
+
},
|
|
1845
|
+
// -- Disabled providers (kv) --
|
|
1846
|
+
getDisabledProviders: () => _disabledProviders,
|
|
1847
|
+
setDisabledProviders: (urls) => {
|
|
1848
|
+
const normalized = urls.map(normalizeBaseUrl6);
|
|
1849
|
+
_disabledProviders = normalized;
|
|
1850
|
+
void driver.setItem(SDK_STORAGE_KEYS.DISABLED_PROVIDERS, normalized);
|
|
1851
|
+
},
|
|
1852
|
+
// -- Base URLs (kv) --
|
|
1853
|
+
getBaseUrlsList: () => _baseUrlsList,
|
|
1854
|
+
getBaseUrlsLastUpdate: () => _lastBaseUrlsUpdate,
|
|
1855
|
+
setBaseUrlsList: (urls) => {
|
|
1856
|
+
const normalized = urls.map(normalizeBaseUrl6);
|
|
1857
|
+
_baseUrlsList = normalized;
|
|
1858
|
+
void driver.setItem(SDK_STORAGE_KEYS.BASE_URLS_LIST, normalized);
|
|
1859
|
+
},
|
|
1860
|
+
setBaseUrlsLastUpdate: (timestamp) => {
|
|
1861
|
+
_lastBaseUrlsUpdate = timestamp;
|
|
1862
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_BASE_URLS_UPDATE, timestamp);
|
|
1863
|
+
},
|
|
1864
|
+
// -- Routstr21 models (kv) --
|
|
1865
|
+
getRoutstr21Models: () => _routstr21Models,
|
|
1866
|
+
setRoutstr21Models: (models) => {
|
|
1867
|
+
_routstr21Models = models;
|
|
1868
|
+
void driver.setItem(SDK_STORAGE_KEYS.ROUTSTR21_MODELS, models);
|
|
1869
|
+
},
|
|
1870
|
+
getRoutstr21ModelsLastUpdate: () => _lastRoutstr21ModelsUpdate,
|
|
1871
|
+
setRoutstr21ModelsLastUpdate: (timestamp) => {
|
|
1872
|
+
_lastRoutstr21ModelsUpdate = timestamp;
|
|
1873
|
+
void driver.setItem(
|
|
1874
|
+
SDK_STORAGE_KEYS.LAST_ROUTSTR21_MODELS_UPDATE,
|
|
1875
|
+
timestamp
|
|
1876
|
+
);
|
|
1877
|
+
}
|
|
1878
|
+
};
|
|
1879
|
+
};
|
|
1880
|
+
var createProviderRegistryFromDiscoveryAdapter = (adapter, logger) => {
|
|
1881
|
+
const log = (logger ?? consoleLogger).child("ProviderRegistry");
|
|
1882
|
+
return {
|
|
1883
|
+
getModelsForProvider: (baseUrl) => {
|
|
1884
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1885
|
+
return adapter.getCachedModels()[normalized] || [];
|
|
1886
|
+
},
|
|
1887
|
+
getDisabledProviders: () => adapter.getDisabledProviders(),
|
|
1888
|
+
getProviderMints: (baseUrl) => {
|
|
1889
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1890
|
+
return adapter.getCachedMints()[normalized] || [];
|
|
1891
|
+
},
|
|
1892
|
+
getProviderInfo: async (baseUrl) => {
|
|
1893
|
+
const normalized = normalizeBaseUrl6(baseUrl);
|
|
1894
|
+
const cached = adapter.getCachedProviderInfo()[normalized];
|
|
1895
|
+
if (cached) return cached;
|
|
1896
|
+
try {
|
|
1897
|
+
const response = await fetch(`${normalized}v1/info`);
|
|
1898
|
+
if (!response.ok) {
|
|
1899
|
+
throw new Error(`Failed ${response.status}`);
|
|
1900
|
+
}
|
|
1901
|
+
const info = await response.json();
|
|
1902
|
+
adapter.setCachedProviderInfo({
|
|
1903
|
+
...adapter.getCachedProviderInfo(),
|
|
1904
|
+
[normalized]: info
|
|
1905
|
+
});
|
|
1906
|
+
return info;
|
|
1907
|
+
} catch (error) {
|
|
1908
|
+
log.warn(`Failed to fetch provider info from ${normalized}:`, error);
|
|
1909
|
+
return null;
|
|
1910
|
+
}
|
|
1911
|
+
},
|
|
1912
|
+
getAllProvidersModels: () => adapter.getCachedModels()
|
|
1913
|
+
};
|
|
1914
|
+
};
|
|
1915
|
+
|
|
1645
1916
|
// storage/index.ts
|
|
1646
1917
|
var isBrowser3 = () => {
|
|
1647
1918
|
try {
|
|
@@ -1711,9 +1982,15 @@ var getDefaultUsageTrackingDriver = () => {
|
|
|
1711
1982
|
var setDefaultUsageTrackingDriver = (driver) => {
|
|
1712
1983
|
defaultUsageTrackingDriver = driver;
|
|
1713
1984
|
};
|
|
1714
|
-
var
|
|
1985
|
+
var defaultDiscoveryAdapter = null;
|
|
1986
|
+
var getDefaultDiscoveryAdapter = async () => {
|
|
1987
|
+
if (defaultDiscoveryAdapter) return defaultDiscoveryAdapter;
|
|
1988
|
+
const driver = getDefaultSdkDriver();
|
|
1989
|
+
defaultDiscoveryAdapter = await createShardedDiscoveryAdapter({ driver });
|
|
1990
|
+
return defaultDiscoveryAdapter;
|
|
1991
|
+
};
|
|
1715
1992
|
var getDefaultStorageAdapter = async () => createStorageAdapterFromStore(await getDefaultSdkStore());
|
|
1716
|
-
var getDefaultProviderRegistry = async () =>
|
|
1993
|
+
var getDefaultProviderRegistry = async () => createProviderRegistryFromDiscoveryAdapter(await getDefaultDiscoveryAdapter());
|
|
1717
1994
|
|
|
1718
1995
|
exports.SDK_STORAGE_KEYS = SDK_STORAGE_KEYS;
|
|
1719
1996
|
exports.createBunSqliteDriver = createBunSqliteDriver;
|
|
@@ -1723,8 +2000,10 @@ exports.createIndexedDBDriver = createIndexedDBDriver;
|
|
|
1723
2000
|
exports.createIndexedDBUsageTrackingDriver = createIndexedDBUsageTrackingDriver;
|
|
1724
2001
|
exports.createMemoryDriver = createMemoryDriver;
|
|
1725
2002
|
exports.createMemoryUsageTrackingDriver = createMemoryUsageTrackingDriver;
|
|
2003
|
+
exports.createProviderRegistryFromDiscoveryAdapter = createProviderRegistryFromDiscoveryAdapter;
|
|
1726
2004
|
exports.createProviderRegistryFromStore = createProviderRegistryFromStore;
|
|
1727
2005
|
exports.createSdkStore = createSdkStore;
|
|
2006
|
+
exports.createShardedDiscoveryAdapter = createShardedDiscoveryAdapter;
|
|
1728
2007
|
exports.createSqliteDriver = createSqliteDriver;
|
|
1729
2008
|
exports.createSqliteUsageTrackingDriver = createSqliteUsageTrackingDriver;
|
|
1730
2009
|
exports.createStorageAdapterFromStore = createStorageAdapterFromStore;
|