File size: 3,935 Bytes
9314c03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
syntax = "proto3";

package warp.multi_agent.v1;

import "google/protobuf/field_mask.proto";
import "options.proto";
import "suggestions.proto";
import "task.proto";

option go_package = "github.com/warp/warp-proto-apis/multi_agent/v1";

message ResponseEvent {
    oneof type {
        StreamInit init = 1;
        ClientActions client_actions = 2;
        StreamFinished finished = 3;
    }
    
    message StreamInit {
        string conversation_id = 1;
        string request_id = 2;
    }
    
    message ClientActions {
        repeated ClientAction actions = 1;
    }
    
    message StreamFinished {
        repeated TokenUsage token_usage = 8;
        message TokenUsage {
            string model_id = 1;
            uint32 total_input = 2;
            uint32 output = 3;
            uint32 input_cache_read = 4;
            uint32 input_cache_write = 5;
            float cost_in_cents = 6;
        }
        
        bool should_refresh_model_config = 9;
        
        RequestCost request_cost = 10;
        message RequestCost {
            float exact = 1;
        }
        
        ContextWindowInfo context_window_info = 11;
        message ContextWindowInfo {
            float context_window_usage = 1;
            bool summarized = 2;
        }
        
        oneof reason {
            Other other = 1;
            Done done = 2;
            ReachedMaxTokenLimit max_token_limit = 3;
            QuotaLimit quota_limit = 4;
            ContextWindowExceeded context_window_exceeded = 5;
            LLMUnavailable llm_unavailable = 6;
            InternalError internal_error = 7;
        }
        
        message Other {
            
        }
        
        message Done {
            
        }
        
        message ReachedMaxTokenLimit {
            
        }
        
        message QuotaLimit {
            
        }
        
        message ContextWindowExceeded {
            
        }
        
        message LLMUnavailable {
            
        }
        
        message InternalError {
            string message = 1;
        }
    }
}

message ClientAction {
    oneof action {
        CreateTask create_task = 1;
        UpdateTaskStatus update_task_status = 2;
        AddMessagesToTask add_messages_to_task = 3;
        UpdateTaskMessage update_task_message = 4;
        AppendToMessageContent append_to_message_content = 5;
        Suggestions show_suggestions = 6;
        UpdateTaskSummary update_task_summary = 7;
        UpdateTaskDescription update_task_description = 8;
        BeginTransaction begin_transaction = 9;
        CommitTransaction commit_transaction = 10;
        RollbackTransaction rollback_transaction = 11;
        StartNewConversation start_new_conversation = 12;
    }
    
    message CreateTask {
        Task task = 1;
    }
    
    message UpdateTaskStatus {
        string task_id = 1;
        TaskStatus task_status = 2;
    }
    
    message UpdateTaskDescription {
        string task_id = 1;
        string description = 2;
    }
    
    message AddMessagesToTask {
        string task_id = 1;
        repeated Message messages = 2;
    }
    
    message UpdateTaskMessage {
        string task_id = 3;
        Message message = 1;
        google.protobuf.FieldMask mask = 2;
    }
    
    message AppendToMessageContent {
        string task_id = 3;
        Message message = 1;
        google.protobuf.FieldMask mask = 2;
    }
    
    message UpdateTaskSummary {
        string task_id = 1;
        string summary = 2;
    }
    
    message BeginTransaction {
        
    }
    
    message CommitTransaction {
        
    }
    
    message RollbackTransaction {
        
    }
    
    message StartNewConversation {
        string start_from_message_id = 1;
    }
}