aurival 0.1.7 → 0.2.0

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/events.d.ts CHANGED
@@ -15,11 +15,27 @@ export interface Chat {
15
15
  id: string;
16
16
  type: string;
17
17
  name: string | null;
18
+ /**
19
+ * Live participants, bots included. `null` when the wire frame omits
20
+ * `member_count` — never defaulted to 0 (a real empty chat is still a
21
+ * number, `null` means "the frame didn't say"). Kept snake_case, matching
22
+ * this file's existing wire field convention (`sent_at`, `reply_to`), and
23
+ * `null` (not `undefined`) to match how every other absent field in this
24
+ * file is represented.
25
+ */
26
+ member_count: number | null;
18
27
  }
19
28
  export interface Command {
20
29
  name: string;
21
30
  description: string;
22
31
  }
32
+ export interface Message {
33
+ id: string;
34
+ text: string;
35
+ sent_at: string;
36
+ sender: User | null;
37
+ reply_to: string | null;
38
+ }
23
39
  export interface EventInit {
24
40
  id: string;
25
41
  type: string;
@@ -40,30 +56,104 @@ export declare class Event {
40
56
  */
41
57
  static fromFrame(frame: Record<string, unknown>): Event;
42
58
  }
59
+ /**
60
+ * `@` + a user's `handle`, template-literals straight into `text` via
61
+ * `toString()`. `entry` is the wire shape `send()`'s `mentions` array wants.
62
+ * Braces are notation only — `mention(user)` never emits `{handle}`.
63
+ */
64
+ export declare class Mention {
65
+ readonly token: string;
66
+ readonly entry: {
67
+ user: string;
68
+ };
69
+ constructor(user: User);
70
+ toString(): string;
71
+ }
72
+ export declare function mention(user: User): Mention;
73
+ /** What `send(..., { mentions })` accepts: a `Mention`, a full `User`, or a raw `{ user: 'usr_…' }`. */
74
+ export type MentionLike = Mention | User | {
75
+ user: string;
76
+ };
77
+ /**
78
+ * One page of `GET /v1/chats/{chat}/members` (CONTRACT-V1 §4, §5.0.1). No
79
+ * auto-loading iterator. `MemberPage` is SDK-constructed — decoded from the
80
+ * wire `list` envelope (`{object, data, has_more, next_cursor}`), never
81
+ * itself the wire shape — so it follows this file's camelCase-for-SDK-types
82
+ * convention (`chatFromWire`/`messageFromWire` output camelCase-free records
83
+ * only because their wire fields already happen to be single words or
84
+ * `sent_at`/`reply_to`-style; a type we construct ourselves, like this one,
85
+ * is not a wire passthrough and gets `hasMore`/`nextCursor`).
86
+ *
87
+ * `hasMore` is read straight off the envelope, never inferred from a short
88
+ * page or from `nextCursor` (CONTRACT-V1 §4: that inference is "the classic
89
+ * off-by-one that ships in every SDK"). `nextCursor` is `null` whenever
90
+ * `hasMore` is `false` (§2.1).
91
+ */
92
+ export interface MemberPage {
93
+ users: User[];
94
+ hasMore: boolean;
95
+ nextCursor: string | null;
96
+ }
43
97
  export interface ContextInit {
44
98
  command: string;
45
99
  arguments: string;
46
100
  chat: Chat;
47
- sender: User;
101
+ sender: User | null;
102
+ /** Populated only for `member.joined` / `member.left`. */
103
+ user: User | null;
104
+ /** Populated only for `bot.added` / `bot.removed`. */
105
+ actor: User | null;
106
+ /** Populated only for `reaction.added`. */
107
+ emoji: string | null;
48
108
  event: Event;
49
- message: string | null;
109
+ message: Message | null;
50
110
  http: HttpClient;
51
111
  }
52
112
  /**
53
- * What a command handler receives. Built by `bot.ts`'s dispatch closure from one
54
- * `Event` — `Socket` never constructs one.
113
+ * What a handler receives. Built by `bot.ts`'s dispatch closure from one
114
+ * `Event` — `Socket` never constructs one. ONE class for every event type
115
+ * (R6): `chat`/`sender`/`user`/`actor`/`message`/`emoji` are each populated
116
+ * only for the event types that carry them —
117
+ *
118
+ * - `command.invoked`: `chat`, `sender`, `message`
119
+ * - `member.joined` / `member.left`: `chat`, `user`
120
+ * - `bot.added` / `bot.removed`: `chat`, `actor`
121
+ * - `reaction.added`: `chat`, `sender`, `message`, `emoji`
122
+ *
123
+ * — everything else on a given `Context` is `null`. An unhandled or future
124
+ * event type never throws building one: every field is read defensively off
125
+ * `event.data` and falls back to `null`.
55
126
  */
56
127
  export declare class Context {
57
128
  #private;
58
129
  readonly command: string;
59
130
  readonly arguments: string;
60
131
  readonly chat: Chat;
61
- readonly sender: User;
132
+ readonly sender: User | null;
133
+ readonly user: User | null;
134
+ readonly actor: User | null;
135
+ readonly emoji: string | null;
62
136
  readonly event: Event;
63
- readonly message: string | null;
137
+ readonly message: Message | null;
64
138
  constructor(init: ContextInit);
65
139
  /** Build straight from a `command.invoked` event's raw `data`. */
66
140
  static fromEvent(event: Event, http: HttpClient): Context;
141
+ /**
142
+ * Build from any non-`command.invoked` event `bot.on(type, fn)` registered
143
+ * for — `member.joined`/`member.left`, `bot.added`/`bot.removed`,
144
+ * `reaction.added`, or a type this SDK does not yet know the shape of.
145
+ *
146
+ * For a KNOWN type, the field set is pinned by CONTRACT-V1 §3.1: only the
147
+ * fields that type actually carries are read off `data`, and every other
148
+ * field is forced `null` even if the payload happens to carry a stray one
149
+ * (a `member.joined` frame with a stray `sender` must not populate
150
+ * `ctx.sender` — matches python). For a type this SDK does not recognize,
151
+ * every field is read defensively and opportunistically — there is no
152
+ * contract to pin it to, so whatever the frame happens to carry is
153
+ * surfaced rather than discarded. `chat` itself falls back to an empty one
154
+ * rather than throwing, for both cases.
155
+ */
156
+ static fromGenericEvent(event: Event, http: HttpClient): Context;
67
157
  /**
68
158
  * `POST /v1/messages`, quoting the message that invoked the command
69
159
  * (BA-R27, reversing SDK-30). One method, no flag. When the event carried no
@@ -73,5 +163,19 @@ export declare class Context {
73
163
  * `HttpClient.request` itself.
74
164
  */
75
165
  reply(text: string): Promise<Record<string, unknown>>;
166
+ /** `POST /v1/chats/{chat}/typing` — `is_typing` only, no `state` spelling. */
167
+ typing(isTyping: boolean): Promise<void>;
168
+ /** Sends `true` on entry, `false` on exit — ALWAYS, including on throw. */
169
+ withTyping<T>(fn: () => Promise<T>): Promise<T>;
170
+ edit(message: Message | string, text: string): Promise<Record<string, unknown>>;
171
+ delete(message: Message | string): Promise<void>;
172
+ react(message: Message | string, emoji: string): Promise<void>;
173
+ unreact(message: Message | string, emoji: string): Promise<void>;
174
+ send(chat: Chat | string, text: string, options?: {
175
+ mentions?: MentionLike[];
176
+ }): Promise<Record<string, unknown>>;
177
+ members(chat?: Chat | string, options?: {
178
+ cursor?: string;
179
+ }): Promise<MemberPage>;
76
180
  }
77
181
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,qBAAa,KAAK;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC,YAAY,IAAI,EAAE,SAAS,EAM1B;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAStD;CACF;AAeD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,OAAO;;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhC,YAAY,IAAI,EAAE,WAAW,EAQ5B;IAED,kEAAkE;IAClE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAexD;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAE1D;CACF"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js CHANGED
@@ -6,6 +6,7 @@
6
6
  * network-shaped — never the seed, a token, or the `Auth` object (SDK-33).
7
7
  */
8
8
  import { randomUUID } from 'node:crypto';
9
+ import { AurivalError } from './errors.js';
9
10
  function asRecord(value) {
10
11
  return typeof value === 'object' && value !== null && !Array.isArray(value)
11
12
  ? value
@@ -47,21 +48,116 @@ function userFromWire(d) {
47
48
  }
48
49
  function chatFromWire(d) {
49
50
  const name = d['name'];
51
+ const memberCount = d['member_count'];
50
52
  return {
51
53
  id: asString(d['id']),
52
54
  type: asString(d['type']),
53
55
  name: typeof name === 'string' ? name : null,
56
+ member_count: typeof memberCount === 'number' && Number.isFinite(memberCount) ? memberCount : null,
54
57
  };
55
58
  }
59
+ function messageFromWire(d) {
60
+ const replyTo = d['reply_to'];
61
+ const sender = asRecord(d['sender']);
62
+ return {
63
+ id: asString(d['id']),
64
+ text: asString(d['text']),
65
+ sent_at: asString(d['sent_at']),
66
+ sender: sender ? userFromWire(sender) : null,
67
+ reply_to: typeof replyTo === 'string' ? replyTo : null,
68
+ };
69
+ }
70
+ /**
71
+ * `@` + a user's `handle`, template-literals straight into `text` via
72
+ * `toString()`. `entry` is the wire shape `send()`'s `mentions` array wants.
73
+ * Braces are notation only — `mention(user)` never emits `{handle}`.
74
+ */
75
+ export class Mention {
76
+ token;
77
+ entry;
78
+ constructor(user) {
79
+ this.token = '@' + user.handle;
80
+ this.entry = { user: user.id };
81
+ }
82
+ toString() {
83
+ return this.token;
84
+ }
85
+ }
86
+ export function mention(user) {
87
+ return new Mention(user);
88
+ }
89
+ function mentionEntry(m) {
90
+ if (m instanceof Mention)
91
+ return m.entry;
92
+ if (typeof m.id === 'string')
93
+ return { user: m.id };
94
+ return { user: m.user };
95
+ }
96
+ /** Accepts either a `Chat` or a raw chat id string — Context actions take both. */
97
+ function chatId(c) {
98
+ return typeof c === 'string' ? c : c.id;
99
+ }
100
+ /** Accepts either a `Message` or a raw message id string — Context actions take both. */
101
+ function messageId(m) {
102
+ return typeof m === 'string' ? m : m.id;
103
+ }
104
+ function memberPageFromEnvelope(envelope) {
105
+ const rows = envelope['data'];
106
+ const users = [];
107
+ if (Array.isArray(rows)) {
108
+ for (const row of rows) {
109
+ const record = asRecord(row);
110
+ if (record)
111
+ users.push(userFromWire(record));
112
+ }
113
+ }
114
+ const hasMore = envelope['has_more'] === true;
115
+ const cursor = envelope['next_cursor'];
116
+ return {
117
+ users,
118
+ hasMore,
119
+ nextCursor: hasMore && typeof cursor === 'string' ? cursor : null,
120
+ };
121
+ }
122
+ /**
123
+ * Which `Context` fields a KNOWN generic event type actually carries
124
+ * (CONTRACT-V1 §3.1). Any field not in a type's set is forced `null` when
125
+ * building that type's `Context`, even if the wire payload happens to carry
126
+ * a stray one — the payload shape for a known type is pinned by contract, so
127
+ * JS must not surface what python's identical build does not (senior review,
128
+ * merge gate). A type not in this map is unknown to this SDK and gets
129
+ * opportunistic, unpinned population instead — see `fromGenericEvent`.
130
+ */
131
+ const KNOWN_GENERIC_EVENT_FIELDS = {
132
+ 'member.joined': new Set(['user']),
133
+ 'member.left': new Set(['user']),
134
+ 'bot.added': new Set(['actor']),
135
+ 'bot.removed': new Set(['actor']),
136
+ 'reaction.added': new Set(['sender', 'message', 'emoji']),
137
+ };
56
138
  /**
57
- * What a command handler receives. Built by `bot.ts`'s dispatch closure from one
58
- * `Event` — `Socket` never constructs one.
139
+ * What a handler receives. Built by `bot.ts`'s dispatch closure from one
140
+ * `Event` — `Socket` never constructs one. ONE class for every event type
141
+ * (R6): `chat`/`sender`/`user`/`actor`/`message`/`emoji` are each populated
142
+ * only for the event types that carry them —
143
+ *
144
+ * - `command.invoked`: `chat`, `sender`, `message`
145
+ * - `member.joined` / `member.left`: `chat`, `user`
146
+ * - `bot.added` / `bot.removed`: `chat`, `actor`
147
+ * - `reaction.added`: `chat`, `sender`, `message`, `emoji`
148
+ *
149
+ * — everything else on a given `Context` is `null`. An unhandled or future
150
+ * event type never throws building one: every field is read defensively off
151
+ * `event.data` and falls back to `null`.
59
152
  */
60
153
  export class Context {
61
154
  command;
62
155
  arguments;
63
156
  chat;
64
157
  sender;
158
+ user;
159
+ actor;
160
+ emoji;
65
161
  event;
66
162
  message;
67
163
  #http;
@@ -70,6 +166,9 @@ export class Context {
70
166
  this.arguments = init.arguments;
71
167
  this.chat = init.chat;
72
168
  this.sender = init.sender;
169
+ this.user = init.user;
170
+ this.actor = init.actor;
171
+ this.emoji = init.emoji;
73
172
  this.event = init.event;
74
173
  this.message = init.message;
75
174
  this.#http = init.http;
@@ -77,17 +176,95 @@ export class Context {
77
176
  /** Build straight from a `command.invoked` event's raw `data`. */
78
177
  static fromEvent(event, http) {
79
178
  const data = event.data;
179
+ const invokingMessage = asRecord(data['invoking_message']);
80
180
  const message = data['message'];
181
+ let resolvedMessage;
182
+ if (invokingMessage) {
183
+ // BA-R42: the invoking message travels with the event as a full object
184
+ // under `invoking_message`. Prefer that.
185
+ resolvedMessage = messageFromWire(invokingMessage);
186
+ }
187
+ else if (typeof message === 'string') {
188
+ // `message` (the bare id string) is UNCHANGED wire compatibility — an
189
+ // old server that has not deployed BA-R42 yet sends only that string,
190
+ // so we fall back to an id-only Message rather than null, keeping a
191
+ // new SDK working against an old server.
192
+ resolvedMessage = { id: message, text: '', sent_at: '', sender: null, reply_to: null };
193
+ }
194
+ else {
195
+ resolvedMessage = null;
196
+ }
81
197
  return new Context({
82
198
  command: asString(data['command']),
83
199
  arguments: asString(data['arguments']),
84
200
  chat: chatFromWire(asRecord(data['chat']) ?? {}),
85
201
  sender: userFromWire(asRecord(data['sender']) ?? {}),
202
+ user: null,
203
+ actor: null,
204
+ emoji: null,
86
205
  event,
87
- // The `msg_` id of the message the bot was addressed with
88
- // (botview.go's CommandInvokedData.Message). `reply` quotes it (BA-R27).
89
- // An absent field is null, not a crash — then the reply floats free.
90
- message: typeof message === 'string' ? message : null,
206
+ message: resolvedMessage,
207
+ http,
208
+ });
209
+ }
210
+ /**
211
+ * Build from any non-`command.invoked` event `bot.on(type, fn)` registered
212
+ * for — `member.joined`/`member.left`, `bot.added`/`bot.removed`,
213
+ * `reaction.added`, or a type this SDK does not yet know the shape of.
214
+ *
215
+ * For a KNOWN type, the field set is pinned by CONTRACT-V1 §3.1: only the
216
+ * fields that type actually carries are read off `data`, and every other
217
+ * field is forced `null` even if the payload happens to carry a stray one
218
+ * (a `member.joined` frame with a stray `sender` must not populate
219
+ * `ctx.sender` — matches python). For a type this SDK does not recognize,
220
+ * every field is read defensively and opportunistically — there is no
221
+ * contract to pin it to, so whatever the frame happens to carry is
222
+ * surfaced rather than discarded. `chat` itself falls back to an empty one
223
+ * rather than throwing, for both cases.
224
+ */
225
+ static fromGenericEvent(event, http) {
226
+ const data = event.data;
227
+ const chat = chatFromWire(asRecord(data['chat']) ?? {});
228
+ const known = KNOWN_GENERIC_EVENT_FIELDS[event.type];
229
+ if (known !== undefined) {
230
+ const sender = known.has('sender') ? asRecord(data['sender']) : null;
231
+ const user = known.has('user') ? asRecord(data['user']) : null;
232
+ const actor = known.has('actor') ? asRecord(data['actor']) : null;
233
+ const messageId = known.has('message') ? data['message'] : undefined;
234
+ const emoji = known.has('emoji') ? data['emoji'] : undefined;
235
+ return new Context({
236
+ command: '',
237
+ arguments: '',
238
+ chat,
239
+ sender: sender ? userFromWire(sender) : null,
240
+ user: user ? userFromWire(user) : null,
241
+ actor: actor ? userFromWire(actor) : null,
242
+ emoji: typeof emoji === 'string' ? emoji : null,
243
+ event,
244
+ message: typeof messageId === 'string'
245
+ ? { id: messageId, text: '', sent_at: '', sender: null, reply_to: null }
246
+ : null,
247
+ http,
248
+ });
249
+ }
250
+ // Unknown type: opportunistic population, nothing pinned.
251
+ const sender = asRecord(data['sender']);
252
+ const user = asRecord(data['user']);
253
+ const actor = asRecord(data['actor']);
254
+ const messageId = data['message'];
255
+ const emoji = data['emoji'];
256
+ return new Context({
257
+ command: '',
258
+ arguments: '',
259
+ chat,
260
+ sender: sender ? userFromWire(sender) : null,
261
+ user: user ? userFromWire(user) : null,
262
+ actor: actor ? userFromWire(actor) : null,
263
+ emoji: typeof emoji === 'string' ? emoji : null,
264
+ event,
265
+ message: typeof messageId === 'string'
266
+ ? { id: messageId, text: '', sent_at: '', sender: null, reply_to: null }
267
+ : null,
91
268
  http,
92
269
  });
93
270
  }
@@ -100,7 +277,49 @@ export class Context {
100
277
  * `HttpClient.request` itself.
101
278
  */
102
279
  async reply(text) {
103
- return this.#http.sendMessage(this.chat.id, text, randomUUID(), this.message);
280
+ return this.#http.sendMessage(this.chat.id, text, randomUUID(), this.message?.id ?? null);
281
+ }
282
+ /** `POST /v1/chats/{chat}/typing` — `is_typing` only, no `state` spelling. */
283
+ async typing(isTyping) {
284
+ const id = this.chat.id;
285
+ if (id === '') {
286
+ throw new AurivalError('ctx.typing() needs a chat, and this event has none');
287
+ }
288
+ await this.#http.setTyping(id, isTyping);
289
+ }
290
+ /** Sends `true` on entry, `false` on exit — ALWAYS, including on throw. */
291
+ async withTyping(fn) {
292
+ await this.typing(true);
293
+ try {
294
+ return await fn();
295
+ }
296
+ finally {
297
+ await this.typing(false);
298
+ }
299
+ }
300
+ async edit(message, text) {
301
+ return this.#http.editMessage(messageId(message), text);
302
+ }
303
+ async delete(message) {
304
+ await this.#http.deleteMessage(messageId(message));
305
+ }
306
+ async react(message, emoji) {
307
+ await this.#http.setReaction(messageId(message), emoji);
308
+ }
309
+ async unreact(message, emoji) {
310
+ await this.#http.unsetReaction(messageId(message), emoji);
311
+ }
312
+ async send(chat, text, options = {}) {
313
+ const mentions = options.mentions?.map(mentionEntry);
314
+ return this.#http.sendMessage(chatId(chat), text, randomUUID(), null, mentions);
315
+ }
316
+ async members(chat, options = {}) {
317
+ const resolved = chat !== undefined ? chatId(chat) : this.chat.id;
318
+ if (resolved === '') {
319
+ throw new AurivalError('ctx.members() needs a chat: pass one, or call it where ctx.chat is already set');
320
+ }
321
+ const envelope = await this.#http.listMembers(resolved, options.cursor);
322
+ return memberPageFromEnvelope(envelope);
104
323
  }
105
324
  }
106
325
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqC3C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAUD,MAAM,OAAO,KAAK;IACP,EAAE,CAAS;IACX,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,IAAI,CAA0B;IAEvC,YAAY,IAAe;QACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,KAA8B;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,KAAK,CAAC;YACf,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5C,YAAY,EACV,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,CAA0B;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC5C,QAAQ,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACvD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACT,KAAK,CAAS;IACd,KAAK,CAAmB;IAEjC,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CAAC,IAAU;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAKD,SAAS,YAAY,CAAC,CAAc;IAClC,IAAI,CAAC,YAAY,OAAO;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IACzC,IAAI,OAAQ,CAAsB,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAG,CAAU,CAAC,EAAE,EAAE,CAAC;IACpF,OAAO,EAAE,IAAI,EAAG,CAAsB,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,mFAAmF;AACnF,SAAS,MAAM,CAAC,CAAgB;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,yFAAyF;AACzF,SAAS,SAAS,CAAC,CAAmB;IACpC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAuBD,SAAS,sBAAsB,CAAC,QAAiC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO;QACL,KAAK;QACL,OAAO;QACP,UAAU,EAAE,OAAO,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,0BAA0B,GAAkD;IAChF,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACjC,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;CAC1D,CAAC;AAkBF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,OAAO;IACT,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,IAAI,CAAO;IACX,MAAM,CAAc;IACpB,IAAI,CAAc;IAClB,KAAK,CAAc;IACnB,KAAK,CAAgB;IACrB,KAAK,CAAQ;IACb,OAAO,CAAiB;IACxB,KAAK,CAAa;IAE3B,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,IAAgB;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,eAA+B,CAAC;QACpC,IAAI,eAAe,EAAE,CAAC;YACpB,uEAAuE;YACvE,yCAAyC;YACzC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,yCAAyC;YACzC,eAAe,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,OAAO,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,KAAK;YACL,OAAO,EAAE,eAAe;YACxB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAY,EAAE,IAAgB;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,OAAO,IAAI,OAAO,CAAC;gBACjB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACtC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC/C,KAAK;gBACL,OAAO,EACL,OAAO,SAAS,KAAK,QAAQ;oBAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACxE,CAAC,CAAC,IAAI;gBACV,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,0DAA0D;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,OAAO,CAAC;YACjB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACtC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACzC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YAC/C,KAAK;YACL,OAAO,EACL,OAAO,SAAS,KAAK,QAAQ;gBAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxE,CAAC,CAAC,IAAI;YACV,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,MAAM,CAAC,QAAiB;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACd,MAAM,IAAI,YAAY,CAAC,oDAAoD,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,UAAU,CAAI,EAAoB;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAyB,EAAE,IAAY;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAyB,EAAE,KAAa;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAyB,EAAE,KAAa;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAmB,EACnB,IAAY,EACZ,OAAO,GAAiC,EAAE;QAE1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,OAAO,GAAwB,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CACpB,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF"}
package/dist/http.d.ts CHANGED
@@ -37,7 +37,18 @@ export declare class HttpClient {
37
37
  * optional on the wire (CONTRACT-V1 §5.0) and a `null` there is a
38
38
  * `parameter_invalid` waiting to happen.
39
39
  */
40
- sendMessage(chat: string, text: string, idempotencyKey: string, replyTo?: string | null): Promise<Record<string, unknown>>;
40
+ sendMessage(chat: string, text: string, idempotencyKey: string, replyTo?: string | null, mentions?: Array<{
41
+ user: string;
42
+ }>): Promise<Record<string, unknown>>;
43
+ /** `POST .../typing` body is `{"is_typing": true|false}` — never `state`. */
44
+ setTyping(chat: string, isTyping: boolean): Promise<void>;
45
+ editMessage(message: string, text: string): Promise<Record<string, unknown>>;
46
+ deleteMessage(message: string): Promise<void>;
47
+ /** The emoji is percent-encoded — it travels in the path, not the body. */
48
+ setReaction(message: string, emoji: string): Promise<void>;
49
+ unsetReaction(message: string, emoji: string): Promise<void>;
50
+ /** GET, so no idempotency key — reads are never retried-as-a-write. */
51
+ listMembers(chat: string, cursor?: string): Promise<Record<string, unknown>>;
41
52
  syncCommands(bot: string, commands: Array<{
42
53
  name: string;
43
54
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAQvD;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAMD,wBAAgB,aAAa,IAAI,MAAM,CAYtC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAwCD,qBAAa,UAAU;;IAIrB,+DAA+D;IAC/D,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAG/B;IAEL,YAAY,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,IAAW,EAAE,MAAM,CAAC,EAAE,MAAM,EAIlE;IAED,6DAA6D;IACvD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8FlC;IAED;;;;OAIG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAIlC;IAEK,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GACrD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKlC;IAEK,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEhE;IAED,UAAU,IAAI,MAAM,CAMnB;CACF"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/http.js CHANGED
@@ -130,6 +130,23 @@ export class HttpClient {
130
130
  }
131
131
  throw new errors.TransportError(detail);
132
132
  }
133
+ // 204 + an empty body decodes to `{}` — several new mutating routes
134
+ // (typing, reactions, delete) answer this way. A 204 that (against
135
+ // spec) carries a JSON body decodes it rather than silently dropping
136
+ // it, gating on the body being empty rather than on status alone —
137
+ // mirrors http.py's identical rule (merge-gate senior review). In
138
+ // practice `raw` is ALWAYS '' here: the WHATWG fetch spec forces a
139
+ // null body for every 204/205/304 response, so `resp.text()` above
140
+ // already discarded whatever bytes the server actually sent before
141
+ // this line runs (verified against Node's own `fetch`). This branch
142
+ // stays correct for whatever `raw` it is given regardless — python's
143
+ // http.py reads raw socket bytes and is not subject to this
144
+ // fetch-specific stripping, so the decode path is live there. An empty
145
+ // 200 (or any other non-204 success) is still a ProtocolError: every
146
+ // other status decodes unconditionally, so an empty body only becomes
147
+ // {} through the 204 branch, exactly as before this change.
148
+ if (status === 204)
149
+ return raw === '' ? {} : decodeObject(raw);
133
150
  if (status < 400)
134
151
  return decodeObject(raw);
135
152
  const envelope = decodeObject(raw);
@@ -172,12 +189,46 @@ export class HttpClient {
172
189
  * optional on the wire (CONTRACT-V1 §5.0) and a `null` there is a
173
190
  * `parameter_invalid` waiting to happen.
174
191
  */
175
- async sendMessage(chat, text, idempotencyKey, replyTo) {
192
+ async sendMessage(chat, text, idempotencyKey, replyTo, mentions) {
176
193
  const body = { chat, text };
177
194
  if (replyTo != null && replyTo !== '')
178
195
  body['reply_to'] = replyTo;
196
+ if (mentions !== undefined && mentions.length > 0)
197
+ body['mentions'] = mentions;
179
198
  return this.request('POST', '/v1/messages', { body, idempotencyKey });
180
199
  }
200
+ /** `POST .../typing` body is `{"is_typing": true|false}` — never `state`. */
201
+ async setTyping(chat, isTyping) {
202
+ await this.request('POST', `/v1/chats/${chat}/typing`, {
203
+ body: { is_typing: isTyping },
204
+ idempotencyKey: randomUUID(),
205
+ });
206
+ }
207
+ async editMessage(message, text) {
208
+ return this.request('PATCH', `/v1/messages/${message}`, {
209
+ body: { text },
210
+ idempotencyKey: randomUUID(),
211
+ });
212
+ }
213
+ async deleteMessage(message) {
214
+ await this.request('DELETE', `/v1/messages/${message}`, { idempotencyKey: randomUUID() });
215
+ }
216
+ /** The emoji is percent-encoded — it travels in the path, not the body. */
217
+ async setReaction(message, emoji) {
218
+ await this.request('PUT', `/v1/messages/${message}/reactions/${encodeURIComponent(emoji)}`, {
219
+ idempotencyKey: randomUUID(),
220
+ });
221
+ }
222
+ async unsetReaction(message, emoji) {
223
+ await this.request('DELETE', `/v1/messages/${message}/reactions/${encodeURIComponent(emoji)}`, {
224
+ idempotencyKey: randomUUID(),
225
+ });
226
+ }
227
+ /** GET, so no idempotency key — reads are never retried-as-a-write. */
228
+ async listMembers(chat, cursor) {
229
+ const query = cursor !== undefined && cursor !== '' ? `?cursor=${encodeURIComponent(cursor)}` : '';
230
+ return this.request('GET', `/v1/chats/${chat}/members${query}`);
231
+ }
181
232
  async syncCommands(bot, commands) {
182
233
  return this.request('PUT', `/v1/bots/${bot}/commands`, {
183
234
  body: { commands },
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,9 +20,9 @@
20
20
  * asymmetry: adding an export later is free, removing one is a break.
21
21
  */
22
22
  export { Bot } from './bot.js';
23
- export { APIError, AccessTokenExpired, AccessTokenInvalid, AckUnknownEvent, AssertionExpired, AssertionReplay, AurivalAPIError, AurivalError, AuthenticationError, BadAssertion, BadProof, BadPublicKey, BotLinkNotAllowed, BotPlaygroundOnly, BotSuspended, CODE_CLASSES, DOC_URL_PREFIX, EmptyText, FrameInvalid, FrameTooLarge, IdempotencyKeyInvalid, IdempotencyKeyReused, IdleTimeout, InternalError, InvalidCommandName, InvalidJSON, InvalidRequestError, KeyAlreadyPaired, KeyRevoked, NotFound, PairRateLimited, ParameterInvalid, ParameterMissing, PermissionDeniedError, ProtocolError, RateLimitError, RateLimited, ServerRestarting, SessionSuperseded, SyncRateLimited, TYPE_CLASSES, TextTooLong, TooManyProblems, TransportError, UnknownOperation, UnknownParameter, fromEnvelope, } from './errors.js';
24
- export { Context, Event } from './events.js';
25
- export type { Chat, Command, User } from './events.js';
23
+ export { APIError, AccessTokenExpired, AccessTokenInvalid, AckUnknownEvent, AssertionExpired, AssertionReplay, AurivalAPIError, AurivalError, AuthenticationError, BadAssertion, BadProof, BadPublicKey, BotLinkNotAllowed, BotPlaygroundOnly, BotSuspended, CODE_CLASSES, DOC_URL_PREFIX, EmptyText, FrameInvalid, FrameTooLarge, IdempotencyKeyInvalid, IdempotencyKeyReused, IdleTimeout, InternalError, InvalidCommandName, InvalidJSON, InvalidRequestError, KeyAlreadyPaired, KeyRevoked, MentionNotMember, MentionTokenMissing, MessageNotYours, NotFound, PairRateLimited, ParameterInvalid, ParameterMissing, PermissionDeniedError, ProtocolError, RateLimitError, RateLimited, ReactionEmojiTooLong, ServerRestarting, SessionSuperseded, SyncRateLimited, TYPE_CLASSES, TextTooLong, TooManyProblems, TransportError, UnknownOperation, UnknownParameter, fromEnvelope, } from './errors.js';
24
+ export { Context, Event, Mention, mention } from './events.js';
25
+ export type { Chat, Command, MemberPage, Message, MentionLike, User } from './events.js';
26
26
  export { BYE_ACTIONS, ByeAction, actionForBye } from './socket.js';
27
- export declare const version = "0.1.7";
27
+ export declare const version = "0.2.0";
28
28
  //# sourceMappingURL=index.d.ts.map