@contextvm/sdk 0.8.0 → 0.9.1

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.
Files changed (57) hide show
  1. package/dist/esm/core/constants.d.ts +5 -0
  2. package/dist/esm/core/constants.d.ts.map +1 -1
  3. package/dist/esm/core/constants.js +5 -0
  4. package/dist/esm/core/constants.js.map +1 -1
  5. package/dist/esm/core/interfaces.d.ts +1 -1
  6. package/dist/esm/core/interfaces.d.ts.map +1 -1
  7. package/dist/esm/core/utils/utils.d.ts +17 -4
  8. package/dist/esm/core/utils/utils.d.ts.map +1 -1
  9. package/dist/esm/core/utils/utils.js +41 -16
  10. package/dist/esm/core/utils/utils.js.map +1 -1
  11. package/dist/esm/payments/client-payments.d.ts.map +1 -1
  12. package/dist/esm/payments/client-payments.js +21 -13
  13. package/dist/esm/payments/client-payments.js.map +1 -1
  14. package/dist/esm/payments/nip47/nwc-client.d.ts.map +1 -1
  15. package/dist/esm/payments/nip47/nwc-client.js +6 -9
  16. package/dist/esm/payments/nip47/nwc-client.js.map +1 -1
  17. package/dist/esm/transport/base-nostr-transport.d.ts +7 -1
  18. package/dist/esm/transport/base-nostr-transport.d.ts.map +1 -1
  19. package/dist/esm/transport/base-nostr-transport.js +5 -1
  20. package/dist/esm/transport/base-nostr-transport.js.map +1 -1
  21. package/dist/esm/transport/discovery-tags.d.ts +30 -2
  22. package/dist/esm/transport/discovery-tags.d.ts.map +1 -1
  23. package/dist/esm/transport/discovery-tags.js +29 -21
  24. package/dist/esm/transport/discovery-tags.js.map +1 -1
  25. package/dist/esm/transport/nostr-client/oversized-client-sender.d.ts +28 -0
  26. package/dist/esm/transport/nostr-client/oversized-client-sender.d.ts.map +1 -0
  27. package/dist/esm/transport/nostr-client/oversized-client-sender.js +30 -0
  28. package/dist/esm/transport/nostr-client/oversized-client-sender.js.map +1 -0
  29. package/dist/esm/transport/nostr-client/relay-resolution.d.ts +23 -0
  30. package/dist/esm/transport/nostr-client/relay-resolution.d.ts.map +1 -0
  31. package/dist/esm/transport/nostr-client/relay-resolution.js +83 -0
  32. package/dist/esm/transport/nostr-client/relay-resolution.js.map +1 -0
  33. package/dist/esm/transport/nostr-client-transport.d.ts +0 -1
  34. package/dist/esm/transport/nostr-client-transport.d.ts.map +1 -1
  35. package/dist/esm/transport/nostr-client-transport.js +38 -105
  36. package/dist/esm/transport/nostr-client-transport.js.map +1 -1
  37. package/dist/esm/transport/nostr-server/announcement-manager.d.ts +27 -0
  38. package/dist/esm/transport/nostr-server/announcement-manager.d.ts.map +1 -1
  39. package/dist/esm/transport/nostr-server/announcement-manager.js +48 -4
  40. package/dist/esm/transport/nostr-server/announcement-manager.js.map +1 -1
  41. package/dist/esm/transport/nostr-server/correlation-store.d.ts +15 -1
  42. package/dist/esm/transport/nostr-server/correlation-store.d.ts.map +1 -1
  43. package/dist/esm/transport/nostr-server/correlation-store.js +32 -16
  44. package/dist/esm/transport/nostr-server/correlation-store.js.map +1 -1
  45. package/dist/esm/transport/nostr-server/oversized-server-handler.d.ts +50 -0
  46. package/dist/esm/transport/nostr-server/oversized-server-handler.d.ts.map +1 -0
  47. package/dist/esm/transport/nostr-server/oversized-server-handler.js +49 -0
  48. package/dist/esm/transport/nostr-server/oversized-server-handler.js.map +1 -0
  49. package/dist/esm/transport/nostr-server/utils.d.ts +10 -0
  50. package/dist/esm/transport/nostr-server/utils.d.ts.map +1 -0
  51. package/dist/esm/transport/nostr-server/utils.js +35 -0
  52. package/dist/esm/transport/nostr-server/utils.js.map +1 -0
  53. package/dist/esm/transport/nostr-server-transport.d.ts +21 -3
  54. package/dist/esm/transport/nostr-server-transport.d.ts.map +1 -1
  55. package/dist/esm/transport/nostr-server-transport.js +110 -76
  56. package/dist/esm/transport/nostr-server-transport.js.map +1 -1
  57. package/package.json +18 -17
