From 558ffd113812e97dab01ccaef310dbb2d85a231a Mon Sep 17 00:00:00 2001 From: red Date: Sat, 28 Feb 2026 15:46:17 +0000 Subject: [PATCH] use @routstr/sdk@0.1.1 instead of local SDK --- package.json | 5 +++-- src/daemon.ts | 34 +++++++++++++--------------------- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 9b44e40..dcf1f02 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,12 @@ }, "dependencies": { "@cashu/cashu-ts": "^3.1.1", + "@routstr/sdk": "^0.1.1", "applesauce-core": "^5.1.0", "applesauce-relay": "^5.1.0", + "better-sqlite3": "^11.7.2", "commander": "^14.0.2", "rxjs": "^7.8.1", - "zustand": "^5.0.5", - "better-sqlite3": "^11.7.2" + "zustand": "^5.0.5" } } diff --git a/src/daemon.ts b/src/daemon.ts index 1330b52..735a6f5 100644 --- a/src/daemon.ts +++ b/src/daemon.ts @@ -18,17 +18,15 @@ import { type RoutstrdConfig, } from "./utils/config"; import { logger } from "./utils/logger"; - -const SDK_PATH = "/home/debian/knightclaw/projects/routstr-chat/sdk/dist/index.mjs"; - -let sdk: any = null; - -async function loadSdk() { - if (!sdk) { - sdk = await import(SDK_PATH); - } - return sdk; -} +import { + ModelManager, + createDiscoveryAdapterFromStore, + createProviderRegistryFromStore, + createStorageAdapterFromStore, + createSdkStore, + routeRequests, + InsufficientBalanceError, +} from "@routstr/sdk"; function createBunSqliteDriver(dbPath: string) { const db = new SQLite(dbPath); @@ -41,7 +39,7 @@ function createBunSqliteDriver(dbPath: string) { `); return { - getItem(key: string, defaultValue: T): T { + async getItem(key: string, defaultValue: T): Promise { try { const row = db.query("SELECT value FROM sdk_storage WHERE key = ?").get(key) as { value: string } | undefined; if (!row || typeof row.value !== "string") return defaultValue; @@ -58,7 +56,7 @@ function createBunSqliteDriver(dbPath: string) { return defaultValue; } }, - setItem(key: string, value: T): void { + async setItem(key: string, value: T): Promise { try { db.query( "INSERT INTO sdk_storage (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value" @@ -67,7 +65,7 @@ function createBunSqliteDriver(dbPath: string) { logger.error(`SQLite setItem failed for key "${key}":`, error); } }, - removeItem(key: string): void { + async removeItem(key: string): Promise { try { db.query("DELETE FROM sdk_storage WHERE key = ?").run(key); } catch (error) { @@ -245,11 +243,8 @@ async function main(): Promise { const updatedConfig = { ...config, port, provider }; saveConfig(updatedConfig); - const sdkModule = await loadSdk(); - const { ModelManager, createDiscoveryAdapterFromStore, createProviderRegistryFromStore, createStorageAdapterFromStore, createSdkStore } = sdkModule; - const sqliteDriver = createBunSqliteDriver(DB_PATH); - const store = createSdkStore({ driver: sqliteDriver }); + const store = await createSdkStore({ driver: sqliteDriver }); // Create adapters from our SQLite-backed store const discoveryAdapter = createDiscoveryAdapterFromStore(store); @@ -508,7 +503,6 @@ async function main(): Promise { undefined; try { - const { routeRequests, InsufficientBalanceError } = sdkModule; const response = await routeRequests({ modelId, requestBody, @@ -543,8 +537,6 @@ async function main(): Promise { }); res.end(JSON.stringify(responseBody)); } catch (error) { - const sdkModuleError = await loadSdk(); - const { InsufficientBalanceError } = sdkModuleError; const message = error instanceof Error ? error.message : String(error); logger.error(`[daemon] Error: ${message}`);