@yeaft/webchat-agent 1.0.284 → 1.0.285

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": "@yeaft/webchat-agent",
3
- "version": "1.0.284",
3
+ "version": "1.0.285",
4
4
  "description": "Remote worker agent for Yeaft Web Code Agent — connects the native Yeaft engine, CLI providers, and workbench tools",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -1323,7 +1323,7 @@ function projectVisibleHistoryChunkMessages(messages = []) {
1323
1323
  }));
1324
1324
  }
1325
1325
 
1326
- function emitHistoryChunk({ sessionId, messages, mode = 'older', oldestSeq = null, hasMore = false, latestSeq = null, afterSeq = null, turns = null, perfTraceId = null }) {
1326
+ function emitHistoryChunk({ sessionId, messages, mode = 'older', oldestSeq = null, hasMore = false, latestSeq = null, afterSeq = null, turns = null, requestId = null, requestClientId = null, perfTraceId = null }) {
1327
1327
  const projectedMessages = projectVisibleHistoryChunkMessages(messages);
1328
1328
  // Empty deltas still carry the authoritative safe cursor and clear the
1329
1329
  // browser's syncingAfterSeq fence. Dropping this envelope leaves Session
@@ -1332,6 +1332,8 @@ function emitHistoryChunk({ sessionId, messages, mode = 'older', oldestSeq = nul
1332
1332
  type: 'yeaft_history_chunk',
1333
1333
  conversationId: yeaftConversationId,
1334
1334
  ...(perfTraceId ? { perfTraceId } : {}),
1335
+ ...(requestId ? { requestId } : {}),
1336
+ ...(requestClientId ? { _requestClientId: requestClientId } : {}),
1335
1337
  sessionId,
1336
1338
  mode,
1337
1339
  messages: projectedMessages,
@@ -1394,7 +1396,7 @@ function emitLegacyHistoryOutputFrames(replayEntries) {
1394
1396
  }
1395
1397
  }
1396
1398
 
1397
- function emitVisibleHistoryReplay({ store, sessionId, limit, beforeSeq = null, mode = 'recent', perfTraceId = null }) {
1399
+ function emitVisibleHistoryReplay({ store, sessionId, limit, beforeSeq = null, mode = 'recent', requestId = null, requestClientId = null, perfTraceId = null }) {
1398
1400
  const visiblePage = sessionId
1399
1401
  ? loadVisibleGroupHistoryPage(store, sessionId, limit, beforeSeq)
1400
1402
  : { messages: limit > 0 ? (store.loadRecent?.(limit) || []) : [], oldestSeq: null, hasMore: false };
@@ -1416,6 +1418,8 @@ function emitVisibleHistoryReplay({ store, sessionId, limit, beforeSeq = null, m
1416
1418
  hasMore: visiblePage.hasMore,
1417
1419
  latestSeq: Number.isFinite(latestSeq) ? latestSeq : null,
1418
1420
  turns: limit,
1421
+ requestId,
1422
+ requestClientId,
1419
1423
  perfTraceId,
1420
1424
  });
1421
1425
  sendSessionEvent({
@@ -1423,10 +1427,11 @@ function emitVisibleHistoryReplay({ store, sessionId, limit, beforeSeq = null, m
1423
1427
  mode,
1424
1428
  count: replayEntries.length,
1425
1429
  sessionId,
1430
+ requestId,
1426
1431
  hasMore: visiblePage.hasMore,
1427
1432
  oldestSeq: visiblePage.oldestSeq,
1428
1433
  latestSeq: Number.isFinite(latestSeq) ? latestSeq : null,
1429
- }, { sessionId, perfTraceId });
1434
+ }, { sessionId, requestId, requestClientId, perfTraceId });
1430
1435
  return;
1431
1436
  }
1432
1437
 
@@ -1440,10 +1445,11 @@ function emitVisibleHistoryReplay({ store, sessionId, limit, beforeSeq = null, m
1440
1445
  mode,
1441
1446
  count: replayEntries.length,
1442
1447
  sessionId,
1448
+ requestId,
1443
1449
  hasMore: visiblePage.hasMore,
1444
1450
  oldestSeq: visiblePage.oldestSeq,
1445
1451
  latestSeq: Number.isFinite(latestSeq) ? latestSeq : null,
1446
- }, perfTraceId ? { sessionId, perfTraceId } : undefined);
1452
+ }, { sessionId, requestId, requestClientId, perfTraceId });
1447
1453
  }
1448
1454
 
1449
1455
  /**
@@ -2729,11 +2735,13 @@ function mergedStatusForProjectRuntime(runtime, ownerSession = session) {
2729
2735
  }
2730
2736
 
2731
2737
  /** Send a Yeaft Session metadata event over the legacy-compatible envelope. */
2732
- function sendSessionEvent(event, { sessionId, chatId, vpId, turnId, threadId, perfTraceId } = {}) {
2738
+ function sendSessionEvent(event, { sessionId, chatId, vpId, turnId, threadId, requestId, requestClientId, perfTraceId } = {}) {
2733
2739
  sendToServer({
2734
2740
  type: 'yeaft_output',
2735
2741
  conversationId: yeaftConversationId,
2736
2742
  ...(perfTraceId ? { perfTraceId } : {}),
2743
+ ...(requestId ? { requestId } : {}),
2744
+ ...(requestClientId ? { _requestClientId: requestClientId } : {}),
2737
2745
  ...(sessionId ? { sessionId } : {}),
2738
2746
  ...(chatId ? { chatId } : {}),
2739
2747
  ...(vpId ? { vpId } : {}),
@@ -6371,6 +6379,8 @@ export function handleYeaftModelSwitch(msg) {
6371
6379
  */
6372
6380
  export async function handleYeaftLoadHistory(msg) {
6373
6381
  const sessionId = (msg && typeof msg.sessionId === 'string' && msg.sessionId) || null;
6382
+ const requestId = typeof msg?.requestId === 'string' && msg.requestId ? msg.requestId : null;
6383
+ const requestClientId = typeof msg?._requestClientId === 'string' && msg._requestClientId ? msg._requestClientId : null;
6374
6384
  const perfTraceId = typeof msg?.perfTraceId === 'string' && msg.perfTraceId.trim() ? msg.perfTraceId.trim() : null;
6375
6385
  const perfStart = perfNowMs();
6376
6386
  const tracePerf = (phase, extra = {}) => {
@@ -6424,6 +6434,8 @@ export async function handleYeaftLoadHistory(msg) {
6424
6434
  mode: 'delta',
6425
6435
  latestSeq: delta.latestSeq,
6426
6436
  afterSeq,
6437
+ requestId,
6438
+ requestClientId,
6427
6439
  perfTraceId,
6428
6440
  });
6429
6441
  traceDuration('history.emit_chunk', emitStart, { detail: { mode: 'delta', count: projectedMessages.length } });
@@ -6432,9 +6444,10 @@ export async function handleYeaftLoadHistory(msg) {
6432
6444
  mode: 'delta',
6433
6445
  count: projectedMessages.length,
6434
6446
  sessionId,
6447
+ requestId,
6435
6448
  latestSeq: delta.latestSeq,
6436
6449
  afterSeq,
6437
- }, { sessionId, perfTraceId });
6450
+ }, { sessionId, requestId, requestClientId, perfTraceId });
6438
6451
  return;
6439
6452
  }
6440
6453
 
@@ -6474,6 +6487,8 @@ export async function handleYeaftLoadHistory(msg) {
6474
6487
  hasMore: visiblePage.hasMore,
6475
6488
  latestSeq,
6476
6489
  turns: limit,
6490
+ requestId,
6491
+ requestClientId,
6477
6492
  perfTraceId,
6478
6493
  });
6479
6494
  traceDuration('history.emit_chunk', emitStart, { detail: { mode: 'recent', count: replayEntries.length } });
@@ -6508,10 +6523,11 @@ export async function handleYeaftLoadHistory(msg) {
6508
6523
  count: replayEntries.length,
6509
6524
  hasCompactSummary: hasCompactSummaryFlag,
6510
6525
  sessionId,
6526
+ requestId,
6511
6527
  hasMore,
6512
6528
  oldestSeq,
6513
6529
  latestSeq,
6514
- }, { sessionId, perfTraceId });
6530
+ }, { sessionId, requestId, requestClientId, perfTraceId });
6515
6531
  };
