@efengx/openclaw-channel-dragon 0.1.54 → 0.1.56

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/dist/index.js CHANGED
@@ -159,7 +159,7 @@ async function startPolling(ctx) {
159
159
  continue;
160
160
  const dataLines = raw
161
161
  .split('\n')
162
- .filter((l) => l.startsWith('data:'))
162
+ .filter((l) => typeof l === 'string' && l.startsWith('data:'))
163
163
  .map((l) => l.slice('data:'.length).trim());
164
164
  if (!dataLines.length)
165
165
  continue;
@@ -173,7 +173,7 @@ async function startPolling(ctx) {
173
173
  }
174
174
  }
175
175
  catch (e) {
176
- logger?.error?.(`dragon channel: failed to parse SSE data: ${e?.message || e}`);
176
+ logger?.error?.(`dragon channel: failed to parse SSE data: ${e?.message || e}`, e?.stack);
177
177
  }
178
178
  }
179
179
  };
@@ -268,7 +268,7 @@ async function startPolling(ctx) {
268
268
  catch (e) {
269
269
  if (e?.name === 'AbortError')
270
270
  break;
271
- logger?.error?.(`dragon channel: SSE loop error: ${e?.message || e}`);
271
+ logger?.error?.(`dragon channel: SSE loop error: ${e?.message || e}`, e?.stack);
272
272
  // reconnect delay (cap 10s)
273
273
  const delayMs = Math.min(10_000, 500 + attempt * 500);
274
274
  await new Promise((r) => setTimeout(r, delayMs));
@@ -342,7 +342,7 @@ const gateway = {
342
342
  await startPolling(ctx);
343
343
  }
344
344
  catch (err) {
345
- logger?.error?.(`dragon channel: fatal poll error: ${err.message}`);
345
+ logger?.error?.(`dragon channel: fatal poll error: ${err.message}`, err.stack);
346
346
  }
347
347
  },
348
348
  };
@@ -446,6 +446,7 @@ const entry = defineChannelPluginEntry({
446
446
  if (stream === "thinking") {
447
447
  telemetryPayload = {
448
448
  content: "", // Content can be empty for pure reasoning update
449
+ ts: evt.ts,
449
450
  metadata: { isTelemetry: true, reasoning_content: data, stream: "thinking" }
450
451
  };
451
452
  }
@@ -454,6 +455,7 @@ const entry = defineChannelPluginEntry({
454
455
  if (data?.status === "completed" || data?.phase === "end" || data?.output) {
455
456
  telemetryPayload = {
456
457
  content: `[Tool Result] ${toolName}`,
458
+ ts: evt.ts,
457
459
  metadata: {
458
460
  isTelemetry: true,
459
461
  toolName: toolName,
@@ -469,6 +471,7 @@ const entry = defineChannelPluginEntry({
469
471
  // Initial tool call info
470
472
  telemetryPayload = {
471
473
  content: `[Tool Call] ${toolName}...`,
474
+ ts: evt.ts,
472
475
  metadata: {
473
476
  isTelemetry: true,
474
477
  toolName: toolName,
@@ -481,8 +484,14 @@ const entry = defineChannelPluginEntry({
481
484
  }
482
485
  else if (stream === "plan") {
483
486
  telemetryPayload = {
484
- content: `[Plan] ${data.title || "Updating steps..."}`,
485
- metadata: { isTelemetry: true, data, stream: "plan" }
487
+ content: data?.explanation || `Plan Update: ${data?.title}`,
488
+ ts: evt.ts,
489
+ metadata: {
490
+ isTelemetry: true,
491
+ planTitle: data?.title,
492
+ planSteps: data?.steps,
493
+ stream: "plan"
494
+ }
486
495
  };
487
496
  }
488
497
  if (telemetryPayload) {
@@ -2,7 +2,7 @@
2
2
  "id": "dragon",
3
3
  "name": "Dragon Workbench Channel",
4
4
  "description": "Connect OpenClaw to the Dragon agent-client workbench chat.",
5
- "version": "0.1.54",
5
+ "version": "0.1.56",
6
6
  "enabledByDefault": true,
7
7
  "activation": {
8
8
  "onCapabilities": ["hook"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@efengx/openclaw-channel-dragon",
3
- "version": "0.1.54",
3
+ "version": "0.1.56",
4
4
  "description": "Dragon workbench channel for OpenClaw",
5
5
  "author": "feng xiang <ofengx@gmail.com>",
6
6
  "type": "module",