@fontdo/5g-message 1.0.8 → 1.0.9
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.
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +149 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +699 -0
- package/dist/index.js.map +1 -0
- package/package.json +12 -4
- package/cli.ts +0 -168
- package/index.ts +0 -872
- package/tsconfig.json +0 -20
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
// 配置文件路径
|
|
8
|
+
const CONFIG_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.openclaw');
|
|
9
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'openclaw.json');
|
|
10
|
+
async function install() {
|
|
11
|
+
console.log(chalk.cyan('📱 Fontdo 5G Message 插件安装向导'));
|
|
12
|
+
console.log(chalk.gray('=================================='));
|
|
13
|
+
console.log('');
|
|
14
|
+
try {
|
|
15
|
+
// 安装插件到 OpenClaw
|
|
16
|
+
console.log(chalk.blue('正在安装插件到 OpenClaw...'));
|
|
17
|
+
execSync('openclaw plugins install @fontdo/5g-message', { stdio: 'inherit' });
|
|
18
|
+
console.log(chalk.green('✅ 插件安装成功!'));
|
|
19
|
+
console.log('');
|
|
20
|
+
// 执行配置
|
|
21
|
+
await configure();
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error(chalk.red('安装失败:', error.message));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function configure() {
|
|
29
|
+
console.log(chalk.cyan('📱 Fontdo 5G Message 插件配置向导'));
|
|
30
|
+
console.log(chalk.gray('=================================='));
|
|
31
|
+
console.log('');
|
|
32
|
+
// 读取现有配置
|
|
33
|
+
let config = {};
|
|
34
|
+
if (await fs.exists(CONFIG_FILE)) {
|
|
35
|
+
try {
|
|
36
|
+
config = await fs.readJSON(CONFIG_FILE);
|
|
37
|
+
console.log(chalk.yellow('检测到现有配置,将在其基础上更新'));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.log(chalk.red('读取配置文件失败,将创建新配置'));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// 初始化 5g-message 通道配置
|
|
44
|
+
config.channels = config.channels || {};
|
|
45
|
+
config.channels['5g-message'] = config.channels['5g-message'] || {};
|
|
46
|
+
let continueAdding = true;
|
|
47
|
+
while (continueAdding) {
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log(chalk.blue('🔧 账号配置'));
|
|
50
|
+
console.log(chalk.gray('-----------------'));
|
|
51
|
+
// 收集账号配置信息
|
|
52
|
+
const accountAnswers = await inquirer.prompt([
|
|
53
|
+
{
|
|
54
|
+
type: 'input',
|
|
55
|
+
name: 'accountId',
|
|
56
|
+
message: '账号 ID (例如: default, test, prod):',
|
|
57
|
+
default: 'default',
|
|
58
|
+
validate: (input) => input ? true : '账号 ID 不能为空'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'input',
|
|
62
|
+
name: 'host',
|
|
63
|
+
message: 'Fontdo 5G 消息平台地址(不含协议前缀):',
|
|
64
|
+
validate: (input) => input ? true : '服务器地址不能为空'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'input',
|
|
68
|
+
name: 'appId',
|
|
69
|
+
message: '应用 ID:',
|
|
70
|
+
validate: (input) => input ? true : '应用 ID 不能为空'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'input',
|
|
74
|
+
name: 'appKey',
|
|
75
|
+
message: '应用密钥:',
|
|
76
|
+
validate: (input) => input ? true : '应用密钥不能为空'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'input',
|
|
80
|
+
name: 'botName',
|
|
81
|
+
message: '机器人名称:',
|
|
82
|
+
default: 'Fontdo Bot'
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'confirm',
|
|
86
|
+
name: 'enabled',
|
|
87
|
+
message: '是否启用该账号:',
|
|
88
|
+
default: true
|
|
89
|
+
}
|
|
90
|
+
]);
|
|
91
|
+
// 初始化 accounts 对象
|
|
92
|
+
config.channels['5g-message'].accounts = config.channels['5g-message'].accounts || {};
|
|
93
|
+
// 保存账号配置
|
|
94
|
+
config.channels['5g-message'].accounts[accountAnswers.accountId] = {
|
|
95
|
+
host: accountAnswers.host,
|
|
96
|
+
appId: accountAnswers.appId,
|
|
97
|
+
appKey: accountAnswers.appKey,
|
|
98
|
+
botName: accountAnswers.botName,
|
|
99
|
+
enabled: accountAnswers.enabled
|
|
100
|
+
};
|
|
101
|
+
// 询问是否继续添加账号
|
|
102
|
+
const addMore = await inquirer.prompt([
|
|
103
|
+
{
|
|
104
|
+
type: 'confirm',
|
|
105
|
+
name: 'addAnother',
|
|
106
|
+
message: '是否继续添加其他账号?',
|
|
107
|
+
default: false
|
|
108
|
+
}
|
|
109
|
+
]);
|
|
110
|
+
continueAdding = addMore.addAnother;
|
|
111
|
+
}
|
|
112
|
+
// 确保配置目录存在
|
|
113
|
+
await fs.ensureDir(CONFIG_DIR);
|
|
114
|
+
// 写入配置文件
|
|
115
|
+
await fs.writeJSON(CONFIG_FILE, config, { spaces: 2 });
|
|
116
|
+
console.log('');
|
|
117
|
+
console.log(chalk.green('✅ 配置已保存!'));
|
|
118
|
+
console.log(chalk.gray(`配置文件路径: ${CONFIG_FILE}`));
|
|
119
|
+
console.log('');
|
|
120
|
+
// 显示当前配置的账号列表
|
|
121
|
+
const accounts = config.channels['5g-message'].accounts || {};
|
|
122
|
+
const accountIds = Object.keys(accounts);
|
|
123
|
+
if (accountIds.length > 0) {
|
|
124
|
+
console.log(chalk.blue('📋 已配置账号:'));
|
|
125
|
+
accountIds.forEach((id) => {
|
|
126
|
+
const account = accounts[id];
|
|
127
|
+
const status = account.enabled ? chalk.green('启用') : chalk.red('禁用');
|
|
128
|
+
console.log(` - ${id}: ${status} (${account.host})`);
|
|
129
|
+
});
|
|
130
|
+
console.log('');
|
|
131
|
+
}
|
|
132
|
+
console.log(chalk.blue('下一步:重启 OpenClaw 服务以应用配置'));
|
|
133
|
+
console.log(chalk.gray('命令: openclaw restart'));
|
|
134
|
+
}
|
|
135
|
+
// 主函数
|
|
136
|
+
async function main() {
|
|
137
|
+
const args = process.argv.slice(2);
|
|
138
|
+
if (args.includes('install')) {
|
|
139
|
+
await install();
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
await configure();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
main().catch((error) => {
|
|
146
|
+
console.error(chalk.red('操作失败:', error.message));
|
|
147
|
+
process.exit(1);
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw Channel Plugin for Fontdo 5G Message Platform
|
|
3
|
+
*
|
|
4
|
+
* This plugin connects OpenClaw to your Fontdo 5G message platform via WebSocket
|
|
5
|
+
* using JSON-RPC 2.0 protocol.
|
|
6
|
+
*/
|
|
7
|
+
type OpenClawPluginApi = any;
|
|
8
|
+
type ChannelPlugin<T> = any;
|
|
9
|
+
interface CustomIMAccount {
|
|
10
|
+
accountId: string;
|
|
11
|
+
host: string;
|
|
12
|
+
appId: string;
|
|
13
|
+
appKey: string;
|
|
14
|
+
botName: string;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
configured: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const fontdo5GMessagePlugin: ChannelPlugin<CustomIMAccount>;
|
|
19
|
+
declare const plugin: {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
configSchema: {};
|
|
24
|
+
register(api: OpenClawPluginApi): void;
|
|
25
|
+
};
|
|
26
|
+
export default plugin;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,KAAK,iBAAiB,GAAG,GAAG,CAAC;AAC7B,KAAK,aAAa,CAAC,CAAC,IAAI,GAAG,CAAC;AAwD5B,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AA4gBD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,eAAe,CA+QhE,CAAC;AAMF,QAAA,MAAM,MAAM;;;;;kBAMI,iBAAiB;CAKhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|