@xgjktech/xg_cwork_im 1.15.2 → 1.16.1

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 (45) hide show
  1. package/README.md +2 -1
  2. package/dist/src/block-streaming-config.test.js +7 -1
  3. package/dist/src/block-streaming-config.test.js.map +1 -1
  4. package/dist/src/channel-config.d.ts +18 -0
  5. package/dist/src/channel-config.d.ts.map +1 -1
  6. package/dist/src/channel-config.js +10 -0
  7. package/dist/src/channel-config.js.map +1 -1
  8. package/dist/src/connection.d.ts +10 -7
  9. package/dist/src/connection.d.ts.map +1 -1
  10. package/dist/src/connection.js +35 -4
  11. package/dist/src/connection.js.map +1 -1
  12. package/dist/src/deliver-text.d.ts +1 -1
  13. package/dist/src/deliver-text.d.ts.map +1 -1
  14. package/dist/src/deliver-text.js +13 -4
  15. package/dist/src/deliver-text.js.map +1 -1
  16. package/dist/src/deliver-text.test.js +14 -2
  17. package/dist/src/deliver-text.test.js.map +1 -1
  18. package/dist/src/dispatch-mentioned-reply.d.ts +2 -2
  19. package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
  20. package/dist/src/dispatch-mentioned-reply.js +165 -52
  21. package/dist/src/dispatch-mentioned-reply.js.map +1 -1
  22. package/dist/src/run-usage-session.d.ts +10 -0
  23. package/dist/src/run-usage-session.d.ts.map +1 -0
  24. package/dist/src/run-usage-session.js +29 -0
  25. package/dist/src/run-usage-session.js.map +1 -0
  26. package/dist/src/run-usage.d.ts +52 -0
  27. package/dist/src/run-usage.d.ts.map +1 -0
  28. package/dist/src/run-usage.js +93 -0
  29. package/dist/src/run-usage.js.map +1 -0
  30. package/dist/src/run-usage.test.d.ts +2 -0
  31. package/dist/src/run-usage.test.d.ts.map +1 -0
  32. package/dist/src/run-usage.test.js +90 -0
  33. package/dist/src/run-usage.test.js.map +1 -0
  34. package/dist/src/turn-deliver-buffer.d.ts +42 -0
  35. package/dist/src/turn-deliver-buffer.d.ts.map +1 -0
  36. package/dist/src/turn-deliver-buffer.js +66 -0
  37. package/dist/src/turn-deliver-buffer.js.map +1 -0
  38. package/dist/src/turn-deliver-buffer.test.d.ts +2 -0
  39. package/dist/src/turn-deliver-buffer.test.d.ts.map +1 -0
  40. package/dist/src/turn-deliver-buffer.test.js +130 -0
  41. package/dist/src/turn-deliver-buffer.test.js.map +1 -0
  42. package/dist/src/types.d.ts +7 -0
  43. package/dist/src/types.d.ts.map +1 -1
  44. package/dist/src/types.js.map +1 -1
  45. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @ 触发的单轮回复:WebSocket START、OpenClaw dispatchReplyWithBufferedBlockDispatcher、HTTP deliver、END
2
+ * @ 触发的单轮回复:WebSocket BEGIN、OpenClaw dispatchReplyWithBufferedBlockDispatcher、HTTP deliver、RUN_USAGE、FINISHED
3
3
  */
4
4
  import { isImSingleChat, resolveSendMessageReply } from "./inbound-chat-type.js";
5
5
  import { buildTerminalSendFn, InboundTerminalController, } from "./inbound-terminal-delivery.js";
