Adds a complete Linq iMessage channel adapter that replaces the existing iMessage channel's Mac Mini + dedicated Apple ID + SSH wrapper + Full Disk Access setup with a single API key and phone number. Core implementation (src/linq/): - types.ts: Linq webhook event and message types - accounts.ts: Multi-account resolution from config (env/file/inline token) - send.ts: REST outbound via Linq Blue V3 API (messages, typing, reactions) - probe.ts: Health check via GET /v3/phonenumbers - monitor.ts: Webhook HTTP server with HMAC-SHA256 signature verification, replay protection, inbound debouncing, and full dispatch pipeline integration Extension plugin (extensions/linq/): - ChannelPlugin implementation with config, security, setup, outbound, gateway, and status adapters - Supports direct and group chats, reactions, and media Wiring: - Channel registry, dock, config schema, plugin-sdk exports, and plugin runtime all updated to include the new linq channel Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 lines
588 B
TypeScript
18 lines
588 B
TypeScript
import type { ChannelPlugin, OpenClawPluginApi } from "openclaw/plugin-sdk";
|
|
import { emptyPluginConfigSchema } from "openclaw/plugin-sdk";
|
|
import { linqPlugin } from "./src/channel.js";
|
|
import { setLinqRuntime } from "./src/runtime.js";
|
|
|
|
const plugin = {
|
|
id: "linq",
|
|
name: "Linq",
|
|
description: "Linq iMessage channel plugin — real iMessage over API, no Mac required",
|
|
configSchema: emptyPluginConfigSchema(),
|
|
register(api: OpenClawPluginApi) {
|
|
setLinqRuntime(api.runtime);
|
|
api.registerChannel({ plugin: linqPlugin as ChannelPlugin });
|
|
},
|
|
};
|
|
|
|
export default plugin;
|