Files
next-tjwater-agent/.opencode/tools/final_answer.ts
T
jiang 6336157ff4
Generic Container CI/CD / test-build-publish (push) Successful in 1m6s
Agent CI/CD / build-test-publish-and-deploy (push) Successful in 1m7s
feat: upgrade investigation and presentation runtime
2026-10-30 17:30:19 +08:00

19 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { tool } from "../tool.js";
import { answerUiAnchors } from "../../src/chat/answer-ui-publication.js";
export default tool({
description: "提交本轮完整的最终答复。收尾前按阅读任务检查表达:多对象比较和数值趋势优先已用 present_answer 发布 Table/Chart,简单解释、单个事实或用户要求纯文字可直接回答;不要遗漏报告需要的交互内容。全部工具结果与需要的业务写回已核实后调用;需要浏览器动作回执时先核实回执,本地回答界面发布不等待浏览器回执;阶段说明留在过程记录。answer 保留必要正文、结论和关键边界,不重复整张表;在 answer 中用独立一行 [[ui:block_id]] 指定界面位置,代码块、缩进代码和引用中的标记不生效。ui_block_ids 是允许引用列表,必须与锚点去重后的顺序一致,只列本轮已经用 present_answer phase=final 发布的 block_id;process 界面不得引用。收到最终报告后,其他过程文字、界面与轨迹自动折叠。普通聊天与任务协作在此工具完成、当前工具和追加输入均已处理后结束本轮,之后不能继续更新界面;需要补充内容应先更新再提交最终答复。后台任务仍以 Server 的完成/失败接口为准,此工具不代表任务、工单或运行已完成。",
args: {
answer: tool.schema.string().min(1).max(30000),
ui_block_ids: tool.schema.array(tool.schema.string().regex(/^[a-zA-Z0-9_-]{1,80}$/)).max(48).optional(),
},
async execute({ answer, ui_block_ids }) {
const refs = ui_block_ids ?? [];
const anchors = [...new Set(answerUiAnchors(answer))];
if (JSON.stringify(anchors) !== JSON.stringify(refs)) {
throw new Error("ui_block_ids 必须与 answer 中独立一行的 [[ui:block_id]] 锚点按去重后顺序一致");
}
return JSON.stringify({ answer, ui_block_ids: refs });
},
});