@mapier/imsg-sdk 0.2.2 → 0.3.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/gateway/chat-background.d.ts +40 -0
- package/dist/gateway/chat-background.js +219 -0
- package/dist/gateway/chat-background.js.map +1 -0
- package/dist/gateway/edit-message.d.ts +17 -0
- package/dist/gateway/edit-message.js +70 -0
- package/dist/gateway/edit-message.js.map +1 -0
- package/dist/gateway/external-ids.d.ts +1 -0
- package/dist/gateway/external-ids.js +3 -1
- package/dist/gateway/external-ids.js.map +1 -1
- package/dist/gateway/fake.d.ts +13 -4
- package/dist/gateway/fake.js +82 -9
- package/dist/gateway/fake.js.map +1 -1
- package/dist/gateway/imsg.d.ts +6 -4
- package/dist/gateway/imsg.js +98 -33
- package/dist/gateway/imsg.js.map +1 -1
- package/dist/gateway/send-rich.d.ts +17 -0
- package/dist/gateway/send-rich.js +43 -0
- package/dist/gateway/send-rich.js.map +1 -0
- package/dist/gateway/types.d.ts +77 -5
- package/dist/gateway/types.js +165 -0
- package/dist/gateway/types.js.map +1 -1
- package/dist/imsg/rpc.d.ts +33 -2
- package/dist/imsg/rpc.js +31 -3
- package/dist/imsg/rpc.js.map +1 -1
- package/dist/imsg/status.js +17 -0
- package/dist/imsg/status.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/docs/api.md +1 -0
- package/docs/bridge-contract.md +7 -3
- package/docs/capability-matrix.md +4 -1
- package/docs/compatibility.md +4 -1
- package/docs/gateway-contract.md +271 -13
- package/docs/imcore_selectors.md +634 -0
- package/package.json +1 -1
package/dist/gateway/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ImsgMessage, SendResult } from '../types.js';
|
|
2
|
-
export type { ImsgMessage, SendResult };
|
|
1
|
+
import type { ImsgMessage, SendRefusal, SendResult } from '../types.js';
|
|
2
|
+
export type { ImsgMessage, SendRefusal, SendResult };
|
|
3
3
|
export declare const REACTIONS: readonly ["love", "like", "dislike", "laugh", "emphasis", "question"];
|
|
4
4
|
export type Reaction = (typeof REACTIONS)[number];
|
|
5
5
|
export declare function toReactionNoteType(type: string): Reaction | 'custom';
|
|
@@ -61,6 +61,10 @@ export interface GatewayCapabilities {
|
|
|
61
61
|
groupPhoto: boolean;
|
|
62
62
|
groupParticipants: boolean;
|
|
63
63
|
namePhotoSharing: boolean;
|
|
64
|
+
chatBackgroundSet: boolean;
|
|
65
|
+
chatBackgroundRemove: boolean;
|
|
66
|
+
editMessage: boolean;
|
|
67
|
+
mentionFormatting: boolean;
|
|
64
68
|
}
|
|
65
69
|
export declare const PATCHED_GATEWAY_CAPABILITIES: GatewayCapabilities;
|
|
66
70
|
export interface NamePhotoShareResult {
|
|
@@ -68,6 +72,33 @@ export interface NamePhotoShareResult {
|
|
|
68
72
|
skipped?: 'not-offered';
|
|
69
73
|
effectStarted?: boolean;
|
|
70
74
|
}
|
|
75
|
+
export declare const CHAT_BACKGROUND_PRESETS: readonly ["gradient"];
|
|
76
|
+
export type ChatBackgroundPreset = (typeof CHAT_BACKGROUND_PRESETS)[number];
|
|
77
|
+
export interface ChatBackgroundStatus {
|
|
78
|
+
chatId: number;
|
|
79
|
+
backgroundSet: boolean;
|
|
80
|
+
backgroundGuid: string | null;
|
|
81
|
+
}
|
|
82
|
+
export interface ChatBackgroundSetResult {
|
|
83
|
+
ok: boolean;
|
|
84
|
+
backgroundGuid?: string;
|
|
85
|
+
effectStarted?: boolean;
|
|
86
|
+
}
|
|
87
|
+
export interface ChatBackgroundRemoveResult {
|
|
88
|
+
ok: boolean;
|
|
89
|
+
skipped?: 'no-background';
|
|
90
|
+
effectStarted?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface EditMessageResult {
|
|
93
|
+
ok: boolean;
|
|
94
|
+
skipped?: 'unchanged';
|
|
95
|
+
effectStarted?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export declare const TIER2_HISTORY_SCAN_WINDOW = 30;
|
|
98
|
+
export declare function newestIncoming(history: ImsgMessage[]): ImsgMessage | undefined;
|
|
99
|
+
export declare function isEditableOwnTextMessage(message: Pick<ImsgMessage, 'is_from_me' | 'text' | 'attachments' | 'poll'>): boolean;
|
|
100
|
+
export declare function decideEditMessagePreflight(capabilities: Pick<GatewayCapabilities, 'editMessage'>, target: ImsgMessage | undefined, text: string): EditMessageResult | null;
|
|
101
|
+
export declare function normalizeChatBackgroundGuard(expectedGuid: string | undefined): string | undefined;
|
|
71
102
|
export type SendState = 'pending' | 'sent' | 'delivered' | 'failed';
|
|
72
103
|
export interface SendStatusFields {
|
|
73
104
|
is_sent: boolean;
|
|
@@ -100,6 +131,45 @@ export interface HandleCheck {
|
|
|
100
131
|
aliasType: 'phone' | 'email' | null;
|
|
101
132
|
address: string;
|
|
102
133
|
}
|
|
134
|
+
export type TextStyle = 'bold' | 'italic' | 'underline' | 'strikethrough';
|
|
135
|
+
export declare const TEXT_EFFECT_IDS: {
|
|
136
|
+
readonly bounce: 1;
|
|
137
|
+
readonly stretch: 2;
|
|
138
|
+
readonly squish: 3;
|
|
139
|
+
readonly scaleRipple: 4;
|
|
140
|
+
readonly big: 5;
|
|
141
|
+
readonly bloom: 6;
|
|
142
|
+
readonly somersault: 7;
|
|
143
|
+
readonly nod: 8;
|
|
144
|
+
readonly shake: 9;
|
|
145
|
+
readonly jitter: 10;
|
|
146
|
+
readonly small: 11;
|
|
147
|
+
readonly explode: 12;
|
|
148
|
+
};
|
|
149
|
+
export type TextEffectName = keyof typeof TEXT_EFFECT_IDS;
|
|
150
|
+
export interface TextFormatRange {
|
|
151
|
+
start: number;
|
|
152
|
+
length: number;
|
|
153
|
+
styles?: TextStyle[];
|
|
154
|
+
effect?: TextEffectName;
|
|
155
|
+
mention?: string;
|
|
156
|
+
}
|
|
157
|
+
export type NumericTextFormatRange = Omit<TextFormatRange, 'effect'> & {
|
|
158
|
+
effect?: number;
|
|
159
|
+
};
|
|
160
|
+
export declare function resolveTextFormatting(ranges: TextFormatRange[]): NumericTextFormatRange[];
|
|
161
|
+
export declare function hasMentionRange(ranges: readonly {
|
|
162
|
+
mention?: string;
|
|
163
|
+
}[] | undefined): boolean;
|
|
164
|
+
export interface TextFormattingRefusal {
|
|
165
|
+
refused: Extract<SendRefusal, 'text-formatting-range' | 'mention-identifier'>;
|
|
166
|
+
reason: string;
|
|
167
|
+
}
|
|
168
|
+
export declare function textFormattingRefusal(text: string, ranges: readonly TextFormatRange[]): TextFormattingRefusal | null;
|
|
169
|
+
export declare function sendRichPreflight(capabilities: Pick<GatewayCapabilities, 'mentionFormatting'>, text: string, ranges: readonly TextFormatRange[] | undefined): {
|
|
170
|
+
result: SendResult;
|
|
171
|
+
reason: string;
|
|
172
|
+
} | null;
|
|
103
173
|
export interface Gateway {
|
|
104
174
|
readonly capabilities: GatewayCapabilities;
|
|
105
175
|
subscribe(sinceId?: number): AsyncIterable<GatewayEvent>;
|
|
@@ -124,6 +194,7 @@ export interface Gateway {
|
|
|
124
194
|
effect?: string;
|
|
125
195
|
replyToGuid?: string;
|
|
126
196
|
subject?: string;
|
|
197
|
+
textFormatting?: TextFormatRange[];
|
|
127
198
|
}): Promise<SendResult>;
|
|
128
199
|
sendAttachment(chatId: number, filePath: string, opts?: {
|
|
129
200
|
audio?: boolean;
|
|
@@ -136,9 +207,7 @@ export interface Gateway {
|
|
|
136
207
|
sendPoll(chatId: number, question: string, options: string[]): Promise<SendResult>;
|
|
137
208
|
votePoll(chatId: number, pollGuid: string, optionId: string): Promise<ReactResult>;
|
|
138
209
|
sendRichLink(chatId: number, url: string): Promise<SendResult>;
|
|
139
|
-
editMessage(chatId: number, targetGuid: string, text: string): Promise<
|
|
140
|
-
ok: boolean;
|
|
141
|
-
}>;
|
|
210
|
+
editMessage(chatId: number, targetGuid: string, text: string): Promise<EditMessageResult>;
|
|
142
211
|
unsendMessage(chatId: number, targetGuid: string): Promise<{
|
|
143
212
|
ok: boolean;
|
|
144
213
|
}>;
|
|
@@ -167,4 +236,7 @@ export interface Gateway {
|
|
|
167
236
|
ok: boolean;
|
|
168
237
|
}>;
|
|
169
238
|
shareNamePhoto(chatId: number): Promise<NamePhotoShareResult>;
|
|
239
|
+
chatBackgroundStatus(chatId: number): Promise<ChatBackgroundStatus | null>;
|
|
240
|
+
setChatBackground(chatId: number, preset?: ChatBackgroundPreset): Promise<ChatBackgroundSetResult>;
|
|
241
|
+
removeChatBackground(chatId: number, expectedGuid?: string): Promise<ChatBackgroundRemoveResult>;
|
|
170
242
|
}
|
package/dist/gateway/types.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isBoundedId } from './external-ids.js';
|
|
1
2
|
// The tapback vocabulary belongs to the contract, not to any one
|
|
2
3
|
// implementation: react() below is typed on it, and FakeGateway has to honor
|
|
3
4
|
// the same six with no AppleScript in sight.
|
|
@@ -12,5 +13,169 @@ export const PATCHED_GATEWAY_CAPABILITIES = {
|
|
|
12
13
|
groupPhoto: true,
|
|
13
14
|
groupParticipants: true,
|
|
14
15
|
namePhotoSharing: true,
|
|
16
|
+
chatBackgroundSet: true,
|
|
17
|
+
chatBackgroundRemove: true,
|
|
18
|
+
editMessage: true,
|
|
19
|
+
mentionFormatting: true,
|
|
15
20
|
};
|
|
21
|
+
// The only preset the native Set pipeline supports today (Mapier-Labs/imsg#12,
|
|
22
|
+
// runtime-verified on macOS 27 26A5421a). Kept as a closed union so a caller
|
|
23
|
+
// cannot request a preset the helper would reject.
|
|
24
|
+
export const CHAT_BACKGROUND_PRESETS = ['gradient'];
|
|
25
|
+
// The guid-targeting window (contract §1): both gateways locate a target
|
|
26
|
+
// guid by scanning this many most-recent rows, and the smoke legs read the
|
|
27
|
+
// same window so their negative cases target rows the gateway can see.
|
|
28
|
+
export const TIER2_HISTORY_SCAN_WINDOW = 30;
|
|
29
|
+
// The newest incoming (not ours, not a reaction row) message in a history
|
|
30
|
+
// page — react()'s target on the real CLI, and the smoke legs' negative-case
|
|
31
|
+
// target. One definition on both sides of the bridge.
|
|
32
|
+
export function newestIncoming(history) {
|
|
33
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
34
|
+
const m = history[i];
|
|
35
|
+
if (m && !m.is_from_me && !m.is_reaction)
|
|
36
|
+
return m;
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
// A message is editable only when it is ours and a plain-text part 0:
|
|
41
|
+
// attachment, poll and sticker rows put something else at part 0, and a
|
|
42
|
+
// retracted (unsent) row has no text left to edit — IMCore silently no-ops
|
|
43
|
+
// all of those. Known gap: a rich-link balloon carries its URL as `text`
|
|
44
|
+
// and nothing else on ImsgMessage marks it, so it passes here on the real
|
|
45
|
+
// path; the post-fire read-back decides that case.
|
|
46
|
+
export function isEditableOwnTextMessage(message) {
|
|
47
|
+
return message.is_from_me && Boolean(message.text) && !message.attachments?.length && !message.poll;
|
|
48
|
+
}
|
|
49
|
+
// The whole editMessage preflight, shared by both gateways so parity is
|
|
50
|
+
// structural: returns the result to answer with, or null when the edit
|
|
51
|
+
// should be fired. `target` is the located row (undefined = not in window).
|
|
52
|
+
export function decideEditMessagePreflight(capabilities, target, text) {
|
|
53
|
+
if (!capabilities.editMessage || !text.trim())
|
|
54
|
+
return { ok: false, effectStarted: false };
|
|
55
|
+
if (!target || !isEditableOwnTextMessage(target))
|
|
56
|
+
return { ok: false, effectStarted: false };
|
|
57
|
+
if (target.text === text)
|
|
58
|
+
return { ok: true, skipped: 'unchanged' };
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
// removeChatBackground's compare-and-clear guard, normalized once for both
|
|
62
|
+
// implementations: '' (like undefined) is "no guard". The wire only carries a
|
|
63
|
+
// non-empty `background_guid` and the helper only compares a non-empty one.
|
|
64
|
+
export function normalizeChatBackgroundGuard(expectedGuid) {
|
|
65
|
+
return expectedGuid ? expectedGuid : undefined;
|
|
66
|
+
}
|
|
67
|
+
export const TEXT_EFFECT_IDS = {
|
|
68
|
+
bounce: 1,
|
|
69
|
+
stretch: 2,
|
|
70
|
+
squish: 3,
|
|
71
|
+
scaleRipple: 4,
|
|
72
|
+
big: 5,
|
|
73
|
+
bloom: 6,
|
|
74
|
+
somersault: 7,
|
|
75
|
+
nod: 8,
|
|
76
|
+
shake: 9,
|
|
77
|
+
jitter: 10,
|
|
78
|
+
small: 11,
|
|
79
|
+
explode: 12,
|
|
80
|
+
};
|
|
81
|
+
export function resolveTextFormatting(ranges) {
|
|
82
|
+
return ranges.map((r) => ({
|
|
83
|
+
start: r.start,
|
|
84
|
+
length: r.length,
|
|
85
|
+
...(r.styles ? { styles: r.styles } : {}),
|
|
86
|
+
...(r.effect !== undefined ? { effect: TEXT_EFFECT_IDS[r.effect] } : {}),
|
|
87
|
+
...(r.mention !== undefined ? { mention: r.mention } : {}),
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
export function hasMentionRange(ranges) {
|
|
91
|
+
return ranges?.some((r) => r !== null && typeof r === 'object' && r.mention !== undefined) ?? false;
|
|
92
|
+
}
|
|
93
|
+
function splitsSurrogatePair(text, index) {
|
|
94
|
+
if (index <= 0 || index >= text.length)
|
|
95
|
+
return false;
|
|
96
|
+
const before = text.charCodeAt(index - 1);
|
|
97
|
+
const after = text.charCodeAt(index);
|
|
98
|
+
return before >= 0xd800 && before <= 0xdbff && after >= 0xdc00 && after <= 0xdfff;
|
|
99
|
+
}
|
|
100
|
+
// The text-formatting preflight both gateways apply BEFORE firing. Every
|
|
101
|
+
// range's offsets are checked (the helper silently DROPS a style/effect range
|
|
102
|
+
// with bad offsets and sends plain text with `ok:true`, which a caller cannot
|
|
103
|
+
// detect since formatting is write-only — refusing here is the only honest
|
|
104
|
+
// answer), and a mention identifier must be a well-formed bounded id
|
|
105
|
+
// (isBoundedId: non-empty, no surrounding whitespace, no control bytes), the
|
|
106
|
+
// same envelope portable-chat resolution applies to participant ids. These
|
|
107
|
+
// mirror the helper's own refusals (imsg#13 IMsgMentionFormatting.m) so an
|
|
108
|
+
// invalid range is a proven no-fire on both paths. Membership (a mention
|
|
109
|
+
// must name a participant of the chat) is the helper's check against the
|
|
110
|
+
// live IMChat participant list on the real path and FakeGateway's chat
|
|
111
|
+
// record on the fake. Returns the refusal, or null.
|
|
112
|
+
export function textFormattingRefusal(text, ranges) {
|
|
113
|
+
// The declared types do not run at runtime: an untyped JS caller can hand
|
|
114
|
+
// in a single object or a null entry, which must refuse, not throw.
|
|
115
|
+
if (!Array.isArray(ranges)) {
|
|
116
|
+
return { refused: 'text-formatting-range', reason: 'textFormatting must be an array of ranges' };
|
|
117
|
+
}
|
|
118
|
+
for (const r of ranges) {
|
|
119
|
+
if (r === null || typeof r !== 'object') {
|
|
120
|
+
return { refused: 'text-formatting-range', reason: 'Formatting range must be an object' };
|
|
121
|
+
}
|
|
122
|
+
if (!Number.isInteger(r.start) || !Number.isInteger(r.length) || r.start < 0 || r.length <= 0) {
|
|
123
|
+
return {
|
|
124
|
+
refused: 'text-formatting-range',
|
|
125
|
+
reason: 'Formatting range requires integer start and positive length',
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (r.start + r.length > text.length) {
|
|
129
|
+
return { refused: 'text-formatting-range', reason: 'Formatting range is outside the message text' };
|
|
130
|
+
}
|
|
131
|
+
if (splitsSurrogatePair(text, r.start) || splitsSurrogatePair(text, r.start + r.length)) {
|
|
132
|
+
return { refused: 'text-formatting-range', reason: 'Formatting range splits a UTF-16 surrogate pair' };
|
|
133
|
+
}
|
|
134
|
+
if (r.mention === undefined)
|
|
135
|
+
continue;
|
|
136
|
+
// A JS caller can still hand in null or a number; the declared type does
|
|
137
|
+
// not run at runtime.
|
|
138
|
+
if (typeof r.mention !== 'string') {
|
|
139
|
+
return { refused: 'mention-identifier', reason: 'Mention identifier must be a string' };
|
|
140
|
+
}
|
|
141
|
+
if (!isBoundedId(r.mention)) {
|
|
142
|
+
return {
|
|
143
|
+
refused: 'mention-identifier',
|
|
144
|
+
reason: 'Mention identifier must be a bounded id without surrounding whitespace or control characters',
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// The attribute carries the identity; the visible text is what gets
|
|
148
|
+
// highlighted. A handle as the visible text renders as a phone link with
|
|
149
|
+
// no highlight and no notification (verified 2026-09-03), i.e. not a
|
|
150
|
+
// mention — refuse rather than report a confirmed mention that is not.
|
|
151
|
+
if (text.slice(r.start, r.start + r.length) === r.mention) {
|
|
152
|
+
return { refused: 'mention-identifier', reason: 'Mention range text must be the display name, not the handle' };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
// The whole sendRich preflight, shared by both gateways so parity is
|
|
158
|
+
// structural: the capability gate applies only when a range carries a
|
|
159
|
+
// mention (plain formatting predates the marker), then the range/identifier
|
|
160
|
+
// checks above. Returns the refusal result to answer with, or null to fire.
|
|
161
|
+
export function sendRichPreflight(capabilities, text, ranges) {
|
|
162
|
+
if (ranges === undefined)
|
|
163
|
+
return null;
|
|
164
|
+
if (!Array.isArray(ranges)) {
|
|
165
|
+
return {
|
|
166
|
+
result: { ok: false, refused: 'text-formatting-range' },
|
|
167
|
+
reason: 'textFormatting must be an array of ranges',
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
if (ranges.length === 0)
|
|
171
|
+
return null;
|
|
172
|
+
if (hasMentionRange(ranges) && !capabilities.mentionFormatting) {
|
|
173
|
+
return {
|
|
174
|
+
result: { ok: false, refused: 'mention-capability' },
|
|
175
|
+
reason: 'bridge does not advertise mentionFormatting',
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const refusal = textFormattingRefusal(text, ranges);
|
|
179
|
+
return refusal ? { result: { ok: false, refused: refusal.refused }, reason: refusal.reason } : null;
|
|
180
|
+
}
|
|
16
181
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":"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"}
|
package/dist/imsg/rpc.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Reaction } from '../gateway/types.js';
|
|
1
|
+
import type { NumericTextFormatRange, Reaction } from '../gateway/types.js';
|
|
2
2
|
import type { ImsgMessage, MessagePoll, SendResult } from '../types.js';
|
|
3
3
|
export declare class ImsgRpcError extends Error {
|
|
4
4
|
readonly code: number;
|
|
5
|
-
|
|
5
|
+
readonly data?: string | undefined;
|
|
6
|
+
constructor(code: number, message: string, data?: string | undefined);
|
|
6
7
|
}
|
|
7
8
|
export interface Chat {
|
|
8
9
|
id: number;
|
|
@@ -70,6 +71,32 @@ export interface CreateChatResponse {
|
|
|
70
71
|
service?: string;
|
|
71
72
|
participants?: string[];
|
|
72
73
|
}
|
|
74
|
+
export interface ChatBackgroundEventResponse {
|
|
75
|
+
row_id: number;
|
|
76
|
+
action: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ChatBackgroundStatusResponse {
|
|
79
|
+
chat_id: number;
|
|
80
|
+
chat_guid: string;
|
|
81
|
+
background_set: boolean;
|
|
82
|
+
background_channel_guid?: string | null;
|
|
83
|
+
latest_event?: ChatBackgroundEventResponse | null;
|
|
84
|
+
newest_event?: ChatBackgroundEventResponse | null;
|
|
85
|
+
operation?: ChatBackgroundOperationResponse;
|
|
86
|
+
}
|
|
87
|
+
export interface ChatBackgroundOperationResponse {
|
|
88
|
+
found: boolean;
|
|
89
|
+
state: string;
|
|
90
|
+
stage?: string;
|
|
91
|
+
detail?: string;
|
|
92
|
+
transfer_id?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface ChatBackgroundMutationResponse extends Omit<ChatBackgroundStatusResponse, 'operation'> {
|
|
95
|
+
queued: boolean;
|
|
96
|
+
persisted: boolean;
|
|
97
|
+
operation_id?: string;
|
|
98
|
+
no_background?: boolean;
|
|
99
|
+
}
|
|
73
100
|
export interface HistoryRangeOptions {
|
|
74
101
|
startAt?: string;
|
|
75
102
|
endBefore?: string;
|
|
@@ -110,6 +137,7 @@ export declare class ImsgRpc {
|
|
|
110
137
|
effect?: string;
|
|
111
138
|
replyToGuid?: string;
|
|
112
139
|
subject?: string;
|
|
140
|
+
textFormatting?: NumericTextFormatRange[];
|
|
113
141
|
}): Promise<SendResult>;
|
|
114
142
|
sendAttachment(chatId: number, filePath: string, opts?: {
|
|
115
143
|
audio?: boolean;
|
|
@@ -160,6 +188,9 @@ export declare class ImsgRpc {
|
|
|
160
188
|
}>;
|
|
161
189
|
namePhotoStatus(chatId: number): Promise<NamePhotoStatus>;
|
|
162
190
|
shareNamePhoto(chatId: number): Promise<NamePhotoShare>;
|
|
191
|
+
chatBackgroundStatus(chatId: number, operationId?: string): Promise<ChatBackgroundStatusResponse>;
|
|
192
|
+
setChatBackground(chatId: number, preset: string): Promise<ChatBackgroundMutationResponse>;
|
|
193
|
+
removeChatBackground(chatId: number, expectedBackgroundGuid?: string): Promise<ChatBackgroundMutationResponse>;
|
|
163
194
|
stop(): void;
|
|
164
195
|
}
|
|
165
196
|
export {};
|
package/dist/imsg/rpc.js
CHANGED
|
@@ -4,9 +4,15 @@ import { reportRuntimeIssue } from '../runtime-report.js';
|
|
|
4
4
|
import { imsgBinary } from './binary.js';
|
|
5
5
|
export class ImsgRpcError extends Error {
|
|
6
6
|
code;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
data;
|
|
8
|
+
constructor(code, message,
|
|
9
|
+
// JSON-RPC `error.data`: the concrete reason (busy helper, GUID mismatch,
|
|
10
|
+
// bridge timeout, ...). Callers branch on it; the message alone cannot
|
|
11
|
+
// tell those apart.
|
|
12
|
+
data) {
|
|
13
|
+
super(`imsg rpc ${code}: ${message}${data ? ` (${data})` : ''}`);
|
|
9
14
|
this.code = code;
|
|
15
|
+
this.data = data;
|
|
10
16
|
this.name = 'ImsgRpcError';
|
|
11
17
|
}
|
|
12
18
|
}
|
|
@@ -64,7 +70,7 @@ export class ImsgRpc {
|
|
|
64
70
|
this.pending.delete(Number(msg.id));
|
|
65
71
|
clearTimeout(p.timer);
|
|
66
72
|
if (msg.error)
|
|
67
|
-
p.reject(new ImsgRpcError(msg.error.code, msg.error.message));
|
|
73
|
+
p.reject(new ImsgRpcError(msg.error.code, msg.error.message, msg.error.data));
|
|
68
74
|
else
|
|
69
75
|
p.resolve(msg.result);
|
|
70
76
|
}
|
|
@@ -174,6 +180,7 @@ export class ImsgRpc {
|
|
|
174
180
|
...(opts.subject !== undefined ? { subject: opts.subject } : {}),
|
|
175
181
|
...(opts.effect ? { effect: opts.effect } : {}),
|
|
176
182
|
...(opts.replyToGuid ? { reply_to: opts.replyToGuid } : {}),
|
|
183
|
+
...(opts.textFormatting?.length ? { text_formatting: opts.textFormatting } : {}),
|
|
177
184
|
});
|
|
178
185
|
}
|
|
179
186
|
// Verified against openclaw/imsg 0.13.x source: `send.attachment`
|
|
@@ -267,6 +274,27 @@ export class ImsgRpc {
|
|
|
267
274
|
shareNamePhoto(chatId) {
|
|
268
275
|
return this.request('contacts.shareContactCard', { chat_id: chatId });
|
|
269
276
|
}
|
|
277
|
+
// ---- Chat backgrounds (Mapier-Labs/imsg#12, RPCServer+ChatHandlers.swift).
|
|
278
|
+
// set/remove return as soon as the helper accepts the request; the serial
|
|
279
|
+
// RPC loop is never blocked on the 30–90 s persistence window. Status is
|
|
280
|
+
// the read-back and accepts the Set operation id for the helper record.
|
|
281
|
+
chatBackgroundStatus(chatId, operationId) {
|
|
282
|
+
return this.request('chat.background.status', {
|
|
283
|
+
chat_id: chatId,
|
|
284
|
+
...(operationId ? { operation_id: operationId } : {}),
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
setChatBackground(chatId, preset) {
|
|
288
|
+
return this.request('chat.background.set', { chat_id: chatId, preset });
|
|
289
|
+
}
|
|
290
|
+
// Takes an already-normalized guard (gateway/types.ts
|
|
291
|
+
// normalizeChatBackgroundGuard): undefined = no guard on the wire.
|
|
292
|
+
removeChatBackground(chatId, expectedBackgroundGuid) {
|
|
293
|
+
return this.request('chat.background.remove', {
|
|
294
|
+
chat_id: chatId,
|
|
295
|
+
...(expectedBackgroundGuid !== undefined ? { background_guid: expectedBackgroundGuid } : {}),
|
|
296
|
+
});
|
|
297
|
+
}
|
|
270
298
|
stop() {
|
|
271
299
|
this.stopping = true;
|
|
272
300
|
this.child.stdin.end();
|
package/dist/imsg/rpc.js.map
CHANGED
|
@@ -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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"}
|
package/dist/imsg/status.js
CHANGED
|
@@ -7,6 +7,10 @@ export const NO_PATCHED_GATEWAY_CAPABILITIES = {
|
|
|
7
7
|
groupPhoto: false,
|
|
8
8
|
groupParticipants: false,
|
|
9
9
|
namePhotoSharing: false,
|
|
10
|
+
chatBackgroundSet: false,
|
|
11
|
+
chatBackgroundRemove: false,
|
|
12
|
+
editMessage: false,
|
|
13
|
+
mentionFormatting: false,
|
|
10
14
|
};
|
|
11
15
|
export function patchedCapabilitiesFromStatus(status) {
|
|
12
16
|
const selectors = status.selectors ?? {};
|
|
@@ -16,6 +20,19 @@ export function patchedCapabilitiesFromStatus(status) {
|
|
|
16
20
|
groupPhoto: selectors.groupPhotoUpdate === true,
|
|
17
21
|
groupParticipants: selectors.groupAddParticipant === true && selectors.groupRemoveParticipant === true,
|
|
18
22
|
namePhotoSharing: selectors.namePhotoShouldOffer === true && selectors.namePhotoShare === true,
|
|
23
|
+
// IMsgInjected.m advertises these as composite markers already: Remove =
|
|
24
|
+
// setter + live GUID getter, Set = setter + PosterBoard/ChatKit runtime.
|
|
25
|
+
chatBackgroundSet: selectors.chatBackgroundSetGradient === true,
|
|
26
|
+
chatBackgroundRemove: selectors.chatBackgroundRemove === true,
|
|
27
|
+
// IMsgInjected.m probes the macOS 27 five-argument selector, the macOS 26
|
|
28
|
+
// four-argument editMessageItem:, and the macOS 13 editMessage: form and
|
|
29
|
+
// uses the first present one (handleEditMessage). Any of them is enough.
|
|
30
|
+
editMessage: selectors.editMessageItemTranslation === true ||
|
|
31
|
+
selectors.editMessageItem === true ||
|
|
32
|
+
selectors.editMessage === true,
|
|
33
|
+
// IMsgMentionFormatting.m: true only when the IMSharedUtilities
|
|
34
|
+
// confirmed-mention attribute key resolved in the running Messages.
|
|
35
|
+
mentionFormatting: selectors.mentionFormatting === true,
|
|
19
36
|
};
|
|
20
37
|
}
|
|
21
38
|
export function readPatchedGatewayCapabilities() {
|
package/dist/imsg/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/imsg/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/imsg/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,MAAM,UAAU,6BAA6B,CAAC,MAAyB;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,OAAO;QACL,YAAY,EAAE,SAAS,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI;QAC5G,WAAW,EAAE,SAAS,CAAC,WAAW,KAAK,IAAI;QAC3C,UAAU,EAAE,SAAS,CAAC,gBAAgB,KAAK,IAAI;QAC/C,iBAAiB,EAAE,SAAS,CAAC,mBAAmB,KAAK,IAAI,IAAI,SAAS,CAAC,sBAAsB,KAAK,IAAI;QACtG,gBAAgB,EAAE,SAAS,CAAC,oBAAoB,KAAK,IAAI,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI;QAC9F,yEAAyE;QACzE,yEAAyE;QACzE,iBAAiB,EAAE,SAAS,CAAC,yBAAyB,KAAK,IAAI;QAC/D,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,KAAK,IAAI;QAC7D,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,WAAW,EACT,SAAS,CAAC,0BAA0B,KAAK,IAAI;YAC7C,SAAS,CAAC,eAAe,KAAK,IAAI;YAClC,SAAS,CAAC,WAAW,KAAK,IAAI;QAChC,gEAAgE;QAChE,oEAAoE;QACpE,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,KAAK,IAAI;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YAC9D,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAsB,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,+BAA+B,EAAE,CAAC;IAChD,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/docs/api.md
CHANGED
|
@@ -22,6 +22,7 @@ const gateway: Gateway = new ImsgGateway((code) => {
|
|
|
22
22
|
| Bridge actions | `tapback`, `emojiTapback`, `sendRich`, `sendAttachment`, `sendSticker`, `sendPoll`, `sendRichLink` |
|
|
23
23
|
| Mutation | `editMessage`, `unsendMessage`, `deleteMessage`, `setTyping`, `markRead` |
|
|
24
24
|
| Group and identity | `renameGroup`, `setGroupPhoto`, `addParticipant`, `removeParticipant`, `leaveGroup`, `shareNamePhoto` |
|
|
25
|
+
| Chat backgrounds | `chatBackgroundStatus`, `setChatBackground`, `removeChatBackground` |
|
|
25
26
|
|
|
26
27
|
`Gateway.capabilities` is a runtime descriptor, not an optimistic feature
|
|
27
28
|
list. Check it before presenting a patched action to a user. A false capability
|
package/docs/bridge-contract.md
CHANGED
|
@@ -20,12 +20,13 @@ Snapshot: `imsg` 0.13.0, bridge_version 2, macOS host `dev-real-mapidev`, 2026-0
|
|
|
20
20
|
| --- | --- | :---: |
|
|
21
21
|
| `send` | `message.send` (text) | ✓ |
|
|
22
22
|
| `send.rich` | `message.send` (rich_text, effects, reply) | ✓ |
|
|
23
|
+
| `send.rich` `text_formatting[].mention` | `sendRich({ textFormatting: [{ mention }] })` | ✓ SDK verb host-verified 2026-09-03 incl. recipient highlight (imsg#13, `7c31772`); relay payload pending |
|
|
23
24
|
| `send.rich` (url) | `message.send` (rich_link) | ✓ |
|
|
24
25
|
| `send.attachment` | `message.send` (attachment, voice) | ✓ |
|
|
25
26
|
| `send.sticker` | `message.send` (sticker) | ✓ |
|
|
26
27
|
| `poll.send` | `message.send` (poll) | ✓ |
|
|
27
28
|
| `tapback` | `reaction.tapback` | ✓ |
|
|
28
|
-
| `message.edit` | `message.moderate` edit
|
|
29
|
+
| `message.edit` | `message.moderate` edit / `editMessage` | ✓ SDK verb host-verified 2026-09-03 on macOS 27 (imsg#3 selector; native E2E imsg#11); relay maps `effectStarted` (follow-up) |
|
|
29
30
|
| `message.unsend` | `message.moderate` unsend | ✓ |
|
|
30
31
|
| `message.delete` | `message.moderate` delete | ✓ |
|
|
31
32
|
| `group.rename` | `group.update` rename | ✓ |
|
|
@@ -42,6 +43,9 @@ Snapshot: `imsg` 0.13.0, bridge_version 2, macOS host `dev-real-mapidev`, 2026-0
|
|
|
42
43
|
| `read` | internal presence, not an API command | ✗ |
|
|
43
44
|
| `handles.check` | checkHandle | ✗ |
|
|
44
45
|
| `group.leave` | leaveGroup | ? no leave selector on 0.13.0 (#5) — may work on newer fork; needs e2e |
|
|
46
|
+
| `chat.background.status` | `chatBackgroundStatus` | ✓ SDK verb host-verified 2026-09-03 (chat.db read; imsg#12 build); relay command pending |
|
|
47
|
+
| `chat.background.set` | `setChatBackground` (Gradient) | ✓ SDK verb host-verified 2026-09-03 on macOS 27 (native E2E before imsg#12 merged); relay command pending |
|
|
48
|
+
| `chat.background.remove` | `removeChatBackground` | ✓ SDK verb host-verified 2026-09-03 on macOS 27 (native E2E before imsg#12 merged); relay command pending |
|
|
45
49
|
| `poll.vote` | — | ✗ |
|
|
46
50
|
| `poll.unvote` | — | ✗ |
|
|
47
51
|
| `messages.scheduled` | list scheduled (read-only, not a send) | ✗ |
|
|
@@ -53,12 +57,12 @@ Cheap wins (bridge selector live, only SDK verb + relay command missing):
|
|
|
53
57
|
`handles.check`, `poll.vote`/`poll.unvote`.
|
|
54
58
|
|
|
55
59
|
Needs e2e / fork fix first (RPC present but selector false on 0.13.0):
|
|
56
|
-
`group.leave` (#5)
|
|
60
|
+
`group.leave` (#5). (`message.edit` now works on macOS 27 via imsg#3.)
|
|
57
61
|
|
|
58
62
|
No schedule-a-send verb exists — `scheduled` only lists rows the user set in the UI;
|
|
59
63
|
`send`/`send.rich` have no date flag. So scheduled send needs native fork work.
|
|
60
64
|
|
|
61
65
|
No bridge RPC (need native work first, or impossible): arbitrary contact vCard,
|
|
62
|
-
Find My / location, FaceTime,
|
|
66
|
+
Find My / location, FaceTime, Focus/DND state.
|
|
63
67
|
|
|
64
68
|
See [capability-matrix.md](./capability-matrix.md) for the SDK's release-gating view.
|
|
@@ -8,8 +8,11 @@ contract; “capability-gated” means the selected binary must prove it at star
|
|
|
8
8
|
| --- | --- | --- |
|
|
9
9
|
| Read chats/history, watch, plain-text send | Available | Basic host controls pass doctor |
|
|
10
10
|
| Standard six tapbacks and group creation | Available | Accessibility/Automation host setup and live smoke |
|
|
11
|
-
| Targeted tapbacks, rich text/effects/replies, attachments, polls,
|
|
11
|
+
| Targeted tapbacks, rich text/effects/replies, attachments, polls, unsend/delete, typing/read | Available | Bridge ready and Tier-2 smoke |
|
|
12
|
+
| Confirmed @mentions on `sendRich` | Available, capability-gated (host-verified 2026-09-03, recipient highlight observed) | `mentionFormatting` selector marker present (imsg#13 helper, merged as `7c31772`); `tier2-smoke.ts <chatId> --only-mention --mention-handle <IMHandle.ID> --mention-name <name>` on the host, recorded in the contract ledger |
|
|
13
|
+
| Edit message | Available, capability-gated (host-verified 2026-09-03) | Any of the `editMessageItemTranslation` (macOS 27, imsg#3) / `editMessageItem` / `editMessage` selector markers present; `tier2-smoke.ts <chatId> --only-edit-message` on the host, recorded in the contract ledger |
|
|
12
14
|
| Custom emoji, stickers, group photo, group membership, Name & Photo | Available | Corresponding Mapier selector marker is present |
|
|
15
|
+
| Chat background set (Gradient) / remove | Available, capability-gated (host-verified 2026-09-03) | `chatBackgroundSetGradient` / `chatBackgroundRemove` selector markers present (imsg#12 build); `tier2-smoke.ts <chatId> --only-chat-background` on the host, recorded in the contract ledger; status read needs no marker |
|
|
13
16
|
| Rich links | Present but conservative | Build must carry the rich-link fix; receiver-visible release smoke required |
|
|
14
17
|
| Leave group | Present but unavailable on the verified host | Do not advertise until a native build restores and smokes it |
|
|
15
18
|
| Mark unread, force notify, delete chat | Not exposed by this SDK | Current upstream `imsg` has RPC actions; first port them into the Mapier fork, then host-verify, capability-gate, document, and add conformance coverage |
|
package/docs/compatibility.md
CHANGED
|
@@ -10,7 +10,7 @@ bridge, macOS release, and selector set must agree.
|
|
|
10
10
|
| --- | --- | --- |
|
|
11
11
|
| Basic host control | `imsg-sdk doctor` reports `basic_features: true` | chat/history reads, watch, standard sends, basic reactions, group creation |
|
|
12
12
|
| Bridge control | Doctor also reports `advanced_features: true` and `v2_ready: true` | Tier-2 message and group actions exposed by `Gateway` |
|
|
13
|
-
| Patched Mapier controls | The bridge reports the corresponding selector markers | custom emoji tapbacks, stickers, group photo/membership, Name & Photo |
|
|
13
|
+
| Patched Mapier controls | The bridge reports the corresponding selector markers | custom emoji tapbacks, stickers, group photo/membership, Name & Photo, chat background set/remove, edit message, confirmed @mentions |
|
|
14
14
|
| Linux or a copied database | No host Messages.app | read-only inspection only; do not instantiate `ImsgGateway` for a control action |
|
|
15
15
|
|
|
16
16
|
The deployment target is Mapier's `markxiong0122/imsg` branch
|
|
@@ -39,6 +39,9 @@ makes it work.
|
|
|
39
39
|
- The native `imsg` project documents macOS 26 private-entitlement and library-validation limits; a doctor warning means the SDK will refuse patched actions rather than claim success.
|
|
40
40
|
- `sendRichLink` requires a build that contains Mapier's rich-link synchronous-dispatch fix; this has no selector marker, so retain a receiver-visible smoke in the release record.
|
|
41
41
|
- `leaveGroup` remains unavailable on the currently verified host build. The gateway returns `{ ok: false }` rather than fabricate success.
|
|
42
|
+
- Confirmed @mentions need the imsg#13 helper (`mentionFormatting` marker, resolved at runtime from a private IMSharedUtilities key, so OS-version-sensitive); the SDK refuses a mention range before firing when the marker is absent or the range/handle is malformed, and the helper refuses non-participant handles.
|
|
43
|
+
- Edit message needs a helper that probes the macOS 27 five-argument edit selector (imsg#3); the SDK gates on the `editMessage` capability, which any of the three IMChat edit selector markers satisfies.
|
|
44
|
+
- Chat backgrounds need the imsg#12 build (`chat.background.*` RPCs plus the `chatBackgroundSetGradient` / `chatBackgroundRemove` markers). The native server reports every chat-background failure under JSON-RPC `-32603` with the reason only in `error.data`; the SDK treats the helper's known pre-queue refusals as proven rejections and everything else (bridge timeout, post-invoke exceptions) as `effectStarted: true`, which consumers must reconcile rather than retry blindly. `chatBackgroundStatus` throws `-32601` on a pre-imsg#12 binary.
|
|
42
45
|
|
|
43
46
|
Run the preflight before deploying a host:
|
|
44
47
|
|