#!/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}`, }, }); });