53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
|
|
import { describe, expect, test } from "bun:test"
|
||
|
|
import { injectContinuationPrompt } from "./continuation-prompt-injector"
|
||
|
|
|
||
|
|
describe("ralph-loop continuation prompt injector", () => {
|
||
|
|
test("#given inherited message model includes variant #when injecting continuation prompt #then promptAsync receives variant as a top-level field", async () => {
|
||
|
|
// given
|
||
|
|
let promptBody:
|
||
|
|
| {
|
||
|
|
model?: { providerID: string; modelID: string }
|
||
|
|
variant?: string
|
||
|
|
}
|
||
|
|
| undefined
|
||
|
|
const model = {
|
||
|
|
providerID: "openai",
|
||
|
|
modelID: "gpt-5.3-codex",
|
||
|
|
variant: "max",
|
||
|
|
}
|
||
|
|
const ctx = {
|
||
|
|
client: {
|
||
|
|
session: {
|
||
|
|
messages: async () => ({
|
||
|
|
data: [{ info: { agent: "sisyphus", model } }],
|
||
|
|
}),
|
||
|
|
promptAsync: async (input: {
|
||
|
|
body: {
|
||
|
|
model?: { providerID: string; modelID: string }
|
||
|
|
variant?: string
|
||
|
|
}
|
||
|
|
}) => {
|
||
|
|
promptBody = input.body
|
||
|
|
return {}
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
// when
|
||
|
|
await injectContinuationPrompt(ctx as never, {
|
||
|
|
sessionID: "ses_ralph_variant",
|
||
|
|
prompt: "continue",
|
||
|
|
directory: "/tmp/test",
|
||
|
|
apiTimeoutMs: 50,
|
||
|
|
})
|
||
|
|
|
||
|
|
// then
|
||
|
|
expect(promptBody?.model).toEqual({
|
||
|
|
providerID: "openai",
|
||
|
|
modelID: "gpt-5.3-codex",
|
||
|
|
})
|
||
|
|
expect(promptBody?.variant).toBe("max")
|
||
|
|
})
|
||
|
|
})
|