feat: surface codex app server governance summaries
This commit is contained in:
@@ -75,6 +75,15 @@ function textFromMetadata(value: unknown) {
|
||||
return typeof value === "string" && value.trim() ? value.trim() : "未发现";
|
||||
}
|
||||
|
||||
function objectFromMetadata(value: unknown): Record<string, unknown> {
|
||||
return value && typeof value === "object" && !Array.isArray(value) ? (value as Record<string, unknown>) : {};
|
||||
}
|
||||
|
||||
function numberFromMetadata(value: unknown) {
|
||||
const numeric = Number(value);
|
||||
return Number.isFinite(numeric) ? Math.max(0, Math.round(numeric)) : 0;
|
||||
}
|
||||
|
||||
export function buildDeviceWorkspaceDetailCards(workspace: DeviceWorkspaceView) {
|
||||
const selectedDevice = workspace.selectedDevice;
|
||||
const primaryPolicy = workspace.projectExecutionPolicies?.[0];
|
||||
@@ -87,6 +96,11 @@ export function buildDeviceWorkspaceDetailCards(workspace: DeviceWorkspaceView)
|
||||
const codexCollaborationModeCount = arrayLength(codexAppServerMetadata.collaborationModes);
|
||||
const codexMcpServerCount = arrayLength(codexAppServerMetadata.mcpServers);
|
||||
const codexPermissionProfileCount = arrayLength(codexAppServerMetadata.permissionProfiles);
|
||||
const codexAccountSummary = objectFromMetadata(codexAppServerMetadata.accountSummary);
|
||||
const codexRateLimitSummary = objectFromMetadata(codexAppServerMetadata.rateLimitSummary);
|
||||
const codexAppConfigSummary = objectFromMetadata(codexAppServerMetadata.appConfigSummary);
|
||||
const codexConfigRequirements = objectFromMetadata(codexAppServerMetadata.configRequirements);
|
||||
const codexExternalAgentMigration = objectFromMetadata(codexAppServerMetadata.externalAgentMigration);
|
||||
|
||||
return {
|
||||
capabilities: {
|
||||
@@ -113,6 +127,14 @@ export function buildDeviceWorkspaceDetailCards(workspace: DeviceWorkspaceView)
|
||||
: "模型:未发现",
|
||||
codexExtensions: `扩展:Skill ${codexSkillCount} 个 · Plugin ${codexPluginCount} 个 · App ${codexAppCount} 个`,
|
||||
codexGovernance: `治理:实验特性 ${codexExperimentalFeatureCount} 个 · 协作模式 ${codexCollaborationModeCount} 个 · MCP ${codexMcpServerCount} 个 · 权限 ${codexPermissionProfileCount} 个`,
|
||||
codexAccount: `账号:${textFromMetadata(codexAccountSummary.authMode)} · 套餐 ${textFromMetadata(
|
||||
codexAccountSummary.planType,
|
||||
)} · 额度 ${numberFromMetadata(codexRateLimitSummary.maxUsedPercent)}%`,
|
||||
codexConfig: `配置:App ${numberFromMetadata(codexAppConfigSummary.appCount)} 个 · 已启用 ${numberFromMetadata(
|
||||
codexAppConfigSummary.enabledAppCount,
|
||||
)} 个 · 托管要求 ${numberFromMetadata(codexConfigRequirements.requirementCount)} 个 · 外部迁移 ${numberFromMetadata(
|
||||
codexExternalAgentMigration.itemCount,
|
||||
)} 项`,
|
||||
preferredExecutionMode: `默认执行模式:${
|
||||
selectedDevice?.preferredExecutionMode === "gui"
|
||||
? "GUI"
|
||||
@@ -747,6 +769,12 @@ export function DeviceEditorCard({
|
||||
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
|
||||
{detailCards.capabilities.items.codexGovernance}
|
||||
</div>
|
||||
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
|
||||
{detailCards.capabilities.items.codexAccount}
|
||||
</div>
|
||||
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
|
||||
{detailCards.capabilities.items.codexConfig}
|
||||
</div>
|
||||
<div className="rounded-2xl bg-[#F7F8FA] px-3 py-2">
|
||||
{detailCards.capabilities.items.preferredExecutionMode}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user