@@ -7,8 +7,11 @@ import { shouldOmitDuplicateFileCaption, shouldSuppressDuplicateTextDeliver, str
7
7
  import { shouldSuppressFallbackNoticeForIm } from "./per-message-fallback-notice.js";
8
8
  import { resolveThinkingWsDisplayUpdate, THINKING_WS_SUMMARY_HINT, ThinkingWsBuffer, WS_THINKING_DISPLAY_MAX, } from "./thinking-ws-progress.js";
9
9
  import { clearPendingPerMessageModel, setPendingPerMessageModel, splitModelRef, } from "./per-message-model-pending.js";
10
- import { IM_BLOCK_STREAMING_COALESCE_DEFAULT, isInboundBlockStreamingEnabled, resolveBlockStreamingReplyOptions, resolveDispatchOpenClawCfg, } from "./channel-config.js";
10
+ import { IM_BLOCK_STREAMING_COALESCE_DEFAULT, isDeliverSegmentBufferEnabled, isInboundBlockStreamingEnabled, resolveBlockStreamingReplyOptions, resolveDispatchOpenClawCfg, } from "./channel-config.js";
11
11
  import { sendReplyDeliverBlock, sendTextMessage } from "./send-service.js";
12
+ import { isDeliverPayloadSendable, TurnDeliverBuffer } from "./turn-deliver-buffer.js";
13
+ import { buildRunUsageFromSessionEntry, hasReportableUsage, toImStreamRunUsageData } from "./run-usage.js";
14
+ import { readSessionUsageFields } from "./run-usage-session.js";
12
15
  /** WS `displayText` 过长封顶(避免网关/客户端溢出) */
13
16
  const WS_DISPLAY_TEXT_MAX = 200;
14
17
  /** 进度 `summary` 封顶(与网关约定一致) */
@@ -96,7 +99,7 @@ function toolResultOutputSummary(payload) {
96
99
  return undefined;
97
100
  return clipWsProgressSummary(body);
98
101
  }
99
- /** 流式 START → dispatch → 必发 END;首包超时走 HTTP 覆盖占位 */
102
+ /** 流式 BEGIN → dispatch → 可选 RUN_USAGE → 必发 FINISHED;首包超时走 HTTP 兜底 */
100
103
  export async function dispatchMentionedReply(args) {
101
104
  const { rt, cfg, config, log, logPrefix, route, inboundCtx, params, currentIdentity, streamClient, agentWorkspaceDir, modelOverride, inboundTrigger } = args;
102
105
  const terminal = new InboundTerminalController({
@@ -180,9 +183,47 @@ export async function dispatchMentionedReply(args) {
180
183
  let deliverSkippedCount = 0;
181
184
  let lastDeliveredText = "";
182
185
  let lastDeliveredHadMedia = false;
186
+ let agentRunId;
183
187
  let dispatchError = undefined;
184
188
  let lastDeliverError = undefined;
185
189
  let dispatchResult;
190
+ const blockStreamingEnabled = isInboundBlockStreamingEnabled(config);
191
+ const segmentBufferEnabled = blockStreamingEnabled && isDeliverSegmentBufferEnabled(config);
192
+ const segmentBuffer = segmentBufferEnabled ? new TurnDeliverBuffer() : undefined;
193
+ let hasBufferedSendable = false;
194
+ let flushSegmentBuffer = async () => { };
195
+ const postHttpDeliver = async (args) => {
196
+ const { payloadForSend, textPart, sendLabel, invokeNum, hasMedia, omitDuplicateFileCaption } = args;
197
+ deliverCallCount++;
198
+ if (isFirstReply) {
199
+ const ttfr = Date.now() - dispatchStart;
200
+ log.info(`${logPrefix} [deliver] First response block received from AI (TTFB: ${ttfr}ms)`);
201
+ isFirstReply = false;
202
+ }
203
+ const reply = resolveSendMessageReply(params);
204
+ const atIds = reply ? [reply.targetUserId] : [];
205
+ if (!hasFirstReply) {
206
+ clearTimeout(firstReplyTimeout);
207
+ }
208
+ await sendReplyDeliverBlock(config, currentIdentity.token, params.groupId, payloadForSend, atIds, log, undefined, reply, agentWorkspaceDir);
209
+ if (!hasFirstReply) {
210
+ hasFirstReply = true;
211
+ }
212
+ terminal.markBusinessReplySent();
213
+ if (hasMedia) {
214
+ lastDeliveredHadMedia = true;
215
+ if (!omitDuplicateFileCaption) {
216
+ lastDeliveredText = textPart || "[media]";
217
+ }
218
+ }
219
+ else {
220
+ lastDeliveredText = textPart;
221
+ lastDeliveredHadMedia = false;
222
+ }
223
+ const preview = textPart.length > 80 ? `${textPart.slice(0, 80)}...` : textPart || "[media]";
224
+ log.info(`${logPrefix} [send] ${sendLabel} sent via HTTP: groupId=${params.groupId} ` +
225
+ `invoke=#${invokeNum} preview="${preview}"`);
226
+ };
186
227
  try {
187
228
  await streamClient.start({
188
229
  groupId: params.groupId,
@@ -197,7 +238,6 @@ export async function dispatchMentionedReply(args) {
197
238
  log.warn(`${logPrefix} [model] invalid per-message model ref, ignoring: ${modelOverride}`);
198
239
  }
199
240
  }
200
- const blockStreamingEnabled = isInboundBlockStreamingEnabled(config);
201
241
  const dispatchCfg = resolveDispatchOpenClawCfg(cfg, config);
202
242
  if (blockStreamingEnabled && dispatchCfg !== cfg) {
203
243
  log.info(`${logPrefix} [dispatch] IM blockStreamingCoalesce override ` +
@@ -207,6 +247,35 @@ export async function dispatchMentionedReply(args) {
207
247
  if (blockStreamingEnabled) {
208
248
  log.info(`${logPrefix} [dispatch] blockStreaming=on (assistant text before tools → HTTP; tool progress → WS)`);
209
249
  }
250
+ if (segmentBufferEnabled) {
251
+ log.info(`${logPrefix} [dispatch] deliverSegmentBuffer=on (segment buffer → flush on tool start / dispatch end)`);
252
+ }
253
+ flushSegmentBuffer = async (kind) => {
254
+ if (!segmentBuffer)
255
+ return;
256
+ const result = segmentBuffer.takeForFlush(kind);
257
+ if (result.status === "empty")
258
+ return;
259
+ if (result.status === "skipped_duplicate") {
260
+ log.info(`${logPrefix} [deliver-buffer] flush_${kind} skipped (same as previous HTTP, comparable match)`);
261
+ return;
262
+ }
263
+ const { payload: payloadForSend, textPart, hasMedia } = result.entry;
264
+ const sendLabel = kind === "interim"
265
+ ? "Interim block"
266
+ : deliverCallCount === 0
267
+ ? "First reply"
268
+ : "Final block";
269
+ log.info(`${logPrefix} [deliver-buffer] flush_${kind} textLen=${textPart.length} hasMedia=${hasMedia}`);
270
+ await postHttpDeliver({
271
+ payloadForSend,
272
+ textPart,
273
+ sendLabel,
274
+ invokeNum: deliverInvokeCount,
275
+ hasMedia,
276
+ omitDuplicateFileCaption: false,
277
+ });
278
+ };
210
279
  dispatchInFlight = true;
211
280
  dispatchResult = await rt.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
212
281
  ctx: inboundCtx,
@@ -218,12 +287,13 @@ export async function dispatchMentionedReply(args) {
218
287
  ...(modelOverride ? { modelOverride } : {}),
219
288
  onAgentRunStart: (runId) => {
220
289
  agentRunStarted = true;
290
+ agentRunId = runId.trim() || undefined;
221
291
  terminal.setRunId(runId);
222
292
  log.info(`${logPrefix} [dispatch] agent run started runId=${runId}`);
223
293
  },
224
294
  onModelSelected: (m) => {
225
- log.info(`${logPrefix} [model] run candidate provider=${m.provider} model=${m.model} ` +
226
- `(runtime selected; footer may differ from session default)`);
295
+ // failover 候选启动时会多次触发;终态模型以 session store 为准(RUN_USAGE)
296
+ log.info(`${logPrefix} [model] run candidate provider=${m.provider} model=${m.model}`);
227
297
  },
228
298
  onReasoningStream: async (payload) => {
229
299
  const text = typeof payload.text === "string" ? payload.text : "";
@@ -244,6 +314,13 @@ export async function dispatchMentionedReply(args) {
244
314
  return;
245
315
  }
246
316
  if (!rawPhase || rawPhase === "start") {
317
+ try {
318
+ await flushSegmentBuffer("interim");
319
+ }
320
+ catch (interimErr) {
321
+ lastDeliverError = interimErr;
322
+ log.error(`${logPrefix} [deliver-buffer] flush_interim failed: ${String(interimErr)}`);
323
+ }
247
324
  await flushThinkingWsOnce("before_tool");
248
325
  toolNameStack.push(name);
249
326
  }
@@ -377,40 +454,41 @@ export async function dispatchMentionedReply(args) {
377
454
  `${JSON.stringify(textPart.slice(0, 120))}`);
378
455
  return;
379
456
  }
380
- if (shouldSuppressDuplicateTextDeliver({
381
- textPart,
382
- hasMedia,
383
- lastDeliveredText,
384
- lastDeliveredHadMedia,
385
- })) {
457
+ if (!segmentBufferEnabled &&
458
+ shouldSuppressDuplicateTextDeliver({
459
+ textPart,
460
+ hasMedia,
461
+ lastDeliveredText,
462
+ lastDeliveredHadMedia,
463
+ })) {
386
464
  deliverSkippedCount++;
387
465
  log.info(`${logPrefix} [deliver] Suppressed duplicate text-only deliver ` +
388
466
  `(normalized same as previous, rawLen=${textPart.length})`);
389
467
  return;
390
468
  }
391
- const omitDuplicateFileCaption = shouldOmitDuplicateFileCaption({
469
+ let omitDuplicateFileCaption = false;
470
+ if (!segmentBufferEnabled) {
471
+ omitDuplicateFileCaption = shouldOmitDuplicateFileCaption({
472
+ textPart,
473
+ hasMedia,
474
+ lastDeliveredText,
475
+ lastDeliveredHadMedia,
476
+ });
477
+ if (omitDuplicateFileCaption) {
478
+ log.info(`${logPrefix} [deliver] Omitting duplicate file caption ` +
479
+ `(normalized same as previous text, rawLen=${textPart.length})`);
480
+ }
481
+ }
482
+ if (!isDeliverPayloadSendable({
392
483
  textPart,
393
484
  hasMedia,
394
- lastDeliveredText,
395
- lastDeliveredHadMedia,
396
- });
397
- if (omitDuplicateFileCaption) {
398
- log.info(`${logPrefix} [deliver] Omitting duplicate file caption ` +
399
- `(normalized same as previous text, rawLen=${textPart.length})`);
400
- }
401
- if (!textPart && !(hasMedia && !payload.isThinking)) {
485
+ isThinking: payload.isThinking,
486
+ })) {
487
+ deliverSkippedCount++;
402
488
  log.info(`${logPrefix} [deliver] Payload has no sendable content, skipping` +
403
489
  ` (isThinking=${payload.isThinking ?? false} hasMedia=${hasMedia})`);
404
490
  return;
405
491
  }
406
- deliverCallCount++;
407
- if (isFirstReply) {
408
- const ttfr = Date.now() - dispatchStart;
409
- log.info(`${logPrefix} [deliver] First response block received from AI (TTFB: ${ttfr}ms)`);
410
- isFirstReply = false;
411
- }
412
- const reply = resolveSendMessageReply(params);
413
- const atIds = reply ? [reply.targetUserId] : [];
414
492
  let payloadForSend = textPart !== rawTextPart
415
493
  ? {
416
494
  ...payload,
@@ -422,32 +500,29 @@ export async function dispatchMentionedReply(args) {
422
500
  if (omitDuplicateFileCaption) {
423
501
  payloadForSend = { ...payloadForSend, text: "", markdown: "" };
424
502
  }
425
- const preview = textPart.length > 80 ? `${textPart.slice(0, 80)}...` : textPart || "[media]";
503
+ if (segmentBufferEnabled && segmentBuffer) {
504
+ segmentBuffer.write({ payload: payloadForSend, textPart, hasMedia });
505
+ if (!hasBufferedSendable) {
506
+ hasBufferedSendable = true;
507
+ clearTimeout(firstReplyTimeout);
508
+ }
509
+ log.info(`${logPrefix} [deliver-buffer] write invoke=#${deliverInvokeCount} ` +
510
+ `textLen=${textPart.length} hasMedia=${hasMedia}`);
511
+ return;
512
+ }
426
513
  const sendLabel = deliverInvokeCount === 1
427
514
  ? "First reply"
428
515
  : blockStreamingEnabled
429
516
  ? "Interim block"
430
517
  : "Additional reply";
431
- if (!hasFirstReply) {
432
- clearTimeout(firstReplyTimeout);
433
- }
434
- await sendReplyDeliverBlock(config, currentIdentity.token, params.groupId, payloadForSend, atIds, log, undefined, reply, agentWorkspaceDir);
435
- if (!hasFirstReply) {
436
- hasFirstReply = true;
437
- }
438
- terminal.markBusinessReplySent();
439
- if (hasMedia) {
440
- lastDeliveredHadMedia = true;
441
- if (!omitDuplicateFileCaption) {
442
- lastDeliveredText = textPart || "[media]";
443
- }
444
- }
445
- else {
446
- lastDeliveredText = textPart;
447
- lastDeliveredHadMedia = false;
448
- }
449
- log.info(`${logPrefix} [send] ${sendLabel} sent via HTTP: groupId=${params.groupId} ` +
450
- `invoke=#${deliverInvokeCount} preview="${preview}"`);
518
+ await postHttpDeliver({
519
+ payloadForSend,
520
+ textPart,
521
+ sendLabel,
522
+ invokeNum: deliverInvokeCount,
523
+ hasMedia,
524
+ omitDuplicateFileCaption,
525
+ });
451
526
  }
452
527
  catch (err) {
453
528
  log.error(`${logPrefix} [deliver] Reply deliver failed: ${String(err)}`);
@@ -457,13 +532,19 @@ export async function dispatchMentionedReply(args) {
457
532
  },
458
533
  });
459
534
  dispatchInFlight = false;
535
+ const bufStats = segmentBuffer?.getStats();
460
536
  log.info(`${logPrefix} [dispatch] Dispatch completed for sessionKey=${route.sessionKey}` +
461
- ` (invoke=${deliverInvokeCount} delivered=${deliverCallCount} skipped=${deliverSkippedCount})`);
537
+ ` (invoke=${deliverInvokeCount} delivered=${deliverCallCount} skipped=${deliverSkippedCount}` +
538
+ (bufStats
539
+ ? ` buffer_writes=${bufStats.writeCount} flush_interim=${bufStats.flushInterimCount}` +
540
+ ` flush_final=${bufStats.flushFinalCount} flush_dup_skip=${bufStats.skippedDuplicateFlushCount}`
541
+ : "") +
542
+ `)`);
462
543
  if (deliverInvokeCount === 0) {
463
544
  log.warn(`${logPrefix} [dispatch] OpenClaw never invoked channel deliver() for this turn — ` +
464
545
  `this plugin will not POST /im/message/send; IM「收到消息」若存在,多半来自占位/END 或其它通道,而非本插件 HTTP 合并`);
465
546
  }
466
- else if (deliverCallCount === 0) {
547
+ else if (deliverCallCount === 0 && !segmentBuffer?.hasContent()) {
467
548
  log.warn(`${logPrefix} [dispatch] deliver() invoked ${deliverInvokeCount} time(s) but none had sendable text/media — ` +
468
549
  `check model output (thinking-only / empty blocks) or OpenClaw normalizer`);
469
550
  }
@@ -475,6 +556,13 @@ export async function dispatchMentionedReply(args) {
475
556
  finally {
476
557
  dispatchInFlight = false;
477
558
  clearPendingPerMessageModel(route.sessionKey);
559
+ try {
560
+ await flushSegmentBuffer("final");
561
+ }
562
+ catch (flushErr) {
563
+ lastDeliverError = flushErr;
564
+ log.error(`${logPrefix} [deliver-buffer] flush_final failed: ${String(flushErr)}`);
565
+ }
478
566
  clearTimeout(firstReplyTimeout);
479
567
  const terminalState = await terminal.finalizeAndDeliver({
480
568
  sendFn: terminalSend,
@@ -491,6 +579,31 @@ export async function dispatchMentionedReply(args) {
491
579
  terminal.didTimeoutFire()
492
580
  ? "stop"
493
581
  : "no_reply";
582
+ try {
583
+ const storePath = rt.channel.session.resolveStorePath(cfg.session?.store, {
584
+ agentId: config.agentId || "main",
585
+ });
586
+ const sessionFields = readSessionUsageFields({
587
+ storePath,
588
+ sessionKey: route.sessionKey,
589
+ });
590
+ const usage = buildRunUsageFromSessionEntry(sessionFields, {
591
+ runId: agentRunId ?? terminal.getRunId(),
592
+ });
593
+ if (hasReportableUsage(usage) && usage) {
594
+ await streamClient.streamUsage(toImStreamRunUsageData(usage, {
595
+ groupId: params.groupId,
596
+ replyToMsgId: params.msgId,
597
+ }));
598
+ }
599
+ else {
600
+ log.info(`${logPrefix} [stream] RUN_USAGE skipped (session store has no model/token; ` +
601
+ `sessionKey=${route.sessionKey} deliver_call=${deliverCallCount})`);
602
+ }
603
+ }
604
+ catch (usageErr) {
605
+ log.warn(`${logPrefix} [stream] RUN_USAGE failed: ${String(usageErr)}`);
606
+ }
494
607
  try {
495
608
  await streamClient.end(endReason, {
496
609
  groupId: params.groupId,
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-mentioned-reply.js","sourceRoot":"","sources":["../../src/dispatch-mentioned-reply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch-mentioned-reply.js","sourceRoot":"","sources":["../../src/dispatch-mentioned-reply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 从 OpenClaw session store 读取本轮结束后的用量 entry。
3
+ * 使用 `skipCache: true`,避免读到 dispatch 前的缓存快照。
4
+ */
5
+ import type { SessionUsageFields } from "./run-usage.js";
6
+ export declare function readSessionUsageFields(args: {
7
+ storePath: string;
8
+ sessionKey: string;
9
+ }): SessionUsageFields | undefined;
10
+ //# sourceMappingURL=run-usage-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage-session.d.ts","sourceRoot":"","sources":["../../src/run-usage-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,GAAG,kBAAkB,GAAG,SAAS,CASjC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 从 OpenClaw session store 读取本轮结束后的用量 entry。
3
+ * 使用 `skipCache: true`,避免读到 dispatch 前的缓存快照。
4
+ */
5
+ import { loadSessionStore, resolveSessionStoreEntry, } from "openclaw/plugin-sdk/session-store-runtime";
6
+ export function readSessionUsageFields(args) {
7
+ const storePath = args.storePath?.trim();
8
+ const sessionKey = args.sessionKey?.trim();
9
+ if (!storePath || !sessionKey)
10
+ return undefined;
11
+ const store = loadSessionStore(storePath, { skipCache: true });
12
+ const { existing } = resolveSessionStoreEntry({ store, sessionKey });
13
+ if (!existing)
14
+ return undefined;
15
+ return pickUsageFields(existing);
16
+ }
17
+ function pickUsageFields(entry) {
18
+ return {
19
+ ...(entry.modelProvider != null ? { modelProvider: entry.modelProvider } : {}),
20
+ ...(entry.model != null ? { model: entry.model } : {}),
21
+ ...(entry.inputTokens != null ? { inputTokens: entry.inputTokens } : {}),
22
+ ...(entry.outputTokens != null ? { outputTokens: entry.outputTokens } : {}),
23
+ ...(entry.totalTokens != null ? { totalTokens: entry.totalTokens } : {}),
24
+ ...(entry.cacheRead != null ? { cacheRead: entry.cacheRead } : {}),
25
+ ...(entry.cacheWrite != null ? { cacheWrite: entry.cacheWrite } : {}),
26
+ ...(entry.estimatedCostUsd != null ? { estimatedCostUsd: entry.estimatedCostUsd } : {}),
27
+ };
28
+ }
29
+ //# sourceMappingURL=run-usage-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage-session.js","sourceRoot":"","sources":["../../src/run-usage-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,gBAAgB,EAChB,wBAAwB,GAE3B,MAAM,2CAA2C,CAAC;AAGnD,MAAM,UAAU,sBAAsB,CAAC,IAGtC;IACG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,wBAAwB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IACxC,OAAO;QACH,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;AACN,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 一轮 dispatch 结束后的用量:从 OpenClaw session store 的结构化字段汇总,
3
+ * 供 WS `RUN_USAGE` 回传业务系统。
4
+ *
5
+ * 数据源唯一:`sessions.json` 中本 sessionKey 的 entry
6
+ * (agent-runner 在回合结束时写入 modelProvider / model / inputTokens / outputTokens 等)。
7
+ * 不解析 deliver 正文 usage footer / usage bar。
8
+ */
9
+ /** session store 中与用量相关的字段(子集) */
10
+ export type SessionUsageFields = {
11
+ modelProvider?: string;
12
+ model?: string;
13
+ inputTokens?: number;
14
+ outputTokens?: number;
15
+ totalTokens?: number;
16
+ cacheRead?: number;
17
+ cacheWrite?: number;
18
+ estimatedCostUsd?: number;
19
+ };
20
+ export type RunUsageSnapshot = {
21
+ provider?: string;
22
+ model?: string;
23
+ modelRef?: string;
24
+ inputTokens?: number;
25
+ outputTokens?: number;
26
+ totalTokens?: number;
27
+ cacheReadTokens?: number;
28
+ cacheWriteTokens?: number;
29
+ estimatedCostUsd?: number;
30
+ runId?: string;
31
+ /** 固定为 session:结构化 session entry */
32
+ source: "session";
33
+ };
34
+ export type ImStreamRunUsageData = {
35
+ groupId: string;
36
+ replyToMsgId: string;
37
+ usage: RunUsageSnapshot;
38
+ };
39
+ /** 本轮是否值得发 RUN_USAGE(至少有模型或 token 之一)。 */
40
+ export declare function hasReportableUsage(usage: RunUsageSnapshot | undefined): boolean;
41
+ /**
42
+ * 从 session entry 构建用量快照。
43
+ * entry 缺字段时不捏造;完全无信息返回 undefined。
44
+ */
45
+ export declare function buildRunUsageFromSessionEntry(entry: SessionUsageFields | undefined | null, opts?: {
46
+ runId?: string;
47
+ }): RunUsageSnapshot | undefined;
48
+ export declare function toImStreamRunUsageData(usage: RunUsageSnapshot, anchors: {
49
+ groupId: string;
50
+ replyToMsgId: string;
51
+ }): ImStreamRunUsageData;
52
+ //# sourceMappingURL=run-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-usage.d.ts","sourceRoot":"","sources":["../../src/run-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,MAAM,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAaF,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAa/E;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,EAC5C,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,gBAAgB,GAAG,SAAS,CAoC9B;AAkBD,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACnD,oBAAoB,CAMtB"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * 一轮 dispatch 结束后的用量:从 OpenClaw session store 的结构化字段汇总,
3
+ * 供 WS `RUN_USAGE` 回传业务系统。
4
+ *
5
+ * 数据源唯一:`sessions.json` 中本 sessionKey 的 entry
6
+ * (agent-runner 在回合结束时写入 modelProvider / model / inputTokens / outputTokens 等)。
7
+ * 不解析 deliver 正文 usage footer / usage bar。
8
+ */
9
+ function positiveInt(n) {
10
+ if (typeof n !== "number" || !Number.isFinite(n) || n < 0)
11
+ return undefined;
12
+ return Math.round(n);
13
+ }
14
+ function nonEmpty(s) {
15
+ if (typeof s !== "string")
16
+ return undefined;
17
+ const t = s.trim();
18
+ return t.length > 0 ? t : undefined;
19
+ }
20
+ /** 本轮是否值得发 RUN_USAGE(至少有模型或 token 之一)。 */
21
+ export function hasReportableUsage(usage) {
22
+ if (!usage)
23
+ return false;
24
+ if (usage.modelRef || usage.model || usage.provider)
25
+ return true;
26
+ if (usage.inputTokens != null ||
27
+ usage.outputTokens != null ||
28
+ usage.totalTokens != null ||
29
+ usage.cacheReadTokens != null ||
30
+ usage.cacheWriteTokens != null) {
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ /**
36
+ * 从 session entry 构建用量快照。
37
+ * entry 缺字段时不捏造;完全无信息返回 undefined。
38
+ */
39
+ export function buildRunUsageFromSessionEntry(entry, opts) {
40
+ if (!entry)
41
+ return undefined;
42
+ const provider = nonEmpty(entry.modelProvider);
43
+ const model = nonEmpty(entry.model);
44
+ const modelRef = provider && model ? `${provider}/${model}` : model || undefined;
45
+ const inputTokens = positiveInt(entry.inputTokens);
46
+ const outputTokens = positiveInt(entry.outputTokens);
47
+ const cacheReadTokens = positiveInt(entry.cacheRead);
48
+ const cacheWriteTokens = positiveInt(entry.cacheWrite);
49
+ const estimatedCostUsd = typeof entry.estimatedCostUsd === "number" && Number.isFinite(entry.estimatedCostUsd)
50
+ ? entry.estimatedCostUsd
51
+ : undefined;
52
+ let totalTokens = positiveInt(entry.totalTokens);
53
+ if (totalTokens == null && inputTokens != null && outputTokens != null) {
54
+ totalTokens = inputTokens + outputTokens;
55
+ }
56
+ const snapshot = {
57
+ ...(provider ? { provider } : {}),
58
+ ...(model ? { model } : {}),
59
+ ...(modelRef ? { modelRef } : {}),
60
+ ...(inputTokens != null ? { inputTokens } : {}),
61
+ ...(outputTokens != null ? { outputTokens } : {}),
62
+ ...(totalTokens != null ? { totalTokens } : {}),
63
+ ...(cacheReadTokens != null ? { cacheReadTokens } : {}),
64
+ ...(cacheWriteTokens != null ? { cacheWriteTokens } : {}),
65
+ ...(estimatedCostUsd != null ? { estimatedCostUsd } : {}),
66
+ ...(opts?.runId?.trim() ? { runId: opts.runId.trim() } : {}),
67
+ source: "session",
68
+ };
69
+ return hasReportableUsage(snapshot) ? snapshot : undefined;
70
+ }
71
+ function runUsageSnapshotToWire(usage) {
72
+ return {
73
+ source: usage.source,
74
+ ...(usage.provider ? { provider: usage.provider } : {}),
75
+ ...(usage.model ? { model: usage.model } : {}),
76
+ ...(usage.modelRef ? { modelRef: usage.modelRef } : {}),
77
+ ...(usage.inputTokens != null ? { inputTokens: usage.inputTokens } : {}),
78
+ ...(usage.outputTokens != null ? { outputTokens: usage.outputTokens } : {}),
79
+ ...(usage.totalTokens != null ? { totalTokens: usage.totalTokens } : {}),
80
+ ...(usage.cacheReadTokens != null ? { cacheReadTokens: usage.cacheReadTokens } : {}),
81
+ ...(usage.cacheWriteTokens != null ? { cacheWriteTokens: usage.cacheWriteTokens } : {}),
82
+ ...(usage.estimatedCostUsd != null ? { estimatedCostUsd: usage.estimatedCostUsd } : {}),
83
+ ...(usage.runId ? { runId: usage.runId } : {}),
84
+ };
85
+ }
86
+ export function toImStreamRunUsageData(usage, anchors) {
87
+ return {
88
+ groupId: anchors.groupId,
89
+ replyToMsgId: anchors.replyToMsgId,
90
+ usage: runUsageSnapshotToWire(usage),
91
+ };
92
+ }
93
+ //# sourceMappingURL=run-usage.js.map