@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/local-runtime/server/handlers/agent-output.js +16 -2
- package/local-runtime/server/handlers/client-conversation.js +124 -53
- package/local-runtime/server/ws-client.js +2 -1
- package/local-runtime/version.json +1 -1
- package/local-runtime/web/app.bundle.js +114 -93
- package/local-runtime/web/app.bundle.js.gz +0 -0
- package/local-runtime/web/index.html +2 -2
- package/local-runtime/web/style.bundle.css +1 -1
- package/local-runtime/web/style.bundle.css.gz +0 -0
- package/package.json +1 -1
- package/yeaft/web-bridge.js +32 -10
|
Binary file
|
package/package.json
CHANGED
package/yeaft/web-bridge.js
CHANGED
|
@@ -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
|
-
},
|
|
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 } });
|