@openclaw/buzz 2026.8.1-beta.2 → 2026.9.1-beta.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 (137) hide show
  1. package/dist/{adapter.runtime-D0uEmTwf.js → adapter.runtime-DA6guOQ_.js} +5 -5
  2. package/dist/api.js +2 -2
  3. package/dist/{channel-CCmyE6Yq.js → channel-BulZqShF.js} +234 -270
  4. package/dist/channel-plugin-api.js +1 -1
  5. package/dist/{directory-config-BXa3Vqzu.js → directory-config-BesCse0q.js} +1 -1
  6. package/dist/directory-contract-api.js +1 -1
  7. package/dist/qa-runner-api.js +2 -2
  8. package/dist/{room-membership-CNBlHjTj.js → room-membership-DSAkyE0a.js} +55 -5
  9. package/dist/setup-plugin-api.js +2 -2
  10. package/dist/{setup-surface-DCxlD2oY.js → setup-surface-BvQgEJ7O.js} +20 -42
  11. package/dist/{types-CPFsIZ5Z.js → types-BN_HOsnq.js} +18 -5
  12. package/node_modules/nostr-tools/lib/cjs/abstract-pool.js +7 -5
  13. package/node_modules/nostr-tools/lib/cjs/abstract-pool.js.map +2 -2
  14. package/node_modules/nostr-tools/lib/cjs/abstract-relay.js +6 -4
  15. package/node_modules/nostr-tools/lib/cjs/abstract-relay.js.map +2 -2
  16. package/node_modules/nostr-tools/lib/cjs/core.js +10 -6
  17. package/node_modules/nostr-tools/lib/cjs/core.js.map +2 -2
  18. package/node_modules/nostr-tools/lib/cjs/index.js +17 -11
  19. package/node_modules/nostr-tools/lib/cjs/index.js.map +2 -2
  20. package/node_modules/nostr-tools/lib/cjs/kinds.js +2 -0
  21. package/node_modules/nostr-tools/lib/cjs/kinds.js.map +2 -2
  22. package/node_modules/nostr-tools/lib/cjs/nip04.js.map +1 -1
  23. package/node_modules/nostr-tools/lib/cjs/nip10.js +2 -0
  24. package/node_modules/nostr-tools/lib/cjs/nip10.js.map +2 -2
  25. package/node_modules/nostr-tools/lib/cjs/nip13.js.map +1 -1
  26. package/node_modules/nostr-tools/lib/cjs/nip17.js +2 -0
  27. package/node_modules/nostr-tools/lib/cjs/nip17.js.map +2 -2
  28. package/node_modules/nostr-tools/lib/cjs/nip18.js +2 -0
  29. package/node_modules/nostr-tools/lib/cjs/nip18.js.map +2 -2
  30. package/node_modules/nostr-tools/lib/cjs/nip19.js.map +1 -1
  31. package/node_modules/nostr-tools/lib/cjs/nip21.js.map +1 -1
  32. package/node_modules/nostr-tools/lib/cjs/nip22.js +2 -0
  33. package/node_modules/nostr-tools/lib/cjs/nip22.js.map +2 -2
  34. package/node_modules/nostr-tools/lib/cjs/nip25.js +2 -0
  35. package/node_modules/nostr-tools/lib/cjs/nip25.js.map +2 -2
  36. package/node_modules/nostr-tools/lib/cjs/nip27.js.map +1 -1
  37. package/node_modules/nostr-tools/lib/cjs/nip28.js +2 -0
  38. package/node_modules/nostr-tools/lib/cjs/nip28.js.map +2 -2
  39. package/node_modules/nostr-tools/lib/cjs/nip29.js +288 -12
  40. package/node_modules/nostr-tools/lib/cjs/nip29.js.map +2 -2
  41. package/node_modules/nostr-tools/lib/cjs/nip44.js.map +1 -1
  42. package/node_modules/nostr-tools/lib/cjs/nip45.js +2 -0
  43. package/node_modules/nostr-tools/lib/cjs/nip45.js.map +2 -2
  44. package/node_modules/nostr-tools/lib/cjs/nip46.js +9 -5
  45. package/node_modules/nostr-tools/lib/cjs/nip46.js.map +2 -2
  46. package/node_modules/nostr-tools/lib/cjs/nip47.js +2 -0
  47. package/node_modules/nostr-tools/lib/cjs/nip47.js.map +2 -2
  48. package/node_modules/nostr-tools/lib/cjs/nip57.js +2 -0
  49. package/node_modules/nostr-tools/lib/cjs/nip57.js.map +2 -2
  50. package/node_modules/nostr-tools/lib/cjs/nip59.js +2 -0
  51. package/node_modules/nostr-tools/lib/cjs/nip59.js.map +2 -2
  52. package/node_modules/nostr-tools/lib/cjs/nip98.js +2 -0
  53. package/node_modules/nostr-tools/lib/cjs/nip98.js.map +2 -2
  54. package/node_modules/nostr-tools/lib/cjs/nipb0.js +2 -0
  55. package/node_modules/nostr-tools/lib/cjs/nipb0.js.map +2 -2
  56. package/node_modules/nostr-tools/lib/cjs/nipb7.js +2 -0
  57. package/node_modules/nostr-tools/lib/cjs/nipb7.js.map +2 -2
  58. package/node_modules/nostr-tools/lib/cjs/pool.js +9 -5
  59. package/node_modules/nostr-tools/lib/cjs/pool.js.map +2 -2
  60. package/node_modules/nostr-tools/lib/cjs/pure.js +10 -6
  61. package/node_modules/nostr-tools/lib/cjs/pure.js.map +2 -2
  62. package/node_modules/nostr-tools/lib/cjs/references.js.map +1 -1
  63. package/node_modules/nostr-tools/lib/cjs/relay.js +8 -4
  64. package/node_modules/nostr-tools/lib/cjs/relay.js.map +2 -2
  65. package/node_modules/nostr-tools/lib/cjs/signer.js +2 -0
  66. package/node_modules/nostr-tools/lib/cjs/signer.js.map +2 -2
  67. package/node_modules/nostr-tools/lib/cjs/utils.js +2 -0
  68. package/node_modules/nostr-tools/lib/cjs/utils.js.map +2 -2
  69. package/node_modules/nostr-tools/lib/cjs/wasm.js +10 -6
  70. package/node_modules/nostr-tools/lib/cjs/wasm.js.map +2 -2
  71. package/node_modules/nostr-tools/lib/esm/abstract-pool.js +7 -5
  72. package/node_modules/nostr-tools/lib/esm/abstract-pool.js.map +2 -2
  73. package/node_modules/nostr-tools/lib/esm/abstract-relay.js +6 -4
  74. package/node_modules/nostr-tools/lib/esm/abstract-relay.js.map +2 -2
  75. package/node_modules/nostr-tools/lib/esm/core.js +10 -6
  76. package/node_modules/nostr-tools/lib/esm/core.js.map +2 -2
  77. package/node_modules/nostr-tools/lib/esm/index.js +17 -11
  78. package/node_modules/nostr-tools/lib/esm/index.js.map +2 -2
  79. package/node_modules/nostr-tools/lib/esm/kinds.js +2 -0
  80. package/node_modules/nostr-tools/lib/esm/kinds.js.map +2 -2
  81. package/node_modules/nostr-tools/lib/esm/nip04.js.map +1 -1
  82. package/node_modules/nostr-tools/lib/esm/nip10.js +2 -0
  83. package/node_modules/nostr-tools/lib/esm/nip10.js.map +2 -2
  84. package/node_modules/nostr-tools/lib/esm/nip13.js.map +1 -1
  85. package/node_modules/nostr-tools/lib/esm/nip17.js +2 -0
  86. package/node_modules/nostr-tools/lib/esm/nip17.js.map +2 -2
  87. package/node_modules/nostr-tools/lib/esm/nip18.js +2 -0
  88. package/node_modules/nostr-tools/lib/esm/nip18.js.map +2 -2
  89. package/node_modules/nostr-tools/lib/esm/nip19.js.map +1 -1
  90. package/node_modules/nostr-tools/lib/esm/nip21.js.map +1 -1
  91. package/node_modules/nostr-tools/lib/esm/nip22.js +2 -0
  92. package/node_modules/nostr-tools/lib/esm/nip22.js.map +2 -2
  93. package/node_modules/nostr-tools/lib/esm/nip25.js +2 -0
  94. package/node_modules/nostr-tools/lib/esm/nip25.js.map +2 -2
  95. package/node_modules/nostr-tools/lib/esm/nip27.js.map +1 -1
  96. package/node_modules/nostr-tools/lib/esm/nip28.js +2 -0
  97. package/node_modules/nostr-tools/lib/esm/nip28.js.map +2 -2
  98. package/node_modules/nostr-tools/lib/esm/nip29.js +288 -12
  99. package/node_modules/nostr-tools/lib/esm/nip29.js.map +2 -2
  100. package/node_modules/nostr-tools/lib/esm/nip44.js.map +1 -1
  101. package/node_modules/nostr-tools/lib/esm/nip45.js +2 -0
  102. package/node_modules/nostr-tools/lib/esm/nip45.js.map +2 -2
  103. package/node_modules/nostr-tools/lib/esm/nip46.js +9 -5
  104. package/node_modules/nostr-tools/lib/esm/nip46.js.map +2 -2
  105. package/node_modules/nostr-tools/lib/esm/nip47.js +2 -0
  106. package/node_modules/nostr-tools/lib/esm/nip47.js.map +2 -2
  107. package/node_modules/nostr-tools/lib/esm/nip57.js +2 -0
  108. package/node_modules/nostr-tools/lib/esm/nip57.js.map +2 -2
  109. package/node_modules/nostr-tools/lib/esm/nip59.js +2 -0
  110. package/node_modules/nostr-tools/lib/esm/nip59.js.map +2 -2
  111. package/node_modules/nostr-tools/lib/esm/nip98.js +2 -0
  112. package/node_modules/nostr-tools/lib/esm/nip98.js.map +2 -2
  113. package/node_modules/nostr-tools/lib/esm/nipb0.js +2 -0
  114. package/node_modules/nostr-tools/lib/esm/nipb0.js.map +2 -2
  115. package/node_modules/nostr-tools/lib/esm/nipb7.js +2 -0
  116. package/node_modules/nostr-tools/lib/esm/nipb7.js.map +2 -2
  117. package/node_modules/nostr-tools/lib/esm/pool.js +9 -5
  118. package/node_modules/nostr-tools/lib/esm/pool.js.map +2 -2
  119. package/node_modules/nostr-tools/lib/esm/pure.js +10 -6
  120. package/node_modules/nostr-tools/lib/esm/pure.js.map +2 -2
  121. package/node_modules/nostr-tools/lib/esm/references.js.map +1 -1
  122. package/node_modules/nostr-tools/lib/esm/relay.js +8 -4
  123. package/node_modules/nostr-tools/lib/esm/relay.js.map +2 -2
  124. package/node_modules/nostr-tools/lib/esm/signer.js +2 -0
  125. package/node_modules/nostr-tools/lib/esm/signer.js.map +2 -2
  126. package/node_modules/nostr-tools/lib/esm/utils.js +2 -0
  127. package/node_modules/nostr-tools/lib/esm/utils.js.map +2 -2
  128. package/node_modules/nostr-tools/lib/esm/wasm.js +10 -6
  129. package/node_modules/nostr-tools/lib/esm/wasm.js.map +2 -2
  130. package/node_modules/nostr-tools/lib/nostr.bundle.js +17 -11
  131. package/node_modules/nostr-tools/lib/nostr.bundle.js.map +2 -2
  132. package/node_modules/nostr-tools/lib/types/core.d.ts +5 -0
  133. package/node_modules/nostr-tools/lib/types/nip29.d.ts +243 -3
  134. package/node_modules/nostr-tools/lib/types/nip29.test.d.ts +1 -0
  135. package/node_modules/nostr-tools/package.json +1 -1
  136. package/openclaw.plugin.json +24 -0
  137. package/package.json +5 -5
