@wildfirechat/openclaw-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 CHANGED
@@ -1,9 +1,13 @@
1
- # OpenClaw Wildfire IM 插件
1
+ # OpenClaw 野火IM 插件
2
2
 
3
- OpenClaw 的野火 IM (Wildfire IM) 频道插件,支持收发消息、流式回复和文件传输。
3
+ OpenClaw 的野火IM 频道插件,支持收发消息、流式回复和文件传输。
4
4
 
5
5
  ## 安装
6
+ ```
7
+ openclaw plugins install @wildfirechat/openclaw-plugin
8
+ ```
6
9
 
10
+ ## 开发
7
11
  ```bash
8
12
  # 构建并打包
9
13
  cd openclaw-plugin.js
@@ -12,6 +16,7 @@ npm run build
12
16
  npm pack
13
17
 
14
18
  # 安装到 OpenClaw
19
+ // 安装完之后,代码位于 ~/.openclaw/extensions/wildfire/,后续可以直接将 npm run build 后的 dist 目录里面的内容 覆盖到安装目录下的 dist 目录
15
20
  openclaw plugins install ./openclaw-wildfire-1.0.0.tgz
16
21
  openclaw restart
17
22
  ```
@@ -84,7 +89,7 @@ openclaw-plugin.js/
84
89
  ### Mention 检测
85
90
 
86
91
  - `mentionedType === 2`: @所有人,始终回复
87
- - `mentionedType === 1`: @部分人,检查 `mentionedTargets`
92
+ - `mentionedType === 1`: @部分人,检查 `mentionedTarget`
88
93
 
89
94
  ## 调试
90
95
 
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsBlD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAoLf"}
1
+ {"version":3,"file":"inbound.d.ts","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAwBlD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAkMf"}
package/dist/inbound.js CHANGED
@@ -14,6 +14,8 @@ const MESSAGE_TYPE_FILE = 5;
14
14
  const CONV_TYPE_SINGLE = 0;
15
15
  const CONV_TYPE_GROUP = 1;
16
16
  const CONV_TYPE_CHANNEL = 2;
17
+ // Per-session serialization: only one AI request per session may be in-flight at a time.
18
+ const sessionQueues = new Map();
17
19
  /**
18
20
  * Process incoming message from Wildfire IM
19
21
  */
@@ -44,7 +46,7 @@ export async function handleIncomingMessage(api, message, config) {
44
46
  }
45
47
  const baseSessionKey = isGroup
46
48
  ? `wildfire:group:${conv.target}`.toLowerCase()
47
- : `wildfire:${sender}`.toLowerCase();
49
+ : `wildfire:user:${sender}`.toLowerCase();
48
50
  const cfg = api.config;
