feat: expose codex runtime lifecycle events

This commit is contained in:
AI Bot
2026-06-03 12:27:41 +08:00
parent f23ed9f188
commit b31238b6e2
12 changed files with 180 additions and 7 deletions

View File

@@ -146,6 +146,11 @@ export function buildDeviceWorkspaceDetailCards(workspace: DeviceWorkspaceView)
codexAppServerMetadata.userInteractionGovernanceSummary,
);
const codexGuardianGovernanceSummary = objectFromMetadata(codexAppServerMetadata.guardianGovernanceSummary);
const codexRuntimeEventSummary = objectFromMetadata(codexAppServerMetadata.runtimeEventSummary);
const codexExtensionEventSummary = objectFromMetadata(codexAppServerMetadata.extensionEventSummary);
const codexThreadLifecycleEventSummary = objectFromMetadata(
codexAppServerMetadata.threadLifecycleEventSummary,
);
return {
capabilities: {
@@ -271,6 +276,23 @@ export function buildDeviceWorkspaceDetailCards(workspace: DeviceWorkspaceView)
)} 项 · 审批 ${numberFromMetadata(codexGuardianGovernanceSummary.approvalActionCount)} 项 · ${
codexGuardianGovernanceSummary.permissionRequestEventAvailable === true ? "权限事件可用" : "权限事件不可用"
}`,
codexRuntimeEvents: `运行事件:${numberFromMetadata(
codexRuntimeEventSummary.eventCount,
)} 项 · 进程 ${numberFromMetadata(codexRuntimeEventSummary.processEventCount)} 项 · ${
codexRuntimeEventSummary.rawResponseEventAvailable === true ? "原始响应可用" : "原始响应不可用"
}`,
codexExtensionEvents: `扩展事件:${numberFromMetadata(
codexExtensionEventSummary.eventCount,
)} 项 · ${
codexExtensionEventSummary.skillChangeEventAvailable === true ? "Skill 变更可用" : "Skill 变更不可用"
} · ${
codexExtensionEventSummary.pluginInstallEventAvailable === true ? "插件安装可用" : "插件安装不可用"
}`,
codexThreadLifecycleEvents: `线程生命周期:${numberFromMetadata(
codexThreadLifecycleEventSummary.eventCount,
)} 项 · 归档 ${numberFromMetadata(codexThreadLifecycleEventSummary.archiveEventCount)} 项 · ${
codexThreadLifecycleEventSummary.nameEventAvailable === true ? "改名可用" : "改名不可用"
} · ${codexThreadLifecycleEventSummary.closeEventAvailable === true ? "关闭可用" : "关闭不可用"}`,
preferredExecutionMode: `默认执行模式:${
selectedDevice?.preferredExecutionMode === "gui"
? "GUI"
@@ -968,6 +990,15 @@ export function DeviceEditorCard({
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
{detailCards.capabilities.items.codexGuardianGovernance}
</div>
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
{detailCards.capabilities.items.codexRuntimeEvents}
</div>
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
{detailCards.capabilities.items.codexExtensionEvents}
</div>
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
{detailCards.capabilities.items.codexThreadLifecycleEvents}
</div>
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
{detailCards.capabilities.items.preferredExecutionMode}
</div>