@contextvm/sdk 0.1.16 → 0.1.18
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/esm/core/constants.d.ts.map +1 -1
- package/dist/esm/core/constants.js +0 -1
- package/dist/esm/core/constants.js.map +1 -1
- package/dist/esm/core/interfaces.d.ts +1 -2
- package/dist/esm/core/interfaces.d.ts.map +1 -1
- package/dist/esm/core/interfaces.js.map +1 -1
- package/dist/esm/gateway/index.d.ts +7 -3
- package/dist/esm/gateway/index.d.ts.map +1 -1
- package/dist/esm/gateway/index.js +11 -7
- package/dist/esm/gateway/index.js.map +1 -1
- package/dist/esm/relay/applesauce-relay-pool.d.ts +35 -0
- package/dist/esm/relay/applesauce-relay-pool.d.ts.map +1 -0
- package/dist/esm/relay/applesauce-relay-pool.js +172 -0
- package/dist/esm/relay/applesauce-relay-pool.js.map +1 -0
- package/dist/esm/relay/index.d.ts +1 -1
- package/dist/esm/relay/index.d.ts.map +1 -1
- package/dist/esm/relay/index.js +1 -1
- package/dist/esm/relay/index.js.map +1 -1
- package/dist/esm/relay/simple-relay-pool.d.ts.map +1 -1
- package/dist/esm/relay/simple-relay-pool.js +1 -2
- package/dist/esm/relay/simple-relay-pool.js.map +1 -1
- package/dist/esm/transport/nostr-server-transport.d.ts +3 -0
- package/dist/esm/transport/nostr-server-transport.d.ts.map +1 -1
- package/dist/esm/transport/nostr-server-transport.js +38 -7
- package/dist/esm/transport/nostr-server-transport.js.map +1 -1
- package/package.json +3 -3
- package/dist/esm/proxy/proxy-server.d.ts +0 -3
- package/dist/esm/proxy/proxy-server.d.ts.map +0 -1
- package/dist/esm/proxy/proxy-server.js +0 -55
- package/dist/esm/proxy/proxy-server.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,UAAU;;IAErB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEK,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,UAAU;;IAErB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEK,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,mBAKxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,GAAG;IACX;;OAEG;IACH,QAAQ,EAAE,GAAG;IACb;;OAEG;IACH,UAAU,EAAE,KAAK;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ;;OAEG;IACH,OAAO,EAAE,SAAS;IAClB;;OAEG;IACH,OAAO,EAAE,SAAS;IAClB;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,GAAG;IACX;;OAEG;IACH,QAAQ,EAAE,GAAG;IACb;;OAEG;IACH,UAAU,EAAE,KAAK;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ;;OAEG;IACH,OAAO,EAAE,SAAS;IAClB;;OAEG;IACH,OAAO,EAAE,SAAS;IAClB;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,gBAAgB;IAC3B,iBAAiB,EAAE,0BAA0B;IAC7C,OAAO,EAAE,cAAc;CACf,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ListPromptsRequest, ListResourcesRequest, ListResourceTemplatesRequest, ListToolsRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import type { EventTemplate, Filter, NostrEvent } from 'nostr-tools';
|
|
3
3
|
/**
|
|
4
4
|
* Defines the encryption mode for the transport.
|
|
@@ -37,7 +37,6 @@ export interface RelayHandler {
|
|
|
37
37
|
unsubscribe(): void;
|
|
38
38
|
}
|
|
39
39
|
export interface AnnouncementMethods {
|
|
40
|
-
server: InitializeRequest['method'];
|
|
41
40
|
tools: ListToolsRequest['method'];
|
|
42
41
|
resources: ListResourcesRequest['method'];
|
|
43
42
|
resourceTemplates: ListResourceTemplatesRequest['method'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAGrD,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;IAGF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAS,CACP,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,IAAI,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC1C,iBAAiB,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
|
|
@@ -4,8 +4,8 @@ import { NostrServerTransportOptions } from '../transport/nostr-server-transport
|
|
|
4
4
|
* Options for configuring the NostrMCPGateway.
|
|
5
5
|
*/
|
|
6
6
|
export interface NostrMCPGatewayOptions {
|
|
7
|
-
/** The MCP
|
|
8
|
-
|
|
7
|
+
/** The MCP client transport (e.g., StdioClientTransport) to connect to the original MCP server */
|
|
8
|
+
mcpClientTransport: Transport;
|
|
9
9
|
/** Options for configuring the Nostr server transport */
|
|
10
10
|
nostrTransportOptions: NostrServerTransportOptions;
|
|
11
11
|
}
|
|
@@ -15,9 +15,13 @@ export interface NostrMCPGatewayOptions {
|
|
|
15
15
|
* events and forwarding them to the local MCP server, then publishing the
|
|
16
16
|
* responses back to Nostr. All request/response correlation is handled by the
|
|
17
17
|
* NostrServerTransport, making this a simple message forwarder.
|
|
18
|
+
* @param options - Configuration options for the gateway
|
|
19
|
+
* @param options.mcpClientTransport - The MCP client transport (e.g., StdioServerTransport)
|
|
20
|
+
* used to connect to and communicate with the original MCP server
|
|
21
|
+
* @param options.nostrTransportOptions - Configuration options for the Nostr server transport
|
|
18
22
|
*/
|
|
19
23
|
export declare class NostrMCPGateway {
|
|
20
|
-
private readonly
|
|
24
|
+
private readonly mcpClientTransport;
|
|
21
25
|
private readonly nostrServerTransport;
|
|
22
26
|
private isRunning;
|
|
23
27
|
constructor(options: NostrMCPGatewayOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;AAKhD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kGAAkG;IAClG,kBAAkB,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,qBAAqB,EAAE,2BAA2B,CAAC;CACpD;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;AAKhD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kGAAkG;IAClG,kBAAkB,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,qBAAqB,EAAE,2BAA2B,CAAC;CACpD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,sBAAsB;IAS3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACI,QAAQ,IAAI,OAAO;CAG3B"}
|
|
@@ -7,11 +7,15 @@ const logger = createLogger('gateway');
|
|
|
7
7
|
* events and forwarding them to the local MCP server, then publishing the
|
|
8
8
|
* responses back to Nostr. All request/response correlation is handled by the
|
|
9
9
|
* NostrServerTransport, making this a simple message forwarder.
|
|
10
|
+
* @param options - Configuration options for the gateway
|
|
11
|
+
* @param options.mcpClientTransport - The MCP client transport (e.g., StdioServerTransport)
|
|
12
|
+
* used to connect to and communicate with the original MCP server
|
|
13
|
+
* @param options.nostrTransportOptions - Configuration options for the Nostr server transport
|
|
10
14
|
*/
|
|
11
15
|
export class NostrMCPGateway {
|
|
12
16
|
constructor(options) {
|
|
13
17
|
this.isRunning = false;
|
|
14
|
-
this.
|
|
18
|
+
this.mcpClientTransport = options.mcpClientTransport;
|
|
15
19
|
this.nostrServerTransport = new NostrServerTransport(options.nostrTransportOptions);
|
|
16
20
|
this.setupEventHandlers();
|
|
17
21
|
}
|
|
@@ -22,21 +26,21 @@ export class NostrMCPGateway {
|
|
|
22
26
|
// Forward messages from Nostr to the MCP server, handling any potential errors.
|
|
23
27
|
this.nostrServerTransport.onmessage = (message) => {
|
|
24
28
|
logger.debug('Received message from Nostr:', message);
|
|
25
|
-
this.
|
|
29
|
+
this.mcpClientTransport
|
|
26
30
|
.send(message)
|
|
27
31
|
.catch(this.handleServerError.bind(this));
|
|
28
32
|
};
|
|
29
33
|
this.nostrServerTransport.onerror = this.handleNostrError.bind(this);
|
|
30
34
|
this.nostrServerTransport.onclose = this.handleNostrClose.bind(this);
|
|
31
35
|
// Forward messages from the MCP server to the Nostr transport, handling any potential errors.
|
|
32
|
-
this.
|
|
36
|
+
this.mcpClientTransport.onmessage = (message) => {
|
|
33
37
|
logger.debug('Received message from MCP server:', message);
|
|
34
38
|
this.nostrServerTransport
|
|
35
39
|
.send(message)
|
|
36
40
|
.catch(this.handleNostrError.bind(this));
|
|
37
41
|
};
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
42
|
+
this.mcpClientTransport.onerror = this.handleServerError.bind(this);
|
|
43
|
+
this.mcpClientTransport.onclose = this.handleServerClose.bind(this);
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* Starts the gateway, initializing both transports.
|
|
@@ -47,7 +51,7 @@ export class NostrMCPGateway {
|
|
|
47
51
|
}
|
|
48
52
|
try {
|
|
49
53
|
// Start both transports
|
|
50
|
-
await this.
|
|
54
|
+
await this.mcpClientTransport.start();
|
|
51
55
|
await this.nostrServerTransport.start();
|
|
52
56
|
this.isRunning = true;
|
|
53
57
|
logger.info('NostrMCPGateway started successfully');
|
|
@@ -68,7 +72,7 @@ export class NostrMCPGateway {
|
|
|
68
72
|
try {
|
|
69
73
|
// Stop both transports
|
|
70
74
|
await this.nostrServerTransport.close();
|
|
71
|
-
await this.
|
|
75
|
+
await this.mcpClientTransport.close();
|
|
72
76
|
this.isRunning = false;
|
|
73
77
|
logger.info('NostrMCPGateway stopped successfully');
|
|
74
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,GAErB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAYvC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { NostrEvent, Filter } from 'nostr-tools';
|
|
2
|
+
import { RelayHandler } from '../core/interfaces.js';
|
|
3
|
+
/**
|
|
4
|
+
* A RelayHandler implementation that uses the applesauce-relay library's RelayPool to manage connections and subscriptions.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ApplesauceRelayPool implements RelayHandler {
|
|
7
|
+
private readonly pool;
|
|
8
|
+
private readonly relayUrls;
|
|
9
|
+
private readonly relayGroup;
|
|
10
|
+
private subscriptions;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new ApplesauceRelayPool instance.
|
|
13
|
+
* @param relayUrls - An array of relay URLs to connect to.
|
|
14
|
+
*/
|
|
15
|
+
constructor(relayUrls: string[]);
|
|
16
|
+
/**
|
|
17
|
+
* Sets up monitoring of relay connections and triggers resubscription when connections are lost
|
|
18
|
+
*/
|
|
19
|
+
private setupConnectionMonitoring;
|
|
20
|
+
connect(): Promise<void>;
|
|
21
|
+
disconnect(): Promise<void>;
|
|
22
|
+
publish(event: NostrEvent): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a simplified subscription wrapper around the RelayPool's subscription method.
|
|
25
|
+
* This provides a cleaner interface similar to other relay pool implementations.
|
|
26
|
+
*/
|
|
27
|
+
private createSubscription;
|
|
28
|
+
/**
|
|
29
|
+
* Resubscribes to all active subscriptions after relay reconnection
|
|
30
|
+
*/
|
|
31
|
+
private resubscribeAll;
|
|
32
|
+
subscribe(filters: Filter[], onEvent: (event: NostrEvent) => void, onEose?: () => void): Promise<void>;
|
|
33
|
+
unsubscribe(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=applesauce-relay-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applesauce-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/applesauce-relay-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAerD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAGxC,OAAO,CAAC,aAAa,CAA+B;IAEpD;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE;IAO/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAY3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBhB,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC;IAoBhB,WAAW,IAAI,IAAI;CAcpB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { RelayPool } from 'applesauce-relay';
|
|
2
|
+
import { createLogger } from '../core/utils/logger.js';
|
|
3
|
+
const logger = createLogger('applesauce-relay');
|
|
4
|
+
/**
|
|
5
|
+
* A RelayHandler implementation that uses the applesauce-relay library's RelayPool to manage connections and subscriptions.
|
|
6
|
+
*/
|
|
7
|
+
export class ApplesauceRelayPool {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new ApplesauceRelayPool instance.
|
|
10
|
+
* @param relayUrls - An array of relay URLs to connect to.
|
|
11
|
+
*/
|
|
12
|
+
constructor(relayUrls) {
|
|
13
|
+
// Subscription management similar to other relay pools
|
|
14
|
+
this.subscriptions = [];
|
|
15
|
+
this.relayUrls = relayUrls;
|
|
16
|
+
this.pool = new RelayPool();
|
|
17
|
+
this.relayGroup = this.pool.group(relayUrls);
|
|
18
|
+
this.setupConnectionMonitoring();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sets up monitoring of relay connections and triggers resubscription when connections are lost
|
|
22
|
+
*/
|
|
23
|
+
setupConnectionMonitoring() {
|
|
24
|
+
this.pool.relays$.subscribe((relays) => {
|
|
25
|
+
relays.forEach((relay) => {
|
|
26
|
+
relay.connected$.subscribe((connected) => {
|
|
27
|
+
if (!connected) {
|
|
28
|
+
this.resubscribeAll();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async connect() {
|
|
35
|
+
logger.info('Connecting to relays', { relayUrls: this.relayUrls });
|
|
36
|
+
// Validate URL format
|
|
37
|
+
for (const url of this.relayUrls) {
|
|
38
|
+
try {
|
|
39
|
+
new URL(url);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.error('Invalid relay URL', { url, error });
|
|
43
|
+
throw new Error(`Invalid relay URL: ${url}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// The RelayPool automatically connects to relays when needed
|
|
47
|
+
logger.info('Relay pool initialized', { relayUrls: this.relayUrls });
|
|
48
|
+
}
|
|
49
|
+
async disconnect() {
|
|
50
|
+
logger.info('Disconnecting from relays');
|
|
51
|
+
// Close all active subscriptions
|
|
52
|
+
this.unsubscribe();
|
|
53
|
+
// Close the relay pool
|
|
54
|
+
// Note: RelayPool doesn't have a close method, connections are managed automatically
|
|
55
|
+
// We just need to clear our subscriptions
|
|
56
|
+
logger.info('Disconnected from all relays');
|
|
57
|
+
}
|
|
58
|
+
async publish(event) {
|
|
59
|
+
logger.debug('Publishing event', { eventId: event.id, kind: event.kind });
|
|
60
|
+
// Use the publish method which handles retries automatically
|
|
61
|
+
const publishObservable = this.relayGroup.publish(event);
|
|
62
|
+
// Subscribe to the publish observable to handle responses
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
const subscription = publishObservable.subscribe({
|
|
65
|
+
next: (response) => {
|
|
66
|
+
if (!response.ok) {
|
|
67
|
+
logger.warn('Failed to publish event to relay', {
|
|
68
|
+
eventId: event.id,
|
|
69
|
+
relay: response.from,
|
|
70
|
+
message: response.message,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
error: (error) => {
|
|
75
|
+
logger.error('Failed to publish event', {
|
|
76
|
+
eventId: event.id,
|
|
77
|
+
error,
|
|
78
|
+
});
|
|
79
|
+
reject(error);
|
|
80
|
+
},
|
|
81
|
+
complete: () => {
|
|
82
|
+
logger.debug('Event publishing completed', { eventId: event.id });
|
|
83
|
+
subscription.unsubscribe();
|
|
84
|
+
resolve();
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates a simplified subscription wrapper around the RelayPool's subscription method.
|
|
91
|
+
* This provides a cleaner interface similar to other relay pool implementations.
|
|
92
|
+
*/
|
|
93
|
+
createSubscription(filters, onEvent, onEose) {
|
|
94
|
+
// Create a persistent subscription with automatic reconnection
|
|
95
|
+
const subscription = this.relayGroup.subscription(filters, {
|
|
96
|
+
retries: 3,
|
|
97
|
+
});
|
|
98
|
+
// Subscribe to the stream of events
|
|
99
|
+
const sub = subscription.subscribe({
|
|
100
|
+
next: (response) => {
|
|
101
|
+
if (response === 'EOSE') {
|
|
102
|
+
onEose === null || onEose === void 0 ? void 0 : onEose();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
onEvent(response);
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
error: (error) => {
|
|
109
|
+
logger.error('Subscription error', { error });
|
|
110
|
+
// Remove the subscription from the array if it fails
|
|
111
|
+
const index = this.subscriptions.findIndex((sub) => sub.onEvent === onEvent && sub.filters === filters);
|
|
112
|
+
if (index !== -1) {
|
|
113
|
+
this.subscriptions.splice(index, 1);
|
|
114
|
+
}
|
|
115
|
+
sub.unsubscribe();
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
unsubscribe: () => {
|
|
120
|
+
sub.unsubscribe();
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resubscribes to all active subscriptions after relay reconnection
|
|
126
|
+
*/
|
|
127
|
+
resubscribeAll() {
|
|
128
|
+
logger.debug('Resubscribing to all subscriptions after relay reconnection');
|
|
129
|
+
try {
|
|
130
|
+
this.subscriptions.forEach((sub) => {
|
|
131
|
+
if (sub.closer)
|
|
132
|
+
sub.closer.unsubscribe();
|
|
133
|
+
sub.closer = this.createSubscription(sub.filters, sub.onEvent, sub.onEose);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
logger.error('Failed to resubscribe to subscriptions', { error });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async subscribe(filters, onEvent, onEose) {
|
|
141
|
+
logger.debug('Creating subscription', { filters });
|
|
142
|
+
try {
|
|
143
|
+
// Create a subscription using our simplified wrapper
|
|
144
|
+
const closer = this.createSubscription(filters, onEvent, onEose);
|
|
145
|
+
// Store the subscription for cleanup
|
|
146
|
+
this.subscriptions.push({
|
|
147
|
+
filters,
|
|
148
|
+
onEvent,
|
|
149
|
+
onEose,
|
|
150
|
+
closer,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
logger.error('Failed to create subscription', { filters, error });
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
unsubscribe() {
|
|
159
|
+
logger.debug('Unsubscribing from all subscriptions');
|
|
160
|
+
try {
|
|
161
|
+
// Close all active subscriptions
|
|
162
|
+
for (const subscription of this.subscriptions) {
|
|
163
|
+
subscription.closer.unsubscribe();
|
|
164
|
+
}
|
|
165
|
+
this.subscriptions = [];
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
logger.error('Error while unsubscribing from subscriptions', { error });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=applesauce-relay-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applesauce-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/applesauce-relay-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
|
package/dist/esm/relay/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;
|
|
1
|
+
{"version":3,"file":"simple-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAEhC,OAAO,CAAC,WAAW,CAOf;IAEJ,OAAO,CAAC,aAAa,CAKb;gBAEI,SAAS,EAAE,MAAM,EAAE;IAgB/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkBpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;;OAGG;YACW,uBAAuB;IAmDrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAchB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC;IAQhB,WAAW,IAAI,IAAI;CAIpB"}
|
|
@@ -11,7 +11,6 @@ const logger = createLogger('relay');
|
|
|
11
11
|
export class SimpleRelayPool {
|
|
12
12
|
constructor(relayUrls) {
|
|
13
13
|
this.maxRetries = 5;
|
|
14
|
-
// Use Map for more efficient relay state management
|
|
15
14
|
this.relayStates = new Map();
|
|
16
15
|
this.subscriptions = [];
|
|
17
16
|
this.relayUrls = relayUrls;
|
|
@@ -40,7 +39,7 @@ export class SimpleRelayPool {
|
|
|
40
39
|
// Check all relays every 5 seconds
|
|
41
40
|
this.reconnectTimer = setTimeout(() => {
|
|
42
41
|
const connectionStatus = this.pool.listConnectionStatus();
|
|
43
|
-
this.relayStates.forEach((
|
|
42
|
+
this.relayStates.forEach((_, url) => {
|
|
44
43
|
if (!connectionStatus.get(url)) {
|
|
45
44
|
this.handleDisconnectedRelay(url);
|
|
46
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgC,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAErC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"simple-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ export declare class NostrServerTransport extends BaseNostrTransport implements
|
|
|
32
32
|
private readonly isPublicServer?;
|
|
33
33
|
private readonly allowedPublicKeys?;
|
|
34
34
|
private readonly serverInfo?;
|
|
35
|
+
private isInitialized;
|
|
35
36
|
constructor(options: NostrServerTransportOptions);
|
|
36
37
|
/**
|
|
37
38
|
* Generates common tags from server information for use in Nostr events.
|
|
@@ -54,6 +55,8 @@ export declare class NostrServerTransport extends BaseNostrTransport implements
|
|
|
54
55
|
send(message: JSONRPCMessage): Promise<void>;
|
|
55
56
|
/**
|
|
56
57
|
* Initiates the process of fetching announcement data from the server's internal logic.
|
|
58
|
+
* This method now properly handles the initialization handshake by first sending
|
|
59
|
+
* the initialize request, waiting for the response, and then proceeding with other announcements.
|
|
57
60
|
*/
|
|
58
61
|
private getAnnouncementData;
|
|
59
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nostr-server-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/nostr-server-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,cAAc,EAIpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"nostr-server-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/nostr-server-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,cAAc,EAIpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AAoBnC;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD;;;;;GAKG;AACH,qBAAa,oBACX,SAAQ,kBACR,YAAW,SAAS;IAEb,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAW;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,aAAa,CAAS;gBAElB,OAAO,EAAE,2BAA2B;IAOhD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;;OAGG;IACU,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD;;;;OAIG;YACW,mBAAmB;IA2CjC;;;;OAIG;YACW,SAAS;IAqCvB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;YACW,cAAc;IA2F5B;;;OAGG;YACW,kBAAkB;IAkChC;;;;;OAKG;IACU,gBAAgB,CAC3B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,cAAc,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;;OAKG;YACW,oBAAoB;IAQlC;;;OAGG;YACW,oBAAoB;IAoBlC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAoChC;;;;OAIG;IACI,uBAAuB,CAAC,SAAS,GAAE,MAAe,GAAG,MAAM;CAgBnE"}
|
|
@@ -3,6 +3,7 @@ import { BaseNostrTransport, } from './base-nostr-transport.js';
|
|
|
3
3
|
import { announcementMethods, CTXVM_MESSAGES_KIND, GIFT_WRAP_KIND, NOSTR_TAGS, PROMPTS_LIST_KIND, RESOURCES_LIST_KIND, RESOURCETEMPLATES_LIST_KIND, SERVER_ANNOUNCEMENT_KIND, TOOLS_LIST_KIND, decryptMessage, } from '../core/index.js';
|
|
4
4
|
import { EncryptionMode } from '../core/interfaces.js';
|
|
5
5
|
import { createLogger } from '../core/utils/logger.js';
|
|
6
|
+
import { sleep } from 'bun';
|
|
6
7
|
const logger = createLogger('nostr-server-transport');
|
|
7
8
|
/**
|
|
8
9
|
* A server-side transport layer for CTXVM that uses Nostr events for communication.
|
|
@@ -14,6 +15,7 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
14
15
|
constructor(options) {
|
|
15
16
|
super(options);
|
|
16
17
|
this.clientSessions = new Map();
|
|
18
|
+
this.isInitialized = false;
|
|
17
19
|
this.serverInfo = options.serverInfo;
|
|
18
20
|
this.isPublicServer = options.isPublicServer;
|
|
19
21
|
this.allowedPublicKeys = options.allowedPublicKeys;
|
|
@@ -53,7 +55,7 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
53
55
|
const filters = this.createSubscriptionFilters(pubkey);
|
|
54
56
|
await this.subscribe(filters, this.processIncomingEvent.bind(this));
|
|
55
57
|
if (this.isPublicServer) {
|
|
56
|
-
this.getAnnouncementData();
|
|
58
|
+
await this.getAnnouncementData();
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
@@ -85,9 +87,11 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
85
87
|
}
|
|
86
88
|
/**
|
|
87
89
|
* Initiates the process of fetching announcement data from the server's internal logic.
|
|
90
|
+
* This method now properly handles the initialization handshake by first sending
|
|
91
|
+
* the initialize request, waiting for the response, and then proceeding with other announcements.
|
|
88
92
|
*/
|
|
89
|
-
getAnnouncementData() {
|
|
90
|
-
var _a;
|
|
93
|
+
async getAnnouncementData() {
|
|
94
|
+
var _a, _b;
|
|
91
95
|
const initializeParams = {
|
|
92
96
|
protocolVersion: LATEST_PROTOCOL_VERSION,
|
|
93
97
|
capabilities: {},
|
|
@@ -96,14 +100,32 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
96
100
|
version: '1.0.0',
|
|
97
101
|
},
|
|
98
102
|
};
|
|
103
|
+
// First, send the initialize request and wait for completion
|
|
104
|
+
if (!this.isInitialized) {
|
|
105
|
+
const initializeMessage = {
|
|
106
|
+
jsonrpc: '2.0',
|
|
107
|
+
id: 'announcement',
|
|
108
|
+
method: 'initialize',
|
|
109
|
+
params: initializeParams,
|
|
110
|
+
};
|
|
111
|
+
console.error('Sending initialize request for announcement');
|
|
112
|
+
(_a = this.onmessage) === null || _a === void 0 ? void 0 : _a.call(this, initializeMessage);
|
|
113
|
+
let attempts = 0;
|
|
114
|
+
while (!this.isInitialized && attempts < 10) {
|
|
115
|
+
attempts++;
|
|
116
|
+
await sleep(50);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Now send all other announcements
|
|
99
120
|
for (const [key, methodValue] of Object.entries(announcementMethods)) {
|
|
121
|
+
console.error('Sending announcement', key, methodValue);
|
|
100
122
|
const message = {
|
|
101
123
|
jsonrpc: '2.0',
|
|
102
124
|
id: 'announcement',
|
|
103
125
|
method: methodValue,
|
|
104
126
|
params: key === 'server' ? initializeParams : {},
|
|
105
127
|
};
|
|
106
|
-
(
|
|
128
|
+
(_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, message);
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
131
|
/**
|
|
@@ -197,10 +219,19 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
197
219
|
* @param response The JSON-RPC response or error to send.
|
|
198
220
|
*/
|
|
199
221
|
async handleResponse(response) {
|
|
200
|
-
var _a, _b;
|
|
222
|
+
var _a, _b, _c;
|
|
201
223
|
// Handle special announcement responses
|
|
202
224
|
if (response.id === 'announcement') {
|
|
203
225
|
if (isJSONRPCResponse(response)) {
|
|
226
|
+
if (InitializeResultSchema.safeParse(response.result).success) {
|
|
227
|
+
this.isInitialized = true;
|
|
228
|
+
// Send the initialized notification
|
|
229
|
+
const initializedNotification = {
|
|
230
|
+
jsonrpc: '2.0',
|
|
231
|
+
method: 'notifications/initialized',
|
|
232
|
+
};
|
|
233
|
+
(_a = this.onmessage) === null || _a === void 0 ? void 0 : _a.call(this, initializedNotification);
|
|
234
|
+
}
|
|
204
235
|
await this.announcer(response);
|
|
205
236
|
}
|
|
206
237
|
return;
|
|
@@ -218,7 +249,7 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
218
249
|
}
|
|
219
250
|
}
|
|
220
251
|
if (!targetClientPubkey || originalRequestId === undefined) {
|
|
221
|
-
(
|
|
252
|
+
(_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, new Error(`No pending request found for response ID: ${response.id}`));
|
|
222
253
|
return;
|
|
223
254
|
}
|
|
224
255
|
// Restore the original request ID in the response
|
|
@@ -226,7 +257,7 @@ export class NostrServerTransport extends BaseNostrTransport {
|
|
|
226
257
|
// Send the response back to the original requester
|
|
227
258
|
const session = this.clientSessions.get(targetClientPubkey);
|
|
228
259
|
if (!session) {
|
|
229
|
-
(
|
|
260
|
+
(_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, new Error(`No session found for client: ${targetClientPubkey}`));
|
|
230
261
|
return;
|
|
231
262
|
}
|
|
232
263
|
const tags = this.createResponseTags(targetClientPubkey, nostrEventId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nostr-server-transport.js","sourceRoot":"","sources":["../../../src/transport/nostr-server-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nostr-server-transport.js","sourceRoot":"","sources":["../../../src/transport/nostr-server-transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contextvm/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "CtxVM SDK for JavaScript/TypeScript",
|
|
5
5
|
"license": "LGPL-3.0-1",
|
|
6
6
|
"author": "ContextVM",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"build:esm": "mkdir -p dist/esm && echo '{\"type\": \"module\"}' > dist/esm/package.json && bun tsc -p tsconfig.prod.json",
|
|
43
43
|
"lint": "eslint src/",
|
|
44
44
|
"test": "bun tests",
|
|
45
|
-
"
|
|
45
|
+
"format": "bun prettier --write .",
|
|
46
46
|
"release": "bun run build && bun changeset publish"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@modelcontextprotocol/sdk": "^1.17.2",
|
|
62
|
-
"
|
|
62
|
+
"applesauce-relay": "^2.3.0",
|
|
63
63
|
"nostr-tools": "^2.16.2"
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-server.d.ts","sourceRoot":"","sources":["../../../src/proxy/proxy-server.ts"],"names":[],"mappings":""}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
-
import { NostrMCPProxy } from './index.js';
|
|
4
|
-
import { PrivateKeySigner } from '../signer/private-key-signer.js';
|
|
5
|
-
import { SimpleRelayPool } from '../relay/simple-relay-pool.js';
|
|
6
|
-
/**
|
|
7
|
-
* Proxy server that exposes a remote Nostr MCP server via stdio.
|
|
8
|
-
* This allows MCP clients to connect to remote servers through the Nostr network.
|
|
9
|
-
*/
|
|
10
|
-
async function main() {
|
|
11
|
-
// Get configuration from environment variables
|
|
12
|
-
const relayUrl = process.env.RELAY_URL || 'ws://localhost:7777';
|
|
13
|
-
const clientPrivateKey = process.env.CLIENT_PRIVATE_KEY;
|
|
14
|
-
const serverPubkey = process.env.SERVER_PUBKEY;
|
|
15
|
-
if (!clientPrivateKey) {
|
|
16
|
-
console.error('CLIENT_PRIVATE_KEY environment variable is required');
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
if (!serverPubkey) {
|
|
20
|
-
console.error('SERVER_PUBKEY environment variable is required');
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
// Set up stdio transport for the server
|
|
24
|
-
const transport = new StdioServerTransport();
|
|
25
|
-
// Create Nostr components
|
|
26
|
-
const signer = new PrivateKeySigner(clientPrivateKey);
|
|
27
|
-
const relayPool = new SimpleRelayPool([relayUrl]);
|
|
28
|
-
// Create and start the proxy
|
|
29
|
-
const proxy = new NostrMCPProxy({
|
|
30
|
-
mcpHostTransport: transport,
|
|
31
|
-
nostrTransportOptions: {
|
|
32
|
-
signer,
|
|
33
|
-
relayHandler: relayPool,
|
|
34
|
-
serverPubkey,
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
// Handle cleanup on process termination
|
|
38
|
-
process.on('SIGINT', async () => {
|
|
39
|
-
await proxy.stop();
|
|
40
|
-
process.exit(0);
|
|
41
|
-
});
|
|
42
|
-
process.on('SIGTERM', async () => {
|
|
43
|
-
await proxy.stop();
|
|
44
|
-
process.exit(0);
|
|
45
|
-
});
|
|
46
|
-
// Start the proxy
|
|
47
|
-
await proxy.start();
|
|
48
|
-
console.error('Proxy server started and connected to stdio');
|
|
49
|
-
}
|
|
50
|
-
// Run the server
|
|
51
|
-
main().catch((error) => {
|
|
52
|
-
console.error('Proxy server error:', error);
|
|
53
|
-
process.exit(1);
|
|
54
|
-
});
|
|
55
|
-
//# sourceMappingURL=proxy-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../../src/proxy/proxy-server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;GAGG;AACH,KAAK,UAAU,IAAI;IACjB,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,qBAAqB,CAAC;IAChE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,6BAA6B;IAC7B,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;QAC9B,gBAAgB,EAAE,SAAS;QAC3B,qBAAqB,EAAE;YACrB,MAAM;YACN,YAAY,EAAE,SAAS;YACvB,YAAY;SACb;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAC/D,CAAC;AAED,iBAAiB;AACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|