From 42c1cd6a852be5295aedc5c19e1a2aef45a464e3 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Thu, 29 May 2025 11:17:34 -0400 Subject: event --- pkg/client/event.go | 4 +++- pkg/client/gen/event.json | 26 ++++++++++++++++++++++ pkg/client/generated-event.go | 52 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) (limited to 'pkg') diff --git a/pkg/client/event.go b/pkg/client/event.go index 8873bdf7b..a43c4c8ea 100644 --- a/pkg/client/event.go +++ b/pkg/client/event.go @@ -10,7 +10,9 @@ import ( ) var EventMap = map[string]any{ - "storage.write": EventStorageWrite{}, + "storage.write": EventStorageWrite{}, + "session.updated": EventSessionUpdated{}, + "message.updated": EventMessageUpdated{}, } type EventMessage struct { diff --git a/pkg/client/gen/event.json b/pkg/client/gen/event.json index e9b9256e9..e40f1308f 100644 --- a/pkg/client/gen/event.json +++ b/pkg/client/gen/event.json @@ -29,6 +29,32 @@ "serverID", "path" ] + }, + "event.message.updated": { + "type": "object", + "properties": { + "sessionID": { + "type": "string" + }, + "messageID": { + "type": "string" + } + }, + "required": [ + "sessionID", + "messageID" + ] + }, + "event.session.updated": { + "type": "object", + "properties": { + "sessionID": { + "type": "string" + } + }, + "required": [ + "sessionID" + ] } } } \ No newline at end of file diff --git a/pkg/client/generated-event.go b/pkg/client/generated-event.go index 0d8e67eb7..12485b648 100644 --- a/pkg/client/generated-event.go +++ b/pkg/client/generated-event.go @@ -34,6 +34,58 @@ func (j *EventLspClientDiagnostics) UnmarshalJSON(value []byte) error { return nil } +type EventMessageUpdated struct { + // MessageID corresponds to the JSON schema field "messageID". + MessageID string `json:"messageID" yaml:"messageID" mapstructure:"messageID"` + + // SessionID corresponds to the JSON schema field "sessionID". + SessionID string `json:"sessionID" yaml:"sessionID" mapstructure:"sessionID"` +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *EventMessageUpdated) UnmarshalJSON(value []byte) error { + var raw map[string]interface{} + if err := json.Unmarshal(value, &raw); err != nil { + return err + } + if _, ok := raw["messageID"]; raw != nil && !ok { + return fmt.Errorf("field messageID in EventMessageUpdated: required") + } + if _, ok := raw["sessionID"]; raw != nil && !ok { + return fmt.Errorf("field sessionID in EventMessageUpdated: required") + } + type Plain EventMessageUpdated + var plain Plain + if err := json.Unmarshal(value, &plain); err != nil { + return err + } + *j = EventMessageUpdated(plain) + return nil +} + +type EventSessionUpdated struct { + // SessionID corresponds to the JSON schema field "sessionID". + SessionID string `json:"sessionID" yaml:"sessionID" mapstructure:"sessionID"` +} + +// UnmarshalJSON implements json.Unmarshaler. +func (j *EventSessionUpdated) UnmarshalJSON(value []byte) error { + var raw map[string]interface{} + if err := json.Unmarshal(value, &raw); err != nil { + return err + } + if _, ok := raw["sessionID"]; raw != nil && !ok { + return fmt.Errorf("field sessionID in EventSessionUpdated: required") + } + type Plain EventSessionUpdated + var plain Plain + if err := json.Unmarshal(value, &plain); err != nil { + return err + } + *j = EventSessionUpdated(plain) + return nil +} + type EventStorageWrite struct { // Content corresponds to the JSON schema field "content". Content interface{} `json:"content" yaml:"content" mapstructure:"content"` -- cgit v1.2.3