feat: 新增 update_finding_report 工具,写入漏洞 report 字段

- 新增 agent 写工具 update_finding_report(finding_id + report[Markdown]),
  整段覆盖该漏洞的详细报告;finding_id 传 report_finding 返回的 id
- 绑定 worker / planner / mainagent 三个 agent,经 BuiltinToolSeeds 自动入
  tools 目录(首插不覆盖,旧库升级重启即出现,可在 UI 管理/勾选)
- db.SetFindingReportByNodeID / ExplorationStore.SetFindingReport:按 finding
  节点 id 更新独立 findings 行的 report
- 详情页概览已渲染 report,写入后即可展示

go build / agent / server 测试通过。
This commit is contained in:
Autumn-27 committed 2026-08-18 11:56:43 -04:00
1 parent 8092167ae5
commit c0ac501c4b
4 files changed
+53 -3

No files matched your search

+2 -2
View File
@@ -582,7 +582,7 @@ func splitLines(s string) []string {
func (t *ToolSet) WorkerTools() []actool.CoreTool {
return []actool.CoreTool{
t.listFindings(), t.listFacts(), t.nodeDetail(),
t.addFinding(), t.recordFact(),
t.addFinding(), t.updateFindingReport(), t.recordFact(),
// cross-work retrieval
t.searchAllWorkerTraces(), t.listWorkerTraces(), t.getWorkerTrace(),
// asset management (handlers guard nil store internally)
@@ -599,7 +599,7 @@ func (t *ToolSet) MainAgentTools() []actool.CoreTool {
t.setGoals(),
// asset management (handlers guard nil store internally)
t.insertAssets(), t.addCompanyScope(), t.listAssets(),
t.addFinding(), t.recordFact(),
t.addFinding(), t.updateFindingReport(), t.recordFact(),
t.addTaskScope(),
// list_untested_assets:按需查本任务范围内未测资产(类型+分页),自行决定补测。
t.listUntestedAssets(),