@clawchatsai/connector 0.0.96 → 0.0.97

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawchatsai/connector",
3
- "version": "0.0.96",
3
+ "version": "0.0.97",
4
4
  "type": "module",
5
5
  "description": "ClawChats OpenClaw plugin — P2P tunnel + local API bridge",
6
6
  "main": "dist/index.js",
package/server/gateway.js CHANGED
@@ -80,7 +80,7 @@ export class GatewayClient {
80
80
  }
81
81
 
82
82
  handleChatEvent(params, rawData) {
83
- const { sessionKey, state, message, seq } = params;
83
+ const { sessionKey, state, message, seq, errorMessage: gwErrorMessage } = params;
84
84
  const bareSessionKey = sessionKey.replace(/^agent:[^:]+:/, '');
85
85
 
86
86
  // --- Utility session routing (connector-side) ---
@@ -95,7 +95,7 @@ export class GatewayClient {
95
95
  } else if (state === 'final' || state === 'aborted') {
96
96
  if (content) this.broadcastToBrowsers(JSON.stringify({ type: 'clawchats', event: 'utility-response', session: utilityName, state: state === 'final' ? 'final' : 'aborted', content }));
97
97
  } else if (state === 'error') {
98
- this.broadcastToBrowsers(JSON.stringify({ type: 'clawchats', event: 'utility-response', session: utilityName, state: 'error', errorMessage: message?.error || 'Unknown error' }));
98
+ this.broadcastToBrowsers(JSON.stringify({ type: 'clawchats', event: 'utility-response', session: utilityName, state: 'error', errorMessage: gwErrorMessage || message?.error || message?.content || 'Unknown error' }));
99
99
  }
100
100
  this.broadcastToBrowsers(rawData); // dual-emit: browser guard skips raw handling for utility sessions
101
101
  return;
@@ -179,7 +179,7 @@ export class GatewayClient {
179
179
  this.broadcastToBrowsers(rawData); // dual-emit
180
180
  if (parsed) {
181
181
  const activity = this._popActivityLogForSession(sessionKey);
182
- this.broadcastToBrowsers(JSON.stringify({ type: 'clawchats', event: 'streaming-end', threadId: parsed.threadId, workspace: parsed.workspace, reason: 'error', errorMessage: message?.error || 'Unknown error', ...(activity || {}) }));
182
+ this.broadcastToBrowsers(JSON.stringify({ type: 'clawchats', event: 'streaming-end', threadId: parsed.threadId, workspace: parsed.workspace, reason: 'error', errorMessage: gwErrorMessage || message?.error || message?.content || 'Unknown error', ...(activity || {}) }));
183
183
  }
184
184
  }
185
185
  }
@@ -271,7 +271,7 @@ export class GatewayClient {
271
271
  if (!db.prepare('SELECT id FROM threads WHERE id = ?').get(parsed.threadId)) return;
272
272
  const now = Date.now();
273
273
  try {
274
- db.prepare('INSERT INTO messages (id, thread_id, role, content, status, metadata, timestamp, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)').run(`gw-error-${parsed.threadId}-${now}`, parsed.threadId, 'system', `[error] ${message?.error || message?.content || 'Unknown error'}`, 'sent', '{"transient":true}', now, now);
274
+ db.prepare('INSERT INTO messages (id, thread_id, role, content, status, metadata, timestamp, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)').run(`gw-error-${parsed.threadId}-${now}`, parsed.threadId, 'system', `[error] ${gwErrorMessage || message?.error || message?.content || 'Unknown error'}`, 'sent', '{"transient":true}', now, now);
275
275
  // Clear stale pending flag so browsers reloading the chat don't re-derive "thinking..." state.
276
276
  db.prepare("UPDATE messages SET metadata = json_remove(metadata, '$.pending') WHERE thread_id = ? AND role = 'assistant' AND json_extract(metadata, '$.pending') = 1").run(parsed.threadId);
277
277
  } catch (e) { console.error('Failed to save error marker:', e.message); }