@@ -24,6 +24,11 @@ export interface VerifiedEvent extends Event {
24
24
  [verifiedSymbol]: true;
25
25
  }
26
26
  export declare function validateEvent<T>(event: T): event is T & UnsignedEvent;
27
+ /**
28
+ * Compare events in reverse-chronological order by the `created_at` timestamp,
29
+ * and then by the event `id` (lexicographically) in case of ties.
30
+ */
31
+ export declare function compareEvents(a: Event, b: Event): number;
27
32
  /**
28
33
  * Sort events in reverse-chronological order by the `created_at` timestamp,
29
34
  * and then by the event `id` (lexicographically) in case of ties.
@@ -19,9 +19,16 @@ export type GroupMetadata = {
19
19
  pubkey: string;
20
20
  name?: string;
21
21
  picture?: string;
22
+ banner?: string;
22
23
  about?: string;
23
- isPublic?: boolean;
24
- isOpen?: boolean;
24
+ isPrivate?: boolean;
25
+ isRestricted?: boolean;
26
+ isHidden?: boolean;
27
+ isClosed?: boolean;
28
+ hasLiveKit?: boolean;
29
+ supportedKinds?: string[];
30
+ parent?: string;
31
+ children?: string[];
25
32
  };
26
33
  /**
27
34
  * Represents a NIP29 group reference.
@@ -63,7 +70,8 @@ export declare enum GroupAdminPermission {
63
70
  PutUser = "put-user",
64
71
  CreateGroup = "create-group",
65
72
  DeleteGroup = "delete-group",
66
- CreateInvite = "create-invite"
73
+ CreateInvite = "create-invite",
74
+ UpdatePinList = "update-pin-list"
67
75
  }
68
76
  /**
69
77
  * Generates a group metadata event template.
@@ -196,6 +204,57 @@ export declare function fetchGroupMembersEvent({ pool, groupReference, relayInfo
196
204
  normalizedRelayURL?: string;
197
205
  relayInformation?: RelayInformation;
198
206
  }): Promise<Event>;
207
+ /**
208
+ * Fetches the group roles event from the specified pool.
209
+ *
210
+ * @param {Object} options - The options object.
211
+ * @param {AbstractSimplePool} options.pool - The pool object.
212
+ * @param {GroupReference} options.groupReference - The group reference object.
213
+ * @param {string} [options.normalizedRelayURL] - The normalized relay URL.
214
+ * @param {RelayInformation} [options.relayInformation] - The relay information object.
215
+ * @returns {Promise<Event>} The group roles event that can be parsed later to get the group roles object.
216
+ * @throws {Error} If the group roles event is not found.
217
+ */
218
+ export declare function fetchGroupRolesEvent({ pool, groupReference, relayInformation, normalizedRelayURL, }: {
219
+ pool: AbstractSimplePool;
220
+ groupReference: GroupReference;
221
+ normalizedRelayURL?: string;
222
+ relayInformation?: RelayInformation;
223
+ }): Promise<Event>;
224
+ /**
225
+ * Fetches the group livekit participants event from the specified pool.
226
+ *
227
+ * @param {Object} options - The options object.
228
+ * @param {AbstractSimplePool} options.pool - The pool object.
229
+ * @param {GroupReference} options.groupReference - The group reference object.
230
+ * @param {string} [options.normalizedRelayURL] - The normalized relay URL.
231
+ * @param {RelayInformation} [options.relayInformation] - The relay information object.
232
+ * @returns {Promise<Event>} The group livekit participants event that can be parsed later to get the participants.
233
+ * @throws {Error} If the group livekit participants event is not found.
234
+ */
235
+ export declare function fetchGroupLivekitParticipantsEvent({ pool, groupReference, relayInformation, normalizedRelayURL, }: {
236
+ pool: AbstractSimplePool;
237
+ groupReference: GroupReference;
238
+ normalizedRelayURL?: string;
239
+ relayInformation?: RelayInformation;
240
+ }): Promise<Event>;
241
+ /**
242
+ * Fetches the group pinned events event from the specified pool.
243
+ *
244
+ * @param {Object} options - The options object.
245
+ * @param {AbstractSimplePool} options.pool - The pool object.
246
+ * @param {GroupReference} options.groupReference - The group reference object.
247
+ * @param {string} [options.normalizedRelayURL] - The normalized relay URL.
248
+ * @param {RelayInformation} [options.relayInformation] - The relay information object.
249
+ * @returns {Promise<Event>} The group pinned events event that can be parsed later to get the pinned events.
250
+ * @throws {Error} If the group pinned events event is not found.
251
+ */
252
+ export declare function fetchGroupPinnedEventsEvent({ pool, groupReference, relayInformation, normalizedRelayURL, }: {
253
+ pool: AbstractSimplePool;
254
+ groupReference: GroupReference;
255
+ normalizedRelayURL?: string;
256
+ relayInformation?: RelayInformation;
257
+ }): Promise<Event>;
199
258
  /**
200
259
  * Parses a group members event and returns an array of GroupMember objects.
201
260
  * @param event - The event to parse.
@@ -203,6 +262,187 @@ export declare function fetchGroupMembersEvent({ pool, groupReference, relayInfo
203
262
  * @throws Throws an error if the group members event is invalid.
204
263
  */
