@sumeai/sumeclaw 1.0.0 → 1.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,KAkEzB,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4CD,eAAO,MAAM,cAAc,KAmEzB,CAAC"}
@@ -5,22 +5,57 @@
5
5
  */
6
6
  import { createChatChannelPlugin, createChannelPluginBase, } from "openclaw/plugin-sdk/channel-core";
7
7
  import { getWebSocket } from "./gateway.js";
8
+ /**
9
+ * 安装/配置向导 — 交互式提示用户输入 registrationToken
10
+ */
11
+ const channelKey = "sumeclaw";
12
+ const setupWizard = {
13
+ channel: channelKey,
14
+ /** 根据当前配置显示连接状态 */
15
+ status: {
16
+ configuredLabel: "已连接友虾名片",
17
+ unconfiguredLabel: "尚未配置",
18
+ resolveConfigured: ({ cfg }) => {
19
+ const accounts = cfg.channels?.[channelKey]?.accounts ?? {};
20
+ return Object.values(accounts).some((acct) => acct?.registrationToken);
21
+ },
22
+ },
23
+ /** 交互式凭据收集 — 引导用户输入 registrationToken */
24
+ credentials: [
25
+ {
26
+ inputKey: "registrationToken",
27
+ credentialLabel: "友虾名片注册令牌",
28
+ preferredEnvVar: "SUMECLAW_REGISTRATION_TOKEN",
29
+ envPrompt: "是否使用环境变量 SUMECLAW_REGISTRATION_TOKEN?",
30
+ keepPrompt: "保留当前 registrationToken?",
31
+ inputPrompt: "请输入从友虾小程序获取的 registrationToken:",
32
+ inspect: ({ cfg, accountId }) => {
33
+ const token = cfg.channels?.[channelKey]?.accounts?.[accountId ?? "default"]?.registrationToken;
34
+ return {
35
+ accountConfigured: Boolean(token),
36
+ hasConfiguredValue: Boolean(token),
37
+ };
38
+ },
39
+ },
40
+ ],
41
+ };
8
42
  export const sumeclawPlugin = createChatChannelPlugin({
9
43
  base: createChannelPluginBase({
10
- id: "sumeclaw",
44
+ id: channelKey,
45
+ setupWizard,
11
46
  setup: {
12
47
  /**
13
48
  * 从用户配置中解析账户信息
14
49
  */
15
50
  resolveAccount(cfg, accountId) {
16
- const accounts = cfg.channels?.sumeclaw?.accounts ?? {};
51
+ const accounts = cfg.channels?.[channelKey]?.accounts ?? {};
17
52
  return (accounts[accountId ?? "default"] ?? {});
18
53
  },
19
54
  /**
20
55
  * 检查账户配置状态
21
56
  */
22
57
  inspectAccount(cfg, accountId) {
23
- const account = cfg.channels?.sumeclaw?.accounts?.[accountId ?? "default"];
58
+ const account = cfg.channels?.[channelKey]?.accounts?.[accountId ?? "default"];
24
59
  return {
25
60
  enabled: !!account?.registrationToken,
26
61
  configured: !!account?.registrationToken,
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAiB;IACpE,IAAI,EAAE,uBAAuB,CAAC;QAC5B,EAAE,EAAE,UAAU;QACd,KAAK,EAAE;YACL;;eAEG;YACH,cAAc,CAAC,GAAG,EAAE,SAAS;gBAC3B,MAAM,QAAQ,GAAI,GAAG,CAAC,QAAgB,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAmB,CAAC;YACpE,CAAC;YAED;;eAEG;YACH,cAAc,CAAC,GAAG,EAAE,SAAS;gBAC3B,MAAM,OAAO,GAAI,GAAG,CAAC,QAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACzD,SAAS,IAAI,SAAS,CACvB,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAiB;oBACrC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAiB;iBACzC,CAAC;YACJ,CAAC;SACF;KACF,CAAC;IAEF;;;;;OAKG;IACH,QAAQ,EAAE;QACR,EAAE,EAAE;YACF,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;YAC3B,aAAa,EAAE,MAAM;SACtB;KACF;IAED;;;;OAIG;IACH,QAAQ,EAAE;QACR,eAAe,EAAE;YACf,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;gBAC1C,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;gBAChD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBAED,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,EAAE;oBACV,IAAI;iBACL,CAAC,CACH,CAAC;gBAEF,OAAO,EAAE,CAAC;YACZ,CAAC;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,30 @@
1
1
  {
2
+ "$schema": "https://docs.openclaw.ai/schemas/openclaw.plugin.schema.json",
2
3
  "id": "sumeclaw",
3
- "name": "友虾名片",
4
- "version": "1.0.0",
5
- "description": "将 OpenClaw 连接到友虾名片平台(wss://api.gixin.cc),通过 AI 名片为客户提供服务。",
6
- "author": "sumeai",
7
- "homepage": "https://www.gixin.cc",
8
- "configSchema": {
9
- "type": "object",
10
- "properties": {
11
- "registrationToken": {
12
- "type": "string",
13
- "description": "在友虾小程序中创建 OpenClaw 智能体后获得的注册 Token",
14
- "secret": true
4
+ "kind": "channel",
5
+ "channels": ["sumeclaw"],
6
+ "label": "友虾名片",
7
+ "blurb": "将 OpenClaw 连接到友虾名片平台,通过 AI 名片为客户提供服务。",
8
+ "channelConfigs": {
9
+ "sumeclaw": {
10
+ "type": "object",
11
+ "additionalProperties": false,
12
+ "properties": {
13
+ "registrationToken": {
14
+ "type": "string",
15
+ "description": "从友虾小程序获取的注册令牌"
16
+ },
17
+ "platformUrl": {
18
+ "type": "string",
19
+ "description": "友虾名片平台 WebSocket 地址,默认为 wss://api.gixin.cc"
20
+ },
21
+ "enabled": {
22
+ "type": "boolean",
23
+ "description": "是否启用此通道",
24
+ "default": true
25
+ }
15
26
  },
16
- "platformUrl": {
17
- "type": "string",
18
- "description": "友虾名片平台 WebSocket 地址",
19
- "default": "wss://api.gixin.cc"
20
- }
21
- },
22
- "required": ["registrationToken"]
27
+ "required": ["registrationToken"]
28
+ }
23
29
  }
24
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sumeai/sumeclaw",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "友虾名片 OpenClaw Channel 插件 — 将 OpenClaw 连接到友虾名片平台,通过 AI 名片为客户提供服务",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",