49
51
  const route = runtime.channel.routing?.resolveAgentRoute?.({
50
52
  cfg,
@@ -53,129 +55,141 @@ export async function handleIncomingMessage(api, message, config) {
53
55
  accountId: "default",
54
56
  }) ?? { agentId: "main", sessionKey: baseSessionKey };
55
57
  const sessionKey = String(route?.sessionKey ?? baseSessionKey).trim() || baseSessionKey;
56
- const storePath = runtime.channel.session?.resolveStorePath?.(cfg?.session?.store, {
57
- agentId: route.agentId,
58
- }) ?? "";
59
- const chatType = isGroup ? "group" : "direct";
60
- const fromLabel = String(sender);
61
- const senderId = String(sender);
62
- const timestamp = Date.now();
63
- const ctxPayload = {
64
- Body: text,
65
- RawBody: text,
66
- From: `wildfire:user:${sender}`,
67
- To: isGroup ? `wildfire:group:${conv.target}` : `wildfire:user:${sender}`,
68
- SessionKey: sessionKey,
69
- AccountId: "default",
70
- ChatType: chatType,
71
- ConversationLabel: fromLabel,
72
- SenderName: fromLabel,
73
- SenderId: senderId,
74
- Provider: "wildfire",
75
- Surface: "wildfire",
76
- MessageSid: `wildfire-${Date.now()}`,
77
- Timestamp: timestamp,
78
- OriginatingChannel: "wildfire",
79
- OriginatingTo: `wildfire:${config.robotId || "bot"}`,
80
- CommandAuthorized: true,
81
- _wildfire: {
82
- accountId: "default",
83
- isGroup,
84
- senderId,
85
- conversationId: conv.target,
86
- messageType: payloadType,
87
- },
88
- };
89
- // Record session
90
- if (runtime.channel.session?.recordInboundSession) {
91
- await runtime.channel.session.recordInboundSession({
92
- storePath,
93
- sessionKey,
94
- ctx: ctxPayload,
95
- updateLastRoute: !isGroup
96
- ? {
97
- sessionKey,
98
- channel: "wildfire",
99
- to: senderId,
100
- accountId: "default",
101
- }
102
- : undefined,
103
- onRecordError: (err) => api.logger?.warn?.(`[wildfire] recordInboundSession: ${String(err)}`),
104
- });
105
- }
106
- // Record activity
107
- if (runtime.channel.activity?.record) {
108
- runtime.channel.activity.record({
109
- channel: "wildfire",
110
- accountId: "default",
111
- direction: "inbound",
112
- });
113
- }
114
- // 生成唯一的 streamId 用于流式消息(每条用户消息有独立的流)
115
- const streamId = `stream-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
116
- let finalText = "";
117
- let hasStarted = false;
118
- let hasCompleted = false;
119
- // 先发送一个空的 generating 消息显示转圈等待
120
- try {
121
- await sendStreamingReply(sender, conv, "...", streamId, "generating", api);
122
- hasStarted = true;
123
- }
124
- catch (e) {
125
- api.logger?.error?.(`[wildfire] initial stream failed: ${e.message}`);
126
- }
127
- // Dispatch to OpenClaw - 使用真正的流式回复(onPartialReply)
58
+ // Wait for any in-flight request on this session to finish before starting a new one.
59
+ const prevRequest = sessionQueues.get(sessionKey) ?? Promise.resolve();
60
+ let releaseSession;
61
+ const sessionSlot = new Promise(resolve => { releaseSession = resolve; });
62
+ sessionQueues.set(sessionKey, sessionSlot);
63
+ await prevRequest.catch(() => { });
128
64
  try {
129
- await runtime.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
130
- ctx: ctxPayload,
131
- cfg,
132
- dispatcherOptions: {
133
- deliver: async (payload) => {
134
- // deliver 接收最终完整内容
135
- if (payload.text) {
136
- finalText = payload.text;
137
- }
138
- },
139
- onError: (err, info) => {
140
- api.logger?.error?.(`[wildfire] ${info?.kind || "reply"} failed: ${String(err)}`);
141
- },
65
+ const storePath = runtime.channel.session?.resolveStorePath?.(cfg?.session?.store, {
66
+ agentId: route.agentId,
67
+ }) ?? "";
68
+ const chatType = isGroup ? "group" : "direct";
69
+ const fromLabel = String(sender);
70
+ const conversationLabel = isGroup ? `group:${conv.target}` : `user:${sender}`;
71
+ const senderId = String(sender);
72
+ const timestamp = Date.now();
73
+ const ctxPayload = {
74
+ Body: text,
75
+ RawBody: text,
76
+ From: isGroup ? `wildfire:group:${conv.target}` : `wildfire:user:${sender}`,
77
+ To: isGroup ? `wildfire:group:${conv.target}` : `wildfire:user:${sender}`,
78
+ SessionKey: sessionKey,
79
+ AccountId: "default",
80
+ ChatType: chatType,
81
+ ConversationLabel: conversationLabel,
82
+ SenderName: fromLabel,
83
+ SenderId: senderId,
84
+ Provider: "wildfire",
85
+ Surface: "wildfire",
86
+ // Use real message ID when available; fall back to timestamp+random to avoid same-ms collisions
87
+ MessageSid: `wildfire-${(data.messageId ?? data.msgId ?? data.mid) || `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`}`,
88
+ Timestamp: timestamp,
89
+ OriginatingChannel: "wildfire",
90
+ OriginatingTo: `wildfire:user:${sender}`,
91
+ CommandAuthorized: true,
92
+ _wildfire: {
93
+ accountId: "default",
94
+ isGroup,
95
+ senderId,
96
+ conversationId: conv.target,
97
+ messageType: payloadType,
142
98
  },
143
- replyOptions: {
144
- disableBlockStreaming: false,
145
- // 真正的流式回调:每次生成新内容时触发
146
- onPartialReply: async (payload) => {
147
- if (!payload.text)
148
- return;
149
- // 更新最终文本
150
- finalText = payload.text;
151
- api.logger?.debug?.(`[wildfire-debug] onPartialReply: ${payload.text.substring(0, 30)}...`);
152
- try {
153
- // 发送 generating 消息更新同一条消息
154
- await sendStreamingReply(sender, conv, payload.text, streamId, "generating", api);
155
- }
156
- catch (e) {
157
- api.logger?.error?.(`[wildfire] stream update failed: ${e.message}`);
99
+ };
100
+ // Record session
101
+ if (runtime.channel.session?.recordInboundSession) {
102
+ await runtime.channel.session.recordInboundSession({
103
+ storePath,
104
+ sessionKey,
105
+ ctx: ctxPayload,
106
+ updateLastRoute: !isGroup
107
+ ? {
108
+ sessionKey,
109
+ channel: "wildfire",
110
+ to: `wildfire:user:${senderId}`,
111
+ accountId: "default",
158
112
  }
159
- },
160
- },
161
- });
162
- // 流式完成,发送 completed 消息
163
- if (!hasCompleted) {
164
- hasCompleted = true;
165
- api.logger?.debug?.(`[wildfire-debug] stream completed, text=${finalText?.substring(0, 30)}`);
166
- // 如果有内容就发送 completed,否则发送错误提示
167
- const textToSend = finalText || "(no response)";
168
- await sendStreamingReply(sender, conv, textToSend, streamId, "completed", api);
113
+ : undefined,
114
+ onRecordError: (err) => api.logger?.warn?.(`[wildfire] recordInboundSession: ${String(err)}`),
115
+ });
169
116
  }
170
- }
171
- catch (err) {
172
- api.logger?.error?.(`[wildfire] dispatch failed: ${err.message}`);
117
+ // Record activity
118
+ if (runtime.channel.activity?.record) {
119
+ runtime.channel.activity.record({
120
+ channel: "wildfire",
121
+ accountId: "default",
122
+ direction: "inbound",
123
+ });
124
+ }
125
+ // 生成唯一的 streamId 用于流式消息(每条用户消息有独立的流)
126
+ const streamId = `stream-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
127
+ let finalText = "";
128
+ let hasCompleted = false;
129
+ // 先发送一个空的 generating 消息显示转圈等待
130
+ try {
131
+ await sendStreamingReply(sender, conv, "...", streamId, "generating", api);
132
+ }
133
+ catch (e) {
134
+ api.logger?.error?.(`[wildfire] initial stream failed: ${e.message}`);
135
+ }
136
+ // Dispatch to OpenClaw - 使用真正的流式回复(onPartialReply)
173
137
  try {
174
- const errorText = `Processing failed: ${err.message.slice(0, 80)}`;
175
- await sendStreamingReply(sender, conv, errorText, streamId, "completed", api);
138
+ await runtime.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
139
+ ctx: ctxPayload,
140
+ cfg,
141
+ dispatcherOptions: {
142
+ // deliver is called once per block (paragraph) with that block's text only — NOT cumulative.
143
+ deliver: async (_payload) => {
144
+ // no-op: streaming delivery is handled via onPartialReply + sendStreamingReply
145
+ },
146
+ onError: (err, info) => {
147
+ api.logger?.error?.(`[wildfire] ${info?.kind || "reply"} failed: ${String(err)}`);
148
+ },
149
+ },
150
+ replyOptions: {
151
+ disableBlockStreaming: false,
152
+ // 真正的流式回调:每次生成新内容时触发
153
+ onPartialReply: async (payload) => {
154
+ if (!payload.text)
155
+ return;
156
+ // 更新最终文本
157
+ finalText = payload.text;
158
+ api.logger?.debug?.(`[wildfire-debug] onPartialReply: ${payload.text.substring(0, 30)}...`);
159
+ try {
160
+ // 发送 generating 消息更新同一条消息
161
+ await sendStreamingReply(sender, conv, payload.text, streamId, "generating", api);
162
+ }
163
+ catch (e) {
164
+ api.logger?.error?.(`[wildfire] stream update failed: ${e.message}`);
165
+ }
166
+ },
167
+ },
168
+ });
169
+ // 流式完成,发送 completed 消息
170
+ if (!hasCompleted) {
171
+ hasCompleted = true;
172
+ api.logger?.debug?.(`[wildfire-debug] stream completed, text=${finalText?.substring(0, 30)}`);
173
+ // 如果有内容就发送 completed,否则发送错误提示
174
+ const textToSend = finalText || "(no response)";
175
+ await sendStreamingReply(sender, conv, textToSend, streamId, "completed", api);
176
+ }
177
+ }
178
+ catch (err) {
179
+ api.logger?.error?.(`[wildfire] dispatch failed: ${err.message}`);
180
+ try {
181
+ const errorText = `Processing failed: ${err.message.slice(0, 80)}`;
182
+ await sendStreamingReply(sender, conv, errorText, streamId, "completed", api);
183
+ }
184
+ catch {
185
+ // ignore secondary send errors
186
+ }
176
187
  }
