@openclaw/imessage 2026.9.3 → 2026.9.4
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/api.js +1 -1
- package/dist/{channel-B6qtBfCj.js → channel-BwKxE8Ge.js} +6 -2
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-C2lcFXWn.js → channel.runtime-BGwNkU9Z.js} +1 -1
- package/dist/{monitor-Dj3TAimI.js → monitor-xaD-9h0b.js} +8 -5
- package/dist/runtime-api.js +1 -1
- package/openclaw.plugin.json +3 -0
- package/package.json +4 -4
package/dist/api.js
CHANGED
|
@@ -2,7 +2,7 @@ import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as
|
|
|
2
2
|
import { _ as IMESSAGE_ACTION_NAMES, a as isAllowedIMessageSender, c as parseIMessageAllowTarget, g as IMESSAGE_ACTIONS, l as parseIMessageTarget, n as formatIMessageChatTarget, o as looksLikeIMessageExplicitTargetId, r as inferIMessageTargetChatType, s as normalizeIMessageHandle } from "./message-tool-api-CUoFESHj.js";
|
|
3
3
|
import { m as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./sanitize-outbound-C6UF2cvr.js";
|
|
4
4
|
import { a as normalizeIMessageAcpConversationId, c as normalizeIMessageMessagingTarget, f as probeIMessage, i as matchIMessageAcpConversation, n as resolveIMessageGroupToolPolicy, o as resolveIMessageConversationIdFromTarget, r as resolveIMessageInboundConversationId, s as looksLikeIMessageTargetId, t as resolveIMessageGroupRequireMention, v as imessageSetupContract } from "./group-policy-Duro87b4.js";
|
|
5
|
-
import { n as createIMessagePluginBase, r as imessageSetupWizard, t as imessagePlugin } from "./channel-
|
|
5
|
+
import { n as createIMessagePluginBase, r as imessageSetupWizard, t as imessagePlugin } from "./channel-BwKxE8Ge.js";
|
|
6
6
|
import { t as createIMessageConversationBindingManager } from "./conversation-bindings-GDQ_Laxj.js";
|
|
7
7
|
import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./outbound-send-deps-B-QEsLSM.js";
|
|
8
8
|
import { createAllowedChatSenderMatcher, parseChatAllowTargetPrefixes, parseChatTargetPrefixesOrThrow, resolveServicePrefixedAllowTarget, resolveServicePrefixedChatTarget, resolveServicePrefixedOrChatAllowTarget, resolveServicePrefixedTarget } from "openclaw/plugin-sdk/channel-targets";
|
|
@@ -75,6 +75,7 @@ const imessageApproval = createApproverRestrictedNativeApprovalCapabilityFromFor
|
|
|
75
75
|
}) }
|
|
76
76
|
},
|
|
77
77
|
createNativeRuntime: (routing) => createLazyChannelApprovalNativeRuntimeAdapter({
|
|
78
|
+
capabilityBoundary: true,
|
|
78
79
|
eventKinds: [
|
|
79
80
|
"exec",
|
|
80
81
|
"plugin",
|
|
@@ -206,7 +207,7 @@ const imessageDoctor = {
|
|
|
206
207
|
//#region extensions/imessage/src/shared.ts
|
|
207
208
|
const IMESSAGE_CHANNEL = "imessage";
|
|
208
209
|
async function loadIMessageChannelRuntime$1() {
|
|
209
|
-
return await import("./channel.runtime-
|
|
210
|
+
return await import("./channel.runtime-BGwNkU9Z.js");
|
|
210
211
|
}
|
|
211
212
|
const imessageSetupWizard = createIMessageSetupWizardProxy(async () => (await loadIMessageChannelRuntime$1()).imessageSetupWizard);
|
|
212
213
|
const imessageConfigAdapter = createScopedChannelConfigAdapter({
|
|
@@ -308,7 +309,7 @@ async function probeIMessageStatusAccount(params) {
|
|
|
308
309
|
}
|
|
309
310
|
//#endregion
|
|
310
311
|
//#region extensions/imessage/src/channel.ts
|
|
311
|
-
const loadIMessageChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-
|
|
312
|
+
const loadIMessageChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-BGwNkU9Z.js"));
|
|
312
313
|
function toIMessageMessageSendResult(result, kind, replyToId) {
|
|
313
314
|
const receipt = result.receipt ?? createMessageReceiptFromOutboundResults({
|
|
314
315
|
results: result.messageId ? [{
|
|
@@ -506,9 +507,12 @@ const imessagePlugin = createChatChannelPlugin({
|
|
|
506
507
|
if (!to) return null;
|
|
507
508
|
const chatType = inferIMessageTargetChatType(to);
|
|
508
509
|
if (!chatType) return null;
|
|
510
|
+
const parsed = parseIMessageTarget(to);
|
|
511
|
+
const display = parsed.kind === "handle" && !isCanonicalIMessageDirectHandle(parsed.to, normalizeIMessageHandle(parsed.to)) ? parsed.to.trim() : void 0;
|
|
509
512
|
return {
|
|
510
513
|
to,
|
|
511
514
|
kind: chatType === "direct" ? "user" : "group",
|
|
515
|
+
...display ? { display } : {},
|
|
512
516
|
source: "normalized"
|
|
513
517
|
};
|
|
514
518
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as imessagePlugin } from "./channel-
|
|
1
|
+
import { t as imessagePlugin } from "./channel-BwKxE8Ge.js";
|
|
2
2
|
export { imessagePlugin };
|
|
@@ -2,7 +2,7 @@ import { l as resolveIMessageRemoteHost, o as resolveIMessageAccount, r as listE
|
|
|
2
2
|
import { _ as imessageDmPolicy, b as isAutoManagedIMessageCliPath, f as probeIMessage, g as imessageCompletionNote, m as createIMessageCliPathTextInput, p as IMESSAGE_INSTALL_COMMAND, x as normalizeIMessageCliPathForSetup, y as imessageSetupStatusBase } from "./group-policy-Duro87b4.js";
|
|
3
3
|
import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./outbound-send-deps-B-QEsLSM.js";
|
|
4
4
|
import { t as sendMessageIMessage } from "./send-CIHiLtcY.js";
|
|
5
|
-
import { t as monitorIMessageProvider } from "./monitor-
|
|
5
|
+
import { t as monitorIMessageProvider } from "./monitor-xaD-9h0b.js";
|
|
6
6
|
import { createAccountStatusSink, resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
|
|
@@ -585,7 +585,7 @@ function parseIMessageNotification(raw) {
|
|
|
585
585
|
const maybeMessage = raw.message;
|
|
586
586
|
if (!isRecord(maybeMessage)) return null;
|
|
587
587
|
const message = maybeMessage;
|
|
588
|
-
if (!isOptionalNumber(message.id) || !isOptionalString(message.guid) || !isOptionalNumber(message.chat_id) || !isOptionalString(message.sender) || !isOptionalString(message.destination_caller_id) || !isOptionalBoolean(message.is_from_me) || !isOptionalString(message.text) || !isOptionalString(message.thread_originator_guid) || !isOptionalString(message.reply_to_guid) || !isOptionalString(message.reply_to_text) || !isOptionalString(message.reply_to_sender) || !isOptionalString(message.created_at) || !isOptionalBoolean(message.is_reaction) || !isOptionalBoolean(message.is_tapback) || !isOptionalString(message.associated_message_guid) || !isOptionalNumber(message.associated_message_type) || !isOptionalString(message.reaction_type) || !isOptionalString(message.reaction_emoji) || !isOptionalBoolean(message.is_reaction_add) || !isOptionalString(message.reacted_to_guid) || !isOptionalAttachments(message.attachments) || !isOptionalString(message.chat_identifier) || !isOptionalString(message.chat_guid) || !isOptionalString(message.chat_name) || !isOptionalStringArray(message.participants) || !isOptionalBoolean(message.is_group)) return null;
|
|
588
|
+
if (!isOptionalNumber(message.id) || !isOptionalString(message.guid) || !isOptionalNumber(message.chat_id) || !isOptionalString(message.sender) || !isOptionalString(message.sender_name) || !isOptionalString(message.destination_caller_id) || !isOptionalBoolean(message.is_from_me) || !isOptionalString(message.text) || !isOptionalString(message.thread_originator_guid) || !isOptionalString(message.reply_to_guid) || !isOptionalString(message.reply_to_text) || !isOptionalString(message.reply_to_sender) || !isOptionalString(message.created_at) || !isOptionalBoolean(message.is_reaction) || !isOptionalBoolean(message.is_tapback) || !isOptionalString(message.associated_message_guid) || !isOptionalNumber(message.associated_message_type) || !isOptionalString(message.reaction_type) || !isOptionalString(message.reaction_emoji) || !isOptionalBoolean(message.is_reaction_add) || !isOptionalString(message.reacted_to_guid) || !isOptionalAttachments(message.attachments) || !isOptionalString(message.chat_identifier) || !isOptionalString(message.chat_guid) || !isOptionalString(message.chat_name) || !isOptionalStringArray(message.participants) || !isOptionalBoolean(message.is_group)) return null;
|
|
589
589
|
return {
|
|
590
590
|
...message,
|
|
591
591
|
text: typeof message.text === "string" ? stripImessageLengthPrefixedUtf8Text(message.text) : message.text,
|
|
@@ -1934,12 +1934,15 @@ async function buildIMessageInboundContext(params) {
|
|
|
1934
1934
|
isFromMe: false
|
|
1935
1935
|
}) : null)?.shortId || void 0;
|
|
1936
1936
|
const replySuffix = decision.replyContext ? `\n\n[Replying to ${decision.replyContext.sender ?? "unknown sender"}${decision.replyContext.id ? ` id:${decision.replyContext.id}` : ""}]\n${decision.replyContext.body}\n[/Replying]` : "";
|
|
1937
|
+
const senderDisplayName = normalizeNonEmpty(params.message.sender_name ?? "");
|
|
1938
|
+
const directConversationName = senderDisplayName ?? normalizeNonEmpty(params.message.chat_name ?? "") ?? decision.senderNormalized;
|
|
1939
|
+
const conversationName = decision.isGroup ? normalizeNonEmpty(params.message.chat_name ?? "") ?? void 0 : directConversationName;
|
|
1937
1940
|
const fromLabel = formatInboundFromLabel({
|
|
1938
1941
|
isGroup: decision.isGroup,
|
|
1939
1942
|
groupLabel: params.message.chat_name ?? void 0,
|
|
1940
1943
|
groupId: chatId !== void 0 ? String(chatId) : "unknown",
|
|
1941
1944
|
groupFallback: "Group",
|
|
1942
|
-
directLabel:
|
|
1945
|
+
directLabel: directConversationName,
|
|
1943
1946
|
directId: decision.sender
|
|
1944
1947
|
});
|
|
1945
1948
|
let combinedBody = formatInboundEnvelope({
|
|
@@ -1949,7 +1952,7 @@ async function buildIMessageInboundContext(params) {
|
|
|
1949
1952
|
body: `${decision.agentBodyText ?? decision.bodyText}${replySuffix}`,
|
|
1950
1953
|
chatType: decision.isGroup ? "group" : "direct",
|
|
1951
1954
|
sender: {
|
|
1952
|
-
name: decision.senderNormalized,
|
|
1955
|
+
name: senderDisplayName ?? decision.senderNormalized,
|
|
1953
1956
|
id: decision.sender
|
|
1954
1957
|
},
|
|
1955
1958
|
previousTimestamp: params.previousTimestamp,
|
|
@@ -2001,7 +2004,7 @@ async function buildIMessageInboundContext(params) {
|
|
|
2001
2004
|
from: imessageFrom,
|
|
2002
2005
|
sender: {
|
|
2003
2006
|
id: decision.sender,
|
|
2004
|
-
name: decision.senderNormalized,
|
|
2007
|
+
name: senderDisplayName ?? decision.senderNormalized,
|
|
2005
2008
|
isSelf: params.message.is_from_me === true
|
|
2006
2009
|
},
|
|
2007
2010
|
conversation: {
|
|
@@ -2011,7 +2014,7 @@ async function buildIMessageInboundContext(params) {
|
|
|
2011
2014
|
kind: decision.isGroup ? "group" : "direct",
|
|
2012
2015
|
id: decision.isGroup ? String(chatId) : decision.senderNormalized
|
|
2013
2016
|
} },
|
|
2014
|
-
label:
|
|
2017
|
+
label: conversationName
|
|
2015
2018
|
},
|
|
2016
2019
|
route: {
|
|
2017
2020
|
agentId: decision.route.agentId,
|
package/dist/runtime-api.js
CHANGED
|
@@ -3,7 +3,7 @@ import { c as normalizeIMessageMessagingTarget, d as imessageMessageActions, f a
|
|
|
3
3
|
import { r as setIMessageRuntime } from "./runtime-Cza4CY5T.js";
|
|
4
4
|
import { n as IMessageConfigSchema } from "./config-schema-CCbTcJEV.js";
|
|
5
5
|
import { t as sendMessageIMessage } from "./send-CIHiLtcY.js";
|
|
6
|
-
import { t as monitorIMessageProvider } from "./monitor-
|
|
6
|
+
import { t as monitorIMessageProvider } from "./monitor-xaD-9h0b.js";
|
|
7
7
|
import { formatTrimmedAllowFromEntries } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
8
8
|
import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
|
|
9
9
|
import { buildComputedAccountStatusSnapshot, collectStatusIssuesFromLastError } from "openclaw/plugin-sdk/status-helpers";
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/imessage",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.4",
|
|
4
4
|
"description": "OpenClaw iMessage channel plugin using imsg on a signed-in Mac",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"zod": "4.4.3"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.9.
|
|
15
|
+
"openclaw": ">=2026.9.4"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -92,10 +92,10 @@
|
|
|
92
92
|
"allowInvalidConfigRecovery": true
|
|
93
93
|
},
|
|
94
94
|
"compat": {
|
|
95
|
-
"pluginApi": ">=2026.9.
|
|
95
|
+
"pluginApi": ">=2026.9.4"
|
|
96
96
|
},
|
|
97
97
|
"build": {
|
|
98
|
-
"openclawVersion": "2026.9.
|
|
98
|
+
"openclawVersion": "2026.9.4",
|
|
99
99
|
"bundledDist": false
|
|
100
100
|
},
|
|
101
101
|
"release": {
|