ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
detections / detections (push) Canceled after 0s
23 lines
1.3 KiB
Go
23 lines
1.3 KiB
Go
package agent
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/Autumn-27/artex/db"
|
|
)
|
|
|
|
// FindingRecorder is injected by the host; agents never synthesize or copy
|
|
// evidence bodies themselves. Its implementation owns the atomic write.
|
|
type FindingRecorder interface {
|
|
Record(context.Context, db.RecordFindingInput, []db.TrafficRef) (*db.RecordedFinding, error)
|
|
}
|
|
|
|
// Tool-use guidance is appended without replacing the user's editable prompt.
|
|
// It does not require capture or claim that unavailable traffic tools exist.
|
|
const findingTrafficGuidance = "\n\n**漏洞流量证据(可选)**:调用 report_finding 上报漏洞时,如有已查看并确认支持漏洞结论的 HTTP 请求/响应,可用 traffic_refs 按复现顺序绑定真实 ID;域名和时间只作候选筛选,不推定关联。TCP 等非 HTTP 漏洞、未采集或无确切匹配时省略或传 [],在 evidence 保留命令输出、日志等其他可验证证据,建议说明未绑定原因。不要猜测 ID,也不要仅为补包重复探测。"
|
|
|
|
func (t *ToolSet) SetFindingRecorder(r FindingRecorder) { t.findingRecorder = r }
|
|
func (w *Worker) SetFindingRecorder(r FindingRecorder) { w.findingRecorder = r }
|
|
func (p *Planner) SetFindingRecorder(r FindingRecorder) { p.findingRecorder = r }
|
|
func (m *MainAgent) SetFindingRecorder(r FindingRecorder) { m.findingRecorder = r }
|