6516
6532
 
6517
6533
  if (!session) {
@@ -6557,13 +6573,15 @@ export async function handleYeaftLoadHistory(msg) {
6557
6573
  mode: 'delta',
6558
6574
  latestSeq: delta.latestSeq,
6559
6575
  afterSeq,
6576
+ requestId,
6577
+ requestClientId,
6560
6578
  perfTraceId,
6561
6579
  });
6562
6580
  traceDuration('history.emit_chunk', emitStart, { detail: { mode: 'delta', count: projectedMessages.length, cold: true } });
6563
- sendSessionEvent({ type: 'history_loaded', mode: 'delta', count: projectedMessages.length, sessionId, latestSeq: delta.latestSeq, afterSeq }, { sessionId, perfTraceId });
6581
+ sendSessionEvent({ type: 'history_loaded', mode: 'delta', count: projectedMessages.length, sessionId, requestId, latestSeq: delta.latestSeq, afterSeq }, { sessionId, requestId, requestClientId, perfTraceId });
6564
6582
  } else if (!metadataOnly) {
6565
6583
  const replayStart = perfNowMs();
6566
- emitVisibleHistoryReplay({ store: coldStore, sessionId, limit, mode: 'recent', perfTraceId });
6584
+ emitVisibleHistoryReplay({ store: coldStore, sessionId, limit, mode: 'recent', requestId, requestClientId, perfTraceId });
6567
6585
  traceDuration('history.cold_replay', replayStart, { detail: { mode: 'recent', limit } });
6568
6586
  }
