refactor(ticket): contract backend ticket core

This commit is contained in:
mlogclub
2026-05-02 18:49:10 +08:00
parent b687804363
commit fce0b5709d
43 changed files with 1103 additions and 5615 deletions
@@ -27,8 +27,6 @@ type CreateTicketGraphInterruptInfo struct {
type createTicketGraphArgs struct {
Title string `json:"title"`
Description string `json:"description"`
Priority int64 `json:"priority"`
Severity int `json:"severity"`
}
func init() {
@@ -100,8 +98,7 @@ func (g *CreateTicketGraph) Run(ctx context.Context, argumentsInJSON string) (st
func (g *CreateTicketGraph) buildCreateRequest(argumentsInJSON string) (request.CreateTicketFromConversationRequest, error) {
req := request.CreateTicketFromConversationRequest{
ConversationID: g.conversation.ID,
SyncToConversation: true,
ConversationID: g.conversation.ID,
}
var args createTicketGraphArgs
if strings.TrimSpace(argumentsInJSON) != "" {
@@ -111,8 +108,6 @@ func (g *CreateTicketGraph) buildCreateRequest(argumentsInJSON string) (request.
}
req.Title = strings.TrimSpace(args.Title)
req.Description = strings.TrimSpace(args.Description)
req.Priority = args.Priority
req.Severity = args.Severity
if req.Title == "" {
req.Title = strings.TrimSpace(g.conversation.LastMessageSummary)
}
@@ -18,16 +18,12 @@ type PrepareTicketDraftInput struct {
Impact string `json:"impact"`
ExpectedOutcome string `json:"expectedOutcome"`
CurrentAttempt string `json:"currentAttempt"`
Priority int64 `json:"priority"`
Severity int `json:"severity"`
}
type PrepareTicketDraftResult struct {
Ready bool `json:"ready"`
Title string `json:"title"`
Description string `json:"description"`
Priority int64 `json:"priority,omitempty"`
Severity int `json:"severity,omitempty"`
MissingFields []string `json:"missingFields,omitempty"`
FollowUpQuestions []string `json:"followUpQuestions,omitempty"`
ConversationFacts []string `json:"conversationFacts,omitempty"`
@@ -74,8 +70,6 @@ func (g *PrepareTicketDraftGraph) parseInput(argumentsInJSON string) (PrepareTic
func buildPrepareTicketDraftResult(conversation models.Conversation, messages []models.Message, input PrepareTicketDraftInput) PrepareTicketDraftResult {
result := PrepareTicketDraftResult{
Priority: input.Priority,
Severity: input.Severity,
MissingFields: make([]string, 0, 2),
FollowUpQuestions: make([]string, 0, 2),
ConversationFacts: buildConversationFacts(conversation, messages),