177
- catch {
178
- // ignore secondary send errors
188
+ }
189
+ finally {
190
+ releaseSession();
191
+ if (sessionQueues.get(sessionKey) === sessionSlot) {
192
+ sessionQueues.delete(sessionKey);
179
193
  }
180
194
  }
181
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../src/inbound.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -7,7 +7,7 @@
7
7
  export function shouldRespondToGroupMessage(text, messageData, config) {
8
8
  // Strategy 1: Check if mentioned
9
9
  if (config.requireMention !== false) {
10
- if (isMentioned(messageData)) {
10
+ if (isMentioned(messageData, config.robotId)) {
11
11
  return true;
12
12
  }
13
13
  }
@@ -36,7 +36,7 @@ export function shouldRespondToGroupMessage(text, messageData, config) {
36
36
  * - mentionedType === 1: @部分人,检查 mentionedTargets 是否包含机器人 ID
37
37
  * - mentionedType === 0 或不存在: 未被提及
38
38
  */
39
- function isMentioned(messageData) {
39
+ function isMentioned(messageData, robotId) {
40
40
  try {
41
41
  const payload = messageData.payload;
42
42
  if (!payload)
@@ -48,31 +48,14 @@ function isMentioned(messageData) {
48
48
  }
49
49
  // mentionedType === 1: @部分人,检查 mentionedTargets
50
50
  if (mentionedType === 1) {
51
- const mentionedTargets = payload.mentionedTargets;
51
+ const mentionedTargets = payload.mentionedTarget;
52
52
  if (Array.isArray(mentionedTargets) && mentionedTargets.length > 0) {
53
- // 获取机器人 ID(从 messageData target sender 推断)
54
- // 机器人通常不是 sender,所以这里只需要检查是否有任何 mention
55
- // 实际上,如果 mentionedTargets 不为空,说明有人被 @ 了
56
- // 但为了精确匹配,我们需要知道机器人自己的 ID
57
- // 简化处理:只要有部分人被 @,就认为机器人可能需要响应
58
- // 或者可以通过配置来指定机器人 ID
59
- return true;
60
- }
61
- }
62
- // 尝试从 extra 字段解析(旧格式兼容)
63
- const extra = payload.extra;
64
- if (extra && typeof extra === "string") {
65
- try {
66
- const extraData = JSON.parse(extra);
67
- if (extraData.mentionedType === 2) {
68
- return true;
53
+ // Only respond if the bot itself is mentioned; ignore @-mentions of other users
54
+ if (robotId) {
55
+ return mentionedTargets.includes(robotId);
69
56
  }
70
- if (extraData.mentionedType === 1 && Array.isArray(extraData.mentionedTargets)) {
71
- return extraData.mentionedTargets.length > 0;
72
- }
73
- }
74
- catch {
75
- // JSON 解析失败,忽略
57
+ // robotId unknown: fall back to responding to any @-mention
58
+ return true;
76
59
  }
77
60
  }
78
61
  return false;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,WAAgB,EAChB,MAAsB;IAEtB,iCAAiC;IACjC,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,WAAgB;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE5C,4BAA4B;QAC5B,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gDAAgD;QAChD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,+CAA+C;gBAC/C,wCAAwC;gBACxC,wCAAwC;gBACxC,0BAA0B;gBAC1B,8BAA8B;gBAC9B,oBAAoB;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,SAAS,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/E,OAAO,SAAS,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wCAAwC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,WAAgB,EAChB,MAAsB;IAEtB,iCAAiC;IACjC,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,WAAgB,EAAE,OAAgB;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE5C,4BAA4B;QAC5B,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gDAAgD;QAChD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YACjD,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,gFAAgF;gBAChF,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBACD,4DAA4D;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wCAAwC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wildfirechat/openclaw-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Wildfire IM channel plugin for OpenClaw",
5
5
  "license": "MIT",
6
6
  "author": "Wildfire IM Team",