Revert "feat: add Linq channel — real iMessage via API, no Mac required"

This reverts commit d4a142fd8f.
This commit is contained in:
Peter Steinberger
2026-02-17 01:57:10 +01:00
parent a36782e342
commit 2992639f88
17 changed files with 15 additions and 1409 deletions

View File

@@ -1,11 +1,23 @@
import type { OpenClawConfig } from "../config/config.js";
import type {
ChannelCapabilities,
ChannelCommandAdapter,
ChannelElevatedAdapter,
ChannelGroupAdapter,
ChannelId,
ChannelAgentPromptAdapter,
ChannelMentionAdapter,
ChannelPlugin,
ChannelThreadingContext,
ChannelThreadingAdapter,
ChannelThreadingToolContext,
} from "./plugins/types.js";
import {
resolveChannelGroupRequireMention,
resolveChannelGroupToolsPolicy,
} from "../config/group-policy.js";
import { resolveDiscordAccount } from "../discord/accounts.js";
import { resolveIMessageAccount } from "../imessage/accounts.js";
import { resolveLinqAccount } from "../linq/accounts.js";
import { requireActivePluginRegistry } from "../plugins/runtime.js";
import { normalizeAccountId } from "../routing/session-key.js";
import { resolveSignalAccount } from "../signal/accounts.js";
@@ -29,19 +41,6 @@ import {
resolveWhatsAppGroupRequireMention,
resolveWhatsAppGroupToolPolicy,
} from "./plugins/group-mentions.js";
import type {
ChannelCapabilities,
ChannelCommandAdapter,
ChannelElevatedAdapter,
ChannelGroupAdapter,
ChannelId,
ChannelAgentPromptAdapter,
ChannelMentionAdapter,
ChannelPlugin,
ChannelThreadingContext,
ChannelThreadingAdapter,
ChannelThreadingToolContext,
} from "./plugins/types.js";
import { CHAT_CHANNEL_ORDER, type ChatChannelId, getChatChannelMeta } from "./registry.js";
export type ChannelDock = {
@@ -461,23 +460,6 @@ const DOCKS: Record<ChatChannelId, ChannelDock> = {
buildDirectOrGroupThreadToolContext({ context, hasRepliedRef }),
},
},
linq: {
id: "linq",
capabilities: {
chatTypes: ["direct", "group"],
reactions: true,
media: true,
},
outbound: { textChunkLimit: 4000 },
config: {
resolveAllowFrom: ({ cfg, accountId }) =>
(resolveLinqAccount({ cfg, accountId }).config.allowFrom ?? []).map((entry) =>
String(entry),
),
formatAllowFrom: ({ allowFrom }) =>
allowFrom.map((entry) => String(entry).trim()).filter(Boolean),
},
},
};
function buildDockFromPlugin(plugin: ChannelPlugin): ChannelDock {

View File

@@ -1,6 +1,6 @@
import { requireActivePluginRegistry } from "../plugins/runtime.js";
import type { ChannelMeta } from "./plugins/types.js";
import type { ChannelId } from "./plugins/types.js";
import { requireActivePluginRegistry } from "../plugins/runtime.js";
// Channel docking: add new core channels here (order + meta + aliases), then
// register the plugin in its extension entrypoint and keep protocol IDs in sync.
@@ -13,7 +13,6 @@ export const CHAT_CHANNEL_ORDER = [
"slack",
"signal",
"imessage",
"linq",
] as const;
export type ChatChannelId = (typeof CHAT_CHANNEL_ORDER)[number];
@@ -110,16 +109,6 @@ const CHAT_CHANNEL_META: Record<ChatChannelId, ChannelMeta> = {
blurb: "this is still a work in progress.",
systemImage: "message.fill",
},
linq: {
id: "linq",
label: "Linq",
selectionLabel: "Linq (iMessage API)",
detailLabel: "Linq iMessage",
docsPath: "/channels/linq",
docsLabel: "linq",
blurb: "real iMessage blue bubbles via API — no Mac required. Get a token at linqapp.com.",
systemImage: "bubble.left.and.text.bubble.right",
},
};
export const CHAT_CHANNEL_ALIASES: Record<string, ChatChannelId> = {
@@ -127,7 +116,6 @@ export const CHAT_CHANNEL_ALIASES: Record<string, ChatChannelId> = {
"internet-relay-chat": "irc",
"google-chat": "googlechat",
gchat: "googlechat",
"linq-imessage": "linq",
};
const normalizeChannelKey = (raw?: string | null): string | undefined => {