feat: refactor ticket creation process to use Graph Tool for confirmation and state management

This commit is contained in:
mlogclub
2026-04-10 15:45:51 +08:00
parent e7a600b7d5
commit 3db7bec662
11 changed files with 273 additions and 147 deletions
@@ -17,6 +17,7 @@ type ToolMetadata struct {
ToolCode string
ServerCode string
ToolName string
SourceType string
}
type RuntimeTraceHandler struct {
@@ -58,6 +59,17 @@ func (h *RuntimeTraceHandler) WrapInvokableToolCall(_ context.Context, endpoint
item.ErrorMessage = err.Error()
}
h.collector.AddToolItem(item)
if metadata, ok := h.resolveToolMetadata(item.ToolName); ok && strings.TrimSpace(metadata.SourceType) == toolx.GraphToolCatalogServerCode {
h.collector.AddGraphToolItem(GraphToolTraceItem{
ToolCode: item.ToolCode,
ToolName: item.ToolName,
Arguments: item.Arguments,
ResultPreview: item.ResultPreview,
LatencyMs: item.LatencyMs,
Status: item.Status,
ErrorMessage: item.ErrorMessage,
})
}
if metadata, ok := h.resolveToolMetadata(item.ToolName); ok && strings.TrimSpace(metadata.ToolCode) == toolx.BuiltinToolSearchToolCode {
h.collector.AddToolSearchItem(h.buildToolSearchTraceItem(argumentsInJSON, result, err))
}
@@ -78,6 +90,7 @@ func (h *RuntimeTraceHandler) resolveToolMetadata(modelToolName string) (ToolMet
ToolCode: toolx.BuiltinToolSearchToolCode,
ServerCode: toolx.BuiltinToolCatalogServerCode,
ToolName: toolx.BuiltinToolSearchToolName,
SourceType: toolx.BuiltinToolCatalogServerCode,
}, true
}
metadata, ok := h.toolMetadataBy[modelToolName]