openclaw-home-pc/openclaw/extensions/xiaoyi/dist/index.js
2026-03-24 04:00:48 +08:00

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;