fix(harness): preserve empty prompt ranges

This commit is contained in:
Vincent Koc
2026-06-21 06:42:55 +08:00
committed by Vincent Koc
parent e66c36df37
commit 15f2a56590
2 changed files with 25 additions and 1 deletions

View File

@@ -44,4 +44,23 @@ describe("resolveAgentHarnessBeforePromptBuildResult", () => {
promptInputRange: { start: 16, end: 21 },
});
});
it("keeps an empty input range between prepended and appended context", async () => {
const result = await resolveAgentHarnessBeforePromptBuildResult({
prompt: "",
developerInstructions: "base instructions",
messages: [],
ctx: {},
beforeAgentStartResult: {
appendContext: "appended context",
prependContext: "prepended context",
},
});
expect(result).toEqual({
prompt: "prepended context\n\nappended context",
developerInstructions: "base instructions",
promptInputRange: { start: 17, end: 17 },
});
});
});

View File

@@ -88,7 +88,12 @@ export async function resolveAgentHarnessBeforePromptBuildResult(params: {
]);
const prompt =
joinPresentTextSegments([promptPrefix, params.prompt, promptSuffix]) ?? params.prompt;
const promptInputStart = promptPrefix ? promptPrefix.length + 2 : 0;
const promptInputStart =
params.prompt.length === 0
? (promptPrefix?.length ?? 0)
: promptPrefix
? promptPrefix.length + 2
: 0;
return {
prompt,
developerInstructions: