From d44ab2fe27f8927ad84f5008ddafa82f3fd7c646 Mon Sep 17 00:00:00 2001 From: gzuuus Date: Tue, 25 Mar 2025 18:47:38 +0100 Subject: [PATCH] fix: issue with config file --- packages/dvmcp-discovery/index.ts | 9 +++++---- packages/dvmcp-discovery/package.json | 2 +- packages/dvmcp-discovery/src/config.ts | 9 ++++++++- packages/dvmcp-discovery/src/discovery-server.ts | 9 +++++---- packages/dvmcp-discovery/src/discovery.test.ts | 7 ++++--- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/dvmcp-discovery/index.ts b/packages/dvmcp-discovery/index.ts index fe5ac86..f37bf86 100644 --- a/packages/dvmcp-discovery/index.ts +++ b/packages/dvmcp-discovery/index.ts @@ -1,4 +1,4 @@ -import { CONFIG } from './src/config'; +import { getConfig } from './src/config'; import { DiscoveryServer } from './src/discovery-server'; import type { DVMAnnouncement } from './src/direct-discovery'; @@ -9,7 +9,8 @@ export interface DirectServerInfo { async function main(directServerInfo?: DirectServerInfo | null) { try { - const server = new DiscoveryServer(CONFIG); + const config = getConfig(); + const server = new DiscoveryServer(config); if (directServerInfo) { // If we have direct server info, register tools from that server only @@ -25,8 +26,8 @@ async function main(directServerInfo?: DirectServerInfo | null) { await server.start(); } - console.log(`DVMCP Discovery Server (${CONFIG.mcp.version}) started`); - console.log(`Connected to ${CONFIG.nostr.relayUrls.length} relays`); + console.log(`DVMCP Discovery Server (${config.mcp.version}) started`); + console.log(`Connected to ${config.nostr.relayUrls.length} relays`); // Handle shutdown const cleanup = () => { diff --git a/packages/dvmcp-discovery/package.json b/packages/dvmcp-discovery/package.json index 90588d5..fe09b57 100644 --- a/packages/dvmcp-discovery/package.json +++ b/packages/dvmcp-discovery/package.json @@ -1,6 +1,6 @@ { "name": "@dvmcp/discovery", - "version": "0.1.15", + "version": "0.1.17", "description": "Discovery service for MCP tools in the Nostr DVM ecosystem", "module": "index.ts", "type": "module", diff --git a/packages/dvmcp-discovery/src/config.ts b/packages/dvmcp-discovery/src/config.ts index e1492b1..65af789 100644 --- a/packages/dvmcp-discovery/src/config.ts +++ b/packages/dvmcp-discovery/src/config.ts @@ -154,4 +154,11 @@ export function createDefaultConfig(relayUrls: string[]): Config { }; } -export const CONFIG = loadConfig(); +let _CONFIG: Config | null = null; + +export function getConfig(): Config { + if (!_CONFIG) { + _CONFIG = loadConfig(); + } + return _CONFIG; +} diff --git a/packages/dvmcp-discovery/src/discovery-server.ts b/packages/dvmcp-discovery/src/discovery-server.ts index 2a76db0..873cb99 100644 --- a/packages/dvmcp-discovery/src/discovery-server.ts +++ b/packages/dvmcp-discovery/src/discovery-server.ts @@ -3,7 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' import { type Event, type Filter } from 'nostr-tools'; import { RelayHandler } from '@dvmcp/commons/nostr/relay-handler'; import { createKeyManager } from '@dvmcp/commons/nostr/key-manager'; -import { CONFIG, type Config } from './config'; +import { getConfig, type Config } from './config'; import { DVM_ANNOUNCEMENT_KIND } from '@dvmcp/commons/constants'; import type { Tool } from '@modelcontextprotocol/sdk/types.js'; import { ToolRegistry } from './tool-registry'; @@ -77,13 +77,14 @@ export class DiscoveryServer { } private isAllowedDVM(pubkey: string): boolean { + const config = getConfig(); if ( - !CONFIG.whitelist?.allowedDVMs || - CONFIG.whitelist.allowedDVMs.size == 0 + !config.whitelist?.allowedDVMs || + config.whitelist.allowedDVMs.size == 0 ) { return true; } - return CONFIG.whitelist.allowedDVMs.has(pubkey); + return config.whitelist.allowedDVMs.has(pubkey); } private parseAnnouncement(content: string): DVMAnnouncement | null { diff --git a/packages/dvmcp-discovery/src/discovery.test.ts b/packages/dvmcp-discovery/src/discovery.test.ts index 06afc57..6897e72 100644 --- a/packages/dvmcp-discovery/src/discovery.test.ts +++ b/packages/dvmcp-discovery/src/discovery.test.ts @@ -1,6 +1,6 @@ import { expect, test, describe, beforeAll, afterAll } from 'bun:test'; import { DiscoveryServer } from './discovery-server'; -import { CONFIG } from './config'; +import { getConfig } from './config'; import { server as mockRelay, stop as stopRelay, @@ -15,10 +15,11 @@ describe('DiscoveryServer E2E', () => { mockRelay; relayConnected = true; + const config = getConfig(); const testConfig = { - ...CONFIG, + ...config, nostr: { - ...CONFIG.nostr, + ...config.nostr, relayUrls: ['ws://localhost:3334'], }, };