@openclaw/imessage 2026.10.10-beta.5 → 2026.11.1

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.
Files changed (40) hide show
  1. package/dist/.setup/{accounts-DacCvDBt.mjs → accounts-BH0coL46.mjs} +3 -6
  2. package/dist/.setup/{actions-762Azi-J.mjs → actions-CI-2gslW.mjs} +10 -14
  3. package/dist/.setup/{actions.runtime-DHiRiPHe.mjs → actions.runtime-Cv8J2DCK.mjs} +6 -9
  4. package/dist/.setup/{api-Deyo8NDs.mjs → api-DomgyOq_.mjs} +8 -9
  5. package/dist/.setup/{api-BFGXDHiC.mjs → api-LHNeKI7K.mjs} +9 -9
  6. package/dist/.setup/{approval-handler.runtime-fsSBf2jf.mjs → approval-handler.runtime-J_1w5ZFh.mjs} +10 -11
  7. package/dist/.setup/{approval-reactions-CoAkCiwf.mjs → approval-reactions-U8Ku77_2.mjs} +9 -12
  8. package/dist/.setup/{channel-C61YdcZR.mjs → channel-DLQr-Gbj.mjs} +23 -32
  9. package/dist/.setup/{channel.runtime-B5jle0g3.mjs → channel.runtime-PU6bZMXQ.mjs} +53 -79
  10. package/dist/.setup/{client-CcROCvRq.mjs → client-CKDbW7i2.mjs} +25 -20
  11. package/dist/.setup/{config-schema-DXwa_3V5.mjs → config-schema-DRkdRC21.mjs} +2 -4
  12. package/dist/.setup/{conversation-bindings-DR-dbHjs.mjs → conversation-bindings-vZFn6sN2.mjs} +1 -2
  13. package/dist/.setup/{media-contract-BwWs5PM7.mjs → media-contract-CoixpXRX.mjs} +2 -3
  14. package/dist/.setup/{message-tool-api-B5NfPnFL.mjs → message-tool-api-CxSY_rh7.mjs} +5 -8
  15. package/dist/.setup/{outbound-send-deps-B-QEsLSM.mjs → outbound-send-deps-_da8jqeo.mjs} +1 -2
  16. package/dist/.setup/{question-reactions-BD06B1Lx.mjs → question-reactions-CggXC4jv.mjs} +4 -5
  17. package/dist/.setup/{reaction-context-Q26DYzQH.mjs → reaction-context-k7ftOZLV.mjs} +2 -3
  18. package/dist/.setup/{remote-file-B94a787O.mjs → remote-file-C3WVb0XZ.mjs} +6 -10
  19. package/dist/.setup/{rolldown-runtime-BBjsoOtd.mjs → rolldown-runtime-782esTHO.mjs} +1 -2
  20. package/dist/.setup/{runtime-Cza4CY5T.mjs → runtime-BRQCPuAD.mjs} +1 -2
  21. package/dist/.setup/{sanitize-outbound-BtEY324R.mjs → sanitize-outbound-C02fJrn6.mjs} +2 -4
  22. package/dist/.setup/{send-BvxKNWzF.mjs → send-COiAb1TU.mjs} +14 -19
  23. package/dist/.setup/{setup-core-BHyLkAEJ.mjs → setup-core-BWnW0czE.mjs} +3 -4
  24. package/dist/.setup/{setup-surface-DPqiLGy0.mjs → setup-surface-aRZhAzzQ.mjs} +4 -6
  25. package/dist/.setup/{targets-B4oU7n-v.mjs → targets-CIx4BKqL.mjs} +3 -6
  26. package/dist/.source-module-urls/929c518fa2986b0f85f66bceefead22868db0ab452dee914dc6a2bb86b2e60ad.json +1 -1
  27. package/dist/api.js +9 -9
  28. package/dist/channel-config-api.js +1 -1
  29. package/dist/channel-plugin-api.js +1 -1
  30. package/dist/contract-api.js +1 -1
  31. package/dist/doctor-contract-api.js +7 -13
  32. package/dist/index.js +1 -2
  33. package/dist/media-contract-api.js +1 -1
  34. package/dist/message-tool-api.js +1 -1
  35. package/dist/runtime-api.js +2 -2
  36. package/dist/secret-contract-api.js +1 -2
  37. package/dist/session-binding-contract-api.js +1 -1
  38. package/dist/setup-entry.js +2 -3
  39. package/dist/src/chat-db.worker.js +2 -3
  40. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
