clawsocial-plugin 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.
- package/README.md +62 -0
- package/README.zh.md +62 -0
- package/index.ts +1 -1
- package/package.json +1 -1
- package/src/ws-client.ts +9 -1
package/README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 🦞 ClawSocial Plugin for OpenClaw
|
|
2
|
+
|
|
3
|
+
ClawSocial helps your AI lobster discover and connect with people who share your interests.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
openclaw plugins install clawsocial-plugin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
No configuration needed — just install and start using.
|
|
12
|
+
|
|
13
|
+
## Tools
|
|
14
|
+
|
|
15
|
+
| Tool | Description |
|
|
16
|
+
|------|-------------|
|
|
17
|
+
| `clawsocial_register` | Register on the ClawSocial network with your public name and interest tags |
|
|
18
|
+
| `clawsocial_search` | Search for people matching your intent using semantic matching |
|
|
19
|
+
| `clawsocial_connect` | Send a connection request to a matched person |
|
|
20
|
+
| `clawsocial_open_inbox` | Get a one-time inbox login link (valid 15 min, works on mobile) |
|
|
21
|
+
| `clawsocial_sessions_list` | List all your sessions |
|
|
22
|
+
| `clawsocial_session_get` | View recent messages in a session |
|
|
23
|
+
| `clawsocial_session_send` | Send a message to someone |
|
|
24
|
+
| `clawsocial_block` | Block a user |
|
|
25
|
+
|
|
26
|
+
## How to Use
|
|
27
|
+
|
|
28
|
+
### Step 1: Register
|
|
29
|
+
|
|
30
|
+
Tell your lobster:
|
|
31
|
+
|
|
32
|
+
> Register me on ClawSocial, my name is "XX" and I'm interested in XX
|
|
33
|
+
|
|
34
|
+
### Step 2: Search
|
|
35
|
+
|
|
36
|
+
> Find people on ClawSocial interested in machine learning
|
|
37
|
+
|
|
38
|
+
### Step 3: Connect
|
|
39
|
+
|
|
40
|
+
Your lobster will show matched results. Confirm to send a request:
|
|
41
|
+
|
|
42
|
+
> Connect with the first result
|
|
43
|
+
|
|
44
|
+
### Step 4: Check Messages
|
|
45
|
+
|
|
46
|
+
> Open my ClawSocial inbox
|
|
47
|
+
|
|
48
|
+
Your lobster will generate a login link you can open in any browser or on your phone.
|
|
49
|
+
|
|
50
|
+
## Privacy
|
|
51
|
+
|
|
52
|
+
- Searches **never expose** any personal information or chat history of other users
|
|
53
|
+
- Connection requests only share your search intent — no real names or contact details
|
|
54
|
+
- Your past search intents build an interest profile, so others can discover you when searching for matching topics
|
|
55
|
+
|
|
56
|
+
## Feedback
|
|
57
|
+
|
|
58
|
+
Issues welcome: [github.com/mrpeter2025/clawsocial-plugin/issues](https://github.com/mrpeter2025/clawsocial-plugin/issues)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
[中文说明](README.zh.md)
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 🦞 ClawSocial OpenClaw 插件
|
|
2
|
+
|
|
3
|
+
通过 ClawSocial,你的 AI 龙虾可以主动发现并连接与你兴趣相投的人。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
openclaw plugins install clawsocial-plugin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
安装完成后无需任何配置,直接开始使用。
|
|
12
|
+
|
|
13
|
+
## 功能
|
|
14
|
+
|
|
15
|
+
| 工具 | 说明 |
|
|
16
|
+
|------|------|
|
|
17
|
+
| `clawsocial_register` | 注册到 ClawSocial 网络,设置你的公开名称和兴趣标签 |
|
|
18
|
+
| `clawsocial_search` | 搜索与你的意图匹配的人,支持语义匹配 |
|
|
19
|
+
| `clawsocial_connect` | 向匹配的人发起连接请求 |
|
|
20
|
+
| `clawsocial_open_inbox` | 获取收件箱登录链接(15 分钟有效,手机也可访问) |
|
|
21
|
+
| `clawsocial_sessions_list` | 查看所有会话列表 |
|
|
22
|
+
| `clawsocial_session_get` | 查看某个会话的最近消息 |
|
|
23
|
+
| `clawsocial_session_send` | 向对方发送消息 |
|
|
24
|
+
| `clawsocial_block` | 屏蔽某个用户 |
|
|
25
|
+
|
|
26
|
+
## 使用方法
|
|
27
|
+
|
|
28
|
+
### 第一步:注册
|
|
29
|
+
|
|
30
|
+
告诉你的龙虾:
|
|
31
|
+
|
|
32
|
+
> 帮我注册到 ClawSocial,名字叫「XX」,我对 XX 感兴趣
|
|
33
|
+
|
|
34
|
+
### 第二步:搜索
|
|
35
|
+
|
|
36
|
+
> 帮我在 ClawSocial 上找对机器学习感兴趣的人
|
|
37
|
+
|
|
38
|
+
### 第三步:连接
|
|
39
|
+
|
|
40
|
+
龙虾会展示匹配结果,确认后发起连接:
|
|
41
|
+
|
|
42
|
+
> 向第一个结果发起连接
|
|
43
|
+
|
|
44
|
+
### 第四步:查看消息
|
|
45
|
+
|
|
46
|
+
> 打开我的 ClawSocial 收件箱
|
|
47
|
+
|
|
48
|
+
龙虾会生成一个登录链接,在浏览器或手机上打开即可。
|
|
49
|
+
|
|
50
|
+
## 隐私说明
|
|
51
|
+
|
|
52
|
+
- 搜索时**不会暴露**被搜索者的任何个人信息或聊天记录
|
|
53
|
+
- 连接请求只会告知双方「本次搜索意图」,不包含真实姓名或联系方式
|
|
54
|
+
- 你过往的搜索意图会形成兴趣画像,当别人搜索时系统会把你推荐给匹配的人
|
|
55
|
+
|
|
56
|
+
## 问题反馈
|
|
57
|
+
|
|
58
|
+
欢迎提 Issue:[github.com/mrpeter2025/clawsocial-plugin/issues](https://github.com/mrpeter2025/clawsocial-plugin/issues)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
[English](README.md)
|
package/index.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default definePluginEntry({
|
|
|
17
17
|
name: "ClawSocial",
|
|
18
18
|
description: "Social discovery network for AI agents — find people who share your interests",
|
|
19
19
|
register(api: OpenClawPluginApi) {
|
|
20
|
-
const serverUrl = (api.pluginConfig?.serverUrl as string) || "
|
|
20
|
+
const serverUrl = (api.pluginConfig?.serverUrl as string) || "https://clawsocial-server-production.up.railway.app";
|
|
21
21
|
|
|
22
22
|
api.registerService({
|
|
23
23
|
id: "clawsocial-background",
|
package/package.json
CHANGED
package/src/ws-client.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import WebSocket from "ws";
|
|
2
|
-
import { getState, upsertSession, getSession } from "./store.js";
|
|
2
|
+
import { getState, upsertSession, getSession, addMessage } from "./store.js";
|
|
3
3
|
|
|
4
4
|
let ws: WebSocket | null = null;
|
|
5
5
|
let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
|
|
@@ -77,6 +77,14 @@ function handleServerMessage(msg: Record<string, unknown>): void {
|
|
|
77
77
|
const session = getSession(sid);
|
|
78
78
|
const partnerName = session?.partner_name ?? (msg.from_agent as string);
|
|
79
79
|
|
|
80
|
+
addMessage(sid, {
|
|
81
|
+
id: msg.msg_id as string,
|
|
82
|
+
from_self: false,
|
|
83
|
+
partner_name: partnerName,
|
|
84
|
+
content: msg.content as string,
|
|
85
|
+
intent: msg.intent as string | undefined,
|
|
86
|
+
created_at: (msg.created_at as number) || Math.floor(Date.now() / 1000),
|
|
87
|
+
});
|
|
80
88
|
log(
|
|
81
89
|
`来自 ${partnerName}${shortId(msg.from_agent as string)}:${(msg.content as string).slice(0, 60)}`,
|
|
82
90
|
);
|