102 lines
2.1 KiB
JavaScript
102 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import readline from "node:readline";
|
|
|
|
const rl = readline.createInterface({ input: process.stdin });
|
|
const received = [];
|
|
|
|
function send(message) {
|
|
process.stdout.write(`${JSON.stringify(message)}\n`);
|
|
}
|
|
|
|
rl.on("line", (line) => {
|
|
const message = JSON.parse(line);
|
|
received.push(message);
|
|
|
|
if (message.method === "initialize") {
|
|
send({
|
|
id: message.id,
|
|
result: {
|
|
userAgent: "boss-test-codex-app-server",
|
|
platformFamily: "mac",
|
|
platformOs: "darwin",
|
|
},
|
|
});
|
|
return;
|
|
}
|
|
|
|
if (message.method === "initialized") {
|
|
return;
|
|
}
|
|
|
|
if (message.method === "thread/resume") {
|
|
send({
|
|
id: message.id,
|
|
result: {
|
|
thread: {
|
|
id: message.params?.threadId ?? "thread-fixture",
|
|
name: "fixture thread",
|
|
},
|
|
},
|
|
});
|
|
return;
|
|
}
|
|
|
|
if (message.method === "thread/start") {
|
|
send({
|
|
id: message.id,
|
|
result: {
|
|
thread: {
|
|
id: "thread-started-fixture",
|
|
name: "new fixture thread",
|
|
},
|
|
},
|
|
});
|
|
return;
|
|
}
|
|
|
|
if (message.method === "turn/start") {
|
|
const text = message.params?.input?.find?.((item) => item?.type === "text")?.text ?? "";
|
|
send({
|
|
id: message.id,
|
|
result: {
|
|
turn: {
|
|
id: "turn-fixture",
|
|
threadId: message.params?.threadId,
|
|
},
|
|
},
|
|
});
|
|
if (process.env.BOSS_CODEX_APP_SERVER_FIXTURE_EXIT_AFTER_TURN_START === "1") {
|
|
process.exit(0);
|
|
}
|
|
send({
|
|
method: "item/agentMessage/delta",
|
|
params: {
|
|
threadId: message.params?.threadId,
|
|
turnId: "turn-fixture",
|
|
delta: `APP_SERVER_REPLY:${text}`,
|
|
},
|
|
});
|
|
send({
|
|
method: "turn/completed",
|
|
params: {
|
|
threadId: message.params?.threadId,
|
|
turn: {
|
|
id: "turn-fixture",
|
|
status: "completed",
|
|
},
|
|
},
|
|
});
|
|
process.stderr.write(`${JSON.stringify({ received })}\n`);
|
|
return;
|
|
}
|
|
|
|
send({
|
|
id: message.id,
|
|
error: {
|
|
code: -32601,
|
|
message: `unknown method ${message.method}`,
|
|
},
|
|
});
|
|
});
|