feat: add PrepareTicketDraft tool and related graph for drafting ticket information
This commit is contained in:
@@ -29,10 +29,8 @@ func (r *Registry) Resolve(ctx Context) (*ToolSet, error) {
|
||||
continue
|
||||
}
|
||||
toolCode := strings.TrimSpace(toolDef.Code())
|
||||
if len(allowedToolCodes) > 0 {
|
||||
if _, ok := allowedToolCodes[toolCode]; !ok && !isAlwaysAllowedToolCode(toolCode) {
|
||||
continue
|
||||
}
|
||||
if len(allowedToolCodes) > 0 && !isAllowedToolCode(toolCode, allowedToolCodes) {
|
||||
continue
|
||||
}
|
||||
tool, err := toolDef.Build(ctx)
|
||||
if err != nil {
|
||||
@@ -51,6 +49,23 @@ func (r *Registry) Resolve(ctx Context) (*ToolSet, error) {
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func isAllowedToolCode(toolCode string, allowedToolCodes map[string]struct{}) bool {
|
||||
if len(allowedToolCodes) == 0 {
|
||||
return true
|
||||
}
|
||||
if _, ok := allowedToolCodes[toolCode]; ok {
|
||||
return true
|
||||
}
|
||||
if isAlwaysAllowedToolCode(toolCode) {
|
||||
return true
|
||||
}
|
||||
if strings.TrimSpace(toolCode) == toolx.GraphPrepareTicketDraftToolCode {
|
||||
_, ok := allowedToolCodes[toolx.GraphCreateTicketConfirmToolCode]
|
||||
return ok
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func makeAllowedToolCodeSet(input []string) map[string]struct{} {
|
||||
if len(input) == 0 {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user