feat: finalize dc dual-channel security rollout

This commit is contained in:
kory
2026-10-02 13:23:25 +08:00
parent a5620cb9c4
commit 192969d7f6
11 changed files with 1964 additions and 85 deletions
+96 -15
View File
@@ -3,21 +3,25 @@ package cluster
import "github.com/wjyhk/vps-commander/internal/sysinfo"
type Message struct {
ID string `json:"id,omitempty"`
Event string `json:"event,omitempty"`
Action string `json:"action,omitempty"`
Device string `json:"device,omitempty"`
Arch string `json:"arch,omitempty"`
OS string `json:"os,omitempty"`
Status string `json:"status,omitempty"`
Payload any `json:"payload,omitempty"`
Profile *sysinfo.Profile `json:"profile,omitempty"`
ExitCode int `json:"exit_code,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
DurationMS int64 `json:"duration_ms,omitempty"`
Error string `json:"error,omitempty"`
TS int64 `json:"ts,omitempty"`
ID string `json:"id,omitempty"`
Event string `json:"event,omitempty"`
Action string `json:"action,omitempty"`
SubAction string `json:"sub_action,omitempty"`
Device string `json:"device,omitempty"`
Arch string `json:"arch,omitempty"`
OS string `json:"os,omitempty"`
Status string `json:"status,omitempty"`
Payload any `json:"payload,omitempty"`
Profile *sysinfo.Profile `json:"profile,omitempty"`
ExitCode int `json:"exit_code,omitempty"`
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
DurationMS int64 `json:"duration_ms,omitempty"`
Error string `json:"error,omitempty"`
TS int64 `json:"ts,omitempty"`
ProtocolVersion string `json:"protocol_version,omitempty"`
AgentVersion string `json:"agent_version,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
}
type ExecPayload struct {
@@ -36,3 +40,80 @@ type FileWritePayload struct {
Path string `json:"path"`
Content string `json:"content"`
}
type EditBlockPayload struct {
Path string `json:"path"`
OldText string `json:"old_text"`
NewText string `json:"new_text"`
ExpectedHash string `json:"expected_hash,omitempty"`
}
type EditBlockResult struct {
BytesWritten int64 `json:"bytes_written"`
}
type StartProcessPayload struct {
Command string `json:"command"`
Workdir string `json:"workdir,omitempty"`
SessionID string `json:"session_id"`
Owner string `json:"owner,omitempty"`
RingCapacity int `json:"ring_capacity,omitempty"`
}
type ProcessInputPayload struct {
SessionID string `json:"session_id"`
Data string `json:"data"`
Owner string `json:"owner"`
}
type ProcessOutputPayload struct {
SessionID string `json:"session_id"`
Stdout string `json:"stdout"`
Stderr string `json:"stderr"`
ExitCode int `json:"exit_code"`
Running bool `json:"running"`
}
type ListDirectoryPayload struct {
Path string `json:"path"`
Recursive bool `json:"recursive,omitempty"`
MaxEntries int `json:"max_entries,omitempty"`
}
type FileInfoPayload struct {
Path string `json:"path"`
}
type ReadMultipleFilesPayload struct {
Paths []string `json:"paths"`
Limit int64 `json:"limit,omitempty"`
}
type CreateDirectoryPayload struct {
Path string `json:"path"`
}
type MoveFilePayload struct {
Source string `json:"source"`
Destination string `json:"destination"`
}
type SearchPayload struct {
Root string `json:"root"`
Query string `json:"query"`
MaxResults int `json:"max_results,omitempty"`
}
type Entry struct {
Name string `json:"name"`
Path string `json:"path"`
IsDir bool `json:"is_dir"`
Size int64 `json:"size"`
Mode string `json:"mode"`
}
type FileInfo struct {
Path string `json:"path"`
Name string `json:"name"`
IsDir bool `json:"is_dir"`
Size int64 `json:"size"`
Mode string `json:"mode"`
ModTime int64 `json:"mod_time"`
}
type SearchResult struct {
Path string `json:"path"`
Line int `json:"line,omitempty"`
Text string `json:"text,omitempty"`
}