50 lines
1.8 KiB
JavaScript
50 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const channel_1 = require("./channel");
|
|
const runtime_1 = require("./runtime");
|
|
/**
|
|
* XiaoYi Channel Plugin for OpenClaw
|
|
*
|
|
* This plugin enables integration with XiaoYi's A2A protocol via WebSocket.
|
|
* Supports dual server mode for high availability.
|
|
*
|
|
* Configuration example in openclaw.json:
|
|
* {
|
|
* "channels": {
|
|
* "xiaoyi": {
|
|
* "enabled": true,
|
|
* "wsUrl1": "ws://localhost:8765/ws/link",
|
|
* "wsUrl2": "ws://localhost:8766/ws/link",
|
|
* "ak": "test_ak",
|
|
* "sk": "test_sk",
|
|
* "agentId": "your-agent-id"
|
|
* }
|
|
* }
|
|
* }
|
|
*/
|
|
const plugin = {
|
|
id: "xiaoyi",
|
|
name: "XiaoYi Channel",
|
|
description: "XiaoYi channel plugin with A2A protocol support",
|
|
configSchema: undefined,
|
|
register(api) {
|
|
console.log("XiaoYi: register() called - START");
|
|
// Set runtime for managing WebSocket connections
|
|
(0, runtime_1.setXiaoYiRuntime)(api.runtime);
|
|
console.log("XiaoYi: setXiaoYiRuntime() completed");
|
|
// Clean up any existing connections from previous plugin loads
|
|
const runtime = require("./runtime").getXiaoYiRuntime();
|
|
console.log(`XiaoYi: Got runtime instance: ${runtime.getInstanceId()}, isConnected: ${runtime.isConnected()}`);
|
|
if (runtime.isConnected()) {
|
|
console.log("XiaoYi: Cleaning up existing connection from previous load");
|
|
runtime.stop();
|
|
}
|
|
// Register the channel plugin
|
|
console.log("XiaoYi: About to call registerChannel()");
|
|
api.registerChannel({ plugin: channel_1.xiaoyiPlugin });
|
|
console.log("XiaoYi: registerChannel() completed");
|
|
console.log("XiaoYi channel plugin registered - END");
|
|
},
|
|
};
|
|
exports.default = plugin;
|