@sumeai/sumeclaw 1.0.24 → 1.0.26

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/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  /**
2
- * @sumeai/sumeclaw — 修复版(可连接)
2
+ * @sumeai/sumeclaw — 稳定版(强制 channel 识别)
3
3
  */
4
- declare const _default: any;
4
+ declare const _default: {
5
+ type: string;
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ onReady(ctx: any): Promise<void>;
10
+ };
5
11
  export default _default;
6
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAMH,wBA8DG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA;;GAEG;;;;;;iBAYkB,GAAG;;AARxB,wBAiDE"}
package/dist/index.js CHANGED
@@ -1,58 +1,47 @@
1
1
  "use strict";
2
2
  /**
3
- * @sumeai/sumeclaw — 修复版(可连接)
3
+ * @sumeai/sumeclaw — 稳定版(强制 channel 识别)
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const channel_core_1 = require("openclaw/plugin-sdk/channel-core");
7
6
  const gateway_js_1 = require("./src/gateway.js");
8
- exports.default = (0, channel_core_1.defineChannelPluginEntry)({
7
+ exports.default = {
8
+ // 🔥 核心:手动声明 channel 类型(解决 missing id)
9
+ type: "channel",
9
10
  id: "sumeclaw",
10
11
  name: "友虾名片",
11
12
  description: "友虾名片 Channel",
12
- plugin: {
13
- /**
14
- * 核心:插件启动自动连接
15
- */
16
- async onReady(ctx) {
17
- const { api, cfg } = ctx;
18
- console.log("[sumeclaw] 🚀 插件启动");
19
- console.log("[sumeclaw] cfg =", JSON.stringify(ctx.cfg, null, 2));
20
- console.log("[sumeclaw] cfg.channels =", ctx.cfg?.channels);
21
- console.log("[sumeclaw] cfg.channel =", ctx.cfg?.channel);
22
- const accounts = cfg?.channels?.sumeclaw?.accounts || ctx.cfg?.channel?.sumeclaw?.accounts || {};
23
- if (Object.keys(accounts).length === 0) {
24
- console.warn("[sumeclaw] ⚠️ 没有配置 accounts");
25
- return;
13
+ async onReady(ctx) {
14
+ const { api, cfg } = ctx;
15
+ console.log("[sumeclaw] 🚀 插件启动");
16
+ // 🔍 调试用(可以先保留)
17
+ console.log("[sumeclaw] cfg =", JSON.stringify(cfg, null, 2));
18
+ // 兼容不同 OpenClaw 版本
19
+ const accounts = cfg?.channels?.sumeclaw?.accounts ||
20
+ cfg?.channel?.accounts || // ⚠️ 有些版本是扁平的
21
+ {};
22
+ if (!accounts || Object.keys(accounts).length === 0) {
23
+ console.warn("[sumeclaw] ⚠️ 没有配置 accounts");
24
+ return;
25
+ }
26
+ for (const accountId of Object.keys(accounts)) {
27
+ const account = accounts[accountId];
28
+ if (!account?.registrationToken) {
29
+ console.error(`[sumeclaw] ❌ account ${accountId} 缺少 registrationToken`);
30
+ continue;
31
+ }
32
+ console.log(`[sumeclaw] 🔗 正在连接 account: ${accountId}`);
33
+ try {
34
+ (0, gateway_js_1.connectGateway)({
35
+ accountId,
36
+ platformUrl: account.platformUrl,
37
+ registrationToken: account.registrationToken,
38
+ api
39
+ });
26
40
  }
27
- for (const accountId of Object.keys(accounts)) {
28
- const account = accounts[accountId];
29
- if (!account?.registrationToken) {
30
- console.error(`[sumeclaw] ❌ account ${accountId} 缺少 token`);
31
- continue;
32
- }
33
- console.log(`[sumeclaw] 🔗 正在连接 account: ${accountId}`);
34
- try {
35
- await (0, gateway_js_1.connectSumeclaw)(api, {
36
- ...account,
37
- accountId
38
- });
39
- console.log(`[sumeclaw] ✅ 已连接: ${accountId}`);
40
- }
41
- catch (err) {
42
- console.error(`[sumeclaw] ❌ 连接失败: ${accountId}`, err.message);
43
- }
41
+ catch (err) {
42
+ console.error("[sumeclaw] 连接失败:", err);
44
43
  }
45
44
  }
46
- },
47
- /**
48
- * 🔥 Agent 回复 → 回传 WS
49
- */
50
- async onChannelMessage({ event }) {
51
- const { reply, accountId } = event;
52
- (0, gateway_js_1.sendToClient)(accountId, {
53
- type: "reply",
54
- content: reply
55
- });
56
45
  }
57
- });
46
+ };
58
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,mEAA4E;AAE5E,iDAAiE;AAEjE,kBAAe,IAAA,uCAAwB,EAAC;IACtC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,cAAc;IAE3B,MAAM,EAAE;QAEF;;WAEG;QACH,KAAK,CAAC,OAAO,CAAC,GAAQ;YAClB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;YAEzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAG1D,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;YAEjG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,OAAO;YACX,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAEpC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,wBAAwB,SAAS,WAAW,CAAC,CAAC;oBAC5D,SAAS;gBACb,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;gBAExD,IAAI,CAAC;oBACD,MAAM,IAAA,4BAAe,EAAC,GAAG,EAAE;wBAC3B,GAAG,OAAO;wBACV,SAAS;qBACR,CAAC,CAAC;oBAEH,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;gBAElD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClE,CAAC;YACL,CAAC;QACL,CAAC;KACJ;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEnC,IAAA,yBAAY,EAAC,SAAS,EAAE;YACxB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK;SACb,CAAC,CAAC;IACP,CAAC;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAGA;;GAEG;;AAEH,iDAAkD;AAElD,kBAAe;IACb,uCAAuC;IACvC,IAAI,EAAE,SAAS;IAEf,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,cAAc;IAE3B,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAEzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAElC,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,qBAAqB;QACrB,MAAM,QAAQ,GACZ,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACjC,GAAG,EAAE,OAAO,EAAE,QAAQ,IAAM,cAAc;YAC1C,EAAE,CAAC;QAEL,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YAEpC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,wBAAwB,SAAS,uBAAuB,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YAExD,IAAI,CAAC;gBACH,IAAA,2BAAc,EAAC;oBACb,SAAS;oBACT,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;oBAC5C,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -15,12 +15,12 @@ export interface MinicardAccount {
15
15
  platformUrl?: string;
16
16
  enabled?: boolean;
17
17
  }
