@openclaw/imessage 2026.10.10 → 2026.11.2
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/.setup/{accounts-BH0coL46.mjs → accounts-DacCvDBt.mjs} +6 -3
- package/dist/.setup/{actions-CW7XYYF4.mjs → actions-FOjSVXxg.mjs} +63 -13
- package/dist/.setup/{actions.runtime-B2ZHQ3TJ.mjs → actions.runtime-Mh1ED1Pq.mjs} +9 -6
- package/dist/.setup/{api-B0ih8Iof.mjs → api-BpfhqSA4.mjs} +9 -9
- package/dist/.setup/{api-6xi-NBrt.mjs → api-BvfhvRlZ.mjs} +9 -8
- package/dist/.setup/{approval-handler.runtime-BKmqba3L.mjs → approval-handler.runtime-Bes82dAn.mjs} +11 -10
- package/dist/.setup/{approval-reactions-B9CJS0NT.mjs → approval-reactions-g1TDaSN2.mjs} +12 -9
- package/dist/.setup/{channel-6kcKpSRw.mjs → channel-BtDnHgzF.mjs} +34 -23
- package/dist/.setup/{channel.runtime-BW4A0m4h.mjs → channel.runtime-BomnjKt2.mjs} +86 -58
- package/dist/.setup/{client-C3e7ZLqA.mjs → client-DlNC08mM.mjs} +39 -14
- package/dist/.setup/{config-schema-DRkdRC21.mjs → config-schema-DXwa_3V5.mjs} +4 -2
- package/dist/.setup/{conversation-bindings-vZFn6sN2.mjs → conversation-bindings-DR-dbHjs.mjs} +2 -1
- package/dist/.setup/{media-contract-CoixpXRX.mjs → media-contract-BwWs5PM7.mjs} +3 -2
- package/dist/.setup/{message-tool-api-CxSY_rh7.mjs → message-tool-api-B5NfPnFL.mjs} +8 -5
- package/dist/.setup/{outbound-send-deps-_da8jqeo.mjs → outbound-send-deps-B-QEsLSM.mjs} +2 -1
- package/dist/.setup/{question-reactions-DTj-VH3N.mjs → question-reactions-CgZKeyy3.mjs} +5 -4
- package/dist/.setup/{reaction-context-Bw00FkmU.mjs → reaction-context-7yLnHd5m.mjs} +3 -2
- package/dist/.setup/{remote-file-CCgMYZ-u.mjs → remote-file-D8UX85bK.mjs} +10 -6
- package/dist/.setup/{rolldown-runtime-782esTHO.mjs → rolldown-runtime-BBjsoOtd.mjs} +2 -1
- package/dist/.setup/{runtime-BRQCPuAD.mjs → runtime-Cza4CY5T.mjs} +2 -1
- package/dist/.setup/{sanitize-outbound-C02fJrn6.mjs → sanitize-outbound-BtEY324R.mjs} +4 -2
- package/dist/.setup/{send-D98hQFdv.mjs → send-D44ovNNq.mjs} +24 -14
- package/dist/.setup/{setup-core-BWnW0czE.mjs → setup-core-BHyLkAEJ.mjs} +4 -3
- package/dist/.setup/{setup-surface-aRZhAzzQ.mjs → setup-surface-DPqiLGy0.mjs} +6 -4
- package/dist/.setup/{targets-CIx4BKqL.mjs → targets-B4oU7n-v.mjs} +6 -3
- package/dist/api.js +9 -9
- package/dist/channel-config-api.js +2 -1
- package/dist/channel-plugin-api.js +2 -1
- package/dist/contract-api.js +2 -1
- package/dist/doctor-contract-api.js +13 -7
- package/dist/index.js +2 -1
- package/dist/media-contract-api.js +2 -1
- package/dist/message-tool-api.js +2 -1
- package/dist/runtime-api.js +2 -2
- package/dist/secret-contract-api.js +2 -1
- package/dist/session-binding-contract-api.js +2 -1
- package/dist/setup-entry.js +3 -2
- package/dist/src/chat-db.worker.js +3 -2
- package/package.json +4 -4
- package/dist/.source-module-urls/929c518fa2986b0f85f66bceefead22868db0ab452dee914dc6a2bb86b2e60ad.json +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as resolveLocalIMessageChatDbPath } from "./accounts-
|
|
2
|
-
import { b as
|
|
1
|
+
import { p as resolveLocalIMessageChatDbPath } from "./accounts-DacCvDBt.mjs";
|
|
2
|
+
import { b as chatContextFromIMessageTarget, l as resolveIMessageCachedResourceBinding, u as resolveIMessageMessageId, x as isIMessageEmailChatIdentifier } from "./client-DlNC08mM.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { normalizeScpRemoteHost } from "openclaw/plugin-sdk/host-runtime";
|
|
5
5
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
@@ -8,7 +8,7 @@ import { randomUUID } from "node:crypto";
|
|
|
8
8
|
import { resolveRuntimeWorkerUrl, runCommandWithTimeout } from "openclaw/plugin-sdk/process-runtime";
|
|
9
9
|
import { sanitizeTempFileName } from "openclaw/plugin-sdk/temp-path";
|
|
10
10
|
import { openSqliteWorkerStore } from "openclaw/plugin-sdk/sqlite-runtime";
|
|
11
|
-
|
|
11
|
+
//#region extensions/imessage/src/chat-db.ts
|
|
12
12
|
function openIMessageChatDbReader(databasePath) {
|
|
13
13
|
return openSqliteWorkerStore({
|
|
14
14
|
moduleUrl: resolveRuntimeWorkerUrl({
|
|
@@ -62,7 +62,8 @@ async function withIMessageReceiptGuidReader(databasePath, use) {
|
|
|
62
62
|
} catch {}
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region extensions/imessage/src/message-resource-db.ts
|
|
66
67
|
function normalizeIMessageMessageGuidForLookup(messageId) {
|
|
67
68
|
const trimmed = messageId.trim();
|
|
68
69
|
const slash = trimmed.lastIndexOf("/");
|
|
@@ -134,7 +135,8 @@ async function checkIMessageResourceBinding(params) {
|
|
|
134
135
|
} catch {}
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region extensions/imessage/src/message-resource.ts
|
|
138
140
|
const MAX_REPLY_TO_ID_LENGTH = 256;
|
|
139
141
|
function sanitizeReplyToId(rawReplyToId) {
|
|
140
142
|
const trimmed = rawReplyToId?.trim();
|
|
@@ -184,7 +186,8 @@ async function authorizeIMessageResourceReference(params) {
|
|
|
184
186
|
if (params.conversationReadOrigin === "direct-operator") return;
|
|
185
187
|
throw new Error("Delegated iMessage message references require a current same-account conversation binding when the Messages database is unavailable.");
|
|
186
188
|
}
|
|
187
|
-
|
|
189
|
+
//#endregion
|
|
190
|
+
//#region extensions/imessage/src/remote-file.ts
|
|
188
191
|
const SSH_OPTIONS = [
|
|
189
192
|
"-o",
|
|
190
193
|
"BatchMode=yes",
|
|
@@ -280,4 +283,5 @@ rm -rf -- ${remoteDir}
|
|
|
280
283
|
}
|
|
281
284
|
}
|
|
282
285
|
}
|
|
286
|
+
//#endregion
|
|
283
287
|
export { withIMessageReceiptGuidReader as a, resolveIMessageStartupRowidWatermark as i, authorizeIMessageResourceReference as n, resolveAuthorizedIMessageReplyReference as r, withIMessageRemoteFile as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -23,4 +23,5 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
23
23
|
return to;
|
|
24
24
|
};
|
|
25
25
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
26
|
+
//#endregion
|
|
26
27
|
export { __reExport as n, __exportAll as t };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
|
|
2
|
-
|
|
2
|
+
//#region extensions/imessage/src/runtime.ts
|
|
3
3
|
const { getRuntime: getIMessageRuntime, setRuntime: setIMessageRuntime, tryGetRuntime: getOptionalIMessageRuntime } = createPluginRuntimeStore({
|
|
4
4
|
pluginId: "imessage",
|
|
5
5
|
errorMessage: "iMessage runtime not initialized"
|
|
6
6
|
});
|
|
7
|
+
//#endregion
|
|
7
8
|
export { getOptionalIMessageRuntime as n, setIMessageRuntime as r, getIMessageRuntime as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormatCapabilityProfile, applyMarkdownTextEdits, findCodeRegions, isInsideCode, markdownToIR, renderMarkdownWithAttributedRanges, sanitizeAssistantVisibleText, stripMarkdown, tokenizeHtmlTags } from "openclaw/plugin-sdk/text-chunking";
|
|
2
|
-
|
|
2
|
+
//#region extensions/imessage/src/markdown-format.ts
|
|
3
3
|
const IMESSAGE_FORMAT_PROFILE = FormatCapabilityProfile.define({
|
|
4
4
|
mechanism: "ranges",
|
|
5
5
|
constructs: {
|
|
@@ -85,7 +85,8 @@ function extractMarkdownFormatRuns(input) {
|
|
|
85
85
|
styles: [style]
|
|
86
86
|
})), codeRanges);
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region extensions/imessage/src/monitor/sanitize-outbound.ts
|
|
89
90
|
/**
|
|
90
91
|
* Patterns that indicate assistant-internal metadata leaked into text.
|
|
91
92
|
* These must never reach a user-facing channel.
|
|
@@ -524,4 +525,5 @@ function sanitizeOutboundText(text) {
|
|
|
524
525
|
cleaned = cleaned.replace(/\n{3,}/g, "\n\n").trim();
|
|
525
526
|
return cleaned;
|
|
526
527
|
}
|
|
528
|
+
//#endregion
|
|
527
529
|
export { extractMarkdownFormatRuns as i, sanitizeIMessageFinalOutboundText as n, sanitizeOutboundText as r, protectIMessageFencedRoleMarkers as t };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { c as parseIMessageTarget, o as normalizeIMessageHandle, t as formatIMessageChatTarget } from "./targets-
|
|
2
|
-
import { d as resolveIMessageChatDbLookupPath, l as resolveIMessageRemoteHost, n as hasExclusiveIMessageLocalDatabase, o as resolveIMessageAccount } from "./accounts-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { n as getOptionalIMessageRuntime, t as getIMessageRuntime } from "./runtime-
|
|
6
|
-
import { d as getIMessageApprovalApprovers, f as imessageApprovalAuth } from "./channel-
|
|
7
|
-
import { n as sanitizeIMessageFinalOutboundText, t as protectIMessageFencedRoleMarkers } from "./sanitize-outbound-
|
|
8
|
-
import { a as withIMessageReceiptGuidReader, r as resolveAuthorizedIMessageReplyReference, t as withIMessageRemoteFile } from "./remote-file-
|
|
9
|
-
import { d as resolveIMessageApprovalControlActor, i as registerIMessageApprovalReactionTarget, l as enumerateApprovalTargetKeys, s as buildIMessageApprovalConversationKeyForInbound, u as normalizeConversationKey } from "./approval-reactions-
|
|
1
|
+
import { c as parseIMessageTarget, o as normalizeIMessageHandle, t as formatIMessageChatTarget } from "./targets-B4oU7n-v.mjs";
|
|
2
|
+
import { d as resolveIMessageChatDbLookupPath, l as resolveIMessageRemoteHost, n as hasExclusiveIMessageLocalDatabase, o as resolveIMessageAccount } from "./accounts-DacCvDBt.mjs";
|
|
3
|
+
import { C as resolveIMessageDirectChatService, _ as resolveIMessageSentEchoEntryKey, b as chatContextFromIMessageTarget, c as rememberIMessageReplyCache, f as IMESSAGE_SENT_ECHOES_NAMESPACE, g as resolveIMessageEchoMediaKey, i as runIMessageCliJsonCommand, n as createIMessageRpcClient, p as IMESSAGE_SENT_ECHOES_TTL_MS, t as IMessageRpcRequestError } from "./client-DlNC08mM.mjs";
|
|
4
|
+
import { c as normalizeIMessageMessageId, i as withIMessageSendFailureStatus, n as clearIMessageSendFailure, s as normalizeIMessageGuid } from "./actions-FOjSVXxg.mjs";
|
|
5
|
+
import { n as getOptionalIMessageRuntime, t as getIMessageRuntime } from "./runtime-Cza4CY5T.mjs";
|
|
6
|
+
import { d as getIMessageApprovalApprovers, f as imessageApprovalAuth } from "./channel-BtDnHgzF.mjs";
|
|
7
|
+
import { n as sanitizeIMessageFinalOutboundText, t as protectIMessageFencedRoleMarkers } from "./sanitize-outbound-BtEY324R.mjs";
|
|
8
|
+
import { a as withIMessageReceiptGuidReader, r as resolveAuthorizedIMessageReplyReference, t as withIMessageRemoteFile } from "./remote-file-D8UX85bK.mjs";
|
|
9
|
+
import { d as resolveIMessageApprovalControlActor, i as registerIMessageApprovalReactionTarget, l as enumerateApprovalTargetKeys, s as buildIMessageApprovalConversationKeyForInbound, u as normalizeConversationKey } from "./approval-reactions-g1TDaSN2.mjs";
|
|
10
10
|
import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
11
11
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
12
12
|
import { createLazyRuntimeSurface } from "openclaw/plugin-sdk/lazy-runtime";
|
|
@@ -24,7 +24,7 @@ import { resolvePreferredOpenClawTmpDir, withTempWorkspace } from "openclaw/plug
|
|
|
24
24
|
import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
|
|
25
25
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
26
26
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
27
|
-
|
|
27
|
+
//#region extensions/imessage/src/approval-polls.ts
|
|
28
28
|
const TARGET_NAMESPACE = "imessage.approval-polls";
|
|
29
29
|
const TOMBSTONE_NAMESPACE = "imessage.approval-poll-tombstones";
|
|
30
30
|
const MAX_ENTRIES = 1e3;
|
|
@@ -356,7 +356,8 @@ const iMessageApprovalPollTargets = {
|
|
|
356
356
|
registerTombstone: registerIMessageApprovalPollTombstone,
|
|
357
357
|
clearForTest: clearIMessageApprovalPollTargetsForTest
|
|
358
358
|
};
|
|
359
|
-
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region extensions/imessage/src/monitor/echo-text-corruption.ts
|
|
360
361
|
function isLeadingEchoTextCorruptionMarker(code) {
|
|
361
362
|
return code === 0 || code === 65279 || code === 65533 || code === 65534 || code === 65535;
|
|
362
363
|
}
|
|
@@ -367,7 +368,8 @@ function normalizeIMessageEchoText(text) {
|
|
|
367
368
|
while (offset < normalized.length && isLeadingEchoTextCorruptionMarker(normalized.charCodeAt(offset))) offset += 1;
|
|
368
369
|
return normalized.slice(offset).trim() || void 0;
|
|
369
370
|
}
|
|
370
|
-
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region extensions/imessage/src/monitor/persisted-echo-cache.ts
|
|
371
373
|
let persistenceFailureLogged = false;
|
|
372
374
|
function reportFailure(scope, err) {
|
|
373
375
|
if (persistenceFailureLogged) return;
|
|
@@ -459,7 +461,8 @@ async function hasPersistedIMessageEcho(params) {
|
|
|
459
461
|
}
|
|
460
462
|
return false;
|
|
461
463
|
}
|
|
462
|
-
|
|
464
|
+
//#endregion
|
|
465
|
+
//#region extensions/imessage/src/send-transport.ts
|
|
463
466
|
function bindIMessageCliSend(handoff, options) {
|
|
464
467
|
const effect = captureEffectAuthority();
|
|
465
468
|
const assertReadAuthority = captureChannelReadAuthority();
|
|
@@ -491,7 +494,8 @@ async function requestIMessageRpcSend(client, method, params, timeoutMs, handoff
|
|
|
491
494
|
throw normalizeIMessageRpcSendError(error);
|
|
492
495
|
}
|
|
493
496
|
}
|
|
494
|
-
|
|
497
|
+
//#endregion
|
|
498
|
+
//#region extensions/imessage/src/send.ts
|
|
495
499
|
const MIN_PENDING_PERSISTED_ECHO_TTL_MS = 6e4;
|
|
496
500
|
const PENDING_PERSISTED_ECHO_GRACE_MS = 5e3;
|
|
497
501
|
function resolveMessageId(result) {
|
|
@@ -628,6 +632,9 @@ async function sendMessageIMessage(to, text, opts) {
|
|
|
628
632
|
cfg,
|
|
629
633
|
accountId: opts.accountId
|
|
630
634
|
});
|
|
635
|
+
return await withIMessageSendFailureStatus(account.accountId, () => sendMessageIMessageForAccount(to, text, opts, cfg, account));
|
|
636
|
+
}
|
|
637
|
+
async function sendMessageIMessageForAccount(to, text, opts, cfg, account) {
|
|
631
638
|
const cliPath = opts.cliPath?.trim() || account.config.cliPath?.trim() || "imsg";
|
|
632
639
|
const dbPath = opts.dbPath?.trim() || account.config.dbPath?.trim();
|
|
633
640
|
const remoteHost = await resolveIMessageRemoteHost({
|
|
@@ -838,6 +845,7 @@ async function sendMessageIMessage(to, text, opts) {
|
|
|
838
845
|
timestamp: Date.now(),
|
|
839
846
|
isFromMe: true
|
|
840
847
|
});
|
|
848
|
+
if (messageId !== "unknown") clearIMessageSendFailure(account.accountId);
|
|
841
849
|
return {
|
|
842
850
|
messageId,
|
|
843
851
|
...approvalBindingMessageId ? { guid: approvalBindingMessageId } : {},
|
|
@@ -1023,6 +1031,7 @@ async function sendMessageIMessage(to, text, opts) {
|
|
|
1023
1031
|
allowedDecisions: opts.approvalPrompt.allowedDecisions
|
|
1024
1032
|
});
|
|
1025
1033
|
}
|
|
1034
|
+
if (messageId !== "unknown") clearIMessageSendFailure(account.accountId);
|
|
1026
1035
|
return {
|
|
1027
1036
|
messageId,
|
|
1028
1037
|
...approvalBindingMessageId ? { guid: approvalBindingMessageId } : {},
|
|
@@ -1045,4 +1054,5 @@ async function sendMessageIMessage(to, text, opts) {
|
|
|
1045
1054
|
if (shouldClose) await client.stop();
|
|
1046
1055
|
}
|
|
1047
1056
|
}
|
|
1057
|
+
//#endregion
|
|
1048
1058
|
export { iMessageApprovalPollTargets as a, buildApprovalPollOptions as i, hasPersistedIMessageEcho as n, mapSentPollOptionsToDecisions as o, normalizeIMessageEchoText as r, maybeResolveIMessageApprovalPollVote as s, sendMessageIMessage as t };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { l as IMESSAGE_CHAT_TARGET_PREFIX_RE, o as normalizeIMessageHandle } from "./targets-
|
|
2
|
-
import { a as resolveDefaultIMessageAccountId, o as resolveIMessageAccount } from "./accounts-
|
|
1
|
+
import { l as IMESSAGE_CHAT_TARGET_PREFIX_RE, o as normalizeIMessageHandle } from "./targets-B4oU7n-v.mjs";
|
|
2
|
+
import { a as resolveDefaultIMessageAccountId, o as resolveIMessageAccount } from "./accounts-DacCvDBt.mjs";
|
|
3
3
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { parseAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
|
|
5
5
|
import { createChannelDmPolicy } from "openclaw/plugin-sdk/channel-dm-policy";
|
|
6
6
|
import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
|
|
7
7
|
import { createCliPathTextInput, createDelegatedSetupWizardProxy, createDelegatedTextInputShouldPrompt, createPatchedAccountSetupAdapter, createSetupTranslator, promptParsedAllowFromForAccount, setAccountAllowFromForChannel, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup-runtime";
|
|
8
8
|
import { formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
|
|
9
|
-
|
|
9
|
+
//#region extensions/imessage/src/setup-core.ts
|
|
10
10
|
const t = createSetupTranslator();
|
|
11
11
|
const channel = "imessage";
|
|
12
12
|
const IMESSAGE_INSTALL_COMMAND = "brew install steipete/tap/imsg";
|
|
@@ -191,4 +191,5 @@ function createIMessageSetupWizardProxy(loadWizard) {
|
|
|
191
191
|
disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
|
+
//#endregion
|
|
194
195
|
export { imessageCompletionNote as a, imessageSetupStatusBase as c, parseIMessageAllowFromEntries as d, createIMessageSetupWizardProxy as i, isAutoManagedIMessageCliPath as l, IMESSAGE_UPDATE_COMMAND as n, imessageDmPolicy as o, createIMessageCliPathTextInput as r, imessageSetupContract as s, IMESSAGE_INSTALL_COMMAND as t, normalizeIMessageCliPathForSetup as u };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { o as resolveIMessageAccount } from "./accounts-
|
|
2
|
-
import { a as imessageCompletionNote, c as imessageSetupStatusBase, l as isAutoManagedIMessageCliPath, o as imessageDmPolicy, r as createIMessageCliPathTextInput, t as IMESSAGE_INSTALL_COMMAND, u as normalizeIMessageCliPathForSetup } from "./setup-core-
|
|
1
|
+
import { o as resolveIMessageAccount } from "./accounts-DacCvDBt.mjs";
|
|
2
|
+
import { a as imessageCompletionNote, c as imessageSetupStatusBase, l as isAutoManagedIMessageCliPath, o as imessageDmPolicy, r as createIMessageCliPathTextInput, t as IMESSAGE_INSTALL_COMMAND, u as normalizeIMessageCliPathForSetup } from "./setup-core-BHyLkAEJ.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import { createDetectedBinaryStatus, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
|
|
@@ -7,7 +7,7 @@ import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
|
7
7
|
import { detectBinary as detectBinary$1, resolveBrewExecutable } from "openclaw/plugin-sdk/setup-tools";
|
|
8
8
|
import { isPathStrictlyInside } from "openclaw/plugin-sdk/file-access-runtime";
|
|
9
9
|
import { runPluginCommandWithTimeout } from "openclaw/plugin-sdk/run-command";
|
|
10
|
-
|
|
10
|
+
//#region extensions/imessage/src/install-imsg.ts
|
|
11
11
|
const IMESSAGE_BREW_FORMULA = "steipete/tap/imsg";
|
|
12
12
|
async function resolveBrewManagedIMessageCliPath(brewExe, cliPath) {
|
|
13
13
|
try {
|
|
@@ -112,7 +112,8 @@ async function installIMessageCli(runtime, opts) {
|
|
|
112
112
|
version
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region extensions/imessage/src/setup-surface.ts
|
|
116
117
|
const channel = "imessage";
|
|
117
118
|
const imessageDetectedBinaryStatus = createDetectedBinaryStatus({
|
|
118
119
|
channelLabel: "iMessage",
|
|
@@ -179,4 +180,5 @@ const imessageSetupWizard = {
|
|
|
179
180
|
dmPolicy: imessageDmPolicy,
|
|
180
181
|
disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
|
|
181
182
|
};
|
|
183
|
+
//#endregion
|
|
182
184
|
export { imessageSetupWizard };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAllowedChatSenderMatcher, parseChatTargetPrefixesOrThrow, resolveServicePrefixedChatTarget, resolveServicePrefixedOrChatAllowTarget } from "openclaw/plugin-sdk/channel-targets";
|
|
2
2
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { normalizeE164 } from "openclaw/plugin-sdk/account-resolution";
|
|
4
|
-
|
|
4
|
+
//#region extensions/imessage/src/target-identifiers.ts
|
|
5
5
|
const BARE_CHAT_IDENTIFIER_RE = /^[0-9a-f]{32}$/i;
|
|
6
6
|
function isIMessagePhoneLikeHandle(raw) {
|
|
7
7
|
return /^(?:tel:)?[+\d\s().-]+$/i.test(raw.trim());
|
|
@@ -11,7 +11,8 @@ function normalizeBareIMessageChatIdentifier(raw) {
|
|
|
11
11
|
if (!BARE_CHAT_IDENTIFIER_RE.test(trimmed)) return;
|
|
12
12
|
return trimmed.toLowerCase();
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region extensions/imessage/src/normalize.ts
|
|
15
16
|
const IMESSAGE_SERVICE_PREFIXES = [
|
|
16
17
|
"imessage",
|
|
17
18
|
"sms",
|
|
@@ -78,7 +79,8 @@ function looksLikeIMessageTargetId(raw) {
|
|
|
78
79
|
if (normalizeBareIMessageChatIdentifier(trimmed)) return true;
|
|
79
80
|
return /^(imessage:|sms:|auto:)/i.test(trimmed) || trimmed.includes("@") || isIMessagePhoneLikeHandle(trimmed) && Boolean(normalizeE164(trimmed));
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
//#endregion
|
|
83
|
+
//#region extensions/imessage/src/targets.ts
|
|
82
84
|
function parseServicePrefixedBareChatIdentifier(params) {
|
|
83
85
|
for (const { prefix } of IMESSAGE_SERVICE_PREFIXES) {
|
|
84
86
|
if (!params.lower.startsWith(prefix)) continue;
|
|
@@ -187,4 +189,5 @@ function formatIMessageChatTarget(chatId) {
|
|
|
187
189
|
if (!chatId || !Number.isFinite(chatId)) return "";
|
|
188
190
|
return `chat_id:${chatId}`;
|
|
189
191
|
}
|
|
192
|
+
//#endregion
|
|
190
193
|
export { looksLikeIMessageExplicitTargetId as a, parseIMessageTarget as c, normalizeIMessageMessagingTarget as d, isIMessagePhoneLikeHandle as f, isAllowedIMessageSender as i, IMESSAGE_CHAT_TARGET_PREFIX_RE as l, inferIMessageTargetChatType as n, normalizeIMessageHandle as o, isAllowedIMessageReplyContextSender as r, parseIMessageAllowTarget as s, formatIMessageChatTarget as t, looksLikeIMessageTargetId as u };
|
package/dist/api.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as looksLikeIMessageExplicitTargetId, c as parseIMessageTarget, d as normalizeIMessageMessagingTarget, i as isAllowedIMessageSender, n as inferIMessageTargetChatType, o as normalizeIMessageHandle, s as parseIMessageAllowTarget, t as formatIMessageChatTarget, u as looksLikeIMessageTargetId } from "./.setup/targets-
|
|
2
|
-
import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as resolveIMessageAccount, r as listEnabledIMessageAccounts } from "./.setup/accounts-
|
|
3
|
-
import { o as IMESSAGE_ACTIONS, s as IMESSAGE_ACTION_NAMES } from "./.setup/message-tool-api-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { c as matchIMessageAcpConversation, i as resolveIMessageGroupRequireMention, l as normalizeIMessageAcpConversationId, o as resolveIMessageGroupToolPolicy, s as resolveIMessageInboundConversationId, t as imessagePlugin, u as resolveIMessageConversationIdFromTarget } from "./.setup/channel-
|
|
7
|
-
import { n as createIMessageConversationBindingManagerV2, t as createIMessageConversationBindingManager } from "./.setup/conversation-bindings-
|
|
8
|
-
import { a as resolveServicePrefixedChatTarget, c as imessageSetupPlugin, i as resolveServicePrefixedAllowTarget, n as parseChatAllowTargetPrefixes, o as resolveServicePrefixedOrChatAllowTarget, r as parseChatTargetPrefixesOrThrow, s as resolveServicePrefixedTarget, t as createAllowedChatSenderMatcher } from "./.setup/api-
|
|
9
|
-
import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./.setup/outbound-send-deps-
|
|
1
|
+
import { a as looksLikeIMessageExplicitTargetId, c as parseIMessageTarget, d as normalizeIMessageMessagingTarget, i as isAllowedIMessageSender, n as inferIMessageTargetChatType, o as normalizeIMessageHandle, s as parseIMessageAllowTarget, t as formatIMessageChatTarget, u as looksLikeIMessageTargetId } from "./.setup/targets-B4oU7n-v.mjs";
|
|
2
|
+
import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as resolveIMessageAccount, r as listEnabledIMessageAccounts } from "./.setup/accounts-DacCvDBt.mjs";
|
|
3
|
+
import { o as IMESSAGE_ACTIONS, s as IMESSAGE_ACTION_NAMES } from "./.setup/message-tool-api-B5NfPnFL.mjs";
|
|
4
|
+
import { v as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./.setup/client-DlNC08mM.mjs";
|
|
5
|
+
import { a as probeIMessage } from "./.setup/actions-FOjSVXxg.mjs";
|
|
6
|
+
import { c as matchIMessageAcpConversation, i as resolveIMessageGroupRequireMention, l as normalizeIMessageAcpConversationId, o as resolveIMessageGroupToolPolicy, s as resolveIMessageInboundConversationId, t as imessagePlugin, u as resolveIMessageConversationIdFromTarget } from "./.setup/channel-BtDnHgzF.mjs";
|
|
7
|
+
import { n as createIMessageConversationBindingManagerV2, t as createIMessageConversationBindingManager } from "./.setup/conversation-bindings-DR-dbHjs.mjs";
|
|
8
|
+
import { a as resolveServicePrefixedChatTarget, c as imessageSetupPlugin, i as resolveServicePrefixedAllowTarget, n as parseChatAllowTargetPrefixes, o as resolveServicePrefixedOrChatAllowTarget, r as parseChatTargetPrefixesOrThrow, s as resolveServicePrefixedTarget, t as createAllowedChatSenderMatcher } from "./.setup/api-BvfhvRlZ.mjs";
|
|
9
|
+
import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./.setup/outbound-send-deps-B-QEsLSM.mjs";
|
|
10
10
|
export { DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, IMESSAGE_ACTIONS, IMESSAGE_ACTION_NAMES, IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS, createAllowedChatSenderMatcher, createIMessageConversationBindingManager, createIMessageConversationBindingManagerV2, formatIMessageChatTarget, imessagePlugin, imessageSetupPlugin, inferIMessageTargetChatType, isAllowedIMessageSender, listEnabledIMessageAccounts, listIMessageAccountIds, looksLikeIMessageExplicitTargetId, looksLikeIMessageTargetId, matchIMessageAcpConversation, normalizeIMessageAcpConversationId, normalizeIMessageHandle, normalizeIMessageMessagingTarget, parseChatAllowTargetPrefixes, parseChatTargetPrefixesOrThrow, parseIMessageAllowTarget, parseIMessageTarget, probeIMessage, resolveDefaultIMessageAccountId, resolveIMessageAccount, resolveIMessageConversationIdFromTarget, resolveIMessageGroupRequireMention, resolveIMessageGroupToolPolicy, resolveIMessageInboundConversationId, resolveServicePrefixedAllowTarget, resolveServicePrefixedChatTarget, resolveServicePrefixedOrChatAllowTarget, resolveServicePrefixedTarget };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { t as IMessageChannelConfigSchema } from "./.setup/config-schema-DXwa_3V5.mjs";
|
|
2
|
+
export { IMessageChannelConfigSchema };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { t as imessagePlugin } from "./.setup/channel-BtDnHgzF.mjs";
|
|
2
|
+
export { imessagePlugin };
|
package/dist/contract-api.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { n as resolveIMessageAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS } from "./.setup/media-contract-BwWs5PM7.mjs";
|
|
2
2
|
import "./media-contract-api.js";
|
|
3
|
+
export { DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, resolveIMessageAttachmentRoots, resolveIMessageAttachmentRoots as resolveInboundAttachmentRoots, resolveIMessageRemoteAttachmentRoots, resolveIMessageRemoteAttachmentRoots as resolveRemoteInboundAttachmentRoots };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as __reExport, t as __exportAll } from "./.setup/rolldown-runtime-
|
|
1
|
+
import { n as __reExport, t as __exportAll } from "./.setup/rolldown-runtime-BBjsoOtd.mjs";
|
|
2
2
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
|
|
4
|
+
//#region packages/normalization-core/src/record-coerce.ts
|
|
5
5
|
/** Type guard for non-array object records at browser-safe boundaries. */
|
|
6
6
|
function isRecord$1(value) {
|
|
7
7
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
@@ -10,7 +10,8 @@ function isRecord$1(value) {
|
|
|
10
10
|
function asNullableRecord$1(value) {
|
|
11
11
|
return isRecord$1(value) ? value : null;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/config/channel-config-normalization.ts
|
|
14
15
|
/** Applies one channel-specific doctor migration to every object-shaped account. */
|
|
15
16
|
function normalizeChannelAccounts(params) {
|
|
16
17
|
const rawAccounts = asNullableRecord$1(params.entry.accounts);
|
|
@@ -86,7 +87,8 @@ function normalizeChannelConfigEntries$1(params) {
|
|
|
86
87
|
changes
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
|
-
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/plugin-sdk/legacy-webhook-listener-migration.ts
|
|
90
92
|
/** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
|
|
91
93
|
function createLegacyWebhookListenerDoctorContract(params) {
|
|
92
94
|
const portKey = params.portKey ?? "webhookPort";
|
|
@@ -156,11 +158,13 @@ function createLegacyWebhookListenerDoctorContract(params) {
|
|
|
156
158
|
}
|
|
157
159
|
};
|
|
158
160
|
}
|
|
159
|
-
|
|
161
|
+
//#endregion
|
|
162
|
+
//#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
|
|
160
163
|
var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
|
|
161
164
|
import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
162
165
|
__reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
|
|
163
|
-
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region extensions/imessage/config-doctor-api.ts
|
|
164
168
|
function isEnabledCatchup(value) {
|
|
165
169
|
return isRecord(value) && value.enabled === true;
|
|
166
170
|
}
|
|
@@ -206,7 +210,8 @@ function normalizeCompatibilityConfig({ cfg }) {
|
|
|
206
210
|
changes: catchup.changes
|
|
207
211
|
});
|
|
208
212
|
}
|
|
209
|
-
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region extensions/imessage/doctor-contract-api.ts
|
|
210
215
|
const stateMigrations = [(0, runtime_doctor_migrations_exports.defineRetiredPluginStateMigration)({
|
|
211
216
|
id: "imessage-retired-state",
|
|
212
217
|
label: "iMessage retired monitor state",
|
|
@@ -220,4 +225,5 @@ const stateMigrations = [(0, runtime_doctor_migrations_exports.defineRetiredPlug
|
|
|
220
225
|
}
|
|
221
226
|
]
|
|
222
227
|
})];
|
|
228
|
+
//#endregion
|
|
223
229
|
export { legacyConfigRules, normalizeCompatibilityConfig, stateMigrations };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
|
-
|
|
2
|
+
//#region extensions/imessage/index.ts
|
|
3
3
|
var imessage_default = defineBundledChannelEntry({
|
|
4
4
|
id: "imessage",
|
|
5
5
|
name: "iMessage",
|
|
@@ -14,4 +14,5 @@ var imessage_default = defineBundledChannelEntry({
|
|
|
14
14
|
exportName: "setIMessageRuntime"
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
+
//#endregion
|
|
17
18
|
export { imessage_default as default };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { n as resolveIMessageAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS } from "./.setup/media-contract-BwWs5PM7.mjs";
|
|
2
|
+
export { DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, resolveIMessageAttachmentRoots, resolveIMessageAttachmentRoots as resolveInboundAttachmentRoots, resolveIMessageRemoteAttachmentRoots, resolveIMessageRemoteAttachmentRoots as resolveRemoteInboundAttachmentRoots };
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { t as describeIMessageMessageTool } from "./.setup/message-tool-api-B5NfPnFL.mjs";
|
|
2
|
+
export { describeIMessageMessageTool as describeMessageTool };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as imessageMessageActions } from "./.setup/actions-
|
|
2
|
-
import { r as setIMessageRuntime } from "./.setup/runtime-
|
|
1
|
+
import { t as imessageMessageActions } from "./.setup/actions-FOjSVXxg.mjs";
|
|
2
|
+
import { r as setIMessageRuntime } from "./.setup/runtime-Cza4CY5T.mjs";
|
|
3
3
|
export { imessageMessageActions, setIMessageRuntime };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
//#region extensions/imessage/secret-contract-api.ts
|
|
2
2
|
const secretTargetRegistryEntries = [];
|
|
3
3
|
function collectRuntimeConfigAssignments() {}
|
|
4
|
+
//#endregion
|
|
4
5
|
export { collectRuntimeConfigAssignments, secretTargetRegistryEntries };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { n as createIMessageConversationBindingManagerV2, r as testing } from "./.setup/conversation-bindings-DR-dbHjs.mjs";
|
|
2
|
+
export { createIMessageConversationBindingManagerV2, testing as imessageConversationBindingTesting };
|
package/dist/setup-entry.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
|
|
3
|
+
//#region extensions/imessage/setup-entry.ts
|
|
4
4
|
var setup_entry_default = defineBundledChannelSetupEntry({
|
|
5
5
|
importMetaUrl: import.meta.url,
|
|
6
6
|
plugin: {
|
|
7
|
-
specifier: fileURLToPath(new URL(".setup/api-
|
|
7
|
+
specifier: fileURLToPath(new URL(".setup/api-BpfhqSA4.mjs", import.meta.url).href),
|
|
8
8
|
exportName: "imessageSetupPlugin"
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
//#endregion
|
|
11
12
|
export { setup_entry_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { o as normalizeIMessageHandle } from "../.setup/targets-
|
|
1
|
+
import { o as normalizeIMessageHandle } from "../.setup/targets-B4oU7n-v.mjs";
|
|
2
2
|
import { executeSqliteQuerySync, executeSqliteQueryTakeFirstSync, getNodeSqliteKysely, openNodeSqliteDatabase } from "openclaw/plugin-sdk/sqlite-worker-runtime";
|
|
3
|
-
|
|
3
|
+
//#region extensions/imessage/src/chat-db.worker.ts
|
|
4
4
|
function appleMessageDateLowerBoundMs(sentAfterMs) {
|
|
5
5
|
if (typeof sentAfterMs !== "number" || !Number.isFinite(sentAfterMs)) return null;
|
|
6
6
|
return Math.max(0, Math.floor((sentAfterMs - 9783072e5 - 5e3) * 1e6));
|
|
@@ -41,4 +41,5 @@ function openExistingSqliteWorkerBackend(_input, context) {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
//#endregion
|
|
44
45
|
export { openExistingSqliteWorkerBackend };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/imessage",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.11.2",
|
|
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.6.5"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.
|
|
15
|
+
"openclaw": ">=2026.11.2"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -92,10 +92,10 @@
|
|
|
92
92
|
"allowInvalidConfigRecovery": true
|
|
93
93
|
},
|
|
94
94
|
"compat": {
|
|
95
|
-
"pluginApi": ">=2026.
|
|
95
|
+
"pluginApi": ">=2026.11.2"
|
|
96
96
|
},
|
|
97
97
|
"build": {
|
|
98
|
-
"openclawVersion": "2026.
|
|
98
|
+
"openclawVersion": "2026.11.2",
|
|
99
99
|
"bundledDist": false,
|
|
100
100
|
"workerEntries": [
|
|
101
101
|
"./src/chat-db.worker.ts"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"entries":[{"output":"api.js","source":"extensions/imessage/api.ts"},{"output":"channel-config-api.js","source":"extensions/imessage/channel-config-api.ts"},{"output":"channel-plugin-api.js","source":"extensions/imessage/channel-plugin-api.ts"},{"output":"contract-api.js","source":"extensions/imessage/contract-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/imessage/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/imessage/index.ts"},{"output":"media-contract-api.js","source":"extensions/imessage/media-contract-api.ts"},{"output":"message-tool-api.js","source":"extensions/imessage/message-tool-api.ts"},{"output":"runtime-api.js","source":"extensions/imessage/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/imessage/secret-contract-api.ts"},{"output":"session-binding-contract-api.js","source":"extensions/imessage/session-binding-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/imessage/setup-entry.ts"},{"output":"src/chat-db.worker.js","source":"extensions/imessage/src/chat-db.worker.ts"}],"chunks":[{"output":".setup/accounts-BH0coL46.mjs","sha256":"3d3a95861f02157e10959e531084678dbf3e084e62e0eb588bbf9e893bef0910","facadeSource":null,"sources":["extensions/imessage/src/accounts.ts","extensions/imessage/src/cli-path.ts","extensions/imessage/src/remote-host.ts"]},{"output":".setup/actions-CW7XYYF4.mjs","sha256":"57302e8e72b5b972a111b4f2b9b893262836d17d606805a256037af124706a5b","facadeSource":null,"sources":["extensions/imessage/src/actions.ts","extensions/imessage/src/message-action-reference.ts","extensions/imessage/src/message-guid.ts","extensions/imessage/src/probe.ts"]},{"output":".setup/actions.runtime-B2ZHQ3TJ.mjs","sha256":"ffa16f4aa9d4cd430715ba1fb57da7dc04f92336e1cb75775d24aa9846f4d520","facadeSource":"extensions/imessage/src/actions.runtime.ts","sources":["extensions/imessage/src/actions-chat-guid.ts","extensions/imessage/src/actions-transport.ts","extensions/imessage/src/actions.runtime.ts"]},{"output":".setup/api-6xi-NBrt.mjs","sha256":"6a059097cb1a0fe7991c680e17f40e0269e73fb7d145239df1cadc9e6311733e","facadeSource":null,"sources":["extensions/imessage/src/channel.setup.ts"]},{"output":".setup/api-B0ih8Iof.mjs","sha256":"45789fb9fd83094cecf5cc9738b841326d18ae1611aadc583382298993a5ac07","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":".setup/approval-handler.runtime-BKmqba3L.mjs","sha256":"1e1bd107b8241bfe9e61d4370b398392293a61edba51864192bd090694ec7224","facadeSource":"extensions/imessage/src/approval-handler.runtime.ts","sources":["extensions/imessage/src/approval-handler.runtime.ts"]},{"output":".setup/approval-reactions-B9CJS0NT.mjs","sha256":"16e0cbe21ce32f99d04882559a57a7706b18f936d8f25609fca0d5d2fb9d89ec","facadeSource":null,"sources":["extensions/imessage/src/approval-reaction-poll-targets.ts","extensions/imessage/src/approval-reactions.ts","extensions/imessage/src/approval-target-keys.ts"]},{"output":".setup/channel-6kcKpSRw.mjs","sha256":"f19d3bcb6c71cc1a204d40264d6be014e0c09161984d36a5e3568413030e5eb9","facadeSource":null,"sources":["extensions/imessage/src/approval-auth.ts","extensions/imessage/src/approval-native.ts","extensions/imessage/src/approval-text.ts","extensions/imessage/src/channel.ts","extensions/imessage/src/conversation-id-core.ts","extensions/imessage/src/conversation-id.ts","extensions/imessage/src/doctor.ts","extensions/imessage/src/group-policy.ts","extensions/imessage/src/shared.ts"]},{"output":".setup/channel.runtime-BW4A0m4h.mjs","sha256":"75cebfee1133be34062e38b1f40679c2ada7954d2bc9da63867b4002df01efa1","facadeSource":"extensions/imessage/src/channel.runtime.ts","sources":["extensions/imessage/src/approval-reaction-poller.ts","extensions/imessage/src/channel.runtime.ts","extensions/imessage/src/chat.ts","extensions/imessage/src/conversation-route.ts","extensions/imessage/src/monitor/abort-handler.ts","extensions/imessage/src/monitor/catchup-bridge.ts","extensions/imessage/src/monitor/catchup.ts","extensions/imessage/src/monitor/coalesce.ts","extensions/imessage/src/monitor/conversation-repair.ts","extensions/imessage/src/monitor/deliver.ts","extensions/imessage/src/monitor/dm-history.ts","extensions/imessage/src/monitor/drop-diagnostic-cache.ts","extensions/imessage/src/monitor/echo-cache.ts","extensions/imessage/src/monitor/group-allowlist-warnings.ts","extensions/imessage/src/monitor/inbound-dedupe.ts","extensions/imessage/src/monitor/inbound-processing.ts","extensions/imessage/src/monitor/ingress.ts","extensions/imessage/src/monitor/loop-rate-limiter.ts","extensions/imessage/src/monitor/media-staging.ts","extensions/imessage/src/monitor/mention-policy.ts","extensions/imessage/src/monitor/monitor-provider.ts","extensions/imessage/src/monitor/parse-notification.ts","extensions/imessage/src/monitor/poll-comment.ts","extensions/imessage/src/monitor/poll-render.ts","extensions/imessage/src/monitor/reaction-system-event.ts","extensions/imessage/src/monitor/recovery-cursor.ts","extensions/imessage/src/monitor/reflection-guard.ts","extensions/imessage/src/monitor/self-chat-cache.ts","extensions/imessage/src/monitor/strip-imsg-length-prefixed-text.ts","extensions/imessage/src/monitor/watch-error-log.ts","src/channels/mention-gating.ts"]},{"output":".setup/client-C3e7ZLqA.mjs","sha256":"f965627433495be9225b6ab97ccdaf2e36aa20a9a54e63233068a205b85ff270","facadeSource":null,"sources":["extensions/imessage/src/bridge-recovery.ts","extensions/imessage/src/chat-context.ts","extensions/imessage/src/cli-output.ts","extensions/imessage/src/client.ts","extensions/imessage/src/constants.ts","extensions/imessage/src/monitor-reply-cache.ts","extensions/imessage/src/state-contract.ts"]},{"output":".setup/config-schema-DRkdRC21.mjs","sha256":"758a3d4a6eff932ccc536a60da0f338b4608d6d0e02e5e7ea1994719a648dcc2","facadeSource":null,"sources":["extensions/imessage/src/config-schema.ts","extensions/imessage/src/config-ui-hints.ts"]},{"output":".setup/conversation-bindings-vZFn6sN2.mjs","sha256":"8b47df14a6b3d90dec4812a1cf971f72825fdcb9bb642dd94e247de63298d943","facadeSource":null,"sources":["extensions/imessage/src/conversation-bindings.ts"]},{"output":".setup/media-contract-CoixpXRX.mjs","sha256":"edf68fa0002fb3c11e28318a274422b7ff7902bc5f6937d4438f93c36a7bf5cb","facadeSource":null,"sources":["extensions/imessage/src/media-contract.ts"]},{"output":".setup/message-tool-api-CxSY_rh7.mjs","sha256":"194ae5f7aea08cdc0772597ef129d08b02d9f0b1e03932a800819eb824315f1e","facadeSource":null,"sources":["extensions/imessage/src/actions-contract.ts","extensions/imessage/src/message-tool-api.ts","extensions/imessage/src/private-api-status.ts"]},{"output":".setup/outbound-send-deps-_da8jqeo.mjs","sha256":"0635bb28f7b137bbf61e085d3470d925c60d6057c0a4e67282546a70d2ec6341","facadeSource":null,"sources":["extensions/imessage/src/outbound-send-deps.ts"]},{"output":".setup/question-reactions-DTj-VH3N.mjs","sha256":"540778353803526006a920bf292efb7e172f7bb8bfdfe2614be349993073494c","facadeSource":null,"sources":["extensions/imessage/src/question-reactions.ts"]},{"output":".setup/reaction-context-Bw00FkmU.mjs","sha256":"6364fad7355a5bcce217a8596203f29ed8a789a63be4230ee1ba644bad3b6d9f","facadeSource":null,"sources":["extensions/imessage/src/monitor/reaction-context.ts"]},{"output":".setup/remote-file-CCgMYZ-u.mjs","sha256":"851cc7fb12e5fb18033a0aeb5e245a4a862044dde39a0018355a549894807dd2","facadeSource":null,"sources":["extensions/imessage/src/chat-db.ts","extensions/imessage/src/message-resource-db.ts","extensions/imessage/src/message-resource.ts","extensions/imessage/src/remote-file.ts"]},{"output":".setup/rolldown-runtime-782esTHO.mjs","sha256":"5ee95aea427a7c3b63d18f4d901f7c824b836077e85aee06ae7d598c1974e2a6","facadeSource":null,"sources":[]},{"output":".setup/runtime-BRQCPuAD.mjs","sha256":"7cd8a481a241c3ffbe6a21ca6bad5c58418b0d4f36a710738b34611559bb384e","facadeSource":null,"sources":["extensions/imessage/src/runtime.ts"]},{"output":".setup/sanitize-outbound-C02fJrn6.mjs","sha256":"f158f744cf9b677e2664bca61a83455ada01a67b113af783278e4a0e57e9eace","facadeSource":null,"sources":["extensions/imessage/src/markdown-format.ts","extensions/imessage/src/monitor/sanitize-outbound.ts"]},{"output":".setup/send-D98hQFdv.mjs","sha256":"bd04afe09bc720540f0b7bc5b665830382f47a88c22d2b9bfd7541d2c1fe309d","facadeSource":null,"sources":["extensions/imessage/src/approval-polls.ts","extensions/imessage/src/monitor/echo-text-corruption.ts","extensions/imessage/src/monitor/persisted-echo-cache.ts","extensions/imessage/src/send-transport.ts","extensions/imessage/src/send.ts"]},{"output":".setup/setup-core-BWnW0czE.mjs","sha256":"72aec986e4a413ca891c37d67b29a5d953bb0800dd9ad28c1c255b67dfa25ebc","facadeSource":null,"sources":["extensions/imessage/src/setup-core.ts"]},{"output":".setup/setup-surface-aRZhAzzQ.mjs","sha256":"d7665d3c25ac3e4b184f7639246ac26e8c1a3c94afb47ec34132d799736743ef","facadeSource":"extensions/imessage/src/setup-surface.ts","sources":["extensions/imessage/src/install-imsg.ts","extensions/imessage/src/setup-surface.ts"]},{"output":".setup/targets-CIx4BKqL.mjs","sha256":"7c27b2a688288ca7889fd597eecaf9c3f992f5945b9edc7862d4384d0d456d78","facadeSource":null,"sources":["extensions/imessage/src/normalize.ts","extensions/imessage/src/target-identifiers.ts","extensions/imessage/src/targets.ts"]},{"output":"api.js","sha256":"0e35c62f018c982cd041074df55154a7085268cb53ab3a01e5e9adcbd2c62e21","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"d1ff3745e8e128801438000b659a374343a9957296644d063b1e43cc6cb1da4e","facadeSource":"extensions/imessage/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"2d9fc032675ca9039675862bb248da4b83b98f9e6731523d669b9593563d341f","facadeSource":"extensions/imessage/channel-plugin-api.ts","sources":[]},{"output":"contract-api.js","sha256":"c7d2cf6c04e05d4ecd00a81b59ea70a3a06a0eeb422ae59af6d379cb91813d04","facadeSource":"extensions/imessage/contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"a9cbc5e727b821983de78d1bdf9b863859b14c86a1c6b8f70fd7b05b9547f36a","facadeSource":"extensions/imessage/doctor-contract-api.ts","sources":["extensions/imessage/config-doctor-api.ts","extensions/imessage/doctor-contract-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.js","sha256":"e3fcf6fd886eaf196d9e38f504ba3cbc46345d5c21c86c1090dea834b3020ce4","facadeSource":"extensions/imessage/index.ts","sources":["extensions/imessage/index.ts"]},{"output":"media-contract-api.js","sha256":"849952bc416cd8ff2cbf658ea635bc89c40baae72f5730a063d3a9e20c847b81","facadeSource":"extensions/imessage/media-contract-api.ts","sources":[]},{"output":"message-tool-api.js","sha256":"d1eeccc3d9c13e88c6bf665c22133ff9e7fc8eb973a6a250396b37c087f1c724","facadeSource":"extensions/imessage/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"b7f190944cbbf44698a58da859f53ff3b92285416ea62de2d369609623846e20","facadeSource":"extensions/imessage/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"5a5d910629d837d8176ce71f084a37ea874acef6d27935d5a8ec2d9d855a83db","facadeSource":"extensions/imessage/secret-contract-api.ts","sources":["extensions/imessage/secret-contract-api.ts"]},{"output":"session-binding-contract-api.js","sha256":"01a67d0e9e4d6509375b44b407157bf99d81731f80a6eb6edd2cf0a32e344317","facadeSource":"extensions/imessage/session-binding-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"76b8bdb2ad750e8eb958fb8ec3d4d562b2daa2164ec8de1937774f24e3cadb10","facadeSource":"extensions/imessage/setup-entry.ts","sources":["extensions/imessage/setup-entry.ts"]},{"output":"src/chat-db.worker.js","sha256":"35a50828aa3ad3704dd0edccece494e156ff211293dc7dbe09474df88ce59d63","facadeSource":"extensions/imessage/src/chat-db.worker.ts","sources":["extensions/imessage/src/chat-db.worker.ts"]}],"unrenderedSources":["extensions/imessage/api.ts","extensions/imessage/channel-config-api.ts","extensions/imessage/channel-plugin-api.ts","extensions/imessage/contract-api.ts","extensions/imessage/media-contract-api.ts","extensions/imessage/message-tool-api.ts","extensions/imessage/runtime-api.ts","extensions/imessage/session-binding-contract-api.ts","extensions/imessage/src/monitor.ts"]}
|