@@ -1136,6 +1136,14 @@ function renderOneLinerRunsHtml() {
const canRetryCurrentRun = [ "blocked" , "failed" , "cancelled" ] . includes ( currentRun . run _status ) ;
const canRetryCurrentRun = [ "blocked" , "failed" , "cancelled" ] . includes ( currentRun . run _status ) ;
const currentRunConfigVersion = currentRun . governance ? . oneliner _profile _version || currentRun . governance ? . oneliner _profile ? . current _version || { } ;
const currentRunConfigVersion = currentRun . governance ? . oneliner _profile _version || currentRun . governance ? . oneliner _profile ? . current _version || { } ;
const currentRunPlatformAgentProfile = currentRun . result ? . execution _card ? . platform _agent _profile || currentRun . governance ? . platform _agent _profile || { } ;
const currentRunPlatformAgentProfile = currentRun . result ? . execution _card ? . platform _agent _profile || currentRun . governance ? . platform _agent _profile || { } ;
const latestOnelinerConfigVersion = appState . onelinerProfile ? . current _version || { } ;
const latestPlatformAgentProfile = safeArray ( appState . platformAgents ) . find ( ( item ) => item . platform === currentRunPlatformAgentProfile . platform ) || { } ;
const currentRunOnelinerConfigStale = isConfigurationVersionStale ( currentRunConfigVersion , latestOnelinerConfigVersion ) ;
const currentRunPlatformAgentConfigStale = isConfigurationVersionStale (
currentRunPlatformAgentProfile ,
latestPlatformAgentProfile . current _version || { }
) ;
const retryRunLabel = currentRunOnelinerConfigStale || currentRunPlatformAgentConfigStale ? "按当前配置重跑" : "重新执行" ;
return `
return `
<div class="task-item compact" style="margin-bottom:10px;">
<div class="task-item compact" style="margin-bottom:10px;">
<h4>近期运行概况</h4>
<h4>近期运行概况</h4>
@@ -1192,7 +1200,7 @@ function renderOneLinerRunsHtml() {
<span class="tag clickable-tag" data-action="confirm-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">确认执行</span>
<span class="tag clickable-tag" data-action="confirm-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">确认执行</span>
<span class="tag clickable-tag" data-action="cancel-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">取消本轮</span>
<span class="tag clickable-tag" data-action="cancel-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">取消本轮</span>
` : "" }
` : "" }
${ canRetryCurrentRun ? ` <span class="tag clickable-tag" data-action="retry-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">重新执行 </span> ` : "" }
${ canRetryCurrentRun ? ` <span class="tag clickable-tag" data-action="retry-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">${ escapeHtml ( retryRunLabel ) } </span> ` : "" }
${ hasResultPayload ? ` <span class="tag clickable-tag" data-action="open-oneliner-run-result" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">查看结果</span> ` : "" }
${ hasResultPayload ? ` <span class="tag clickable-tag" data-action="open-oneliner-run-result" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">查看结果</span> ` : "" }
${ recommendedAction ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( recommendedAction . action ) } " ${ resultLandingAttrs } > ${ escapeHtml ( recommendedAction . label || "继续这个任务" ) } </span> ` : "" }
${ recommendedAction ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( recommendedAction . action ) } " ${ resultLandingAttrs } > ${ escapeHtml ( recommendedAction . label || "继续这个任务" ) } </span> ` : "" }
</div>
</div>
@@ -1233,6 +1241,7 @@ function renderOneLinerRunsHtml() {
<p> ${ escapeHtml ( currentRunConfigVersion . summary || currentRunConfigVersion . title || ` OneLiner 配置 v ${ formatNumber ( currentRunConfigVersion . version _no || 0 ) } ` ) } </p>
<p> ${ escapeHtml ( currentRunConfigVersion . summary || currentRunConfigVersion . title || ` OneLiner 配置 v ${ formatNumber ( currentRunConfigVersion . version _no || 0 ) } ` ) } </p>
<div class="task-meta">
<div class="task-meta">
<span class="tag blue">配置 v ${ escapeHtml ( formatNumber ( currentRunConfigVersion . version _no || 0 ) ) } </span>
<span class="tag blue">配置 v ${ escapeHtml ( formatNumber ( currentRunConfigVersion . version _no || 0 ) ) } </span>
${ currentRunOnelinerConfigStale ? ` <span class="tag orange">主配置已更新</span> ` : "" }
<span class="tag clickable-tag" data-action="open-oneliner-profile-history">查看配置历史</span>
<span class="tag clickable-tag" data-action="open-oneliner-profile-history">查看配置历史</span>
</div>
</div>
</div>
</div>
@@ -1246,6 +1255,7 @@ function renderOneLinerRunsHtml() {
${ currentRunPlatformAgentProfile . name ? ` <span class="tag"> ${ escapeHtml ( currentRunPlatformAgentProfile . name ) } </span> ` : "" }
${ currentRunPlatformAgentProfile . name ? ` <span class="tag"> ${ escapeHtml ( currentRunPlatformAgentProfile . name ) } </span> ` : "" }
${ currentRunPlatformAgentProfile . assistant _name ? ` <span class="tag green"> ${ escapeHtml ( currentRunPlatformAgentProfile . assistant _name ) } </span> ` : "" }
${ currentRunPlatformAgentProfile . assistant _name ? ` <span class="tag green"> ${ escapeHtml ( currentRunPlatformAgentProfile . assistant _name ) } </span> ` : "" }
${ currentRunPlatformAgentProfile . readiness _label ? ` <span class="tag ${ currentRunPlatformAgentProfile . readiness _score >= 75 ? "green" : currentRunPlatformAgentProfile . readiness _score >= 50 ? "blue" : "orange" } "> ${ escapeHtml ( currentRunPlatformAgentProfile . readiness _label ) } ${ escapeHtml ( formatNumber ( currentRunPlatformAgentProfile . readiness _score || 0 ) ) } </span> ` : "" }
${ currentRunPlatformAgentProfile . readiness _label ? ` <span class="tag ${ currentRunPlatformAgentProfile . readiness _score >= 75 ? "green" : currentRunPlatformAgentProfile . readiness _score >= 50 ? "blue" : "orange" } "> ${ escapeHtml ( currentRunPlatformAgentProfile . readiness _label ) } ${ escapeHtml ( formatNumber ( currentRunPlatformAgentProfile . readiness _score || 0 ) ) } </span> ` : "" }
${ currentRunPlatformAgentConfigStale ? ` <span class="tag orange">平台 Agent 已更新</span> ` : "" }
</div>
</div>
</div>
</div>
` : "" }
` : "" }
@@ -1267,7 +1277,7 @@ function renderOneLinerRunsHtml() {
` : `
` : `
<span class="tag ${ statusTone } "> ${ escapeHtml ( currentRun . status _summary || "主 Agent 正在推进中" ) } </span>
<span class="tag ${ statusTone } "> ${ escapeHtml ( currentRun . status _summary || "主 Agent 正在推进中" ) } </span>
` }
` }
${ canRetryCurrentRun ? ` <span class="tag clickable-tag" data-action="retry-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">重新执行 </span> ` : "" }
${ canRetryCurrentRun ? ` <span class="tag clickable-tag" data-action="retry-oneliner-run" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">${ escapeHtml ( retryRunLabel ) } </span> ` : "" }
${ hasResultPayload ? ` <span class="tag clickable-tag" data-action="open-oneliner-run-result" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">查看结果</span> ` : "" }
${ hasResultPayload ? ` <span class="tag clickable-tag" data-action="open-oneliner-run-result" data-run-id=" ${ escapeHtml ( currentRun . id ) } ">查看结果</span> ` : "" }
${ recommendedAction ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( recommendedAction . action ) } " ${ resultLandingAttrs } > ${ escapeHtml ( recommendedAction . label || "回到对应页面" ) } </span> ` : "" }
${ recommendedAction ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( recommendedAction . action ) } " ${ resultLandingAttrs } > ${ escapeHtml ( recommendedAction . label || "回到对应页面" ) } </span> ` : "" }
</div>
</div>
@@ -1989,6 +1999,13 @@ function renderOneLinerExecutionPayloadHtml(payload) {
const resultCards = safeArray ( resultSections . cards ) . slice ( 0 , 4 ) ;
const resultCards = safeArray ( resultSections . cards ) . slice ( 0 , 4 ) ;
const configVersion = payload . execution _card ? . oneliner _profile _version || payload . context ? . oneliner _profile ? . current _version || { } ;
const configVersion = payload . execution _card ? . oneliner _profile _version || payload . context ? . oneliner _profile ? . current _version || { } ;
const platformAgentProfile = payload . execution _card ? . platform _agent _profile || { } ;
const platformAgentProfile = payload . execution _card ? . platform _agent _profile || { } ;
const latestOnelinerConfigVersion = appState . onelinerProfile ? . current _version || { } ;
const latestPlatformAgentProfile = safeArray ( appState . platformAgents ) . find ( ( item ) => item . platform === platformAgentProfile . platform ) || { } ;
const currentRunOnelinerConfigStale = isConfigurationVersionStale ( configVersion , latestOnelinerConfigVersion ) ;
const currentRunPlatformAgentConfigStale = isConfigurationVersionStale (
platformAgentProfile ,
latestPlatformAgentProfile . current _version || { }
) ;
const landingAttrs = buildMainAgentLandingAttrs ( {
const landingAttrs = buildMainAgentLandingAttrs ( {
runId : landingRunId ,
runId : landingRunId ,
screen : landingScreen ,
screen : landingScreen ,
@@ -2003,6 +2020,8 @@ function renderOneLinerExecutionPayloadHtml(payload) {
${ payload . platform ? ` <span class="tag blue"> ${ escapeHtml ( platformLabel ( payload . platform ) ) } </span> ` : "" }
${ payload . platform ? ` <span class="tag blue"> ${ escapeHtml ( platformLabel ( payload . platform ) ) } </span> ` : "" }
<span class="tag"> ${ escapeHtml ( payload . platform _scope === "all_platforms" ? "全平台" : "单平台" ) } </span>
<span class="tag"> ${ escapeHtml ( payload . platform _scope === "all_platforms" ? "全平台" : "单平台" ) } </span>
${ configVersion . version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( configVersion . version _no || 0 ) ) } </span> ` : "" }
${ configVersion . version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( configVersion . version _no || 0 ) ) } </span> ` : "" }
${ currentRunOnelinerConfigStale ? ` <span class="tag orange">主配置已更新</span> ` : "" }
${ currentRunPlatformAgentConfigStale ? ` <span class="tag orange">平台 Agent 已更新</span> ` : "" }
<span class="tag green">已收口</span>
<span class="tag green">已收口</span>
${ payload . recommended _action ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( payload . recommended _action . action ) } " data-main-agent-run-id=" ${ escapeHtml ( landingRunId ) } " data-main-agent-screen=" ${ escapeHtml ( landingScreen ) } " data-main-agent-title=" ${ escapeHtml ( landingTitle ) } " data-main-agent-summary=" ${ escapeHtml ( landingSummary ) } " ${ landingAttrs } > ${ escapeHtml ( payload . recommended _action . label || "回到对应页面" ) } </span> ` : "" }
${ payload . recommended _action ? . action ? ` <span class="tag clickable-tag" data-action=" ${ escapeHtml ( payload . recommended _action . action ) } " data-main-agent-run-id=" ${ escapeHtml ( landingRunId ) } " data-main-agent-screen=" ${ escapeHtml ( landingScreen ) } " data-main-agent-title=" ${ escapeHtml ( landingTitle ) } " data-main-agent-summary=" ${ escapeHtml ( landingSummary ) } " ${ landingAttrs } > ${ escapeHtml ( payload . recommended _action . label || "回到对应页面" ) } </span> ` : "" }
</div>
</div>
@@ -2013,6 +2032,7 @@ function renderOneLinerExecutionPayloadHtml(payload) {
<p> ${ escapeHtml ( configVersion . summary || configVersion . title || ` OneLiner 主配置版本 v ${ formatNumber ( configVersion . version _no || 0 ) } ` ) } </p>
<p> ${ escapeHtml ( configVersion . summary || configVersion . title || ` OneLiner 主配置版本 v ${ formatNumber ( configVersion . version _no || 0 ) } ` ) } </p>
<div class="task-meta">
<div class="task-meta">
<span class="tag blue">配置 v ${ escapeHtml ( formatNumber ( configVersion . version _no || 0 ) ) } </span>
<span class="tag blue">配置 v ${ escapeHtml ( formatNumber ( configVersion . version _no || 0 ) ) } </span>
${ currentRunOnelinerConfigStale ? ` <span class="tag orange">主配置已更新</span> ` : "" }
<span class="tag clickable-tag" data-action="open-oneliner-profile-history">查看配置历史</span>
<span class="tag clickable-tag" data-action="open-oneliner-profile-history">查看配置历史</span>
</div>
</div>
</div>
</div>
@@ -2026,6 +2046,7 @@ function renderOneLinerExecutionPayloadHtml(payload) {
${ platformAgentProfile . name ? ` <span class="tag"> ${ escapeHtml ( platformAgentProfile . name ) } </span> ` : "" }
${ platformAgentProfile . name ? ` <span class="tag"> ${ escapeHtml ( platformAgentProfile . name ) } </span> ` : "" }
${ platformAgentProfile . assistant _name ? ` <span class="tag green"> ${ escapeHtml ( platformAgentProfile . assistant _name ) } </span> ` : "" }
${ platformAgentProfile . assistant _name ? ` <span class="tag green"> ${ escapeHtml ( platformAgentProfile . assistant _name ) } </span> ` : "" }
${ platformAgentProfile . version _no ? ` <span class="tag"> ${ escapeHtml ( platformLabel ( platformAgentProfile . platform || payload . platform || "" ) ) } Agent v ${ escapeHtml ( formatNumber ( platformAgentProfile . version _no || 0 ) ) } </span> ` : "" }
${ platformAgentProfile . version _no ? ` <span class="tag"> ${ escapeHtml ( platformLabel ( platformAgentProfile . platform || payload . platform || "" ) ) } Agent v ${ escapeHtml ( formatNumber ( platformAgentProfile . version _no || 0 ) ) } </span> ` : "" }
${ currentRunPlatformAgentConfigStale ? ` <span class="tag orange">平台 Agent 已更新</span> ` : "" }
${ platformAgentProfile . platform && platformAgentProfile . version _no ? ` <span class="tag clickable-tag" data-action="open-platform-agent-profile-history" data-platform=" ${ escapeHtml ( platformAgentProfile . platform ) } ">看平台配置历史</span> ` : "" }
${ platformAgentProfile . platform && platformAgentProfile . version _no ? ` <span class="tag clickable-tag" data-action="open-platform-agent-profile-history" data-platform=" ${ escapeHtml ( platformAgentProfile . platform ) } ">看平台配置历史</span> ` : "" }
${ platformAgentProfile . readiness _label ? ` <span class="tag ${ platformAgentProfile . readiness _score >= 75 ? "green" : platformAgentProfile . readiness _score >= 50 ? "blue" : "orange" } "> ${ escapeHtml ( platformAgentProfile . readiness _label ) } ${ escapeHtml ( formatNumber ( platformAgentProfile . readiness _score || 0 ) ) } </span> ` : "" }
${ platformAgentProfile . readiness _label ? ` <span class="tag ${ platformAgentProfile . readiness _score >= 75 ? "green" : platformAgentProfile . readiness _score >= 50 ? "blue" : "orange" } "> ${ escapeHtml ( platformAgentProfile . readiness _label ) } ${ escapeHtml ( formatNumber ( platformAgentProfile . readiness _score || 0 ) ) } </span> ` : "" }
</div>
</div>
@@ -4431,6 +4452,19 @@ function renderPlatformAgentPanel() {
</div>
</div>
<div class="three-col">
<div class="three-col">
${ items . map ( ( item ) => `
${ items . map ( ( item ) => `
${ ( ( ) => {
const recentExecutionOnelinerConfigStale = isConfigurationVersionStale (
item . recent _execution || { } ,
appState.onelinerProfile?.current_version || {}
);
const recentExecutionPlatformConfigStale = isConfigurationVersionStale(
{
version_id: item.recent_execution?.platform_agent_profile_version_id,
version_no: item.recent_execution?.platform_agent_profile_version_no,
},
item.current_version || {}
);
return `
< div class = "entity-card pad" >
< div class = "entity-card pad" >
< div class = "cell-title" > $ { escapeHtml ( item . name || item . platform _label ) } </div>
< div class = "cell-title" > $ { escapeHtml ( item . name || item . platform _label ) } </div>
<div class="cell-desc"> ${ escapeHtml ( item . mission || item . notes || "先绑定执行 Agent, 再补任务目标和方法论。" ) } </div>
<div class="cell-desc"> ${ escapeHtml ( item . mission || item . notes || "先绑定执行 Agent, 再补任务目标和方法论。" ) } </div>
@@ -4464,13 +4498,17 @@ function renderPlatformAgentPanel() {
${ item . recent _execution ? . run _id ? `
${ item . recent _execution ? . run _id ? `
<div class="task-item compact" style="margin-top:10px;">
<div class="task-item compact" style="margin-top:10px;">
<h4>最近执行</h4>
<h4>最近执行</h4>
<p> ${ escapeHtml ( item . recent _execution . summary || "最近一次主 Agent 执行已回写到当前平台 Agent。" ) } </p>
<p> ${ escapeHtml ( item . recent _execution . title || item . recent _execution . goal || item . recent _execution . summary || "最近一次主 Agent 执行已回写到当前平台 Agent。" ) } </p>
<div class="task-meta">
<div class="task-meta">
<span class="tag blue"> ${ escapeHtml ( item . recent _execution . intent _label || "主 Agent 任务" ) } </span>
<span class="tag blue"> ${ escapeHtml ( item . recent _execution . intent _label || "主 Agent 任务" ) } </span>
<span class="tag"> ${ escapeHtml ( item . recent _execution . run _status || "done" ) } </span>
<span class="tag"> ${ escapeHtml ( item . recent _execution . run _status || "done" ) } </span>
${ item . recent _execution . platform _scope ? ` <span class="tag"> ${ escapeHtml ( item . recent _execution . platform _scope === "all_platforms" ? "全平台" : "单平台" ) } </span> ` : "" }
${ item . recent _execution . delivery _mode ? ` <span class="tag"> ${ escapeHtml ( item . recent _execution . delivery _mode ) } </span> ` : "" }
${ item . recent _execution . workstream _label ? ` <span class="tag green"> ${ escapeHtml ( item . recent _execution . workstream _label ) } </span> ` : "" }
${ item . recent _execution . workstream _label ? ` <span class="tag green"> ${ escapeHtml ( item . recent _execution . workstream _label ) } </span> ` : "" }
${ item . recent _execution . oneliner _profile _version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( item . recent _execution . oneliner _profile _version _no ) ) } </span> ` : "" }
${ item . recent _execution . oneliner _profile _version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( item . recent _execution . oneliner _profile _version _no ) ) } </span> ` : "" }
${ recentExecutionOnelinerConfigStale ? ` <span class="tag orange">主配置已更新</span> ` : "" }
${ item . recent _execution . platform _agent _profile _version _no ? ` <span class="tag"> ${ escapeHtml ( item . platform _label || platformLabel ( item . platform ) ) } Agent v ${ escapeHtml ( formatNumber ( item . recent _execution . platform _agent _profile _version _no ) ) } </span> ` : "" }
${ item . recent _execution . platform _agent _profile _version _no ? ` <span class="tag"> ${ escapeHtml ( item . platform _label || platformLabel ( item . platform ) ) } Agent v ${ escapeHtml ( formatNumber ( item . recent _execution . platform _agent _profile _version _no ) ) } </span> ` : "" }
${ recentExecutionPlatformConfigStale ? ` <span class="tag orange"> ${ escapeHtml ( item . platform _label || platformLabel ( item . platform ) ) } Agent 已更新</span> ` : "" }
${ item . recent _execution . source _screen ? ` <span class="tag"> ${ escapeHtml ( screenLabel ( item . recent _execution . source _screen ) || item . recent _execution . source _screen ) } </span> ` : "" }
${ item . recent _execution . source _screen ? ` <span class="tag"> ${ escapeHtml ( screenLabel ( item . recent _execution . source _screen ) || item . recent _execution . source _screen ) } </span> ` : "" }
</div>
</div>
<div class="task-meta" style="margin-top:8px;">
<div class="task-meta" style="margin-top:8px;">
@@ -4488,6 +4526,8 @@ function renderPlatformAgentPanel() {
<span class="tag clickable-tag" data-action="open-platform-agent-skill" data-platform=" ${ escapeHtml ( item . platform ) } ">补技能</span>
<span class="tag clickable-tag" data-action="open-platform-agent-skill" data-platform=" ${ escapeHtml ( item . platform ) } ">补技能</span>
</div>
</div>
</div>
</div>
` ;
} ) ( ) }
` ).join("")}
` ).join("")}
</div>
</div>
</div>
</div>
@@ -7755,6 +7795,19 @@ function rememberAction(title, summary, tone = "blue", payload = null) {
} ;
} ;
}
}
function getVersionIdentity ( version = { } ) {
return String ( version ? . version _id || version ? . id || "" ) . trim ( ) ;
}
function isConfigurationVersionStale ( runVersion , currentVersion ) {
const runIdentity = getVersionIdentity ( runVersion ) ;
const currentIdentity = getVersionIdentity ( currentVersion ) ;
if ( runIdentity && currentIdentity ) return runIdentity !== currentIdentity ;
const runNumber = Number ( runVersion ? . version _no || 0 ) ;
const currentNumber = Number ( currentVersion ? . version _no || 0 ) ;
return runNumber > 0 && currentNumber > 0 && runNumber !== currentNumber ;
}
function extractGeneratedCopy ( payload ) {
function extractGeneratedCopy ( payload ) {
const raw = payload ? . content || payload ? . text || payload ? . copy || payload ? . result ? . content || "" ;
const raw = payload ? . content || payload ? . text || payload ? . copy || payload ? . result ? . content || "" ;
return brief ( raw , 2400 ) ;
return brief ( raw , 2400 ) ;
@@ -9534,6 +9587,17 @@ async function openPlatformAgentDetailAction(platform) {
] ) ;
] ) ;
const memories = safeArray ( memoriesPayload ? . items || memoriesPayload ) . slice ( 0 , 6 ) ;
const memories = safeArray ( memoriesPayload ? . items || memoriesPayload ) . slice ( 0 , 6 ) ;
const skills = safeArray ( skillsPayload ? . items || skillsPayload ) . slice ( 0 , 6 ) ;
const skills = safeArray ( skillsPayload ? . items || skillsPayload ) . slice ( 0 , 6 ) ;
const recentExecutionOnelinerConfigStale = isConfigurationVersionStale (
profile ? . recent _execution || { } ,
appState . onelinerProfile ? . current _version || { }
) ;
const recentExecutionPlatformConfigStale = isConfigurationVersionStale (
{
version _id : profile ? . recent _execution ? . platform _agent _profile _version _id ,
version _no : profile ? . recent _execution ? . platform _agent _profile _version _no ,
} ,
profile ? . current _version || { }
) ;
const skillVersionEntries = await Promise . all (
const skillVersionEntries = await Promise . all (
skills . map ( async ( item ) => {
skills . map ( async ( item ) => {
const payload = await storyforgeFetch ( ` /v2/platform-agents/ ${ encodeURIComponent ( normalizedPlatform ) } /skills/ ${ encodeURIComponent ( item . id ) } /versions?project_id= ${ encodeURIComponent ( project . id ) } ` ) . catch ( ( ) => ( { items : [ ] } ) ) ;
const payload = await storyforgeFetch ( ` /v2/platform-agents/ ${ encodeURIComponent ( normalizedPlatform ) } /skills/ ${ encodeURIComponent ( item . id ) } /versions?project_id= ${ encodeURIComponent ( project . id ) } ` ) . catch ( ( ) => ( { items : [ ] } ) ) ;
@@ -9563,13 +9627,17 @@ async function openPlatformAgentDetailAction(platform) {
${ profile . recent _execution ? . run _id ? `
${ profile . recent _execution ? . run _id ? `
<div class="task-item compact" style="margin-top:12px;">
<div class="task-item compact" style="margin-top:12px;">
<h4>最近执行</h4>
<h4>最近执行</h4>
<p> ${ escapeHtml ( profile . recent _execution . summary || "最近一次主 Agent 执行已回写到当前平台 Agent。" ) } </p>
<p> ${ escapeHtml ( profile . recent _execution . title || profile . recent _execution . goal || profile . recent _execution . summary || "最近一次主 Agent 执行已回写到当前平台 Agent。" ) } </p>
<div class="task-meta">
<div class="task-meta">
<span class="tag blue"> ${ escapeHtml ( profile . recent _execution . intent _label || "主 Agent 任务" ) } </span>
<span class="tag blue"> ${ escapeHtml ( profile . recent _execution . intent _label || "主 Agent 任务" ) } </span>
<span class="tag"> ${ escapeHtml ( profile . recent _execution . run _status || "done" ) } </span>
<span class="tag"> ${ escapeHtml ( profile . recent _execution . run _status || "done" ) } </span>
${ profile . recent _execution . platform _scope ? ` <span class="tag"> ${ escapeHtml ( profile . recent _execution . platform _scope === "all_platforms" ? "全平台" : "单平台" ) } </span> ` : "" }
${ profile . recent _execution . delivery _mode ? ` <span class="tag"> ${ escapeHtml ( profile . recent _execution . delivery _mode ) } </span> ` : "" }
${ profile . recent _execution . workstream _label ? ` <span class="tag green"> ${ escapeHtml ( profile . recent _execution . workstream _label ) } </span> ` : "" }
${ profile . recent _execution . workstream _label ? ` <span class="tag green"> ${ escapeHtml ( profile . recent _execution . workstream _label ) } </span> ` : "" }
${ profile . recent _execution . oneliner _profile _version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( profile . recent _execution . oneliner _profile _version _no ) ) } </span> ` : "" }
${ profile . recent _execution . oneliner _profile _version _no ? ` <span class="tag">配置 v ${ escapeHtml ( formatNumber ( profile . recent _execution . oneliner _profile _version _no ) ) } </span> ` : "" }
${ recentExecutionOnelinerConfigStale ? ` <span class="tag orange">主配置已更新</span> ` : "" }
${ profile . recent _execution . platform _agent _profile _version _no ? ` <span class="tag"> ${ escapeHtml ( platformLabel ( normalizedPlatform ) ) } Agent v ${ escapeHtml ( formatNumber ( profile . recent _execution . platform _agent _profile _version _no ) ) } </span> ` : "" }
${ profile . recent _execution . platform _agent _profile _version _no ? ` <span class="tag"> ${ escapeHtml ( platformLabel ( normalizedPlatform ) ) } Agent v ${ escapeHtml ( formatNumber ( profile . recent _execution . platform _agent _profile _version _no ) ) } </span> ` : "" }
${ recentExecutionPlatformConfigStale ? ` <span class="tag orange"> ${ escapeHtml ( platformLabel ( normalizedPlatform ) ) } Agent 已更新</span> ` : "" }
${ profile . recent _execution . source _screen ? ` <span class="tag"> ${ escapeHtml ( screenLabel ( profile . recent _execution . source _screen ) || profile . recent _execution . source _screen ) } </span> ` : "" }
${ profile . recent _execution . source _screen ? ` <span class="tag"> ${ escapeHtml ( screenLabel ( profile . recent _execution . source _screen ) || profile . recent _execution . source _screen ) } </span> ` : "" }
</div>
</div>
<div class="task-meta" style="margin-top:8px;">
<div class="task-meta" style="margin-top:8px;">