MCPcopy Create free account
hub / github.com/astercloud/aster / convertToProgressEvent

Method convertToProgressEvent

pkg/agent/subagent.go:621–655  ·  view source on GitHub ↗

convertToProgressEvent 转换事件为进度事件

(handle *SubAgentHandle, env types.AgentEventEnvelope)

Source from the content-addressed store, hash-verified

619
620// convertToProgressEvent 转换事件为进度事件
621func (m *SubAgentManager) convertToProgressEvent(handle *SubAgentHandle, env types.AgentEventEnvelope) *types.SubAgentProgressEvent {
622 event := env.Event
623 if event == nil {
624 return nil
625 }
626
627 var phase string
628 var message string
629 var progress int
630
631 switch e := event.(type) {
632 case *types.ProgressTextChunkEvent:
633 phase = "thinking"
634 message = truncateString(e.Delta, 100)
635 progress = 30
636 case *types.ProgressToolStartEvent:
637 phase = "tool_use"
638 message = "Using tool: " + e.Call.Name
639 progress = 50
640 case *types.ProgressToolEndEvent:
641 phase = "tool_use"
642 message = "Tool completed: " + e.Call.Name
643 progress = 70
644 default:
645 return nil
646 }
647
648 return &types.SubAgentProgressEvent{
649 AgentType: handle.AgentType,
650 TaskID: handle.ID,
651 Phase: phase,
652 Progress: progress,
653 Message: message,
654 }
655}
656
657// truncateString 截断字符串
658func truncateString(s string, maxLen int) string {

Callers 2

monitorProgressMethod · 0.95
forwardProgressMethod · 0.95

Calls 1

truncateStringFunction · 0.70

Tested by

no test coverage detected