@if(session(); as s) {
explore {{activeValidation() ? '用例复跑中' : label(s.status)}}{{s.config.model}} / {{s.config.reasoning_effort}} · 续接 {{s.continuation_count}} 次

{{s.goal}}

@if(s.pause_reason === 'execution_budget'){} @if(s.pause_reason === 'device_observation'){}
执行记录({{s.runs.length}}) · 当前展示所选轮次的操作步骤@for(run of s.runs; track run.id){
}
@if(showCase()) {
task_alt{{s.case ? '探索成果 · 可复用用例' : '本轮探索已结束'}}
@if(!s.case){

探索验收通过后自动生成;也可以先编辑并保存草稿。

} @if(s.generations[0]?.status === 'failed'){

上次提炼未完成,执行结果保留。可重试提炼。

} @if(s.case){

{{s.case.name}} v{{s.case.version}}

已整理为一个可复用用例。你可以查看修改,或交给 Flash / Pro 独立复跑。

} @if(editorOpen()) { @if(s.case){} @if(dirty && editVersion !== s.case_version){

已有新版本;当前编辑仍保留,请先复制修改内容再加载最新版本。

}
} @if(rerunOpen()) {
@for(model of models;track model){}复跑与批次

固定使用所选已保存版本。复跑通过与探索通过分别记录。

}
}
@if(error()){} @if(notice()){

{{notice()}}

} @if(s.pending_question) {
chat_bubble
探索已暂停,等待你回答

{{pendingQuestion()?.text || '探索助手有一个问题需要你确认,请查看上方对话。'}}

@if(pendingQuestion()?.recommendation; as suggestion){}
} @else if(finalizing()) {
设备操作已结束,正在根据已验证的步骤提炼用例。完成后会在上方展示。
} @if(activeDemo(); as demo) {
{{label(demo.status)}} @if(demo.status === 'recording'){

现在可以操作设备。剩余 {{secondsLeft(demo)}} 秒;AI 已暂停操作。

} @else {

{{demo.status === 'requested' ? '正在等待当前动作安全结束,请等“录制中”出现后再操作。' : '正在保存并分析本次示范录像。'}}

} @if(['requested','recording'].includes(demo.status)){}
} @else if(demoOptionsOpen() && s.active_run_id && !activeValidation() && ['running','waiting_user'].includes(s.status)) {
} @if(activeValidation()){

用例正在独立复跑,请进入复跑任务查看或指导。

}
{{label(s.status)}}
@if(!activeDemo() && s.active_run_id && !activeValidation() && ['running','waiting_user'].includes(s.status)){} @if(!activeValidation() && !s.pending_question && (!s.active_run_id || s.status === 'paused')){} @if(s.active_run_id && !activeValidation() && !finalizing()){} Enter 发送 · Shift+Enter 换行
@if(!s.active_run_id){

可在此讨论和修订用例;继续操作设备请点击“继续探索”。

}
} @else {
{{loading() ? '正在读取探索记录…' : '探索记录暂时无法读取'}} @if(error()){

{{error()}}

}
}