refactor(agent): tighten harness environment and resources

This commit is contained in:
Mario Zechner
2026-05-06 19:41:17 +02:00
parent e1ca501da8
commit 617d8b317d
21 changed files with 1305 additions and 389 deletions

View File

@@ -100,6 +100,37 @@ describe("Agent", () => {
expect(eventCount).toBe(0); // Should not increase
});
it("emits full lifecycle events for thrown run failures", async () => {
const agent = new Agent({
streamFn: () => {
throw new Error("provider exploded");
},
});
const events: string[] = [];
agent.subscribe((event) => {
events.push(event.type);
});
await agent.prompt("hello");
expect(events).toEqual([
"agent_start",
"turn_start",
"message_start",
"message_end",
"message_start",
"message_end",
"turn_end",
"agent_end",
]);
const lastMessage = agent.state.messages[agent.state.messages.length - 1];
expect(lastMessage?.role).toBe("assistant");
if (lastMessage?.role !== "assistant") throw new Error("Expected assistant message");
expect(lastMessage.stopReason).toBe("error");
expect(lastMessage.errorMessage).toBe("provider exploded");
expect(agent.state.errorMessage).toBe("provider exploded");
});
it("should await async subscribers before prompt resolves", async () => {
const barrier = createDeferred();
const agent = new Agent({