- import { p as resolveLocalIMessageChatDbPath } from "./accounts-DacCvDBt.mjs";
2
- import { b as isIMessageEmailChatIdentifier, c as resolveIMessageCachedResourceBinding, l as resolveIMessageMessageId, y as chatContextFromIMessageTarget } from "./client-CcROCvRq.mjs";
1
+ import { p as resolveLocalIMessageChatDbPath } from "./accounts-BH0coL46.mjs";
2
+ import { b as isIMessageEmailChatIdentifier, c as resolveIMessageCachedResourceBinding, l as resolveIMessageMessageId, y as chatContextFromIMessageTarget } from "./client-CKDbW7i2.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
- //#region extensions/imessage/src/chat-db.ts
11
+ // extensions/imessage/src/chat-db.ts
12
12
  function openIMessageChatDbReader(databasePath) {
13
13
  return openSqliteWorkerStore({
14
14
  moduleUrl: resolveRuntimeWorkerUrl({
@@ -62,8 +62,7 @@ async function withIMessageReceiptGuidReader(databasePath, use) {
62
62
  } catch {}
63
63
  }
64
64
  }
65
- //#endregion
66
- //#region extensions/imessage/src/message-resource-db.ts
65
+ // extensions/imessage/src/message-resource-db.ts
67
66
  function normalizeIMessageMessageGuidForLookup(messageId) {
68
67
  const trimmed = messageId.trim();
69
68
  const slash = trimmed.lastIndexOf("/");
@@ -135,8 +134,7 @@ async function checkIMessageResourceBinding(params) {
135
134
  } catch {}
136
135
  }
137
136
  }
138
- //#endregion
139
- //#region extensions/imessage/src/message-resource.ts
137
+ // extensions/imessage/src/message-resource.ts
140
138
  const MAX_REPLY_TO_ID_LENGTH = 256;
141
139
  function sanitizeReplyToId(rawReplyToId) {
142
140
  const trimmed = rawReplyToId?.trim();
@@ -186,8 +184,7 @@ async function authorizeIMessageResourceReference(params) {
186
184
  if (params.conversationReadOrigin === "direct-operator") return;
187
185
  throw new Error("Delegated iMessage message references require a current same-account conversation binding when the Messages database is unavailable.");
188
186
  }
189
- //#endregion
190
- //#region extensions/imessage/src/remote-file.ts
187
+ // extensions/imessage/src/remote-file.ts
191
188
  const SSH_OPTIONS = [
192
189
  "-o",
193
190
  "BatchMode=yes",
@@ -283,5 +280,4 @@ rm -rf -- ${remoteDir}
283
280
  }
284
281
  }
285
282
  }
286
- //#endregion
287
283
  export { withIMessageReceiptGuidReader as a, resolveIMessageStartupRowidWatermark as i, authorizeIMessageResourceReference as n, resolveAuthorizedIMessageReplyReference as r, withIMessageRemoteFile as t };
@@ -1,4 +1,4 @@
1
- //#region \0rolldown/runtime.js
1
+ // \0rolldown/runtime.js
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -23,5 +23,4 @@ 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
27
26
  export { __reExport as n, __exportAll as t };
@@ -1,8 +1,7 @@
1
1
  import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
2
- //#region extensions/imessage/src/runtime.ts
2
+ // 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
8
7
  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
- //#region extensions/imessage/src/markdown-format.ts
2
+ // extensions/imessage/src/markdown-format.ts
3
3
  const IMESSAGE_FORMAT_PROFILE = FormatCapabilityProfile.define({
4
4
  mechanism: "ranges",
5
5
  constructs: {
@@ -85,8 +85,7 @@ function extractMarkdownFormatRuns(input) {
85
85
  styles: [style]
86
86
  })), codeRanges);
87
87
  }
