feat: expose codex runtime lifecycle events
This commit is contained in:
@@ -1500,6 +1500,53 @@ function normalizeDiscoveryGuardianGovernanceSummary() {
|
||||
};
|
||||
}
|
||||
|
||||
function normalizeDiscoveryRuntimeEventSummary() {
|
||||
const events = [
|
||||
{ label: "进程输出", group: "process" },
|
||||
{ label: "进程退出", group: "process" },
|
||||
{ label: "原始响应完成", group: "rawResponse", rawResponse: true },
|
||||
];
|
||||
return {
|
||||
eventCount: events.length,
|
||||
processEventCount: events.filter((event) => event.group === "process").length,
|
||||
rawResponseEventAvailable: events.some((event) => event.rawResponse === true),
|
||||
notificationOnly: true,
|
||||
labels: events.map((event) => event.label),
|
||||
};
|
||||
}
|
||||
|
||||
function normalizeDiscoveryExtensionEventSummary() {
|
||||
const events = [
|
||||
{ label: "Skill 变更", group: "skill", skillChange: true },
|
||||
{ label: "插件安装", group: "plugin", pluginInstall: true },
|
||||
];
|
||||
return {
|
||||
eventCount: events.length,
|
||||
skillChangeEventAvailable: events.some((event) => event.skillChange === true),
|
||||
pluginInstallEventAvailable: events.some((event) => event.pluginInstall === true),
|
||||
notificationOnly: true,
|
||||
labels: events.map((event) => event.label),
|
||||
};
|
||||
}
|
||||
|
||||
function normalizeDiscoveryThreadLifecycleEventSummary() {
|
||||
const events = [
|
||||
{ label: "线程启动", group: "start" },
|
||||
{ label: "线程关闭", group: "close", close: true },
|
||||
{ label: "已归档", group: "archive" },
|
||||
{ label: "已恢复", group: "archive" },
|
||||
{ label: "改名完成", group: "name", name: true },
|
||||
];
|
||||
return {
|
||||
eventCount: events.length,
|
||||
archiveEventCount: events.filter((event) => event.group === "archive").length,
|
||||
nameEventAvailable: events.some((event) => event.name === true),
|
||||
closeEventAvailable: events.some((event) => event.close === true),
|
||||
notificationOnly: true,
|
||||
labels: events.map((event) => event.label),
|
||||
};
|
||||
}
|
||||
|
||||
function normalizeDiscoveryPlugins(result) {
|
||||
return asArray(result?.marketplaces)
|
||||
.flatMap((marketplace) => asArray(marketplace?.plugins))
|
||||
@@ -1997,6 +2044,9 @@ export async function discoverCodexAppServerCapabilities(runnerConfig) {
|
||||
mcpGovernanceSummary: normalizeDiscoveryMcpGovernanceSummary(),
|
||||
userInteractionGovernanceSummary: normalizeDiscoveryUserInteractionGovernanceSummary(),
|
||||
guardianGovernanceSummary: normalizeDiscoveryGuardianGovernanceSummary(),
|
||||
runtimeEventSummary: normalizeDiscoveryRuntimeEventSummary(),
|
||||
extensionEventSummary: normalizeDiscoveryExtensionEventSummary(),
|
||||
threadLifecycleEventSummary: normalizeDiscoveryThreadLifecycleEventSummary(),
|
||||
errors: [
|
||||
modelResult?.__bossError ? `model/list:${safeRuntimeDiagnosticText(modelResult.__bossError)}` : undefined,
|
||||
providerCapabilities?.__bossError
|
||||
|
||||
Reference in New Issue
Block a user