18
- /**
19
- * 建立连接
20
- */
21
- export declare function connectSumeclaw(api: any, account: any): Promise<void>;
22
- /**
23
- * 回传消息给前端(Agent → 名片)
24
- */
25
- export declare function sendToClient(accountId: string, payload: any): void;
18
+ type ConnectOptions = {
19
+ accountId: string;
20
+ platformUrl: string;
21
+ registrationToken: string;
22
+ api: any;
23
+ };
24
+ export declare function connectGateway(opts: ConnectOptions): void;
25
+ export {};
26
26
  //# sourceMappingURL=gateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,SAAS,MAAM,IAAI,CAAC;AA4B3B,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAErE;AAID,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,iBA8D3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAmB3D"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,SAAS,MAAM,IAAI,CAAC;AA4B3B,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAErE;AAID,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,QA0GlD"}
@@ -14,8 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.getWebSocket = getWebSocket;
17
- exports.connectSumeclaw = connectSumeclaw;
18
- exports.sendToClient = sendToClient;
17
+ exports.connectGateway = connectGateway;
19
18
  const ws_1 = __importDefault(require("ws"));
20
19
  /**
21
20
  * 全局 WS 管理
@@ -35,80 +34,88 @@ const connections = new Map();
35
34
  function getWebSocket(accountId) {
36
35
  return connections.get(accountId);
37
36
  }
38
- /**
39
- * 建立连接
40
- */
41
- async function connectSumeclaw(api, account) {
42
- const { accountId, platformUrl, registrationToken } = account;
43
- if (!platformUrl || !registrationToken) {
44
- console.error("[sumeclaw] 缺少 platformUrl 或 token");
45
- return;
37
+ function connectGateway(opts) {
38
+ const { accountId, platformUrl, registrationToken, api } = opts;
39
+ let ws = null;
40
+ let heartbeatTimer = null;
41
+ let reconnectTimer = null;
42
+ const HEARTBEAT_INTERVAL = 30_000;
43
+ const RECONNECT_DELAY = 5_000;
44
+ function start() {
45
+ console.log(`[sumeclaw] 🌐 connecting -> ${platformUrl} (${accountId})`);
46
+ ws = new ws_1.default(platformUrl);
47
+ ws.on("open", () => {
48
+ console.log(`[sumeclaw] ✅ connected: ${accountId}`);
49
+ // 🔐 注册
50
+ ws?.send(JSON.stringify({
51
+ type: "register",
52
+ token: registrationToken
53
+ }));
54
+ // ❤️ 心跳
55
+ heartbeatTimer = setInterval(() => {
56
+ if (ws?.readyState === ws_1.default.OPEN) {
57
+ ws.send(JSON.stringify({ type: "ping" }));
58
+ }
59
+ }, HEARTBEAT_INTERVAL);
60
+ });
61
+ ws.on("message", (data) => {
62
+ try {
63
+ const msg = JSON.parse(data.toString());
64
+ // 🔍 调试
65
+ console.log("[sumeclaw] 📩 message:", msg);
66
+ handleMessage(msg);
67
+ }
68
+ catch (err) {
69
+ console.error("[sumeclaw] ❌ parse message error", err);
70
+ }
71
+ });
72
+ ws.on("close", () => {
73
+ console.warn(`[sumeclaw] ⚠️ disconnected: ${accountId}`);
74
+ cleanup();
75
+ scheduleReconnect();
76
+ });
77
+ ws.on("error", (err) => {
78
+ console.error(`[sumeclaw] ❌ ws error: ${accountId}`, err);
79
+ ws?.close();
80
+ });
46
81
  }
47
- const url = `${platformUrl}/api/channel/${registrationToken}`;
48
- console.log("[sumeclaw] 🔗 connecting:", url);
49
- const ws = new ws_1.default(url);
50
- wsMap[accountId] = ws;
51
- /**
52
- * 连接成功
53
- */
54
- ws.on("open", () => {
55
- console.log(`[sumeclaw] connected: ${accountId}`);
56
- });
57
- /**
58
- * 收到消息(来自你的名片系统)
59
- */
60
- ws.on("message", async (raw) => {
61
- try {
62
- const text = raw.toString();
63
- console.log("[sumeclaw] 📩 recv:", text);
64
- const msg = JSON.parse(text);
65
- /**
66
- * 🔥 核心:注入 OpenClaw
67
- */
68
- await api.dispatchChannelMessage({
69
- channel: "sumeclaw",
70
- accountId,
71
- senderId: msg.userId || "anonymous",
72
- text: msg.content || "",
73
- raw: msg
74
- });
82
+ function handleMessage(msg) {
83
+ switch (msg.type) {
84
+ case "pong":
85
+ // 心跳回应
86
+ break;
87
+ case "message":
88
+ // 👉 这里接入 OpenClaw
89
+ console.log("[sumeclaw] 💬 收到消息:", msg);
90
+ // 示例:推给 agent
91
+ api?.emit?.("message", {
92
+ accountId,
93
+ text: msg.text,
94
+ raw: msg
95
+ });
96
+ break;
97
+ case "registered":
98
+ console.log(`[sumeclaw] 🔐 注册成功: ${accountId}`);
99
+ break;
100
+ default:
101
+ console.log("[sumeclaw] 未处理消息:", msg);
75
102
  }
76
- catch (err) {
77
- console.error("[sumeclaw] ❌ message parse error:", err.message);
78
- }
79
- });
80
- /**
81
- * 连接关闭
82
- */
83
- ws.on("close", () => {
84
- console.warn(`[sumeclaw] ⚠️ disconnected: ${accountId}`);
85
- });
86
- /**
87
- * 错误
88
- */
89
- ws.on("error", (err) => {
90
- console.error("[sumeclaw] ❌ ws error:", err);
91
- });
92
- }
93
- /**
94
- * 回传消息给前端(Agent → 名片)
95
- */
96
- function sendToClient(accountId, payload) {
97
- const ws = wsMap[accountId];
98
- if (!ws) {
99
- console.error("[sumeclaw] ❌ ws not found:", accountId);
100
- return;
101
103
  }
102
- if (ws.readyState !== ws_1.default.OPEN) {
103
- console.error("[sumeclaw] ❌ ws not open:", accountId);
104
- return;
105
- }
106
- try {
107
- ws.send(JSON.stringify(payload));
108
- console.log("[sumeclaw] 📤 send:", payload);
104
+ function cleanup() {
105
+ if (heartbeatTimer) {
106
+ clearInterval(heartbeatTimer);
107
+ heartbeatTimer = null;
108
+ }
109
109
  }
110
- catch (err) {
111
- console.error("[sumeclaw] ❌ send error:", err.message);
110
+ function scheduleReconnect() {
111
+ if (reconnectTimer)
112
+ return;
113
+ console.log(`[sumeclaw] 🔁 reconnecting in ${RECONNECT_DELAY / 1000}s`);
114
+ reconnectTimer = setTimeout(() => {
115
+ reconnectTimer = null;
116
+ start();
117
+ }, RECONNECT_DELAY);
112
118
  }
119
+ start();
113
120
  }
114
121
  //# sourceMappingURL=gateway.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sumeai/sumeclaw",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "友虾名片 OpenClaw Channel 插件 — 将 OpenClaw 连接到友虾名片平台,通过 AI 名片为客户提供服务",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",