@sumeai/sumeclaw 1.0.14 → 1.0.16

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/Archive.zip ADDED
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAcA,wBAiEG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAOA,wBA6EG"}
package/dist/index.js CHANGED
@@ -1,63 +1,76 @@
1
1
  /**
2
- * @sumeai/sumeclaw — 友虾名片 OpenClaw Channel 插件入口
3
- *
4
- * 用法:
5
- * openclaw plugins install @sumeai/sumeclaw
6
- * openclaw config set channels.sumeclaw.accounts.default.registrationToken <从友虾小程序获取的Token>
2
+ * @sumeai/sumeclaw — 友虾名片 OpenClaw Channel 插件(CLI 命令修复版 v1.0.16)
7
3
  */
8
4
  import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
9
5
  import { sumeclawPlugin } from "./src/channel.js";
10
6
  import { connectSumeclaw, disconnectSumeclaw } from "./src/gateway.js";
11
- import { readFileSync } from "fs";
12
- import { join } from "path";
13
- import { homedir } from "os";
14
7
  export default defineChannelPluginEntry({
15
8
  id: "sumeclaw",
16
9
  name: "友虾名片",
17
- description: "将 OpenClaw 连接到友虾名片平台(wss://api.gixin.cc),通过 AI 名片为客户提供服务。",
10
+ description: "将 OpenClaw 连接到友虾名片平台,通过 AI 名片为客户提供服务。",
18
11
  plugin: sumeclawPlugin,
19
12
  registerFull(api) {
20
- /**
21
- * 注册网关方法:连接友虾名片平台
22
- *
23
- * OpenClaw 启动后自动调用此方法建立出站 WebSocket 连接。
24
- */
25
- api.registerGatewayMethod("sumeclaw.connect", async ({ accountId, cfg, }) => {
26
- const account = cfg.channels?.sumeclaw?.accounts?.[accountId ?? "default"];
13
+ api.log("info", "[sumeclaw] registerFull 开始执行");
14
+ // === 注册 Gateway 内部方法(保持原有功能)===
15
+ api.registerGatewayMethod("sumeclaw.connect", async ({ accountId = "default", cfg }) => {
16
+ api.log("info", `[sumeclaw] 执行 connect (account: ${accountId})`);
17
+ const account = cfg?.channels?.sumeclaw?.accounts?.[accountId];
27
18
  if (!account?.registrationToken) {
28
- console.warn("[sumeclaw] 缺少 registrationToken,请先在友虾小程序中创建 OpenClaw 智能体获取 Token");
19
+ const msg = " 缺少 registrationToken!请在友虾小程序获取 Token 后配置";
20
+ api.log("error", msg);
21
+ console.error(msg);
29
22
  return;
30
23
  }
31
- await connectSumeclaw(api, account);
32
- });
33
- /**
34
- * 注册网关方法:断开友虾名片平台连接
35
- */
36
- api.registerGatewayMethod("sumeclaw.disconnect", async ({ accountId }) => {
37
- await disconnectSumeclaw(accountId ?? "default");
38
- console.log("[sumeclaw] 已断开与友虾名片平台的连接");
39
- });
40
- console.log("[sumeclaw] 友虾名片 Channel 插件已注册");
41
- // 主动连接:绕过 health monitor,直接从配置文件读取并连接
42
- this._autoConnect(api);
43
- },
44
- async _autoConnect(api) {
45
- try {
46
- const configPath = join(homedir(), ".openclaw", "openclaw.json");
47
- const raw = readFileSync(configPath, "utf-8");
48
- const cfg = JSON.parse(raw);
49
- const account = cfg.channels?.sumeclaw?.accounts?.default;
50
- if (account?.registrationToken) {
51
- console.log("[sumeclaw] 检测到配置,正在主动连接...");
24
+ try {
52
25
  await connectSumeclaw(api, account);
26
+ api.log("info", "[sumeclaw] ✅ WebSocket 连接已启动");
27
+ console.log("✅ 友虾名片平台连接成功启动!");
53
28
  }
54
- else {
55
- console.log("[sumeclaw] 未配置 registrationToken,跳过自动连接");
29
+ catch (err) {
30
+ api.log("error", `[sumeclaw] connect 失败: ${err.message}`);
56
31
  }
32
+ });
33
+ api.registerGatewayMethod("sumeclaw.disconnect", async ({ accountId = "default" }) => {
34
+ api.log("info", `[sumeclaw] 执行 disconnect`);
35
+ try {
36
+ await disconnectSumeclaw(accountId);
37
+ console.log("✅ 已断开友虾名片平台连接");
38
+ }
39
+ catch (err) {
40
+ api.log("error", `[sumeclaw] disconnect 失败: ${err.message}`);
41
+ }
42
+ });
43
+ // === 新增:注册顶层 CLI 命令(关键修复)===
44
+ if (typeof api.registerCli === "function") {
45
+ api.registerCli({
46
+ command: "sumeclaw",
47
+ description: "友虾名片 Channel 管理",
48
+ subcommands: {
49
+ connect: {
50
+ description: "连接友虾名片平台",
51
+ handler: async (args, ctx) => {
52
+ // 复用上面的 connect 逻辑
53
+ const cfg = ctx?.config || ctx?.cfg;
54
+ await api.invokeGatewayMethod?.("sumeclaw.connect", { accountId: "default", cfg });
55
+ }
56
+ },
57
+ disconnect: {
58
+ description: "断开友虾名片平台连接",
59
+ handler: async () => {
60
+ await api.invokeGatewayMethod?.("sumeclaw.disconnect", { accountId: "default" });
61
+ }
62
+ }
63
+ }
64
+ });
65
+ api.log("info", "[sumeclaw] ✅ CLI 子命令 sumeclaw 已注册");
57
66
  }
58
- catch (e) {
59
- console.error("[sumeclaw] 自动连接失败:", e.message);
67
+ else {
68
+ api.log("warn", "[sumeclaw] 当前 SDK 版本不支持 registerCli,CLI 命令可能不可用");
60
69
  }
70
+ api.log("info", "[sumeclaw] 🎉 插件注册完成");
71
+ console.log("📋 使用方法:");
72
+ console.log(" openclaw sumeclaw connect");
73
+ console.log(" openclaw sumeclaw disconnect");
61
74
  },
62
75
  });
63
76
  //# 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;;;;;;GAMG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,eAAe,wBAAwB,CAAC;IACtC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2DAA2D;IAExE,MAAM,EAAE,cAAc;IAEtB,YAAY,CAAC,GAAG;QACd;;;;WAIG;QACH,GAAG,CAAC,qBAAqB,CACvB,kBAAkB,EAClB,KAAK,EAAE,EACL,SAAS,EACT,GAAG,GAIJ,EAAE,EAAE;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC,CACF,CAAC;QAEF;;WAEG;QACH,GAAG,CAAC,qBAAqB,CACvB,qBAAqB,EACrB,KAAK,EAAE,EAAE,SAAS,EAA0B,EAAE,EAAE;YAC9C,MAAM,kBAAkB,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,sCAAsC;QACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;YAC1D,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.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.14",
3
+ "version": "1.0.16",
4
4
  "description": "友虾名片 OpenClaw Channel 插件 — 将 OpenClaw 连接到友虾名片平台,通过 AI 名片为客户提供服务",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",