feat(agent): budget reminders, usage while waiting, budget-exceeded status and dedupe
- tool results carry a budget reminder near limits; text before the last tool call is dropped as report when cut by budget/abort - usage persisted when a run suspends, so waiting sessions show spent tokens - task page shows budget_exceeded via business.outcome instead of completed - budget-exceeded decisions merge by root cause (decision / schedule / goal template); new summaries added to investigate allowlist Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
4cd9ec8390
commit
a00a9eaf5d
14 files changed
+205
-21
No files matched your search
@@ -0,0 +1,25 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { engineRunStatus } from "./labels.ts";
|
||||
|
||||
describe("任务行状态", () => {
|
||||
const agent = (outcome: string | null) => ({
|
||||
kind: "agent" as const,
|
||||
refId: "r1",
|
||||
title: null,
|
||||
triggeredBy: null,
|
||||
outcome,
|
||||
});
|
||||
it("引擎跑完但 Agent 会话超出预算 / 失败:显示业务结果,不显示「完成」", () => {
|
||||
expect(engineRunStatus({ status: "completed", business: agent("budget_exceeded") })).toEqual({
|
||||
label: "超出预算",
|
||||
tone: "warning",
|
||||
});
|
||||
expect(engineRunStatus({ status: "completed", business: agent("failed") }).label).toBe("失败");
|
||||
expect(engineRunStatus({ status: "completed", business: agent("succeeded") }).label).toBe("完成");
|
||||
});
|
||||
it("引擎自身失败 / 进行中照旧;没有业务对象照旧", () => {
|
||||
expect(engineRunStatus({ status: "failed", business: agent("budget_exceeded") }).label).toBe("失败");
|
||||
expect(engineRunStatus({ status: "running", business: agent("running") }).label).toBe("进行中");
|
||||
expect(engineRunStatus({ status: "completed", business: null }).label).toBe("完成");
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user