-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathevents.go
More file actions
166 lines (151 loc) · 6.69 KB
/
Copy pathevents.go
File metadata and controls
166 lines (151 loc) · 6.69 KB
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
161
162
163
164
165
166
// Package client provides a Go client SDK for the HotPlex Worker Gateway.
package client
import "github.com/hrygo/hotplex/pkg/events"
// AEP protocol version.
const Version = events.Version // "aep/v1"
// Event kind constants matching pkg/events/events.go.
const (
EventInit = string(events.Init)
EventError = string(events.Error)
EventState = string(events.State)
EventInput = string(events.Input)
EventInputAck = string(events.InputAck)
EventDone = string(events.Done)
EventMessage = string(events.Message)
EventMessageStart = string(events.MessageStart)
EventMessageDelta = string(events.MessageDelta)
EventMessageEnd = string(events.MessageEnd)
EventToolCall = string(events.ToolCall)
EventToolResult = string(events.ToolResult)
EventReasoning = string(events.Reasoning)
EventStep = string(events.Step)
EventRaw = string(events.Raw)
EventPermissionRequest = string(events.PermissionRequest)
EventPermissionResponse = string(events.PermissionResponse)
EventQuestionRequest = string(events.QuestionRequest)
EventQuestionResponse = string(events.QuestionResponse)
EventElicitationRequest = string(events.ElicitationRequest)
EventElicitationResponse = string(events.ElicitationResponse)
EventPing = string(events.Ping)
EventPong = string(events.Pong)
EventControl = string(events.Control)
EventContextUsage = string(events.ContextUsage)
EventSkillsList = string(events.SkillsList)
EventMCPStatus = string(events.MCPStatus)
EventWorkerCmd = string(events.WorkerCmd)
EventToolUpdate = string(events.ToolUpdate)
EventPlan = string(events.Plan)
EventModeUpdate = string(events.ModeUpdate)
EventInitAck = "init_ack"
)
// ControlAction constants for client-initiated control.
const (
ControlActionTerminate = string(events.ControlActionTerminate)
ControlActionDelete = string(events.ControlActionDelete)
ControlActionReset = string(events.ControlActionReset)
ControlActionGC = string(events.ControlActionGC)
ControlActionReconnect = string(events.ControlActionReconnect)
ControlActionSessionInvalid = string(events.ControlActionSessionInvalid)
ControlActionThrottle = string(events.ControlActionThrottle)
ControlActionCD = string(events.ControlActionCD)
)
// SessionState mirrors pkg/events/events.go.
type SessionState = events.SessionState
// State constants.
const (
StateCreated = events.StateCreated
StateRunning = events.StateRunning
StateIdle = events.StateIdle
StateTerminated = events.StateTerminated
StateDeleted = events.StateDeleted
)
// ErrorCode mirrors pkg/events/events.go.
type ErrorCode = events.ErrorCode
// ErrorCode values.
const (
ErrCodeSessionBusy = events.ErrCodeSessionBusy
ErrCodeSessionAlreadyConnected = events.ErrCodeSessionAlreadyConnected
ErrCodeInternalError = events.ErrCodeInternalError
ErrCodeUnauthorized = events.ErrCodeUnauthorized
ErrCodeSessionNotFound = events.ErrCodeSessionNotFound
ErrCodeResumeRetry = events.ErrCodeResumeRetry
ErrCodeNotSupported = events.ErrCodeNotSupported
ErrCodeTurnTimeout = events.ErrCodeTurnTimeout
)
// Event data types re-exported from pkg/events for type-safe access.
type (
MessageStartData = events.MessageStartData
MessageDeltaData = events.MessageDeltaData
MessageEndData = events.MessageEndData
StateData = events.StateData
InputAckData = events.InputAckData
ExecutionStatus = events.ExecutionStatus
ReasoningData = events.ReasoningData
StepData = events.StepData
DoneData = events.DoneData
ToolCallData = events.ToolCallData
ToolResultData = events.ToolResultData
PermissionRequestData = events.PermissionRequestData
PermissionResponseData = events.PermissionResponseData
QuestionOption = events.QuestionOption
Question = events.Question
QuestionRequestData = events.QuestionRequestData
QuestionResponseData = events.QuestionResponseData
ElicitationRequestData = events.ElicitationRequestData
ElicitationResponseData = events.ElicitationResponseData
FileLocation = events.FileLocation
FileDiff = events.FileDiff
ContextUsageData = events.ContextUsageData
ContextCategory = events.ContextCategory
ContextSkillInfo = events.ContextSkillInfo
SkillsListData = events.SkillsListData
SkillEntry = events.SkillEntry
MCPStatusData = events.MCPStatusData
MCPServerInfo = events.MCPServerInfo
WorkerCommandData = events.WorkerCommandData
ToolUpdateData = events.ToolUpdateData
PlanData = events.PlanData
PlanItem = events.PlanItem
ModeUpdateData = events.ModeUpdateData
)
// Durable input execution status values.
const (
ExecutionStatusAccepted = events.ExecutionStatusAccepted
ExecutionStatusDelivered = events.ExecutionStatusDelivered
ExecutionStatusUnknown = events.ExecutionStatusUnknown
ExecutionStatusFailed = events.ExecutionStatusFailed
)
// ErrorData is the payload of an error event.
// Extends events.ErrorData with a Details field for structured error info.
type ErrorData struct {
Code ErrorCode `json:"code"`
Message string `json:"message"`
Details any `json:"details,omitempty"`
}
// Priority is the message delivery priority.
type Priority = events.Priority
const (
PriorityControl = events.PriorityControl
PriorityData = events.PriorityData
)
// InitAckData is returned after the server acknowledges the init handshake.
type InitAckData struct {
SessionID string `json:"session_id"`
State SessionState `json:"state"`
ServerCaps ServerCaps `json:"server_caps"`
Error string `json:"error,omitempty"`
Code ErrorCode `json:"code,omitempty"`
}
// ServerCaps describes server capabilities from init_ack.
type ServerCaps struct {
ProtocolVersion string `json:"protocol_version"`
WorkerType string `json:"worker_type"`
SupportsResume bool `json:"supports_resume"`
SupportsDelta bool `json:"supports_delta"`
SupportsTool bool `json:"supports_tool_call"`
SupportsPing bool `json:"supports_ping"`
MaxFrameSize int `json:"max_frame_size"`
MaxTurns int `json:"max_turns,omitempty"`
Modalities []string `json:"modalities,omitempty"`
Tools []string `json:"tools,omitempty"`
}