MCPcopy
hub / github.com/wavetermdev/waveterm / parseTermGetScrollbackInput

Function parseTermGetScrollbackInput

pkg/aiusechat/tools_term.go:46–82  ·  view source on GitHub ↗
(input any)

Source from the content-addressed store, hash-verified

44}
45
46func parseTermGetScrollbackInput(input any) (*TermGetScrollbackToolInput, error) {
47 const (
48 DefaultCount = 200
49 MaxCount = 1000
50 )
51
52 result := &TermGetScrollbackToolInput{
53 LineStart: 0,
54 Count: 0,
55 }
56
57 if input == nil {
58 result.Count = DefaultCount
59 return result, nil
60 }
61
62 inputBytes, err := json.Marshal(input)
63 if err != nil {
64 return nil, fmt.Errorf("failed to marshal input: %w", err)
65 }
66
67 if err := json.Unmarshal(inputBytes, result); err != nil {
68 return nil, fmt.Errorf("failed to unmarshal input: %w", err)
69 }
70
71 if result.Count == 0 {
72 result.Count = DefaultCount
73 }
74
75 if result.Count < 0 {
76 return nil, fmt.Errorf("count must be positive")
77 }
78
79 result.Count = min(result.Count, MaxCount)
80
81 return result, nil
82}
83
84func getTermScrollbackOutput(tabId string, widgetId string, rpcData wshrpc.CommandTermGetScrollbackLinesData) (*TermGetScrollbackToolOutput, error) {
85 ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected