@mapier/imsg-sdk 0.4.0 → 0.6.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.

Potentially problematic release.


This version of @mapier/imsg-sdk might be problematic. Click here for more details.

@@ -0,0 +1,94 @@
1
+ import { bridgeEffectStarted } from './chat-background.js';
2
+ import { messageRemovalFailure } from './types.js';
3
+ // handleUnsendMessage's returns BEFORE `[chat retractMessagePart:]`
4
+ // (IMsgInjected.m), matched against `error.data` exactly as the group verbs
5
+ // match theirs. Deliberately absent: `unsend-message failed` and any bare
6
+ // NSException reason — the helper's @try wraps only the selector invocation,
7
+ // so a throw from inside it cannot prove which side of the retraction it was
8
+ // raised on, and neither can a bridge timeout.
9
+ export const UNSEND_PROVEN_REJECTIONS = [
10
+ 'Missing chatGuid',
11
+ 'Missing messageGuid',
12
+ 'Chat not found',
13
+ 'retractMessagePart: not available',
14
+ // Formatted with the PART index, not the guid, so it reads oddly for a
15
+ // missing message — but a guid the helper cannot find lands here too,
16
+ // because findMessagePart propagates findMessageItem's nil.
17
+ 'Message part not found',
18
+ ];
19
+ // handleDeleteMessage's equivalents. `deleteChatItems: not available` carries
20
+ // no "on this macOS" suffix, unlike unsend's and edit's. Delete is also the
21
+ // one verb the helper does not probe at launch — it checks respondsToSelector
22
+ // per call and advertises no `imsg status` marker — so an unsupported host
23
+ // cannot be caught by a capability gate and always arrives here instead.
24
+ export const DELETE_PROVEN_REJECTIONS = [
25
+ 'Missing chatGuid',
26
+ 'Missing messageGuid',
27
+ 'Chat not found',
28
+ 'deleteChatItems: not available',
29
+ 'Message not found',
30
+ ];
31
+ // The removal call itself threw. `refused` only when the error proves the
32
+ // helper stopped before invoking IMChat; everything else may have applied.
33
+ export function classifyMessageRemovalFireFailure(err, provenRejections) {
34
+ return messageRemovalFailure(bridgeEffectStarted(err, provenRejections) ? 'fire-failed' : 'refused');
35
+ }
36
+ // deleteMessage's pre-check, which polls rather than reading once because its
37
+ // common caller targets a just-sent guid that can lag history by a beat.
38
+ // Returns null when the target is present and the verb should fire. Nothing
39
+ // has fired at either failure exit, so both are proven no-ops — but they are
40
+ // different signals: `refused` means the guid is not in the window and a
41
+ // blind retry will not help, `preflight-read-failed` means the host's history
42
+ // read is broken and the target was never actually looked for.
43
+ export async function locateRemovalTarget(input) {
44
+ const { read, attempts, sleep, log } = input;
45
+ for (let attempt = 0; attempt < attempts; attempt++) {
46
+ // Sleep only BETWEEN attempts: a preflight's first read is immediate
47
+ // (edit-message.ts's awaitInHistory convention), and the last one has
48
+ // nothing left to wait for.
49
+ if (attempt > 0)
50
+ await sleep();
51
+ let target;
52
+ try {
53
+ target = await read();
54
+ }
55
+ catch (err) {
56
+ // One failed read ends the wait, as it does on the verify side: history
57
+ // is a local chat.db read, so a failure means a broken host rather than
58
+ // a blip worth the remaining attempts.
59
+ log(`preflight read failed: ${String(err)}`);
60
+ return messageRemovalFailure('preflight-read-failed');
61
+ }
62
+ if (target)
63
+ return null;
64
+ }
65
+ log('target guid was not in the scan window');
66
+ return messageRemovalFailure('refused');
67
+ }
68
+ // unsendMessage's post-fire read-back. Everything reaching here HAS fired, so
69
+ // every failure exit is `effectStarted:true`. The two differ in whether we got
70
+ // to look at all: `unverified` read the row and its text was still there,
71
+ // `verify-read-failed` never got a trustworthy look. A failed read used to
72
+ // escape this verb as an exception; it is a result now because the caller
73
+ // needs to hear "it fired" either way.
74
+ export async function verifyMessageRemoval(input) {
75
+ const { read, landed, attempts, sleep, log } = input;
76
+ for (let attempt = 0; attempt < attempts; attempt++) {
77
+ // Awaited BEFORE each read: the retraction is never visible in a read
78
+ // taken the instant the RPC returned.
79
+ await sleep();
80
+ let target;
81
+ try {
82
+ target = await read();
83
+ }
84
+ catch (err) {
85
+ log(`verification read failed: ${String(err)}`);
86
+ return messageRemovalFailure('verify-read-failed');
87
+ }
88
+ if (landed(target))
89
+ return { ok: true };
90
+ }
91
+ log('fired but was never confirmed within the verify window');
92
+ return messageRemovalFailure('unverified');
93
+ }
94
+ //# sourceMappingURL=message-removal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-removal.js","sourceRoot":"","sources":["../../src/gateway/message-removal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ImsgMessage, MessageReaction } from '../types.js';
2
+ import { type GatewayCapabilities, type ReactionNote, type ReactResult } from './types.js';
3
+ export declare const TAPBACK_PROVEN_REJECTIONS: string[];
4
+ export declare function classifyTapbackFireFailure(err: unknown): ReactResult;
5
+ export declare function reactionPart(reaction: Pick<MessageReaction, 'target_part'>): number;
6
+ export declare function reactionOnPart(reaction: Pick<MessageReaction, 'target_part'>, partIndex?: number): boolean;
7
+ export declare function toReactionNote(reaction: MessageReaction): ReactionNote;
8
+ export declare function tapbackPartRefusal(partIndex: number | undefined, capabilities: Pick<GatewayCapabilities, 'tapbackPart'>): ReactResult | null;
9
+ export interface TapbackVerifyInput {
10
+ read(): Promise<ImsgMessage | undefined>;
11
+ landed(target: ImsgMessage | undefined): boolean;
12
+ attempts: number;
13
+ sleep(): Promise<void>;
14
+ log(message: string): void;
15
+ }
16
+ export declare function verifyTapback(input: TapbackVerifyInput): Promise<ReactResult>;
@@ -0,0 +1,103 @@
1
+ import { bridgeEffectStarted } from './chat-background.js';
2
+ import { tapbackFailure, toReactionNoteType, } from './types.js';
3
+ // handleSendReaction's returns BEFORE `[sender send]` / `[chat sendMessage:]`
4
+ // (IMsgInjected.m), matched against `error.data` exactly as the group verbs
5
+ // match theirs. Deliberately absent: `send-reaction failed:` and
6
+ // `send-reaction (emoji) failed:` — those wrap an NSException caught around
7
+ // the whole build-and-send block, so the text cannot prove which side of the
8
+ // send it was raised on and the result stays ambiguous.
9
+ export const TAPBACK_PROVEN_REJECTIONS = [
10
+ 'Missing chatGuid',
11
+ 'Missing selectedMessageGuid',
12
+ 'Missing reactionType',
13
+ 'Chat not found',
14
+ 'Unknown reactionType',
15
+ 'Emoji tapbacks unsupported on this macOS version',
16
+ 'Could not construct IMEmojiTapback',
17
+ 'Could not construct IMTapbackSender',
18
+ 'Could not build reaction IMMessage',
19
+ // M2B-45. `Message %@ has no part %ld` (IMsgInjected.m), raised while the
20
+ // bridge is still counting the message's parts — before anything is sent.
21
+ // The trailing space is load-bearing: without it this also matches the
22
+ // contact-sharing handler's `Chat has no participants to share with`.
23
+ 'has no part ',
24
+ ];
25
+ export function classifyTapbackFireFailure(err) {
26
+ return tapbackFailure(bridgeEffectStarted(err, TAPBACK_PROVEN_REJECTIONS) ? 'fire-failed' : 'refused');
27
+ }
28
+ // ---- Parts (M2B-45) ----
29
+ // A tapback lands on ONE part of a message: a message carrying two photos has
30
+ // parts 0 and 1, and reacting to the second photo is `partIndex: 1`. Omitted
31
+ // means part 0, which is what every tapback did before this existed.
32
+ // The part a reaction named. Absent means it named the whole message, which is
33
+ // the same target as part 0 — so this is the ONLY way to compare two
34
+ // reactions' parts. Reading `target_part` directly would make "loved the
35
+ // message" and "loved photo 1" look like different targets.
36
+ export function reactionPart(reaction) {
37
+ return reaction.target_part ?? 0;
38
+ }
39
+ // True when a reaction targets the given part, absent `target_part` included.
40
+ export function reactionOnPart(reaction, partIndex = 0) {
41
+ return reactionPart(reaction) === partIndex;
42
+ }
43
+ // One history `reactions[]` row as the contract's ReactionNote. Shared by both
44
+ // gateways because recentReactions() has to hand a consumer the SAME shape on
45
+ // both paths (parity rule 2), and a part that only one of them surfaced would
46
+ // be exactly the kind of drift that rule exists to stop. `targetPart` is
47
+ // carried only when the reaction named a part — absent stays absent, so a
48
+ // whole-message reaction reads back as it always has.
49
+ export function toReactionNote(reaction) {
50
+ return {
51
+ id: reaction.id,
52
+ reaction: toReactionNoteType(reaction.type),
53
+ emoji: reaction.emoji,
54
+ ...(reaction.target_part === undefined ? {} : { targetPart: reaction.target_part }),
55
+ };
56
+ }
57
+ // Client-side refusal for a part index, BEFORE the RPC is built. Two rules,
58
+ // both pre-fire and both proven no-ops:
59
+ //
60
+ // 1. The native takes a non-negative integer and answers `invalid params` for
61
+ // anything else. Catching it here costs one comparison and keeps a typo
62
+ // from depending on which helper the host happens to run.
63
+ // 2. An OLDER helper silently ACCEPTS `part_index` and writes a malformed row:
64
+ // the reaction draws on EVERY photo on the recipient's phone and the
65
+ // sender's own chat.db row disappears, so it can never be verified or
66
+ // removed. Production Macs run such a helper today. So `partIndex >= 1`
67
+ // without the `tapbackPart` marker is refused here and nothing is sent —
68
+ // never a silent downgrade to part 0, which would react to the wrong photo
69
+ // and report success.
70
+ //
71
+ // Part 0 is ungated: it is today's behaviour, and the caller's RPC omits
72
+ // `part_index` entirely for it, so an old helper never sees the parameter.
73
+ export function tapbackPartRefusal(partIndex, capabilities) {
74
+ if (partIndex === undefined)
75
+ return null;
76
+ if (!Number.isInteger(partIndex) || partIndex < 0)
77
+ return tapbackFailure('refused');
78
+ if (partIndex >= 1 && !capabilities.tapbackPart)
79
+ return tapbackFailure('unsupported');
80
+ return null;
81
+ }
82
+ // Everything reaching here HAS fired, so every failure exit is
83
+ // `effectStarted:true`. A failed read used to escape as an exception; it is a
84
+ // result now because the caller needs to hear "it fired" either way.
85
+ export async function verifyTapback(input) {
86
+ const { read, landed, attempts, sleep, log } = input;
87
+ for (let attempt = 0; attempt < attempts; attempt++) {
88
+ await sleep();
89
+ let target;
90
+ try {
91
+ target = await read();
92
+ }
93
+ catch (err) {
94
+ log(`verification read failed: ${String(err)}`);
95
+ return tapbackFailure('verify-read-failed');
96
+ }
97
+ if (landed(target))
98
+ return { ok: true };
99
+ }
100
+ log('fired but was never confirmed within the verify window');
101
+ return tapbackFailure('unverified');
102
+ }
103
+ //# sourceMappingURL=tapback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapback.js","sourceRoot":"","sources":["../../src/gateway/tapback.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,14 @@ export type MessageService = 'imessage' | 'sms' | 'auto';
13
13
  export interface ReactResult {
14
14
  ok: boolean;
15
15
  skipped?: 'already-reacted' | 'stale-target' | 'not-reacted';
16
+ effectStarted?: boolean;
17
+ reason?: GroupMutationFailure;
16
18
  }
17
19
  export interface ReactionNote {
18
20
  id: number;
19
21
  reaction: Reaction | 'custom';
20
22
  emoji?: string;
23
+ targetPart?: number;
21
24
  }
22
25
  export interface GroupChatResolutionRequest {
23
26
  conversationExternalId: string;
@@ -58,6 +61,7 @@ export type GroupChatResolution = {
58
61
  };
59
62
  export interface GatewayCapabilities {
60
63
  emojiTapback: boolean;
64
+ tapbackPart: boolean;
61
65
  stickerSend: boolean;
62
66
  groupPhoto: boolean;
63
67
  groupParticipants: boolean;
@@ -68,6 +72,8 @@ export interface GatewayCapabilities {
68
72
  mentionFormatting: boolean;
69
73
  sharedLocations: boolean;
70
74
  locationRequest: boolean;
75
+ extensionCardSend: boolean;
76
+ extensionCardUpdate: boolean;
71
77
  }
72
78
  export declare const PATCHED_GATEWAY_CAPABILITIES: GatewayCapabilities;
73
79
  export interface SharedLocation {
@@ -115,6 +121,49 @@ export interface EditMessageResult {
115
121
  skipped?: 'unchanged';
116
122
  effectStarted?: boolean;
117
123
  }
124
+ export type GroupMutationFailure = 'unsupported' | 'refused' | 'fire-failed' | 'unverified' | 'verify-read-failed' | 'preflight-read-failed';
125
+ export interface GroupMutationResult {
126
+ ok: boolean;
127
+ effectStarted?: boolean;
128
+ reason?: GroupMutationFailure;
129
+ }
130
+ export declare function groupMutationFailure(reason: GroupMutationFailure): GroupMutationResult;
131
+ export declare function tapbackFailure(reason: GroupMutationFailure): ReactResult;
132
+ export interface MessageRemovalResult {
133
+ ok: boolean;
134
+ effectStarted?: boolean;
135
+ reason?: GroupMutationFailure;
136
+ }
137
+ export declare function messageRemovalFailure(reason: GroupMutationFailure): MessageRemovalResult;
138
+ export interface ExtensionCard {
139
+ teamId: string;
140
+ extensionBundleId: string;
141
+ appName: string;
142
+ appStoreId?: number;
143
+ caption: string;
144
+ subcaption?: string;
145
+ summaryText?: string;
146
+ url: string;
147
+ liveLayout?: boolean;
148
+ }
149
+ export interface ExtensionCardHandle {
150
+ sessionId: string;
151
+ firstCardMessageGuid: string;
152
+ }
153
+ export interface ExtensionCardResult {
154
+ ok: boolean;
155
+ sessionId?: string;
156
+ messageGuid?: string;
157
+ handle?: ExtensionCardHandle;
158
+ updatable?: boolean;
159
+ balloonBundleId?: string;
160
+ liveLayout?: boolean;
161
+ effectStarted?: boolean;
162
+ reason?: GroupMutationFailure;
163
+ }
164
+ export declare function extensionCardFailure(reason: GroupMutationFailure): ExtensionCardResult;
165
+ export declare const GROUP_MIN_MEMBERS = 3;
166
+ export declare function removalWouldBreakGroupMinimum(participantCount: number): boolean;
118
167
  export declare const TIER2_HISTORY_SCAN_WINDOW = 30;
119
168
  export declare function newestIncoming(history: ImsgMessage[]): ImsgMessage | undefined;
120
169
  export declare function isEditableOwnTextMessage(message: Pick<ImsgMessage, 'is_from_me' | 'text' | 'attachments' | 'poll'>): boolean;
@@ -209,8 +258,8 @@ export interface Gateway {
209
258
  checkHandle(address: string, opts?: {
210
259
  aliasType?: 'phone' | 'email';
211
260
  }): Promise<HandleCheck>;
212
- tapback(chatId: number, targetGuid: string, reaction: Reaction, remove?: boolean): Promise<ReactResult>;
213
- emojiTapback(chatId: number, targetGuid: string, emoji: string, remove?: boolean): Promise<ReactResult>;
261
+ tapback(chatId: number, targetGuid: string, reaction: Reaction, remove?: boolean, partIndex?: number): Promise<ReactResult>;
262
+ emojiTapback(chatId: number, targetGuid: string, emoji: string, remove?: boolean, partIndex?: number): Promise<ReactResult>;
214
263
  sendRich(chatId: number, text: string, opts?: {
215
264
  effect?: string;
216
265
  replyToGuid?: string;
@@ -228,31 +277,24 @@ export interface Gateway {
228
277
  sendPoll(chatId: number, question: string, options: string[]): Promise<SendResult>;
229
278
  votePoll(chatId: number, pollGuid: string, optionId: string): Promise<ReactResult>;
230
279
  sendRichLink(chatId: number, url: string): Promise<SendResult>;
280
+ sendExtensionCard(chatId: number, card: ExtensionCard, opts?: {
281
+ update?: ExtensionCardHandle;
282
+ }): Promise<ExtensionCardResult>;
231
283
  editMessage(chatId: number, targetGuid: string, text: string): Promise<EditMessageResult>;
232
- unsendMessage(chatId: number, targetGuid: string): Promise<{
233
- ok: boolean;
234
- }>;
235
- deleteMessage(chatId: number, targetGuid: string): Promise<{
236
- ok: boolean;
237
- }>;
284
+ unsendMessage(chatId: number, targetGuid: string): Promise<MessageRemovalResult>;
285
+ deleteMessage(chatId: number, targetGuid: string): Promise<MessageRemovalResult>;
238
286
  setTyping(chatId: number, on: boolean): Promise<{
239
287
  ok: boolean;
240
288
  }>;
241
289
  markRead(chatId: number): Promise<{
242
290
  ok: boolean;
243
291
  }>;
244
- renameGroup(chatId: number, name: string): Promise<{
245
- ok: boolean;
246
- }>;
292
+ renameGroup(chatId: number, name: string): Promise<GroupMutationResult>;
247
293
  setGroupPhoto(chatId: number, filePath?: string): Promise<{
248
294
  ok: boolean;
249
295
  }>;
250
- addParticipant(chatId: number, handle: string): Promise<{
251
- ok: boolean;
252
- }>;
253
- removeParticipant(chatId: number, handle: string): Promise<{
254
- ok: boolean;
255
- }>;
296
+ addParticipant(chatId: number, handle: string): Promise<GroupMutationResult>;
297
+ removeParticipant(chatId: number, handle: string): Promise<GroupMutationResult>;
256
298
  leaveGroup(chatId: number): Promise<{
257
299
  ok: boolean;
258
300
  }>;
@@ -9,6 +9,7 @@ export function toReactionNoteType(type) {
9
9
  }
10
10
  export const PATCHED_GATEWAY_CAPABILITIES = {
11
11
  emojiTapback: true,
12
+ tapbackPart: true,
12
13
  stickerSend: true,
13
14
  groupPhoto: true,
14
15
  groupParticipants: true,
@@ -19,12 +20,53 @@ export const PATCHED_GATEWAY_CAPABILITIES = {
19
20
  mentionFormatting: true,
20
21
  sharedLocations: true,
21
22
  locationRequest: true,
23
+ extensionCardSend: true,
24
+ extensionCardUpdate: true,
22
25
  };
23
26
  export const LOCATION_SHARE_EVENTS = ['location_update', 'share_started', 'share_ended'];
24
27
  // The only preset the native Set pipeline supports today (Mapier-Labs/imsg#12,
25
28
  // runtime-verified on macOS 27 26A5421a). Kept as a closed union so a caller
26
29
  // cannot request a preset the helper would reject.
27
30
  export const CHAT_BACKGROUND_PRESETS = ['gradient'];
31
+ // `effectStarted` follows from the reason and nothing else, so the mapping
32
+ // lives here once: the two fields cannot drift apart, and adding a reason
33
+ // forces a decision about which side of the fence it falls on.
34
+ const GROUP_MUTATION_EFFECT_STARTED = {
35
+ unsupported: false,
36
+ refused: false,
37
+ 'fire-failed': true,
38
+ unverified: true,
39
+ 'verify-read-failed': true,
40
+ 'preflight-read-failed': false,
41
+ };
42
+ export function groupMutationFailure(reason) {
43
+ return { ok: false, effectStarted: GROUP_MUTATION_EFFECT_STARTED[reason], reason };
44
+ }
45
+ // The same answer for tapback()/emojiTapback(), through the same table, so a
46
+ // reason can never mean "nothing happened" for one verb and "reconcile" for
47
+ // another.
48
+ export function tapbackFailure(reason) {
49
+ return { ok: false, effectStarted: GROUP_MUTATION_EFFECT_STARTED[reason], reason };
50
+ }
51
+ export function messageRemovalFailure(reason) {
52
+ return { ok: false, effectStarted: GROUP_MUTATION_EFFECT_STARTED[reason], reason };
53
+ }
54
+ export function extensionCardFailure(reason) {
55
+ return { ok: false, effectStarted: GROUP_MUTATION_EFFECT_STARTED[reason], reason };
56
+ }
57
+ // Apple keeps a group conversation at three or more members, the local user
58
+ // included: a removal that would drop it below that is silently refused —
59
+ // IMCore's `removeParticipants:reason:` returns normally and the membership
60
+ // does not change. There is no error to catch, so the only way to tell this
61
+ // apart from a slow propagation is to count first.
62
+ export const GROUP_MIN_MEMBERS = 3;
63
+ // `participants` excludes the local user everywhere in this contract (§2
64
+ // "Participants exclude the local user"), so a group of `participantCount`
65
+ // participants has `participantCount + 1` members and a removal leaves
66
+ // `participantCount` of them.
67
+ export function removalWouldBreakGroupMinimum(participantCount) {
68
+ return participantCount < GROUP_MIN_MEMBERS;
69
+ }
28
70
  // The guid-targeting window (contract §1): both gateways locate a target
29
71
  // guid by scanning this many most-recent rows, and the smoke legs read the
30
72
  // same window so their negative cases target rows the gateway can see.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ExtensionCardSendResponse, ExtensionCardWireParams } from '../gateway/extension-card.js';
1
2
  import { type LocationsReadWire } from '../gateway/locations.js';
2
3
  import type { LocationUpdate, MessageService, NumericTextFormatRange, Reaction } from '../gateway/types.js';
3
4
  import type { ImsgMessage, MessagePoll, SendResult } from '../types.js';
@@ -147,10 +148,10 @@ export declare class ImsgRpc {
147
148
  chats(limit?: number): Promise<Chat[]>;
148
149
  findDmChat(identifier: string): Promise<number | null>;
149
150
  createChat(addresses: string[], text: string): Promise<CreateChatResponse>;
150
- tapback(chatId: number, targetGuid: string, reaction: Reaction, remove?: boolean): Promise<{
151
+ tapback(chatId: number, targetGuid: string, reaction: Reaction, remove?: boolean, partIndex?: number): Promise<{
151
152
  ok: boolean;
152
153
  }>;
153
- emojiTapback(chatId: number, targetGuid: string, emoji: string, remove?: boolean): Promise<{
154
+ emojiTapback(chatId: number, targetGuid: string, emoji: string, remove?: boolean, partIndex?: number): Promise<{
154
155
  ok: boolean;
155
156
  }>;
156
157
  sendRich(chatId: number, text: string, opts?: {
@@ -213,6 +214,7 @@ export declare class ImsgRpc {
213
214
  removeChatBackground(chatId: number, expectedBackgroundGuid?: string): Promise<ChatBackgroundMutationResponse>;
214
215
  locationsRead(chatGuid?: string): Promise<LocationsReadWire>;
215
216
  sendLocationRequest(chatId: number): Promise<LocationRequestSendResponse>;
217
+ sendExtensionCard(params: ExtensionCardWireParams): Promise<ExtensionCardSendResponse>;
216
218
  stop(): void;
217
219
  }
218
220
  export {};
package/dist/imsg/rpc.js CHANGED
@@ -20,6 +20,12 @@ export class ImsgRpcError extends Error {
20
20
  // One long-lived `imsg rpc` child. JSON-RPC 2.0, one object per line on
21
21
  // stdin/stdout; notifications (method: "message") carry watch events.
22
22
  const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
23
+ // Part 0 sends nothing: the native defaults `part_index` to 0, so omitting it
24
+ // leaves the whole-message tapback's wire exactly as it has always been
25
+ // (M2B-45). Validation of the value itself happens in the gateway, before this.
26
+ function partIndexParam(partIndex) {
27
+ return partIndex ? { part_index: partIndex } : {};
28
+ }
23
29
  export class ImsgRpc {
24
30
  onMessage;
25
31
  onExit;
@@ -183,14 +189,32 @@ export class ImsgRpc {
183
189
  // canonical "emphasize" (and the other 5 names match verbatim) — and
184
190
  // rejects anything outside the closed 6-type set. The patched fork's
185
191
  // arbitrary-emoji parameter is exposed separately below.
186
- tapback(chatId, targetGuid, reaction, remove = false) {
187
- return this.request('tapback', { chat_id: chatId, message_guid: targetGuid, kind: reaction, remove });
192
+ //
193
+ // `part_index` (M2B-45, handleTapback) names one part of the message and
194
+ // defaults to 0 natively. It is omitted for part 0 rather than sent as 0, so
195
+ // the whole-message call stays byte-identical to the one every build has
196
+ // always answered — including the older helpers that mishandle the parameter
197
+ // (the gateway refuses a part >= 1 on those; see gateway/tapback.ts).
198
+ tapback(chatId, targetGuid, reaction, remove = false, partIndex) {
199
+ return this.request('tapback', {
200
+ chat_id: chatId,
201
+ message_guid: targetGuid,
202
+ kind: reaction,
203
+ remove,
204
+ ...partIndexParam(partIndex),
205
+ });
188
206
  }
189
207
  // Mapier fork extension. The `emoji` parameter deliberately replaces
190
208
  // `kind`; sending both would route through stock imsg's classic-6
191
209
  // normalizer and reject the custom emoji.
192
- emojiTapback(chatId, targetGuid, emoji, remove = false) {
193
- return this.request('tapback', { chat_id: chatId, message_guid: targetGuid, emoji, remove });
210
+ emojiTapback(chatId, targetGuid, emoji, remove = false, partIndex) {
211
+ return this.request('tapback', {
212
+ chat_id: chatId,
213
+ message_guid: targetGuid,
214
+ emoji,
215
+ remove,
216
+ ...partIndexParam(partIndex),
217
+ });
194
218
  }
195
219
  // Verified against openclaw/imsg 0.13.x source: `send.rich` text mode takes
196
220
  // text + optional subject/effect/reply_to (handleSendRich).
@@ -326,6 +350,13 @@ export class ImsgRpc {
326
350
  sendLocationRequest(chatId) {
327
351
  return this.request('location_request.send', { chat_id: chatId });
328
352
  }
353
+ // `extension_card.send` (M2B-46, RPCServer+ExtensionCardHandler.swift). The
354
+ // params are built and validated by gateway/extension-card.ts, which owns
355
+ // the native field rules; this is only the wire. An update is the same
356
+ // method with `session_id` + `updates_message_guid`.
357
+ sendExtensionCard(params) {
358
+ return this.request('extension_card.send', params);
359
+ }
329
360
  stop() {
330
361
  this.stopping = true;
331
362
  this.child.stdin.end();
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/imsg/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/imsg/rpc.ts"],"names":[],"mappings":"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"}