88
- //#endregion
89
- //#region extensions/imessage/src/monitor/sanitize-outbound.ts
88
+ // extensions/imessage/src/monitor/sanitize-outbound.ts
90
89
  /**
91
90
  * Patterns that indicate assistant-internal metadata leaked into text.
92
91
  * These must never reach a user-facing channel.
@@ -525,5 +524,4 @@ function sanitizeOutboundText(text) {
525
524
  cleaned = cleaned.replace(/\n{3,}/g, "\n\n").trim();
526
525
  return cleaned;
527
526
  }
528
- //#endregion
529
527
  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-B4oU7n-v.mjs";
2
- import { d as resolveIMessageChatDbLookupPath, l as resolveIMessageRemoteHost, n as hasExclusiveIMessageLocalDatabase, o as resolveIMessageAccount } from "./accounts-DacCvDBt.mjs";
3
- import { S as resolveIMessageDirectChatService, d as IMESSAGE_SENT_ECHOES_NAMESPACE, f as IMESSAGE_SENT_ECHOES_TTL_MS, g as resolveIMessageSentEchoEntryKey, h as resolveIMessageEchoMediaKey, n as createIMessageRpcClient, r as runIMessageCliJsonCommand, s as rememberIMessageReplyCache, t as IMessageRpcRequestError, y as chatContextFromIMessageTarget } from "./client-CcROCvRq.mjs";
4
- import { a as normalizeIMessageMessageId, i as normalizeIMessageGuid } from "./actions-762Azi-J.mjs";
5
- import { n as getOptionalIMessageRuntime, t as getIMessageRuntime } from "./runtime-Cza4CY5T.mjs";
6
- import { d as getIMessageApprovalApprovers, f as imessageApprovalAuth } from "./channel-C61YdcZR.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-B94a787O.mjs";
9
- import { d as resolveIMessageApprovalControlActor, i as registerIMessageApprovalReactionTarget, l as enumerateApprovalTargetKeys, s as buildIMessageApprovalConversationKeyForInbound, u as normalizeConversationKey } from "./approval-reactions-CoAkCiwf.mjs";
1
+ import { c as parseIMessageTarget, o as normalizeIMessageHandle, t as formatIMessageChatTarget } from "./targets-CIx4BKqL.mjs";
2
+ import { d as resolveIMessageChatDbLookupPath, l as resolveIMessageRemoteHost, n as hasExclusiveIMessageLocalDatabase, o as resolveIMessageAccount } from "./accounts-BH0coL46.mjs";
3
+ import { S as resolveIMessageDirectChatService, d as IMESSAGE_SENT_ECHOES_NAMESPACE, f as IMESSAGE_SENT_ECHOES_TTL_MS, g as resolveIMessageSentEchoEntryKey, h as resolveIMessageEchoMediaKey, n as createIMessageRpcClient, r as runIMessageCliJsonCommand, s as rememberIMessageReplyCache, t as IMessageRpcRequestError, y as chatContextFromIMessageTarget } from "./client-CKDbW7i2.mjs";
4
+ import { a as normalizeIMessageMessageId, i as normalizeIMessageGuid } from "./actions-CI-2gslW.mjs";
5
+ import { n as getOptionalIMessageRuntime, t as getIMessageRuntime } from "./runtime-BRQCPuAD.mjs";
6
+ import { d as getIMessageApprovalApprovers, f as imessageApprovalAuth } from "./channel-DLQr-Gbj.mjs";
7
+ import { n as sanitizeIMessageFinalOutboundText, t as protectIMessageFencedRoleMarkers } from "./sanitize-outbound-C02fJrn6.mjs";
8
+ import { a as withIMessageReceiptGuidReader, r as resolveAuthorizedIMessageReplyReference, t as withIMessageRemoteFile } from "./remote-file-C3WVb0XZ.mjs";
9
+ import { d as resolveIMessageApprovalControlActor, i as registerIMessageApprovalReactionTarget, l as enumerateApprovalTargetKeys, s as buildIMessageApprovalConversationKeyForInbound, u as normalizeConversationKey } from "./approval-reactions-U8Ku77_2.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
- //#region extensions/imessage/src/approval-polls.ts
27
+ // 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,8 +356,7 @@ const iMessageApprovalPollTargets = {
356
356
  registerTombstone: registerIMessageApprovalPollTombstone,
357
357
  clearForTest: clearIMessageApprovalPollTargetsForTest
358
358
  };
359
- //#endregion
360
- //#region extensions/imessage/src/monitor/echo-text-corruption.ts
359
+ // extensions/imessage/src/monitor/echo-text-corruption.ts
361
360
  function isLeadingEchoTextCorruptionMarker(code) {
362
361
  return code === 0 || code === 65279 || code === 65533 || code === 65534 || code === 65535;
363
362
  }
@@ -368,8 +367,7 @@ function normalizeIMessageEchoText(text) {
368
367
  while (offset < normalized.length && isLeadingEchoTextCorruptionMarker(normalized.charCodeAt(offset))) offset += 1;
369
368
  return normalized.slice(offset).trim() || void 0;
370
369
  }
371
- //#endregion
372
- //#region extensions/imessage/src/monitor/persisted-echo-cache.ts
370
+ // extensions/imessage/src/monitor/persisted-echo-cache.ts
373
371
  let persistenceFailureLogged = false;
374
372
  function reportFailure(scope, err) {
375
373
  if (persistenceFailureLogged) return;
@@ -461,8 +459,7 @@ async function hasPersistedIMessageEcho(params) {
461
459
  }
462
460
  return false;
463
461
  }
464
- //#endregion
465
- //#region extensions/imessage/src/send-transport.ts
462
+ // extensions/imessage/src/send-transport.ts
466
463
  function bindIMessageCliSend(handoff, options) {
467
464
  const effect = captureEffectAuthority();
468
465
  const assertReadAuthority = captureChannelReadAuthority();
@@ -494,8 +491,7 @@ async function requestIMessageRpcSend(client, method, params, timeoutMs, handoff
494
491
  throw normalizeIMessageRpcSendError(error);
495
492
  }
496
493
  }
497
- //#endregion
498
- //#region extensions/imessage/src/send.ts
494
+ // extensions/imessage/src/send.ts
499
495
  const MIN_PENDING_PERSISTED_ECHO_TTL_MS = 6e4;
500
496
  const PENDING_PERSISTED_ECHO_GRACE_MS = 5e3;
501
497
  function resolveMessageId(result) {
@@ -1049,5 +1045,4 @@ async function sendMessageIMessage(to, text, opts) {
1049
1045
  if (shouldClose) await client.stop();
1050
1046
  }
1051
1047
  }
1052
- //#endregion
1053
1048
  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-B4oU7n-v.mjs";
2
- import { a as resolveDefaultIMessageAccountId, o as resolveIMessageAccount } from "./accounts-DacCvDBt.mjs";
1
+ import { l as IMESSAGE_CHAT_TARGET_PREFIX_RE, o as normalizeIMessageHandle } from "./targets-CIx4BKqL.mjs";
2
+ import { a as resolveDefaultIMessageAccountId, o as resolveIMessageAccount } from "./accounts-BH0coL46.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
- //#region extensions/imessage/src/setup-core.ts
9
+ // 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,5 +191,4 @@ function createIMessageSetupWizardProxy(loadWizard) {
191
191
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
192
192
  });
193
193
  }
194
- //#endregion
195
194
  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-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";
1
+ import { o as resolveIMessageAccount } from "./accounts-BH0coL46.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-BWnW0czE.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
- //#region extensions/imessage/src/install-imsg.ts
10
+ // 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,8 +112,7 @@ async function installIMessageCli(runtime, opts) {
112
112
  version
113
113
  };
114
114
  }
115
- //#endregion
116
- //#region extensions/imessage/src/setup-surface.ts
115
+ // extensions/imessage/src/setup-surface.ts
117
116
  const channel = "imessage";
118
117
  const imessageDetectedBinaryStatus = createDetectedBinaryStatus({
119
118
  channelLabel: "iMessage",
@@ -180,5 +179,4 @@ const imessageSetupWizard = {
180
179
  dmPolicy: imessageDmPolicy,
181
180
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
182
181
  };
183
- //#endregion
184
182
  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
- //#region extensions/imessage/src/target-identifiers.ts
4
+ // 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,8 +11,7 @@ function normalizeBareIMessageChatIdentifier(raw) {
11
11
  if (!BARE_CHAT_IDENTIFIER_RE.test(trimmed)) return;
12
12
  return trimmed.toLowerCase();
13
13
  }
14
- //#endregion
15
- //#region extensions/imessage/src/normalize.ts
14
+ // extensions/imessage/src/normalize.ts
16
15
  const IMESSAGE_SERVICE_PREFIXES = [
17
16
  "imessage",
18
17
  "sms",
@@ -79,8 +78,7 @@ function looksLikeIMessageTargetId(raw) {
79
78
  if (normalizeBareIMessageChatIdentifier(trimmed)) return true;
80
79
  return /^(imessage:|sms:|auto:)/i.test(trimmed) || trimmed.includes("@") || isIMessagePhoneLikeHandle(trimmed) && Boolean(normalizeE164(trimmed));
81
80
  }
82
- //#endregion
83
- //#region extensions/imessage/src/targets.ts
81
+ // extensions/imessage/src/targets.ts
84
82
  function parseServicePrefixedBareChatIdentifier(params) {
85
83
  for (const { prefix } of IMESSAGE_SERVICE_PREFIXES) {
86
84
  if (!params.lower.startsWith(prefix)) continue;
@@ -189,5 +187,4 @@ function formatIMessageChatTarget(chatId) {
189
187
  if (!chatId || !Number.isFinite(chatId)) return "";
190
188
  return `chat_id:${chatId}`;
191
189
  }
192
- //#endregion
193
190
  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 };
@@ -1 +1 @@
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-DacCvDBt.mjs","sha256":"c2877a158bc691e0ee05739937a9bee0ed51a6d64d0b542bd3eca2516824d884","facadeSource":null,"sources":["extensions/imessage/src/accounts.ts","extensions/imessage/src/cli-path.ts","extensions/imessage/src/remote-host.ts"]},{"output":".setup/actions-762Azi-J.mjs","sha256":"ae1adb094afe0a927ddee4ec8bb7ca42abaffee65de6267bdf17c305e757623a","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-DHiRiPHe.mjs","sha256":"67a35082c61f4aa98bac1ee69b26088c413238a4b7cc649c9b44fe9f46a734ff","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-BFGXDHiC.mjs","sha256":"85d4893b7dbf298ecc3baa4a6d6997e266f7e6546d439f6fb23c9d3b6c949396","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":".setup/api-Deyo8NDs.mjs","sha256":"5e462c120ac85722a0ee84f0920b1f30ac3e2a3304b271acebf4479102e0200b","facadeSource":null,"sources":["extensions/imessage/src/channel.setup.ts"]},{"output":".setup/approval-handler.runtime-fsSBf2jf.mjs","sha256":"7398389cf90f6628000d972a9983d5a989ce8fedc842ffb034b07c2723797a78","facadeSource":"extensions/imessage/src/approval-handler.runtime.ts","sources":["extensions/imessage/src/approval-handler.runtime.ts"]},{"output":".setup/approval-reactions-CoAkCiwf.mjs","sha256":"adeca7b83466bdb05c8e9ddf8bb615de2911250918f3148a4c9a6bf4b7fbff86","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-C61YdcZR.mjs","sha256":"90a7dfd18c1f023efc557ceee3b9ae828b9765b4820e00087681b9bd26a07e51","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-B5jle0g3.mjs","sha256":"d332d251abd80dc11ace8199fb76832e9881fb5d05883f3c5a22c46e140ae869","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-CcROCvRq.mjs","sha256":"4df6862984e51d30ec895a35af62b4cdaa747d2911d6422b61c61377cc0d89cb","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-DXwa_3V5.mjs","sha256":"be1d6d2e2e6d75a7bc64ada17b92e4bd5ca98cc53392aaa5baf8f0ba1b1e10dc","facadeSource":null,"sources":["extensions/imessage/src/config-schema.ts","extensions/imessage/src/config-ui-hints.ts"]},{"output":".setup/conversation-bindings-DR-dbHjs.mjs","sha256":"b0a2675bca57adac784052844e0a37cb87c289b2ea73918a05fce19a09a17786","facadeSource":null,"sources":["extensions/imessage/src/conversation-bindings.ts"]},{"output":".setup/media-contract-BwWs5PM7.mjs","sha256":"8eacc24753b4680c7adc28e2db442c6eb4592c086084a7c93647fc637f50f2ca","facadeSource":null,"sources":["extensions/imessage/src/media-contract.ts"]},{"output":".setup/message-tool-api-B5NfPnFL.mjs","sha256":"4ce07ffe7660e90414936eeff52a13f6e0b0e17f3209d46f98fd6d61b49aa615","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-B-QEsLSM.mjs","sha256":"28b6012e64a5dc9e21c19bcd761119f4896a71e88fe3b91fdeb52a6fb3da4c3e","facadeSource":null,"sources":["extensions/imessage/src/outbound-send-deps.ts"]},{"output":".setup/question-reactions-BD06B1Lx.mjs","sha256":"cbdfb2bba7660bf53baaa8a31851c0da8848be2eb5e9347338d8c97db70288b9","facadeSource":null,"sources":["extensions/imessage/src/question-reactions.ts"]},{"output":".setup/reaction-context-Q26DYzQH.mjs","sha256":"259e53a1c5eb40c02a9a09c2976f06475d02bd1912e6799199d43e62b5cbd205","facadeSource":null,"sources":["extensions/imessage/src/monitor/reaction-context.ts"]},{"output":".setup/remote-file-B94a787O.mjs","sha256":"ff659adb99c11fb1b2e249ea13abe683042acb0bfc365a659d83392d86c69196","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-BBjsoOtd.mjs","sha256":"bc1c4c6b4073846c33e02846e4b262d6747c77fc72ca9f9cc2f23b8ff135c35d","facadeSource":null,"sources":[]},{"output":".setup/runtime-Cza4CY5T.mjs","sha256":"fd11e8011276ea865411da786bf849d26582daa75a5e060b45014ab46c91e58a","facadeSource":null,"sources":["extensions/imessage/src/runtime.ts"]},{"output":".setup/sanitize-outbound-BtEY324R.mjs","sha256":"afe87d6671ec4a50463a60478d3c815a5374bfc2803f46640bba489abdb38120","facadeSource":null,"sources":["extensions/imessage/src/markdown-format.ts","extensions/imessage/src/monitor/sanitize-outbound.ts"]},{"output":".setup/send-BvxKNWzF.mjs","sha256":"0b64f20fd18077ea928af8404d7a50f33a02bfeee3c303d90b257042d7120058","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-BHyLkAEJ.mjs","sha256":"f239c646b14a5c17ab012de77002494f05081fe75dde385c8d6817cf14be0884","facadeSource":null,"sources":["extensions/imessage/src/setup-core.ts"]},{"output":".setup/setup-surface-DPqiLGy0.mjs","sha256":"a4d3a3d10a27663273460e2888d9c6fd14c92d10639e4ed2ba992ef044fc1157","facadeSource":"extensions/imessage/src/setup-surface.ts","sources":["extensions/imessage/src/install-imsg.ts","extensions/imessage/src/setup-surface.ts"]},{"output":".setup/targets-B4oU7n-v.mjs","sha256":"c2370a39e0faedfbf53681c28092aa2b12c0a3b621862e0065dd253184f71ebc","facadeSource":null,"sources":["extensions/imessage/src/normalize.ts","extensions/imessage/src/target-identifiers.ts","extensions/imessage/src/targets.ts"]},{"output":"api.js","sha256":"df343de19bbcb5cc400856e5c3339148dab9803b9fee39dedaa0639cda7b4b03","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"6d6ffc5834dad60c9e2d5a0b864799b6b1900a463c2196a8998ca795716b058b","facadeSource":"extensions/imessage/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"8f54b90e25a8987e6e2320a9d7e689e03ea88bba52bf75af6c099467e87fe0df","facadeSource":"extensions/imessage/channel-plugin-api.ts","sources":[]},{"output":"contract-api.js","sha256":"524b5f141cae7aa330b34f9c68355cd58c876e49f83e0d02fd8dcc55b7dbf86d","facadeSource":"extensions/imessage/contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"f027dfd3b392e9aef4dc2043de2c6ac21af95b58fda6522db0391e89de123bcc","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":"06fe1fcb149e14ca5a7df7fccb7a43537b54a5464e526335c320012ffc06ed07","facadeSource":"extensions/imessage/index.ts","sources":["extensions/imessage/index.ts"]},{"output":"media-contract-api.js","sha256":"eae8f937ad22a8d065617d2f197a1129502a7be579554ed4621fe2cf5949325c","facadeSource":"extensions/imessage/media-contract-api.ts","sources":[]},{"output":"message-tool-api.js","sha256":"3f9912cf3e4d3d084f58c99c59a43f6725e16fd1a613e5119fcb5c1b3d955382","facadeSource":"extensions/imessage/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"9a59cb10a5ffb95f9a2a3b9ef64bc9148d2cff776f5af63fa57e1b842a800d81","facadeSource":"extensions/imessage/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"0c96b240319b07052877c2ed76965fcf7e85ac3fed712eda34a0a0c7326d7e67","facadeSource":"extensions/imessage/secret-contract-api.ts","sources":["extensions/imessage/secret-contract-api.ts"]},{"output":"session-binding-contract-api.js","sha256":"a6518a2e2eb56193843144b60c15c60621d90b78fe4a4a13474880c4ebf286e5","facadeSource":"extensions/imessage/session-binding-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"2f6663afb20e17b2d8fca006051c2c4af314e72c2a78ccd714eb796666dd4a0b","facadeSource":"extensions/imessage/setup-entry.ts","sources":["extensions/imessage/setup-entry.ts"]},{"output":"src/chat-db.worker.js","sha256":"08cdd1116e374a68e5e97507415a7cbbe427d6f3a7779599894aab5c42f08f38","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"]}
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-CI-2gslW.mjs","sha256":"c117a2a6f5de418321186254e2a4bf1eb4c10ff28a6ccdca94b3b9fffc5616aa","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-Cv8J2DCK.mjs","sha256":"e650378f33070a15aa772f4418ac8447fe8d9dfb5cc94766d4559d22803092fa","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-DomgyOq_.mjs","sha256":"7ef2ff0bcc00786473cda2a1a7b05f2d239ba57d0588d2e5c05a092bf74226a7","facadeSource":null,"sources":["extensions/imessage/src/channel.setup.ts"]},{"output":".setup/api-LHNeKI7K.mjs","sha256":"45bb48f756a6f7f19b0a1fe510af139d1f95c9071aba9cf85ca6846701a40786","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":".setup/approval-handler.runtime-J_1w5ZFh.mjs","sha256":"d371ff9aa4d15862d400e117fbc60de32a287d3d575ff240ad8ac89023bb73fc","facadeSource":"extensions/imessage/src/approval-handler.runtime.ts","sources":["extensions/imessage/src/approval-handler.runtime.ts"]},{"output":".setup/approval-reactions-U8Ku77_2.mjs","sha256":"df681d0f3a57a9167991203dd4befbaaaa6e9920cb07b2ae756737391dd19116","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-DLQr-Gbj.mjs","sha256":"df3d4ecfd20e84f639e6b560070afa0a840cbe4bedffeb8f388fe6d489b04691","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-PU6bZMXQ.mjs","sha256":"97fae4e8672774af1669fd8275c2d1e6c2857961554d16269524e0d351b9f770","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-CKDbW7i2.mjs","sha256":"de3764fc1e304f0acf5fb3113ee734b5d00c0c725f03e1b2cf6c9738b37df72f","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/process-diagnostics.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-CggXC4jv.mjs","sha256":"3ee4942309cd7229fac1cfd861a96fcbca2fd4f1abfd3faf29b1b571f3c1ccea","facadeSource":null,"sources":["extensions/imessage/src/question-reactions.ts"]},{"output":".setup/reaction-context-k7ftOZLV.mjs","sha256":"8b22c0d5c7e6b1f58d6f3a5b3c716ffe6a8b094f7837ecab9d42448c3a1dd2c8","facadeSource":null,"sources":["extensions/imessage/src/monitor/reaction-context.ts"]},{"output":".setup/remote-file-C3WVb0XZ.mjs","sha256":"26d992662619f3cf8b8de85e6e21e909acf76f1bbbf62b9a1cf1d79c6383047a","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-COiAb1TU.mjs","sha256":"32d6bee39d57e9fc8eb007bf1ecfb210c220d9e20fce8ab4f3c2418e6398e023","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":"8d8caeb2a7f18d042476a801fc0864b832441cda244a7d136cd93321da974e52","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":"073ca903a0090ff7179bb2f78a03d19f1c89fe1565e223fcf6e385dfbd91110a","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":"95438d8e9df4832fc3e6bbc053fcf03d4d1c3700afbd7d1ecaf845a026b87ca2","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":"cbf7075397317e1798d9b8b4d106776bf2192f7960e3c2d614691eb70448a91b","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"]}
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-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 { _ as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./.setup/client-CcROCvRq.mjs";
5
- import { n as probeIMessage } from "./.setup/actions-762Azi-J.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-C61YdcZR.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-Deyo8NDs.mjs";
9
- import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./.setup/outbound-send-deps-B-QEsLSM.mjs";
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-CIx4BKqL.mjs";
2
+ import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as resolveIMessageAccount, r as listEnabledIMessageAccounts } from "./.setup/accounts-BH0coL46.mjs";
3
+ import { o as IMESSAGE_ACTIONS, s as IMESSAGE_ACTION_NAMES } from "./.setup/message-tool-api-CxSY_rh7.mjs";
4
+ import { _ as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./.setup/client-CKDbW7i2.mjs";
5
+ import { n as probeIMessage } from "./.setup/actions-CI-2gslW.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-DLQr-Gbj.mjs";
7
+ import { n as createIMessageConversationBindingManagerV2, t as createIMessageConversationBindingManager } from "./.setup/conversation-bindings-vZFn6sN2.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-DomgyOq_.mjs";
9
+ import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./.setup/outbound-send-deps-_da8jqeo.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 @@
1
- export { t as IMessageChannelConfigSchema } from "./.setup/config-schema-DXwa_3V5.mjs";
1
+ export { t as IMessageChannelConfigSchema } from "./.setup/config-schema-DRkdRC21.mjs";
@@ -1 +1 @@
1
- export { t as imessagePlugin } from "./.setup/channel-C61YdcZR.mjs";
1
+ export { t as imessagePlugin } from "./.setup/channel-DLQr-Gbj.mjs";
@@ -1,2 +1,2 @@
1
- export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-BwWs5PM7.mjs";
1
+ export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-CoixpXRX.mjs";
2
2
  import "./media-contract-api.js";
@@ -1,7 +1,7 @@
1
- import { n as __reExport, t as __exportAll } from "./.setup/rolldown-runtime-BBjsoOtd.mjs";
1
+ import { n as __reExport, t as __exportAll } from "./.setup/rolldown-runtime-782esTHO.mjs";
2
2
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import path from "node:path";
4
- //#region packages/normalization-core/src/record-coerce.ts
4
+ // 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,8 +10,7 @@ function isRecord$1(value) {
10
10
  function asNullableRecord$1(value) {
11
11
  return isRecord$1(value) ? value : null;
12
12
  }
13
- //#endregion
14
- //#region src/config/channel-config-normalization.ts
13
+ // src/config/channel-config-normalization.ts
15
14
  /** Applies one channel-specific doctor migration to every object-shaped account. */
