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.
Files changed (113) hide show
  1. package/index.ts +114 -0
  2. package/openclaw.plugin.json +159 -0
  3. package/package.json +79 -0
  4. package/skills/clawlink/SKILL.md +145 -0
  5. package/skills/clawlink/SKILL.md.bak +165 -0
  6. package/src/app/channel-tools.ts +249 -0
  7. package/src/app/discovery-tools.ts +273 -0
  8. package/src/app/hooks.ts +60 -0
  9. package/src/app/index.ts +78 -0
  10. package/src/app/messaging-tools.ts +79 -0
  11. package/src/app/ops-tools.ts +155 -0
  12. package/src/app/remote-agent-tool.ts +476 -0
  13. package/src/app/types.ts +67 -0
  14. package/src/app/verbose-preflight.ts +190 -0
  15. package/src/auth/config.ts +197 -0
  16. package/src/auth/credential-manager.ts +146 -0
  17. package/src/auth/index.ts +24 -0
  18. package/src/auth/verify.ts +99 -0
  19. package/src/channel.ts +565 -0
  20. package/src/compat.ts +82 -0
  21. package/src/config/config-schema.ts +39 -0
  22. package/src/messaging/aggregator.ts +120 -0
  23. package/src/messaging/collector.ts +89 -0
  24. package/src/messaging/executor.ts +72 -0
  25. package/src/messaging/inbound.ts +150 -0
  26. package/src/messaging/index.ts +11 -0
  27. package/src/messaging/mention-protocol.ts +94 -0
  28. package/src/messaging/process-c2c-request.ts +564 -0
  29. package/src/messaging/process-message.ts +373 -0
  30. package/src/messaging/scheduler.ts +55 -0
  31. package/src/messaging/types.ts +38 -0
  32. package/src/plugin-ui/assets/agentbook-icon.svg +5 -0
  33. package/src/plugin-ui/assets/magic.svg +5 -0
  34. package/src/plugin-ui/assets/openagent-override.js +9329 -0
  35. package/src/plugin-ui/build.cjs +175 -0
  36. package/src/plugin-ui/index.ts +18 -0
  37. package/src/plugin-ui/modules/agent-book/panel/agent-book.js +458 -0
  38. package/src/plugin-ui/modules/agent-book/panel/agent-card.js +154 -0
  39. package/src/plugin-ui/modules/agent-book/panel/agent-data.js +644 -0
  40. package/src/plugin-ui/modules/agent-book/panel/inject-ui.js +456 -0
  41. package/src/plugin-ui/modules/agent-book/panel/mention-state.js +206 -0
  42. package/src/plugin-ui/modules/agent-book/panel/styles.js +670 -0
  43. package/src/plugin-ui/modules/agent-book/remote-agent-tool/components-core.js +293 -0
  44. package/src/plugin-ui/modules/agent-book/remote-agent-tool/thought-chain-card.js +208 -0
  45. package/src/plugin-ui/modules/agent-book/scanner.js +119 -0
  46. package/src/plugin-ui/modules/agent-book/travelcard/travel-cards.js +500 -0
  47. package/src/plugin-ui/modules/agent-book/travelcard/travel-engine.js +652 -0
  48. package/src/plugin-ui/modules/agent-book/travelcard/travel-styles.js +251 -0
  49. package/src/plugin-ui/modules/loader/bootstrap.js +38 -0
  50. package/src/plugin-ui/modules/loader/shared-state.js +560 -0
  51. package/src/plugin-ui/modules/loader/ws-intercept.js +199 -0
  52. package/src/plugin-ui/modules/remote-agent/chunk-parser.js +161 -0
  53. package/src/plugin-ui/modules/remote-agent/execution-card.js +269 -0
  54. package/src/plugin-ui/modules/remote-agent/markdown-renderer.js +256 -0
  55. package/src/plugin-ui/modules/remote-agent/native-style-adapter.js +146 -0
  56. package/src/plugin-ui/modules/remote-agent/output-card.js +259 -0
  57. package/src/plugin-ui/modules/remote-agent/progress-store.js +363 -0
  58. package/src/plugin-ui/modules/remote-agent/render-hooks.js +1609 -0
  59. package/src/plugin-ui/modules/remote-agent/styles.js +668 -0
  60. package/src/plugin-ui/modules/remote-agent/tool-card-model.js +56 -0
  61. package/src/plugin-ui/ui-extension-loader/backup.ts +92 -0
  62. package/src/plugin-ui/ui-extension-loader/index.ts +276 -0
  63. package/src/plugin-ui/ui-extension-loader/locator.ts +152 -0
  64. package/src/plugin-ui/ui-extension-loader/manifest.ts +57 -0
  65. package/src/plugin-ui/ui-extension-loader/registry-regex.ts +729 -0
  66. package/src/plugin-ui/ui-extension-loader/removed-extensions.ts +70 -0
  67. package/src/plugin-ui/ui-extension-loader/types.ts +68 -0
  68. package/src/proxy/auth-proxy.ts +356 -0
  69. package/src/runtime/account.ts +572 -0
  70. package/src/runtime/index.ts +7 -0
  71. package/src/runtime/plugin-runtime.ts +94 -0
  72. package/src/runtime/registry.ts +71 -0
  73. package/src/sdk/CLASS_MAP.md +143 -0
  74. package/src/sdk/index.d.ts +126 -0
  75. package/src/sdk/index.js +23990 -0
  76. package/src/sdk/modules/cloud-search-module.js +1117 -0
  77. package/src/sdk/modules/follow-module.js +1069 -0
  78. package/src/sdk/modules/group-module.js +7397 -0
  79. package/src/sdk/modules/relationship-module.js +2269 -0
  80. package/src/sdk/modules/signaling-module.js +1468 -0
  81. package/src/sdk/modules/tim-upload-plugin.js +730 -0
  82. package/src/sdk/node-env/http-request.js +90 -0
  83. package/src/sdk/node-env/index.js +57 -0
  84. package/src/sdk/node-env/storage.js +114 -0
  85. package/src/sdk/package.json +10 -0
  86. package/src/sdk/tsconfig.json +16 -0
  87. package/src/state/pending-invocation-store.ts +43 -0
  88. package/src/state/store.ts +676 -0
  89. package/src/tim/c2c.ts +451 -0
  90. package/src/tim/channels.ts +364 -0
  91. package/src/tim/client.ts +330 -0
  92. package/src/tim/index.ts +18 -0
  93. package/src/tim/messages.ts +166 -0
  94. package/src/tim/sdk-logger-init.ts +50 -0
  95. package/src/tools.ts +10 -0
  96. package/src/transport/factory.ts +95 -0
  97. package/src/transport/oasn/index.ts +17 -0
  98. package/src/transport/oasn/oasn-agent-card.ts +111 -0
  99. package/src/transport/oasn/oasn-discovery.ts +108 -0
  100. package/src/transport/oasn/oasn-files.ts +210 -0
  101. package/src/transport/oasn/oasn-http.ts +483 -0
  102. package/src/transport/oasn/oasn-invocation.ts +527 -0
  103. package/src/transport/oasn/oasn-normalize.ts +159 -0
  104. package/src/transport/oasn/oasn-register.ts +106 -0
  105. package/src/transport/oasn/oasn-transport.ts +341 -0
  106. package/src/transport/oasn/oasn-types.ts +353 -0
  107. package/src/transport/tim/index.ts +8 -0
  108. package/src/transport/tim/tim-transport.ts +515 -0
  109. package/src/transport/types.ts +541 -0
  110. package/src/types/openclaw.d.ts +97 -0
  111. package/src/types/tencentcloud-chat.d.ts +15 -0
  112. package/src/util/http.ts +113 -0
  113. 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
+ }