|
634 | 634 | ? Math.max(0, Math.round(Number(status.latencyMs))) |
635 | 635 | : null; |
636 | 636 | const error = String(status && status.error || '').trim(); |
| 637 | + const activeTarget = String(status && status.activeTarget || '').trim(); |
637 | 638 | const result = status && typeof status.result === 'object' ? status.result : null; |
638 | 639 | const summary = result && typeof result.summary === 'object' ? result.summary : {}; |
| 640 | + const trace = result && typeof result.trace === 'object' ? result.trace : {}; |
| 641 | + const retrievalTrace = trace && typeof trace.retrieval === 'object' ? trace.retrieval : {}; |
| 642 | + const scopeRecovery = retrievalTrace && typeof retrievalTrace.scopeRecovery === 'object' |
| 643 | + ? retrievalTrace.scopeRecovery |
| 644 | + : null; |
| 645 | + const recoveredSourcePaths = Array.isArray(scopeRecovery && scopeRecovery.recoveredSourcePaths) |
| 646 | + ? scopeRecovery.recoveredSourcePaths |
| 647 | + .map((sourcePath) => String(sourcePath || '').trim()) |
| 648 | + .filter(Boolean) |
| 649 | + : []; |
639 | 650 | const knowledgePointCount = Number.isFinite(Number(summary.returnedKnowledgePoints)) |
640 | 651 | ? Number(summary.returnedKnowledgePoints) |
641 | 652 | : (Array.isArray(result && result.knowledgePoints) ? result.knowledgePoints.length : 0); |
|
656 | 667 | endpoint, |
657 | 668 | transport, |
658 | 669 | latencyMs !== null ? `${latencyMs} ms` : '', |
| 670 | + activeTarget |
| 671 | + ? translate('agentWorkspace.apiStatus.scope', 'Scope: {scope}', { scope: activeTarget }) |
| 672 | + : '', |
659 | 673 | state === 'ok' ? pluralizeApiStatusCount(knowledgePointCount, 'knowledge point', 'knowledge points') : '', |
660 | 674 | state === 'ok' ? pluralizeApiStatusCount(citationCount, 'citation', 'citations') : '', |
661 | 675 | state === 'ok' ? pluralizeApiStatusCount(memoryCount, 'memory', 'memories') : '', |
| 676 | + state === 'ok' && recoveredSourcePaths.length > 0 |
| 677 | + ? translate('agentWorkspace.apiStatus.recovered', 'Recovered: {sources}', { |
| 678 | + sources: recoveredSourcePaths.slice(0, 2).join(', '), |
| 679 | + }) |
| 680 | + : '', |
662 | 681 | error, |
663 | 682 | ].filter(Boolean); |
664 | 683 | node.setAttribute('data-api-state', state); |
|
3255 | 3274 | input.value = ''; |
3256 | 3275 | appendUserMessage(message); |
3257 | 3276 | const sendStartedAt = Date.now(); |
| 3277 | + let requestActiveTarget = ''; |
3258 | 3278 | try { |
3259 | 3279 | const userId = getUserId(); |
3260 | 3280 | const requestContext = resolveKnowledgeWorkspaceRequestContext(); |
| 3281 | + requestActiveTarget = requestContext.activeTarget; |
3261 | 3282 | const requestPayload = { |
3262 | 3283 | userId, |
3263 | 3284 | sessionId: getOrCreateConversationSessionId(userId), |
|
3271 | 3292 | state: 'pending', |
3272 | 3293 | endpoint: AGENT_CONVERSATION_ENDPOINT, |
3273 | 3294 | transport: 'SSE', |
| 3295 | + activeTarget: requestContext.activeTarget, |
3274 | 3296 | }); |
3275 | 3297 | const conversationCall = await requestConversationWithStreamingFallback(requestPayload); |
3276 | 3298 | const result = conversationCall && typeof conversationCall === 'object' && conversationCall.result |
|
3281 | 3303 | endpoint: AGENT_CONVERSATION_ENDPOINT, |
3282 | 3304 | transport: String(conversationCall && conversationCall.transport || 'SSE'), |
3283 | 3305 | latencyMs: Number(conversationCall && conversationCall.latencyMs), |
| 3306 | + activeTarget: requestContext.activeTarget, |
3284 | 3307 | result, |
3285 | 3308 | }); |
3286 | 3309 | const appendedAssistant = await appendAssistantConversationResult(result); |
|
3307 | 3330 | state: 'error', |
3308 | 3331 | endpoint: AGENT_CONVERSATION_ENDPOINT, |
3309 | 3332 | latencyMs: Date.now() - sendStartedAt, |
| 3333 | + activeTarget: requestActiveTarget, |
3310 | 3334 | error: String(error && error.message || error || 'unknown_error'), |
3311 | 3335 | }); |
3312 | 3336 | appendLocalizedAssistantMessage( |
|
0 commit comments