6569
6587
  historyAlreadyReplayed = true;
@@ -6735,6 +6753,8 @@ export async function handleYeaftLoadHistoryWindow(msg) {
6735
6753
 
6736
6754
  export async function handleYeaftLoadMoreHistory(msg) {
6737
6755
  const sessionId = (msg && typeof msg.sessionId === 'string' && msg.sessionId) || null;
6756
+ const requestId = typeof msg?.requestId === 'string' && msg.requestId ? msg.requestId : null;
6757
+ const requestClientId = typeof msg?._requestClientId === 'string' && msg._requestClientId ? msg._requestClientId : null;
6738
6758
  const perfTraceId = typeof msg?.perfTraceId === 'string' && msg.perfTraceId.trim() ? msg.perfTraceId.trim() : null;
6739
6759
  const perfStart = perfNowMs();
6740
6760
  const tracePerf = (phase, extra = {}) => {
@@ -6744,7 +6764,7 @@ export async function handleYeaftLoadMoreHistory(msg) {
6744
6764
  const traceDuration = (phase, start, extra = {}) => tracePerf(phase, { durationMs: perfNowMs() - start, ...extra });
6745
6765
  tracePerf('history_more.received');
6746
6766
  if (!sessionId) {
6747
- emitHistoryChunk({ sessionId, messages: [], mode: 'older', oldestSeq: null, hasMore: false, perfTraceId });
6767
+ emitHistoryChunk({ sessionId, messages: [], mode: 'older', oldestSeq: null, hasMore: false, requestId, requestClientId, perfTraceId });
6748
6768
  traceDuration('history_more.handler_total', perfStart, { ok: false, detail: { missingSessionId: true } });
6749
6769
  return;
6750
6770
  }
@@ -6778,6 +6798,8 @@ export async function handleYeaftLoadMoreHistory(msg) {
6778
6798
  oldestSeq: result.oldestSeq,
6779
6799
  hasMore: !!result.hasMore,
6780
6800
  turns,
6801
+ requestId,
6802
+ requestClientId,
6781
6803
  perfTraceId,
6782
6804
  });
6783
6805
  traceDuration('history_more.emit_chunk', emitStart, { detail: { count: result.messages?.length || 0 } });