Skip to content

Commit 26d16dd

Browse files
committed
fix(harness): preserve empty prompt ranges
1 parent 7042a93 commit 26d16dd

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/agents/harness/prompt-compaction-hook-helpers.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,23 @@ describe("resolveAgentHarnessBeforePromptBuildResult", () => {
4444
promptInputRange: { start: 16, end: 21 },
4545
});
4646
});
47+
48+
it("keeps an empty input range between prepended and appended context", async () => {
49+
const result = await resolveAgentHarnessBeforePromptBuildResult({
50+
prompt: "",
51+
developerInstructions: "base instructions",
52+
messages: [],
53+
ctx: {},
54+
beforeAgentStartResult: {
55+
appendContext: "appended context",
56+
prependContext: "prepended context",
57+
},
58+
});
59+
60+
expect(result).toEqual({
61+
prompt: "prepended context\n\nappended context",
62+
developerInstructions: "base instructions",
63+
promptInputRange: { start: 17, end: 17 },
64+
});
65+
});
4766
});

src/agents/harness/prompt-compaction-hook-helpers.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,12 @@ export async function resolveAgentHarnessBeforePromptBuildResult(params: {
8888
]);
8989
const prompt =
9090
joinPresentTextSegments([promptPrefix, params.prompt, promptSuffix]) ?? params.prompt;
91-
const promptInputStart = promptPrefix ? promptPrefix.length + 2 : 0;
91+
const promptInputStart =
92+
params.prompt.length === 0
93+
? (promptPrefix?.length ?? 0)
94+
: promptPrefix
95+
? promptPrefix.length + 2
96+
: 0;
9297
return {
9398
prompt,
9499
developerInstructions:

0 commit comments

Comments
 (0)