205
264
  export declare function parseGroupMembersEvent(event: Event): GroupMember[];
265
+ /**
266
+ * Represents a NIP29 group role.
267
+ */
268
+ export type GroupRole = {
269
+ name: string;
270
+ description?: string;
271
+ };
272
+ /**
273
+ * Generates an event template for the roles supported by a group.
274
+ *
275
+ * @param group - The group object.
276
+ * @param roles - An array of group roles.
277
+ * @returns The generated event template with the group roles that can be signed later.
278
+ */
279
+ export declare function generateGroupRolesEventTemplate(group: Group, roles: GroupRole[]): EventTemplate;
280
+ /**
281
+ * Validates a group roles event.
282
+ *
283
+ * @param event - The event to validate.
284
+ * @returns True if the event is a valid group roles event, false otherwise.
285
+ */
286
+ export declare function validateGroupRolesEvent(event: Event): boolean;
287
+ /**
288
+ * Parses a group roles event and returns an array of GroupRole objects.
289
+ *
290
+ * @param event - The event to parse.
291
+ * @returns An array of GroupRole objects.
292
+ * @throws Throws an error if the group roles event is invalid.
293
+ */
294
+ export declare function parseGroupRolesEvent(event: Event): GroupRole[];
295
+ /**
296
+ * Generates an event template for the livekit participants of a group.
297
+ *
298
+ * @param group - The group object.
299
+ * @param participants - An array of pubkeys currently live in the group's AV rooms.
300
+ * @returns The generated event template with the livekit participants that can be signed later.
301
+ */
302
+ export declare function generateGroupLivekitParticipantsEventTemplate(group: Group, participants: string[]): EventTemplate;
303
+ /**
304
+ * Validates a group livekit participants event.
305
+ *
306
+ * @param event - The event to validate.
307
+ * @returns True if the event is a valid group livekit participants event, false otherwise.
308
+ */
309
+ export declare function validateGroupLivekitParticipantsEvent(event: Event): boolean;
310
+ /**
311
+ * Parses a group livekit participants event and returns an array of participant pubkeys.
312
+ *
313
+ * @param event - The event to parse.
314
+ * @returns An array of participant pubkeys.
315
+ * @throws Throws an error if the group livekit participants event is invalid.
316
+ */
317
+ export declare function parseGroupLivekitParticipantsEvent(event: Event): string[];
318
+ /**
319
+ * Represents a reference to a pinned event in a NIP29 group.
320
+ */
321
+ export type GroupPinnedEvent = {
322
+ type: 'e' | 'a';
323
+ value: string;
324
+ };
325
+ /**
326
+ * Generates an event template for the events pinned in a group.
327
+ *
328
+ * @param group - The group object.
329
+ * @param pinnedEvents - An array of references to pinned events, in display order.
330
+ * @returns The generated event template with the pinned events that can be signed later.
331
+ */
332
+ export declare function generateGroupPinnedEventsEventTemplate(group: Group, pinnedEvents: GroupPinnedEvent[]): EventTemplate;
333
+ /**
334
+ * Validates a group pinned events event.
335
+ *
336
+ * @param event - The event to validate.
337
+ * @returns True if the event is a valid group pinned events event, false otherwise.
338
+ */
339
+ export declare function validateGroupPinnedEventsEvent(event: Event): boolean;
340
+ /**
341
+ * Parses a group pinned events event and returns an array of GroupPinnedEvent objects.
342
+ *
343
+ * @param event - The event to parse.
344
+ * @returns An array of GroupPinnedEvent objects.
345
+ * @throws Throws an error if the group pinned events event is invalid.
346
+ */
347
+ export declare function parseGroupPinnedEventsEvent(event: Event): GroupPinnedEvent[];
348
+ /**
349
+ * Generates a `put-user` (kind:9000) moderation event template.
350
+ *
351
+ * @param groupId - The id of the group.
352
+ * @param pubkey - The pubkey of the user to add or update.
353
+ * @param roles - Optional roles to assign to the user.
354
+ * @param reason - Optional reason for the action.
355
+ * @param previous - Optional timeline references.
356
+ * @returns The generated event template that can be signed later.
357
+ */
358
+ export declare function generatePutUserEventTemplate(groupId: string, pubkey: string, roles?: string[], reason?: string, previous?: string[]): EventTemplate;
359
+ /**
360
+ * Generates a `remove-user` (kind:9001) moderation event template.
361
+ *
362
+ * @param groupId - The id of the group.
363
+ * @param pubkey - The pubkey of the user to remove.
364
+ * @param reason - Optional reason for the action.
365
+ * @param previous - Optional timeline references.
366
+ * @returns The generated event template that can be signed later.
367
+ */
368
+ export declare function generateRemoveUserEventTemplate(groupId: string, pubkey: string, reason?: string, previous?: string[]): EventTemplate;
369
+ /**
370
+ * Generates an `edit-metadata` (kind:9002) moderation event template carrying
371
+ * all the metadata fields of the group.
372
+ *
373
+ * @param group - The group object with the updated metadata.
374
+ * @param reason - Optional reason for the action.
375
+ * @param previous - Optional timeline references.
376
+ * @returns The generated event template that can be signed later.
377
+ */
378
+ export declare function generateEditGroupMetadataEventTemplate(group: Group, reason?: string, previous?: string[]): EventTemplate;
379
+ /**
380
+ * Generates a `delete-event` (kind:9005) moderation event template.
381
+ *
382
+ * @param groupId - The id of the group.
383
+ * @param eventId - The id of the event to delete.
384
+ * @param reason - Optional reason for the action.
385
+ * @param previous - Optional timeline references.
386
+ * @returns The generated event template that can be signed later.
387
+ */
388
+ export declare function generateDeleteEventEventTemplate(groupId: string, eventId: string, reason?: string, previous?: string[]): EventTemplate;
389
+ /**
390
+ * Generates a `create-group` (kind:9007) moderation event template.
391
+ *
392
+ * @param groupId - The id of the group to create.
393
+ * @param reason - Optional reason for the action.
394
+ * @param previous - Optional timeline references.
395
+ * @returns The generated event template that can be signed later.
396
+ */
397
+ export declare function generateCreateGroupEventTemplate(groupId: string, reason?: string, previous?: string[]): EventTemplate;
398
+ /**
399
+ * Generates a `delete-group` (kind:9008) moderation event template.
400
+ *
401
+ * @param groupId - The id of the group to delete.
402
+ * @param reason - Optional reason for the action.
403
+ * @param previous - Optional timeline references.
404
+ * @returns The generated event template that can be signed later.
405
+ */
406
+ export declare function generateDeleteGroupEventTemplate(groupId: string, reason?: string, previous?: string[]): EventTemplate;
407
+ /**
408
+ * Generates a `create-invite` (kind:9009) moderation event template.
409
+ *
410
+ * @param groupId - The id of the group.
411
+ * @param code - An arbitrary invite code.
412
+ * @param reason - Optional reason for the action.
413
+ * @param previous - Optional timeline references.
414
+ * @returns The generated event template that can be signed later.
415
+ */
416
+ export declare function generateCreateInviteEventTemplate(groupId: string, code: string, reason?: string, previous?: string[]): EventTemplate;
417
+ /**
418
+ * Generates an `update-pin-list` (kind:9010) moderation event template.
419
+ *
420
+ * @param groupId - The id of the group.
421
+ * @param pinnedEvents - The full ordered list of pinned events.
422
+ * @param reason - Optional reason for the action.
423
+ * @param previous - Optional timeline references.
424
+ * @returns The generated event template that can be signed later.
425
+ */
426
+ export declare function generateUpdatePinListEventTemplate(groupId: string, pinnedEvents: GroupPinnedEvent[], reason?: string, previous?: string[]): EventTemplate;
427
+ /**
428
+ * Generates a group join request (kind:9021) event template.
429
+ *
430
+ * @param groupId - The id of the group.
431
+ * @param inviteCode - Optional invite code to be preauthorized by the relay.
432
+ * @param reason - Optional reason for the request.
433
+ * @param previous - Optional timeline references.
434
+ * @returns The generated event template that can be signed later.
435
+ */
436
+ export declare function generateGroupJoinRequestEventTemplate(groupId: string, inviteCode?: string, reason?: string, previous?: string[]): EventTemplate;
437
+ /**
438
+ * Generates a group leave request (kind:9022) event template.
439
+ *
440
+ * @param groupId - The id of the group.
441
+ * @param reason - Optional reason for the request.
442
+ * @param previous - Optional timeline references.
443
+ * @returns The generated event template that can be signed later.
444
+ */
445
+ export declare function generateGroupLeaveRequestEventTemplate(groupId: string, reason?: string, previous?: string[]): EventTemplate;
206
446
  /**
207
447
  * Fetches and parses the group metadata event, group admins event, and group members event from the specified pool.
208
448
  * If the normalized relay URL is not provided, it will be obtained using the group reference.
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "nostr-tools",
4
- "version": "2.24.1",
4
+ "version": "2.24.2",
5
5
  "description": "Tools for making a Nostr client.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -29,6 +29,9 @@
29
29
  "configWrites": {
30
30
  "type": "boolean"
31
31
  },
32
+ "responsePrefix": {
33
+ "type": "string"
34
+ },
32
35
  "markdown": {
33
36
  "type": "object",
34
37
  "properties": {
@@ -294,6 +297,27 @@
294
297
  },
295
298
  "requireMention": {
296
299
  "type": "boolean"
300
+ },
301
+ "groupPolicy": {
302
+ "type": "string",
303
+ "enum": [
304
+ "open",
305
+ "disabled",
306
+ "allowlist"
307
+ ]
308
+ },
309
+ "groupAllowFrom": {
310
+ "type": "array",
311
+ "items": {
312
+ "anyOf": [
313
+ {
314
+ "type": "string"
315
+ },
316
+ {
317
+ "type": "number"
318
+ }
319
+ ]
320
+ }
297
321
  }
298
322
  },
299
323
  "additionalProperties": false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/buzz",
3
- "version": "2026.8.1-beta.2",
3
+ "version": "2026.9.1-beta.1",
4
4
  "description": "Connect OpenClaw agents to Buzz rooms",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,11 +8,11 @@
8
8
  },
9
9
  "type": "module",
10
10
  "dependencies": {
11
- "nostr-tools": "2.24.1",
11
+ "nostr-tools": "2.24.2",
12
12
  "zod": "4.4.3"
13
13
  },
14
14
  "peerDependencies": {
15
- "openclaw": ">=2026.8.1-beta.2"
15
+ "openclaw": ">=2026.9.1-beta.1"
16
16
  },
17
17
  "peerDependenciesMeta": {
18
18
  "openclaw": {
@@ -81,10 +81,10 @@
81
81
  "minHostVersion": ">=2026.7.2"
82
82
  },
83
83
  "compat": {
84
- "pluginApi": ">=2026.8.1-beta.2"
84
+ "pluginApi": ">=2026.9.1-beta.1"
85
85
  },
86
86
  "build": {
87
- "openclawVersion": "2026.8.1-beta.2"
87
+ "openclawVersion": "2026.9.1-beta.1"
88
88
  },
89
89
  "release": {
90
90
  "publishToClawHub": true,