feat: discover codex app-server capabilities

This commit is contained in:
AI Bot
2026-05-31 03:44:02 +08:00
parent 4800352e22
commit f333676c36
16 changed files with 662 additions and 5 deletions

View File

@@ -31,6 +31,131 @@ rl.on("line", (line) => {
return;
}
if (message.method === "model/list") {
send({
id: message.id,
result: {
data: [
{
id: "gpt-5.4",
model: "gpt-5.4",
displayName: "GPT-5.4",
description: "Deep reasoning model",
hidden: false,
supportedReasoningEfforts: ["low", "medium", "high"],
defaultReasoningEffort: "medium",
inputModalities: ["text", "image"],
supportsPersonality: true,
serviceTiers: [{ id: "default", displayName: "Default" }],
defaultServiceTier: "default",
isDefault: true,
},
{
id: "gpt-5.4-mini",
model: "gpt-5.4-mini",
displayName: "GPT-5.4 mini",
description: "Fast response model",
hidden: false,
supportedReasoningEfforts: ["none", "low"],
defaultReasoningEffort: "none",
inputModalities: ["text"],
supportsPersonality: true,
serviceTiers: [],
defaultServiceTier: null,
isDefault: false,
},
],
nextCursor: null,
},
});
return;
}
if (message.method === "modelProvider/capabilities/read") {
send({
id: message.id,
result: {
namespaceTools: true,
imageGeneration: true,
webSearch: true,
},
});
return;
}
if (message.method === "skills/list") {
send({
id: message.id,
result: {
data: [
{
cwd: "/Users/kris/code/boss",
skills: [
{
name: "image2-ui-prototype",
description: "Generate high fidelity UI prototypes",
path: "/Users/kris/.codex/skills/image2-ui-prototype/SKILL.md",
scope: "user",
enabled: true,
},
],
errors: [],
},
],
},
});
return;
}
if (message.method === "plugin/list") {
send({
id: message.id,
result: {
marketplaces: [
{
name: "local",
path: "/Users/kris/.codex/plugins/marketplace.json",
interface: null,
plugins: [
{
id: "github",
remotePluginId: null,
localVersion: "1.0.0",
name: "GitHub",
installed: true,
enabled: true,
keywords: ["repo"],
},
],
},
],
marketplaceLoadErrors: [],
featuredPluginIds: ["github"],
},
});
return;
}
if (message.method === "app/list") {
send({
id: message.id,
result: {
data: [
{
id: "canva",
name: "Canva",
description: "Design app",
isAccessible: true,
isEnabled: true,
pluginDisplayNames: ["Canva"],
},
],
nextCursor: null,
},
});
return;
}
if (message.method === "thread/resume") {
send({
id: message.id,