@@ -17,12 +17,32 @@ export interface ServerInfo {
17
17
  website?: string;
18
18
  about?: string;
19
19
  }
20
+ /**
21
+ * Optional NIP-01 kind:0 profile metadata for server identity.
22
+ * When provided, the server publishes a kind:0 event at startup
23
+ * to establish a social presence on Nostr.
24
+ *
25
+ * This is separate from ServerInfo - not all servers want a social profile.
26
+ * kind:0 events are rendered by social Nostr clients.
27
+ */
28
+ export interface ProfileMetadata {
29
+ name?: string;
30
+ about?: string;
31
+ picture?: string;
32
+ banner?: string;
33
+ website?: string;
34
+ nip05?: string;
35
+ lud16?: string;
36
+ [key: string]: unknown;
37
+ }
20
38
  /**
21
39
  * Options for configuring the AnnouncementManager.
22
40
  */
23
41
  export interface AnnouncementManagerOptions {
24
42
  /** Server information to include in announcements */
25
43
  serverInfo?: ServerInfo;
44
+ /** Optional kind:0 profile metadata. When provided, publishes a kind:0 event at startup. */
45
+ profileMetadata?: ProfileMetadata;
26
46
  /** Encryption mode for determining tag inclusion */
27
47
  encryptionMode: EncryptionMode;
28
48
  /** Gift wrap mode for determining tag inclusion */
@@ -70,6 +90,7 @@ export interface AnnouncementManagerOptions {
70
90
  */
71
91
  export declare class AnnouncementManager {
72
92
  private readonly serverInfo?;
93
+ private readonly profileMetadata?;
73
94
  private readonly encryptionMode;
74
95
  private readonly giftWrapMode;
75
96
  private extraCommonTags;
@@ -77,6 +98,7 @@ export declare class AnnouncementManager {
77
98
  private pricingTags;
78
99
  private readonly shouldPublishRelayList;
79
100
  private readonly relayListUrls?;
101
+ private readonly hasExplicitBootstrapRelayUrls;
80
102
  private readonly bootstrapRelayUrls;
81
103
  private readonly onDispatchMessage;
82
104
  private readonly onPublishEvent;
@@ -95,6 +117,11 @@ export declare class AnnouncementManager {
95
117
  * Publishes relay list metadata when enabled.
96
118
  */
97
119
  publishRelayList(): Promise<void>;
120
+ /**
121
+ * Publishes NIP-01 kind:0 profile metadata when configured.
122
+ * This creates a social identity for the server on Nostr.
123
+ */
124
+ publishProfileMetadata(): Promise<void>;
98
125
  /**
99
126
  * Updates extra common tags used for announcement and initialize response events.
100
127
  *
@@ -1 +1 @@
1
- {"version":3,"file":"announcement-manager.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/announcement-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announcement-manager.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/announcement-manager.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,9 @@
7
7
  import { InitializeResultSchema, ListPromptsResultSchema, ListResourcesResultSchema, ListResourceTemplatesResultSchema, ListToolsResultSchema, isJSONRPCResultResponse, } from '@modelcontextprotocol/sdk/types.js';
8
8
  import { EventDeletion } from 'nostr-tools/kinds';
9
9
  import { LATEST_PROTOCOL_VERSION } from '@modelcontextprotocol/sdk/types.js';
10
- import { announcementMethods, DEFAULT_BOOTSTRAP_RELAY_URLS, SERVER_ANNOUNCEMENT_KIND, TOOLS_LIST_KIND, RESOURCES_LIST_KIND, RESOURCETEMPLATES_LIST_KIND, PROMPTS_LIST_KIND, RELAY_LIST_METADATA_KIND, NOSTR_TAGS, INITIALIZE_METHOD, NOTIFICATIONS_INITIALIZED_METHOD, } from '../../core/index.js';
10
+ import { announcementMethods, DEFAULT_BOOTSTRAP_RELAY_URLS, SERVER_ANNOUNCEMENT_KIND, TOOLS_LIST_KIND, RESOURCES_LIST_KIND, RESOURCETEMPLATES_LIST_KIND, PROMPTS_LIST_KIND, RELAY_LIST_METADATA_KIND, PROFILE_METADATA_KIND, NOSTR_TAGS, INITIALIZE_METHOD, NOTIFICATIONS_INITIALIZED_METHOD, } from '../../core/index.js';
11
11
  import { EncryptionMode, GiftWrapMode } from '../../core/interfaces.js';
12
+ import { isLocalRelayUrl, isWebsocketRelayUrl } from './utils.js';
12
13
  /**
13
14
  * Internal manager for public server announcements.
14
15
  *
@@ -23,6 +24,7 @@ export class AnnouncementManager {
23
24
  var _a, _b, _c, _d;
24
25
  this.isInitialized = false;
25
26
  this.serverInfo = options.serverInfo;
27
+ this.profileMetadata = options.profileMetadata;
26
28
  this.encryptionMode = options.encryptionMode;
27
29
  this.giftWrapMode = options.giftWrapMode;
28
30
  this.extraCommonTags = (_a = options.extraCommonTags) !== null && _a !== void 0 ? _a : [];
@@ -30,6 +32,8 @@ export class AnnouncementManager {
30
32
  this.pricingTags = (_b = options.pricingTags) !== null && _b !== void 0 ? _b : [];
31
33
  this.shouldPublishRelayList = (_c = options.publishRelayList) !== null && _c !== void 0 ? _c : true;
32
34
  this.relayListUrls = options.relayListUrls;
35
+ this.hasExplicitBootstrapRelayUrls =
36
+ options.bootstrapRelayUrls !== undefined;
33
37
  this.bootstrapRelayUrls =
34
38
  (_d = options.bootstrapRelayUrls) !== null && _d !== void 0 ? _d : DEFAULT_BOOTSTRAP_RELAY_URLS;
35
39
  this.onDispatchMessage = options.onDispatchMessage;
@@ -76,6 +80,37 @@ export class AnnouncementManager {
76
80
  });
77
81
  }
78
82
  }
83
+ /**
84
+ * Publishes NIP-01 kind:0 profile metadata when configured.
85
+ * This creates a social identity for the server on Nostr.
86
+ */
87
+ async publishProfileMetadata() {
88
+ if (!this.profileMetadata) {
89
+ return;
90
+ }
91
+ try {
92
+ const publicKey = await this.onGetPublicKey();
93
+ const content = JSON.stringify(this.profileMetadata);
94
+ const eventTemplate = {
95
+ kind: PROFILE_METADATA_KIND,
96
+ content,
97
+ tags: [],
98
+ created_at: Math.floor(Date.now() / 1000),
99
+ pubkey: publicKey,
100
+ };
101
+ const signedEvent = await this.onSignEvent(eventTemplate);
102
+ await this.publishDiscoverabilityEvent(signedEvent);
103
+ this.logger.debug('Published profile metadata event', {
104
+ eventId: signedEvent.id,
105
+ });
106
+ }
107
+ catch (error) {
108
+ this.logger.error('Error publishing profile metadata', {
109
+ error: error instanceof Error ? error.message : String(error),
110
+ stack: error instanceof Error ? error.stack : undefined,
111
+ });
112
+ }
113
+ }
79
114
  /**
80
115
  * Updates extra common tags used for announcement and initialize response events.
81
116
  *
@@ -433,9 +468,16 @@ export class AnnouncementManager {
433
468
  return (relayUrls === null || relayUrls === void 0 ? void 0 : relayUrls.length) ? this.dedupeRelayUrls(relayUrls) : [];
434
469
  }
435
470
  getDiscoverabilityPublishRelayUrls() {
471
+ const advertisedRelayUrls = this.getAdvertisedRelayUrls();
472
+ const shouldSkipDefaultBootstrapRelayUrls = !this.hasExplicitBootstrapRelayUrls &&
473
+ advertisedRelayUrls.length > 0 &&
474
+ advertisedRelayUrls.every((relayUrl) => isLocalRelayUrl(relayUrl));
475
+ const bootstrapRelayUrls = shouldSkipDefaultBootstrapRelayUrls
476
+ ? []
477
+ : this.bootstrapRelayUrls;
436
478
  return this.dedupeRelayUrls([
437
- ...this.getAdvertisedRelayUrls(),
438
- ...this.bootstrapRelayUrls,
479
+ ...advertisedRelayUrls,
480
+ ...bootstrapRelayUrls,
439
481
  ]);
440
482
  }
441
483
  dedupeRelayUrls(relayUrls) {
@@ -443,7 +485,9 @@ export class AnnouncementManager {
443
485
  }
444
486
  async publishDiscoverabilityEvent(event) {
445
487
  const relayUrls = this.getDiscoverabilityPublishRelayUrls();
446
- if (relayUrls.length && this.onPublishEventToRelays) {
488
+ if (relayUrls.length &&
489
+ this.onPublishEventToRelays &&
490
+ relayUrls.every((relayUrl) => isWebsocketRelayUrl(relayUrl))) {
447
491
  await this.onPublishEventToRelays(event, relayUrls);
448
492
  return;
449
493
  }
@@ -1 +1 @@
1
- {"version":3,"file":"announcement-manager.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/announcement-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announcement-manager.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/announcement-manager.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { NostrEvent } from 'nostr-tools';
1
2
  /**
2
3
  * Represents a route for an in-flight request.
3
4
  */
@@ -8,6 +9,8 @@ export interface EventRoute {
8
9
  originalRequestId: string | number;
9
10
  /** Optional progress token for this request */
10
11
  progressToken?: string;
12
+ /** The inbound Nostr event that originated this request */
13
+ requestEvent?: NostrEvent;
11
14
  /**
12
15
  * Optional gift wrap kind used for the correlated request.
13
16
  *
@@ -23,6 +26,8 @@ export interface CorrelationStoreOptions {
23
26
  maxEventRoutes?: number;
24
27
  /** Callback invoked when an event route is evicted */
25
28
  onEventRouteEvicted?: (eventId: string, route: EventRoute) => void;
29
+ /** Callback invoked when an event route is removed by any lifecycle path */
30
+ onEventRouteRemoved?: (eventId: string, route: EventRoute) => void;
26
31
  }
27
32
  /**
28
33
  * Internal store for managing request/response correlation and progress routing.
@@ -39,7 +44,9 @@ export declare class CorrelationStore {
39
44
  private readonly eventRoutes;
40
45
  private readonly progressTokenToEventId;
41
46
  private readonly clientEventIds;
47
+ private readonly onEventRouteRemoved?;
42
48
  constructor(options?: CorrelationStoreOptions);
49
+ private removeRoute;
43
50
  /**
44
51
  * Registers a new event route for an incoming request.
45
52
  *
@@ -48,7 +55,7 @@ export declare class CorrelationStore {
48
55
  * @param originalRequestId The original JSON-RPC request ID
49
56
  * @param progressToken Optional progress token for this request
50
57
  */
51
- registerEventRoute(eventId: string, clientPubkey: string, originalRequestId: string | number, progressToken?: string, wrapKind?: number): void;
58
+ registerEventRoute(eventId: string, clientPubkey: string, originalRequestId: string | number, progressToken?: string, wrapKind?: number, requestEvent?: NostrEvent): void;
52
59
  /**
53
60
  * Gets the route for a given event ID.
54
61
  *
@@ -56,6 +63,13 @@ export declare class CorrelationStore {
56
63
  * @returns The event route, or undefined if not found
57
64
  */
58
65
  getEventRoute(eventId: string): EventRoute | undefined;
66
+ /**
67
+ * Gets the inbound Nostr request event for a given event ID.
68
+ *
69
+ * @param eventId The Nostr event ID
70
+ * @returns The inbound Nostr request event, or undefined if not found
71
+ */
72
+ getRequestEvent(eventId: string): NostrEvent | undefined;
59
73
  /**
60
74
  * Atomically gets and removes the route for a given event ID.
61
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"correlation-store.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/correlation-store.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;gBAE9C,OAAO,GAAE,uBAA4B;IA0BjD;;;;;;;OAOG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;IAuBP;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAItD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAyBtD;;;;;OAKG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpE;;;;;;OAMG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAuBnD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAKvD;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"correlation-store.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/correlation-store.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,UAAU,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnE,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAG3B;gBAEE,OAAO,GAAE,uBAA4B;IAgCjD,OAAO,CAAC,WAAW;IAiBnB;;;;;;;OAOG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAClC,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,UAAU,GACxB,IAAI;IAwBP;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAItD;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAUtD;;;;;OAKG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpE;;;;;;OAMG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAuBnD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAKvD;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
@@ -19,10 +19,12 @@ import { LruCache } from '../../core/utils/lru-cache.js';
19
19
  */
20
20
  export class CorrelationStore {
21
21
  constructor(options = {}) {
22
- const { maxEventRoutes = DEFAULT_LRU_SIZE, onEventRouteEvicted } = options;
22
+ const { maxEventRoutes = DEFAULT_LRU_SIZE, onEventRouteEvicted, onEventRouteRemoved, } = options;
23
23
  this.progressTokenToEventId = new Map();
24
24
  this.clientEventIds = new Map();
25
+ this.onEventRouteRemoved = onEventRouteRemoved;
25
26
  this.eventRoutes = new LruCache(maxEventRoutes, (eventId, route) => {
27
+ var _a;
26
28
  // Clean up progress token mapping when event route is evicted
27
29
  if (route.progressToken) {
28
30
  this.progressTokenToEventId.delete(route.progressToken);
@@ -35,9 +37,25 @@ export class CorrelationStore {
35
37
  this.clientEventIds.delete(route.clientPubkey);
36
38
  }
37
39
  }
40
+ (_a = this.onEventRouteRemoved) === null || _a === void 0 ? void 0 : _a.call(this, eventId, route);
38
41
  onEventRouteEvicted === null || onEventRouteEvicted === void 0 ? void 0 : onEventRouteEvicted(eventId, route);
39
42
  });
40
43
  }
44
+ removeRoute(eventId, route) {
45
+ var _a;
46
+ if (route.progressToken) {
47
+ this.progressTokenToEventId.delete(route.progressToken);
48
+ }
49
+ const clientSet = this.clientEventIds.get(route.clientPubkey);
50
+ if (clientSet) {
51
+ clientSet.delete(eventId);
52
+ if (clientSet.size === 0) {
53
+ this.clientEventIds.delete(route.clientPubkey);
54
+ }
55
+ }
56
+ this.eventRoutes.delete(eventId);
57
+ (_a = this.onEventRouteRemoved) === null || _a === void 0 ? void 0 : _a.call(this, eventId, route);
58
+ }
41
59
  /**
42
60
  * Registers a new event route for an incoming request.
43
61
  *
@@ -46,12 +64,13 @@ export class CorrelationStore {
46
64
  * @param originalRequestId The original JSON-RPC request ID
47
65
  * @param progressToken Optional progress token for this request
48
66
  */
49
- registerEventRoute(eventId, clientPubkey, originalRequestId, progressToken, wrapKind) {
67
+ registerEventRoute(eventId, clientPubkey, originalRequestId, progressToken, wrapKind, requestEvent) {
50
68
  const route = {
51
69
  clientPubkey,
52
70
  originalRequestId,
53
71
  progressToken,
54
72
  wrapKind,
73
+ requestEvent,
55
74
  };
56
75
  this.eventRoutes.set(eventId, route);
57
76
  // Update client index
@@ -74,6 +93,16 @@ export class CorrelationStore {
74
93
  getEventRoute(eventId) {
75
94
  return this.eventRoutes.get(eventId);
76
95
  }
96
+ /**
97
+ * Gets the inbound Nostr request event for a given event ID.
98
+ *
99
+ * @param eventId The Nostr event ID
100
+ * @returns The inbound Nostr request event, or undefined if not found
101
+ */
102
+ getRequestEvent(eventId) {
103
+ var _a;
104
+ return (_a = this.eventRoutes.get(eventId)) === null || _a === void 0 ? void 0 : _a.requestEvent;
105
+ }
77
106
  /**
78
107
  * Atomically gets and removes the route for a given event ID.
79
108
  *
@@ -85,20 +114,7 @@ export class CorrelationStore {
85
114
  if (!route) {
86
115
  return undefined;
87
116
  }
88
- // Remove progress token mapping if it exists
89
- if (route.progressToken) {
90
- this.progressTokenToEventId.delete(route.progressToken);
91
- }
92
- // Remove from client index
93
- const clientSet = this.clientEventIds.get(route.clientPubkey);
94
- if (clientSet) {
95
- clientSet.delete(eventId);
96
- if (clientSet.size === 0) {
97
- this.clientEventIds.delete(route.clientPubkey);
98
- }
99
- }
100
- // Remove the event route
101
- this.eventRoutes.delete(eventId);
117
+ this.removeRoute(eventId, route);
102
118
  return route;
103
119
  }
104
120
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"correlation-store.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/correlation-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"correlation-store.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/correlation-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { NostrEvent } from 'nostr-tools';
3
+ import type { Logger } from '../../core/utils/logger.js';
4
+ /**
5
+ * Dependencies required to publish oversized server response frames.
6
+ */
7
+ export interface OversizedServerResponseDeps {
8
+ sendMcpMessage: (message: JSONRPCMessage, recipientPublicKey: string, kind: number, tags?: NostrEvent['tags'], isEncrypted?: boolean, onEventCreated?: (eventId: string) => void, giftWrapKind?: number) => Promise<string>;
9
+ logger: Logger;
10
+ }
11
+ /**
12
+ * Dependencies required to publish a CEP-22 accept frame.
13
+ */
14
+ export interface OversizedAcceptFrameDeps {
15
+ sendNotification: (clientPubkey: string, notification: JSONRPCMessage, correlatedEventId?: string) => Promise<void>;
16
+ }
17
+ /**
18
+ * Runtime configuration for oversized server frame publication.
19
+ */
20
+ export interface OversizedServerHandlerConfig {
21
+ chunkSizeBytes: number;
22
+ }
23
+ /**
24
+ * Inputs required to publish an oversized server response.
25
+ */
26
+ export interface SendOversizedServerResponseOptions {
27
+ serialized: string;
28
+ clientPubkey: string;
29
+ progressToken: string;
30
+ startFrameTags: string[][];
31
+ continuationFrameTags: string[][];
32
+ isEncrypted: boolean;
33
+ giftWrapKind?: number;
34
+ }
35
+ /**
36
+ * Sends an oversized JSON-RPC response as CEP-22 progress frames.
37
+ */
38
+ export declare function sendOversizedServerResponse(options: SendOversizedServerResponseOptions, config: OversizedServerHandlerConfig, deps: OversizedServerResponseDeps): Promise<void>;
39
+ /**
40
+ * Inputs required to publish a CEP-22 accept frame.
41
+ */
42
+ export interface SendAcceptFrameOptions {
43
+ clientPubkey: string;
44
+ progressToken: string;
45
+ }
46
+ /**
47
+ * Sends the CEP-22 accept frame for an inbound oversized transfer start.
48
+ */
49
+ export declare function sendAcceptFrame(options: SendAcceptFrameOptions, deps: OversizedAcceptFrameDeps): Promise<void>;
50
+ //# sourceMappingURL=oversized-server-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oversized-server-handler.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/oversized-server-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOzD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,CACd,OAAO,EAAE,cAAc,EACvB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,WAAW,CAAC,EAAE,OAAO,EACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC1C,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,CAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,cAAc,EAC5B,iBAAiB,CAAC,EAAE,MAAM,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,EAC3C,MAAM,EAAE,4BAA4B,EACpC,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -0,0 +1,49 @@
1
+ import { CTXVM_MESSAGES_KIND } from '../../core/constants.js';
2
+ import { sendOversizedTransfer, } from '../oversized-transfer/index.js';
3
+ /**
4
+ * Sends an oversized JSON-RPC response as CEP-22 progress frames.
5
+ */
6
+ export async function sendOversizedServerResponse(options, config, deps) {
7
+ deps.logger.debug('Sending oversized server response', {
8
+ progressToken: options.progressToken,
9
+ chunkSizeBytes: config.chunkSizeBytes,
10
+ });
11
+ const sendFrame = async (params, tags) => {
12
+ const notification = {
13
+ jsonrpc: '2.0',
14
+ method: 'notifications/progress',
15
+ params,
16
+ };
17
+ await deps.sendMcpMessage(notification, options.clientPubkey, CTXVM_MESSAGES_KIND, tags, options.isEncrypted, undefined, options.giftWrapKind);
18
+ };
19
+ await sendOversizedTransfer(options.serialized, {
20
+ progressToken: options.progressToken,
21
+ chunkSizeBytes: config.chunkSizeBytes,
22
+ needsAcceptHandshake: false,
23
+ publishFrame: (frame, ctx) => sendFrame(frame, ctx.isStartFrame
24
+ ? options.startFrameTags
25
+ : options.continuationFrameTags).then(() => undefined),
26
+ });
27
+ }
28
+ /**
29
+ * Sends the CEP-22 accept frame for an inbound oversized transfer start.
30
+ */
31
+ export async function sendAcceptFrame(options, deps) {
32
+ const acceptParams = {
33
+ progressToken: options.progressToken,
34
+ // progress=2 is the slot reserved between start(1) and the first chunk(3).
35
+ progress: 2,
36
+ message: 'oversized request accepted',
37
+ cvm: {
38
+ type: 'oversized-transfer',
39
+ frameType: 'accept',
40
+ },
41
+ };
42
+ const notification = {
43
+ jsonrpc: '2.0',
44
+ method: 'notifications/progress',
45
+ params: acceptParams,
46
+ };
47
+ await deps.sendNotification(options.clientPubkey, notification);
48
+ }
49
+ //# sourceMappingURL=oversized-server-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oversized-server-handler.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/oversized-server-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,qBAAqB,GAEtB,MAAM,gCAAgC,CAAC;AAiDxC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAA2C,EAC3C,MAAoC,EACpC,IAAiC;IAEjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;QACrD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,KAAK,EACrB,MAAiC,EACjC,IAAgB,EACD,EAAE;QACjB,MAAM,YAAY,GAAmB;YACnC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,wBAAwB;YAChC,MAAM;SACP,CAAC;QACF,MAAM,IAAI,CAAC,cAAc,CACvB,YAAY,EACZ,OAAO,CAAC,YAAY,EACpB,mBAAmB,EACnB,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,OAAO,CAAC,YAAY,CACrB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,qBAAqB,CAAC,OAAO,CAAC,UAAU,EAAE;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,oBAAoB,EAAE,KAAK;QAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAC3B,SAAS,CACP,KAAK,EACL,GAAG,CAAC,YAAY;YACd,CAAC,CAAC,OAAO,CAAC,cAAc;YACxB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAClC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC;AAUD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,IAA8B;IAE9B,MAAM,YAAY,GAA8B;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,2EAA2E;QAC3E,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,4BAA4B;QACrC,GAAG,EAAE;YACH,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE,QAAQ;SACpB;KACF,CAAC;IAEF,MAAM,YAAY,GAAmB;QACnC,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,YAAY;KACrB,CAAC;IAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Returns true when the relay URL is local-only and should not trigger
3
+ * default public bootstrap publication by itself.
4
+ */
5
+ export declare function isLocalRelayUrl(relayUrl: string): boolean;
6
+ /**
7
+ * Returns true when the relay URL uses a websocket transport.
8
+ */
9
+ export declare function isWebsocketRelayUrl(relayUrl: string): boolean;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/transport/nostr-server/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmBzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAS7D"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Returns true when the relay URL is local-only and should not trigger
3
+ * default public bootstrap publication by itself.
4
+ */
5
+ export function isLocalRelayUrl(relayUrl) {
6
+ if (relayUrl.startsWith('memory://')) {
7
+ return true;
8
+ }
9
+ let url;
10
+ try {
11
+ url = new URL(relayUrl);
12
+ }
13
+ catch (_a) {
14
+ return false;
15
+ }
16
+ const hostname = url.hostname.toLowerCase();
17
+ return (hostname === 'localhost' ||
18
+ hostname === '127.0.0.1' ||
19
+ hostname === '::1' ||
20
+ hostname === '0.0.0.0');
21
+ }
22
+ /**
23
+ * Returns true when the relay URL uses a websocket transport.
24
+ */
25
+ export function isWebsocketRelayUrl(relayUrl) {
26
+ let url;
27
+ try {
28
+ url = new URL(relayUrl);
29
+ }
30
+ catch (_a) {
31
+ return false;
32
+ }
33
+ return url.protocol === 'ws:' || url.protocol === 'wss:';
34
+ }
35
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/transport/nostr-server/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,KAAK;QAClB,QAAQ,KAAK,SAAS,CACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;AAC3D,CAAC"}