feat: interrupt canceled codex app-server turns
This commit is contained in:
27
tests/fixtures/codex-app-server-runtime.mjs
vendored
27
tests/fixtures/codex-app-server-runtime.mjs
vendored
@@ -7,6 +7,7 @@ const received = [];
|
||||
let injectedItems = [];
|
||||
let extraSkillRoots = [];
|
||||
let overloadedTurnStartEmitted = false;
|
||||
let interruptibleTurn = null;
|
||||
|
||||
function send(message) {
|
||||
process.stdout.write(`${JSON.stringify(message)}\n`);
|
||||
@@ -645,6 +646,13 @@ rl.on("line", (line) => {
|
||||
if (process.env.BOSS_CODEX_APP_SERVER_FIXTURE_EXIT_AFTER_TURN_START === "1") {
|
||||
process.exit(0);
|
||||
}
|
||||
if (process.env.BOSS_CODEX_APP_SERVER_FIXTURE_WAIT_FOR_INTERRUPT === "1") {
|
||||
interruptibleTurn = {
|
||||
threadId: message.params?.threadId,
|
||||
turnId: "turn-fixture",
|
||||
};
|
||||
return;
|
||||
}
|
||||
if (process.env.BOSS_CODEX_APP_SERVER_FIXTURE_EMIT_PROGRESS === "1") {
|
||||
send({
|
||||
method: "turn/plan/updated",
|
||||
@@ -1503,6 +1511,25 @@ rl.on("line", (line) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.method === "turn/interrupt") {
|
||||
send({
|
||||
id: message.id,
|
||||
result: {},
|
||||
});
|
||||
send({
|
||||
method: "turn/completed",
|
||||
params: {
|
||||
threadId: message.params?.threadId ?? interruptibleTurn?.threadId,
|
||||
turn: {
|
||||
id: message.params?.turnId ?? interruptibleTurn?.turnId,
|
||||
status: "interrupted",
|
||||
},
|
||||
},
|
||||
});
|
||||
process.stderr.write(`${JSON.stringify({ received })}\n`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.method === "turn/steer") {
|
||||
const text = message.params?.input?.find?.((item) => item?.type === "text")?.text ?? "";
|
||||
send({
|
||||
|
||||
Reference in New Issue
Block a user