openclaw-openagent 1.0.0
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/index.ts +114 -0
- package/openclaw.plugin.json +159 -0
- package/package.json +79 -0
- package/skills/clawlink/SKILL.md +145 -0
- package/skills/clawlink/SKILL.md.bak +165 -0
- package/src/app/channel-tools.ts +249 -0
- package/src/app/discovery-tools.ts +273 -0
- package/src/app/hooks.ts +60 -0
- package/src/app/index.ts +78 -0
- package/src/app/messaging-tools.ts +79 -0
- package/src/app/ops-tools.ts +155 -0
- package/src/app/remote-agent-tool.ts +476 -0
- package/src/app/types.ts +67 -0
- package/src/app/verbose-preflight.ts +190 -0
- package/src/auth/config.ts +197 -0
- package/src/auth/credential-manager.ts +146 -0
- package/src/auth/index.ts +24 -0
- package/src/auth/verify.ts +99 -0
- package/src/channel.ts +565 -0
- package/src/compat.ts +82 -0
- package/src/config/config-schema.ts +39 -0
- package/src/messaging/aggregator.ts +120 -0
- package/src/messaging/collector.ts +89 -0
- package/src/messaging/executor.ts +72 -0
- package/src/messaging/inbound.ts +150 -0
- package/src/messaging/index.ts +11 -0
- package/src/messaging/mention-protocol.ts +94 -0
- package/src/messaging/process-c2c-request.ts +564 -0
- package/src/messaging/process-message.ts +373 -0
- package/src/messaging/scheduler.ts +55 -0
- package/src/messaging/types.ts +38 -0
- package/src/plugin-ui/assets/agentbook-icon.svg +5 -0
- package/src/plugin-ui/assets/magic.svg +5 -0
- package/src/plugin-ui/assets/openagent-override.js +9329 -0
- package/src/plugin-ui/build.cjs +175 -0
- package/src/plugin-ui/index.ts +18 -0
- package/src/plugin-ui/modules/agent-book/panel/agent-book.js +458 -0
- package/src/plugin-ui/modules/agent-book/panel/agent-card.js +154 -0
- package/src/plugin-ui/modules/agent-book/panel/agent-data.js +644 -0
- package/src/plugin-ui/modules/agent-book/panel/inject-ui.js +456 -0
- package/src/plugin-ui/modules/agent-book/panel/mention-state.js +206 -0
- package/src/plugin-ui/modules/agent-book/panel/styles.js +670 -0
- package/src/plugin-ui/modules/agent-book/remote-agent-tool/components-core.js +293 -0
- package/src/plugin-ui/modules/agent-book/remote-agent-tool/thought-chain-card.js +208 -0
- package/src/plugin-ui/modules/agent-book/scanner.js +119 -0
- package/src/plugin-ui/modules/agent-book/travelcard/travel-cards.js +500 -0
- package/src/plugin-ui/modules/agent-book/travelcard/travel-engine.js +652 -0
- package/src/plugin-ui/modules/agent-book/travelcard/travel-styles.js +251 -0
- package/src/plugin-ui/modules/loader/bootstrap.js +38 -0
- package/src/plugin-ui/modules/loader/shared-state.js +560 -0
- package/src/plugin-ui/modules/loader/ws-intercept.js +199 -0
- package/src/plugin-ui/modules/remote-agent/chunk-parser.js +161 -0
- package/src/plugin-ui/modules/remote-agent/execution-card.js +269 -0
- package/src/plugin-ui/modules/remote-agent/markdown-renderer.js +256 -0
- package/src/plugin-ui/modules/remote-agent/native-style-adapter.js +146 -0
- package/src/plugin-ui/modules/remote-agent/output-card.js +259 -0
- package/src/plugin-ui/modules/remote-agent/progress-store.js +363 -0
- package/src/plugin-ui/modules/remote-agent/render-hooks.js +1609 -0
- package/src/plugin-ui/modules/remote-agent/styles.js +668 -0
- package/src/plugin-ui/modules/remote-agent/tool-card-model.js +56 -0
- package/src/plugin-ui/ui-extension-loader/backup.ts +92 -0
- package/src/plugin-ui/ui-extension-loader/index.ts +276 -0
- package/src/plugin-ui/ui-extension-loader/locator.ts +152 -0
- package/src/plugin-ui/ui-extension-loader/manifest.ts +57 -0
- package/src/plugin-ui/ui-extension-loader/registry-regex.ts +729 -0
- package/src/plugin-ui/ui-extension-loader/removed-extensions.ts +70 -0
- package/src/plugin-ui/ui-extension-loader/types.ts +68 -0
- package/src/proxy/auth-proxy.ts +356 -0
- package/src/runtime/account.ts +572 -0
- package/src/runtime/index.ts +7 -0
- package/src/runtime/plugin-runtime.ts +94 -0
- package/src/runtime/registry.ts +71 -0
- package/src/sdk/CLASS_MAP.md +143 -0
- package/src/sdk/index.d.ts +126 -0
- package/src/sdk/index.js +23990 -0
- package/src/sdk/modules/cloud-search-module.js +1117 -0
- package/src/sdk/modules/follow-module.js +1069 -0
- package/src/sdk/modules/group-module.js +7397 -0
- package/src/sdk/modules/relationship-module.js +2269 -0
- package/src/sdk/modules/signaling-module.js +1468 -0
- package/src/sdk/modules/tim-upload-plugin.js +730 -0
- package/src/sdk/node-env/http-request.js +90 -0
- package/src/sdk/node-env/index.js +57 -0
- package/src/sdk/node-env/storage.js +114 -0
- package/src/sdk/package.json +10 -0
- package/src/sdk/tsconfig.json +16 -0
- package/src/state/pending-invocation-store.ts +43 -0
- package/src/state/store.ts +676 -0
- package/src/tim/c2c.ts +451 -0
- package/src/tim/channels.ts +364 -0
- package/src/tim/client.ts +330 -0
- package/src/tim/index.ts +18 -0
- package/src/tim/messages.ts +166 -0
- package/src/tim/sdk-logger-init.ts +50 -0
- package/src/tools.ts +10 -0
- package/src/transport/factory.ts +95 -0
- package/src/transport/oasn/index.ts +17 -0
- package/src/transport/oasn/oasn-agent-card.ts +111 -0
- package/src/transport/oasn/oasn-discovery.ts +108 -0
- package/src/transport/oasn/oasn-files.ts +210 -0
- package/src/transport/oasn/oasn-http.ts +483 -0
- package/src/transport/oasn/oasn-invocation.ts +527 -0
- package/src/transport/oasn/oasn-normalize.ts +159 -0
- package/src/transport/oasn/oasn-register.ts +106 -0
- package/src/transport/oasn/oasn-transport.ts +341 -0
- package/src/transport/oasn/oasn-types.ts +353 -0
- package/src/transport/tim/index.ts +8 -0
- package/src/transport/tim/tim-transport.ts +515 -0
- package/src/transport/types.ts +541 -0
- package/src/types/openclaw.d.ts +97 -0
- package/src/types/tencentcloud-chat.d.ts +15 -0
- package/src/util/http.ts +113 -0
- package/src/util/logger.ts +131 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// ── AgentCard 统一组件 ──
|
|
2
|
+
//
|
|
3
|
+
// 用法:AgentCard(agent, { mode, onAction, actionLabel })
|
|
4
|
+
// mode: 'mention' — 空 @ 默认面板的分类卡片
|
|
5
|
+
// 'search' — 有搜索词时的旧式搜索结果行
|
|
6
|
+
// 'inline' — 聊天消息中的内嵌卡片
|
|
7
|
+
// onAction: 按钮点击回调
|
|
8
|
+
// actionLabel: 按钮文案(默认 mention='Try', inline='@ Chat')
|
|
9
|
+
|
|
10
|
+
function AgentCard(agent, opts = {}) {
|
|
11
|
+
const { mode = 'inline', onAction, actionLabel } = opts;
|
|
12
|
+
const card = _el('div', `agent-card agent-card--${mode}`);
|
|
13
|
+
|
|
14
|
+
if (mode === 'mention') {
|
|
15
|
+
// ── Figma 结构:──
|
|
16
|
+
// Agent item (grid cell)
|
|
17
|
+
// └── avart 实例
|
|
18
|
+
// └── 第一行 (row)
|
|
19
|
+
// ├── 内容组 (avatar 60 + info)
|
|
20
|
+
// │ └── 信息列:名称 / 简介 / 统计
|
|
21
|
+
// └── @Try 按钮
|
|
22
|
+
|
|
23
|
+
// avart 外壳
|
|
24
|
+
const avart = _el('div', 'agent-card__avart');
|
|
25
|
+
|
|
26
|
+
// ── 第一行:内容组 + @Try ──
|
|
27
|
+
const row1 = _el('div', 'agent-card__row1');
|
|
28
|
+
|
|
29
|
+
// 内容组:头像 + 信息列
|
|
30
|
+
const contentGroup = _el('div', 'agent-card__content-group');
|
|
31
|
+
|
|
32
|
+
// 头像
|
|
33
|
+
const avatar = document.createElement('img');
|
|
34
|
+
avatar.className = 'agent-card__avatar';
|
|
35
|
+
avatar.src = avatarUrl(agent);
|
|
36
|
+
avatar.alt = agent.name || '';
|
|
37
|
+
avatar.addEventListener('error', () => {
|
|
38
|
+
avatar.src = `https://ui-avatars.com/api/?name=${encodeURIComponent(agent.name)}&background=6366f1&color=fff&size=112`;
|
|
39
|
+
}, { once: true });
|
|
40
|
+
contentGroup.appendChild(avatar);
|
|
41
|
+
|
|
42
|
+
// 信息列:名称 + 简介
|
|
43
|
+
const info = _el('div', 'agent-card__info');
|
|
44
|
+
info.appendChild(_text('div', 'agent-card__name', agent.name || ''));
|
|
45
|
+
info.appendChild(_text('div', 'agent-card__bio', agent.bio || '暂无简介'));
|
|
46
|
+
const stats = _el('div', 'agent-card__stats');
|
|
47
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--claws', `${formatNumber(agent.claws)}☆`));
|
|
48
|
+
if (agent.owner) {
|
|
49
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--owner', ` · owner${agent.owner}`));
|
|
50
|
+
}
|
|
51
|
+
info.appendChild(stats);
|
|
52
|
+
contentGroup.appendChild(info);
|
|
53
|
+
|
|
54
|
+
row1.appendChild(contentGroup);
|
|
55
|
+
|
|
56
|
+
// @Try 按钮
|
|
57
|
+
const defaultLabel = 'Try';
|
|
58
|
+
const btn = _text('button', 'agent-card__action', actionLabel || defaultLabel);
|
|
59
|
+
if (onAction) {
|
|
60
|
+
btn.addEventListener('click', (e) => {
|
|
61
|
+
e.stopPropagation();
|
|
62
|
+
console.log('[openagent] Try button clicked for:', agent.name);
|
|
63
|
+
onAction(agent);
|
|
64
|
+
});
|
|
65
|
+
card.addEventListener('click', (e) => {
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
console.log('[openagent] Card clicked for:', agent.name);
|
|
68
|
+
onAction(agent);
|
|
69
|
+
});
|
|
70
|
+
card.style.cursor = 'pointer';
|
|
71
|
+
}
|
|
72
|
+
row1.appendChild(btn);
|
|
73
|
+
|
|
74
|
+
avart.appendChild(row1);
|
|
75
|
+
|
|
76
|
+
card.appendChild(avart);
|
|
77
|
+
|
|
78
|
+
} else if (mode === 'search') {
|
|
79
|
+
const avatar = document.createElement('img');
|
|
80
|
+
avatar.className = 'agent-card__avatar';
|
|
81
|
+
avatar.src = avatarUrl(agent);
|
|
82
|
+
avatar.alt = agent.name || '';
|
|
83
|
+
avatar.addEventListener('error', () => {
|
|
84
|
+
avatar.src = `https://ui-avatars.com/api/?name=${encodeURIComponent(agent.name)}&background=6366f1&color=fff&size=112`;
|
|
85
|
+
}, { once: true });
|
|
86
|
+
card.appendChild(avatar);
|
|
87
|
+
|
|
88
|
+
const body = _el('div', 'agent-card__body');
|
|
89
|
+
body.appendChild(_text('div', 'agent-card__name', agent.name || ''));
|
|
90
|
+
body.appendChild(_text('div', 'agent-card__bio', agent.bio || '暂无简介'));
|
|
91
|
+
|
|
92
|
+
const stats = _el('div', 'agent-card__stats');
|
|
93
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--claws', `${formatNumber(agent.claws)}☆`));
|
|
94
|
+
if (agent.owner) {
|
|
95
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--owner', ` · owner${agent.owner}`));
|
|
96
|
+
}
|
|
97
|
+
body.appendChild(stats);
|
|
98
|
+
card.appendChild(body);
|
|
99
|
+
|
|
100
|
+
const btn = _text('button', 'agent-card__action', actionLabel || 'Try');
|
|
101
|
+
if (onAction) {
|
|
102
|
+
btn.addEventListener('click', (e) => {
|
|
103
|
+
e.stopPropagation();
|
|
104
|
+
console.log('[openagent] Try button clicked for:', agent.name);
|
|
105
|
+
onAction(agent);
|
|
106
|
+
});
|
|
107
|
+
card.addEventListener('click', (e) => {
|
|
108
|
+
e.stopPropagation();
|
|
109
|
+
console.log('[openagent] Card clicked for:', agent.name);
|
|
110
|
+
onAction(agent);
|
|
111
|
+
});
|
|
112
|
+
card.style.cursor = 'pointer';
|
|
113
|
+
}
|
|
114
|
+
card.appendChild(btn);
|
|
115
|
+
|
|
116
|
+
} else {
|
|
117
|
+
// ── mode: inline(聊天内嵌卡片)— 保持原结构 ──
|
|
118
|
+
const avatar = document.createElement('img');
|
|
119
|
+
avatar.className = 'agent-card__avatar';
|
|
120
|
+
avatar.src = avatarUrl(agent);
|
|
121
|
+
avatar.alt = agent.name || '';
|
|
122
|
+
avatar.addEventListener('error', () => {
|
|
123
|
+
avatar.src = `https://ui-avatars.com/api/?name=${encodeURIComponent(agent.name)}&background=6366f1&color=fff&size=112`;
|
|
124
|
+
}, { once: true });
|
|
125
|
+
card.appendChild(avatar);
|
|
126
|
+
|
|
127
|
+
const body = _el('div', 'agent-card__body');
|
|
128
|
+
const nameLine = _el('div', 'agent-card__name-line');
|
|
129
|
+
nameLine.appendChild(_text('span', 'agent-card__name', agent.name || ''));
|
|
130
|
+
if (agent.tag) {
|
|
131
|
+
nameLine.appendChild(_text('span', 'agent-card__tag', `@${agent.tag}`));
|
|
132
|
+
}
|
|
133
|
+
body.appendChild(nameLine);
|
|
134
|
+
body.appendChild(_text('div', 'agent-card__bio', agent.bio || '暂无简介'));
|
|
135
|
+
|
|
136
|
+
const stats = _el('div', 'agent-card__stats');
|
|
137
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--claws', `${formatNumber(agent.claws)}☆`));
|
|
138
|
+
if (agent.owner) {
|
|
139
|
+
stats.appendChild(_text('span', 'agent-card__stat agent-card__stat--owner', ` · owner${agent.owner}`));
|
|
140
|
+
}
|
|
141
|
+
body.appendChild(stats);
|
|
142
|
+
card.appendChild(body);
|
|
143
|
+
|
|
144
|
+
const btn = _text('button', 'agent-card__action', actionLabel || '@ Chat');
|
|
145
|
+
if (onAction) {
|
|
146
|
+
btn.addEventListener('click', (e) => { e.stopPropagation(); onAction(agent); });
|
|
147
|
+
card.addEventListener('click', (e) => { e.stopPropagation(); onAction(agent); });
|
|
148
|
+
card.style.cursor = 'pointer';
|
|
149
|
+
}
|
|
150
|
+
card.appendChild(btn);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return card;
|
|
154
|
+
}
|