16
15
  function normalizeChannelAccounts(params) {
17
16
  const rawAccounts = asNullableRecord$1(params.entry.accounts);
@@ -87,8 +86,7 @@ function normalizeChannelConfigEntries$1(params) {
87
86
  changes
88
87
  };
89
88
  }
90
- //#endregion
91
- //#region src/plugin-sdk/legacy-webhook-listener-migration.ts
89
+ // src/plugin-sdk/legacy-webhook-listener-migration.ts
92
90
  /** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
93
91
  function createLegacyWebhookListenerDoctorContract(params) {
94
92
  const portKey = params.portKey ?? "webhookPort";
@@ -158,13 +156,11 @@ function createLegacyWebhookListenerDoctorContract(params) {
158
156
  }
159
157
  };
160
158
  }
161
- //#endregion
162
- //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
159
+ // \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
163
160
  var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
164
161
  import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
165
162
  __reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
166
- //#endregion
167
- //#region extensions/imessage/config-doctor-api.ts
163
+ // extensions/imessage/config-doctor-api.ts
168
164
  function isEnabledCatchup(value) {
169
165
  return isRecord(value) && value.enabled === true;
170
166
  }
@@ -210,8 +206,7 @@ function normalizeCompatibilityConfig({ cfg }) {
210
206
  changes: catchup.changes
211
207
  });
212
208
  }
213
- //#endregion
214
- //#region extensions/imessage/doctor-contract-api.ts
209
+ // extensions/imessage/doctor-contract-api.ts
215
210
  const stateMigrations = [(0, runtime_doctor_migrations_exports.defineRetiredPluginStateMigration)({
216
211
  id: "imessage-retired-state",
217
212
  label: "iMessage retired monitor state",
@@ -225,5 +220,4 @@ const stateMigrations = [(0, runtime_doctor_migrations_exports.defineRetiredPlug
225
220
  }
226
221
  ]
227
222
  })];
228
- //#endregion
229
223
  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
- //#region extensions/imessage/index.ts
2
+ // extensions/imessage/index.ts
3
3
  var imessage_default = defineBundledChannelEntry({
4
4
  id: "imessage",
5
5
  name: "iMessage",
@@ -14,5 +14,4 @@ var imessage_default = defineBundledChannelEntry({
14
14
  exportName: "setIMessageRuntime"
15
15
  }
16
16
  });
17
- //#endregion
18
17
  export { imessage_default as default };
@@ -1 +1 @@
1
- export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-BwWs5PM7.mjs";
1
+ export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-CoixpXRX.mjs";
@@ -1 +1 @@
1
- export { t as describeMessageTool } from "./.setup/message-tool-api-B5NfPnFL.mjs";
1
+ export { t as describeMessageTool } from "./.setup/message-tool-api-CxSY_rh7.mjs";
@@ -1,3 +1,3 @@
1
- import { t as imessageMessageActions } from "./.setup/actions-762Azi-J.mjs";
2
- import { r as setIMessageRuntime } from "./.setup/runtime-Cza4CY5T.mjs";
1
+ import { t as imessageMessageActions } from "./.setup/actions-CI-2gslW.mjs";
2
+ import { r as setIMessageRuntime } from "./.setup/runtime-BRQCPuAD.mjs";
3
3
  export { imessageMessageActions, setIMessageRuntime };
@@ -1,5 +1,4 @@
1
- //#region extensions/imessage/secret-contract-api.ts
1
+ // extensions/imessage/secret-contract-api.ts
2
2
  const secretTargetRegistryEntries = [];
3
3
  function collectRuntimeConfigAssignments() {}
4
- //#endregion
5
4
  export { collectRuntimeConfigAssignments, secretTargetRegistryEntries };
@@ -1 +1 @@
1
- export { n as createIMessageConversationBindingManagerV2, r as imessageConversationBindingTesting } from "./.setup/conversation-bindings-DR-dbHjs.mjs";
1
+ export { n as createIMessageConversationBindingManagerV2, r as imessageConversationBindingTesting } from "./.setup/conversation-bindings-vZFn6sN2.mjs";
@@ -1,12 +1,11 @@
1
1
  import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
2
  import { fileURLToPath } from "node:url";
3
- //#region extensions/imessage/setup-entry.ts
3
+ // 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-BFGXDHiC.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/api-LHNeKI7K.mjs", import.meta.url).href),
8
8
  exportName: "imessageSetupPlugin"
9
9
  }
10
10
  });
11
- //#endregion
12
11
  export { setup_entry_default as default };
@@ -1,6 +1,6 @@
1
- import { o as normalizeIMessageHandle } from "../.setup/targets-B4oU7n-v.mjs";
1
+ import { o as normalizeIMessageHandle } from "../.setup/targets-CIx4BKqL.mjs";
2
2
  import { executeSqliteQuerySync, executeSqliteQueryTakeFirstSync, getNodeSqliteKysely, openNodeSqliteDatabase } from "openclaw/plugin-sdk/sqlite-worker-runtime";
3
- //#region extensions/imessage/src/chat-db.worker.ts
3
+ // 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,5 +41,4 @@ function openExistingSqliteWorkerBackend(_input, context) {
41
41
  }
42
42
  };
43
43
  }
44
- //#endregion
45
44
  export { openExistingSqliteWorkerBackend };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/imessage",
3
- "version": "2026.10.10-beta.5",
3
+ "version": "2026.11.1",
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.10.10-beta.5"
15
+ "openclaw": ">=2026.11.1"
16
16
  },
17
17
  "peerDependenciesMeta": {
18
18
  "openclaw": {
@@ -92,10 +92,10 @@
92
92
  "allowInvalidConfigRecovery": true
93
93
  },
94
94
  "compat": {
95
- "pluginApi": ">=2026.10.10-beta.5"
95
+ "pluginApi": ">=2026.11.1"
96
96
  },
97
97
  "build": {
98
- "openclawVersion": "2026.10.10-beta.5",
98
+ "openclawVersion": "2026.11.1",
99
99
  "bundledDist": false,
100
100
  "workerEntries": [
101
101
  "./src/chat-db.worker.ts"