@if (block.data?.extra_metadata?.injected_instruction; as guidance) {
}
@if (isCheckerBlock(block)) {
@if (block.data.phase === 'outcome' && block.data.test_result) {
}
}
@if (getSortedStepEvents(block.data).length > 0) {
@for (item of getSortedStepEvents(block.data); track trackStepEvent(itemIdx, item); let itemIdx = $index) {
@if (isCheckerBlock(block) && item.type === 'thinking') {
@if (item.data.text && item.data.text.trim()) {
}
}
@if (isCheckerBlock(block) && item.type === 'text' && isCheckerTextVisible(item)) {
@if (item.data.isReset) {
{{ formatResetMessage(getCheckerSegmentResetMessage(item), isCheckerSegmentRunning(block, itemIdx)) }}
}
@if (item.data.text && item.data.text.trim()) {
}
}
@if (!isCheckerBlock(block) && item.type === 'thinking') {
@if (getBlockResets(block, true).length > 0) {
@for (reset of getBlockResets(block, true); track reset.id || $index) {
{{ formatResetMessage(reset.message, reset.isWaiting) }}
}
}
@if (getStreamDisplayText(block.id + '-native', item.data.text) || (isBlockRunning(block) && !isStreamRewinding(block.id + '-native') && !hasWaitingReset(block, true))) {
@if (getStreamDisplayText(block.id + '-native', item.data.text)) {
}
}
}
@if (!isCheckerBlock(block) && item.type === 'text') {
@if (getBlockResets(block, false).length > 0) {
@for (reset of getBlockResets(block, false); track reset.id || $index) {
{{ formatResetMessage(reset.message, reset.isWaiting) }}
}
}
@if (getStreamDisplayText(block.id, item.data.text) || (isBlockRunning(block) && !isStreamRewinding(block.id) && !hasWaitingReset(block, false))) {
@if (getStreamDisplayText(block.id, item.data.text)) {
}
}
}
@if (isReportStatusAction(item.data)) {
@if (!isActionExpanded('action-' + block.id + '-' + itemIdx) && getReportStatusExplanation(item.data)) {
摘要:
"{{ getReportStatusExplanation(item.data) }}"
}
@if (isActionExpanded('action-' + block.id + '-' + itemIdx)) {
@if (getReportStatusExplanation(item.data); as expText) {
}
@if (getStepPreImageUrl(block.data, item.data) || getStepPostImageUrl(block.data, item.data)) {
@if (getStepPreImageUrl(block.data, item.data)) {
}
@if (getStepPostImageUrl(block.data, item.data)) {
}
}
}
}
@if (item.type === 'action' && !isReportStatusAction(item.data) && (isAndroidAction(item.data) || item.data?.type === 'action')) {
@if (!isActionExpanded('action-' + block.id + '-' + itemIdx) && (getActionTargetText(item.data) || getActionInputText(item.data) || getActionCoords(item.data))) {
@if (getActionTargetText(item.data)) {
目标:
"{{ getActionTargetText(item.data) }}"
}
@if (getActionInputText(item.data)) {
{{ getActionInputLabel(item.data) }}:
"{{ getActionInputText(item.data) }}"
}
@if (getActionCoords(item.data)) {
坐标:
{{ getActionCoords(item.data) }}
}
}
@if (isActionExpanded('action-' + block.id + '-' + itemIdx)) {
@if (getActionTargetText(item.data)) {
目标
"{{ getActionTargetText(item.data) }}"
}
@if (getActionInputText(item.data)) {
{{ getActionInputLabel(item.data) }}
"{{ getActionInputText(item.data) }}"
}
@if (getActionCoords(item.data)) {
坐标
{{ getActionCoords(item.data) }}
}
@if (getActionBounds(item.data)) {
目标边界
[{{ getActionBounds(item.data) }}]
}
@if (getActionClass(item.data)) {
目标类型
{{ getActionClass(item.data) }}
}
@for (param of getActionExtraParams(item.data); track trackParam($index, param)) {
{{ param.key }}
{{ param.value }}
}
@if (!getActionTargetText(item.data) && !getActionInputText(item.data) && !getActionCoords(item.data) && !getActionBounds(item.data) && !getActionClass(item.data) && getActionExtraParams(item.data).length === 0) {
操作
{{ getActionTitle(item.data) }}
}
@if (getStepPreImageUrl(block.data, item.data) || getStepPostImageUrl(block.data, item.data)) {
@if (getStepPreImageUrl(block.data, item.data)) {
}
@if (getStepPostImageUrl(block.data, item.data)) {
}
}
@if (isActionFailed(item.data, block.data)) {
error
{{ getActionErrorMessage(item.data, block.data) }}
}
}
}
@if (item.type === 'tool') {
@if (isBackendSwitchNote(item.data)) {
{{ getBackendSwitchMessage(item.data) }}
}
@if (isLLMRetry(item.data)) {
@for (retry of getLLMRetryEntries(item.data); track retry; let retryIndex = $index) {
@if (isLLMRetryEntryWaiting(retry)) {
模型暂时不可用
@if (getLLMRetryEntryDelay(retry); as retryDelay) {
· Retrying in {{ retryDelay }}…
}
频繁重试可能是接口限流导致,可提高调用额度或降低并发数。
}
@if (!isLLMRetryEntryWaiting(retry)) {
Retrying LLM request · Waited {{ getLLMRetryEntryWaited(retry) }}
}
}
}
@if (isDisplayableLLMFailure(item.data)) {
@if (isTerminalLLMFailure(item.data)) {
任务已暂停 · 当前没有执行中的步骤
}
}
@if (shouldShowTool(item.data, block.data) && !isDeviceActionTool(item.data)) {
}
@if (shouldShowTool(item.data, block.data) && isDeviceActionTool(item.data)) {
}
}
}
}
@if (hasCheckerResult(block) && !(block.data.phase === 'outcome' && block.data.test_result)) {
@for (verdict of getCheckerVerdicts(block); track $index) {
{{ getVerdictItemNumber(block, verdict, $index) }}
{{ getVerdictIcon(verdict.status) }}
{{ verdict.evidence || getVerdictStatusText(verdict.status) }}
@if (verdict.suggestion) {
{{ verdict.suggestion }}
}
}
@for (note of getCheckerNotes(block); track note) {
{{ note }}
}