This commit is contained in:
Timothy Jaeryang Baek
2026-06-25 15:56:10 +01:00
parent ede39d82de
commit 8f890f0b43
2 changed files with 198 additions and 174 deletions
+177 -171
View File
@@ -42,177 +42,177 @@ class EventDefinition(BaseModel):
class EventDefinitions(BaseModel):
model_config = ConfigDict(frozen=True)
SYSTEM_STARTUP_STARTED: EventDefinition = EventDefinition(name='system.startup.started')
SYSTEM_STARTUP_COMPLETED: EventDefinition = EventDefinition(name='system.startup.completed')
SYSTEM_SHUTDOWN_STARTED: EventDefinition = EventDefinition(name='system.shutdown.started')
SYSTEM_SHUTDOWN_COMPLETED: EventDefinition = EventDefinition(name='system.shutdown.completed')
CONFIG_IMPORTED: EventDefinition = EventDefinition(name='config.imported')
CONFIG_UPDATED: EventDefinition = EventDefinition(name='config.updated')
CONFIG_WEBHOOK_UPDATED: EventDefinition = EventDefinition(name='config.webhook.updated')
CONFIG_CONNECTIONS_UPDATED: EventDefinition = EventDefinition(name='config.connections.updated')
CONFIG_TOOL_SERVERS_UPDATED: EventDefinition = EventDefinition(name='config.tool_servers.updated')
CONFIG_TERMINAL_SERVERS_UPDATED: EventDefinition = EventDefinition(name='config.terminal_servers.updated')
CONFIG_CODE_EXECUTION_UPDATED: EventDefinition = EventDefinition(name='config.code_execution.updated')
CONFIG_MODELS_UPDATED: EventDefinition = EventDefinition(name='config.models.updated')
CONFIG_BANNERS_UPDATED: EventDefinition = EventDefinition(name='config.banners.updated')
CONFIG_SUGGESTIONS_UPDATED: EventDefinition = EventDefinition(name='config.suggestions.updated')
AUTH_SIGNUP: EventDefinition = EventDefinition(name='auth.signup')
AUTH_LOGIN: EventDefinition = EventDefinition(name='auth.login')
AUTH_LOGOUT: EventDefinition = EventDefinition(name='auth.logout')
AUTH_PASSWORD_CHANGED: EventDefinition = EventDefinition(name='auth.password_changed')
AUTH_API_KEY_CREATED: EventDefinition = EventDefinition(name='auth.api_key.created')
AUTH_API_KEY_DELETED: EventDefinition = EventDefinition(name='auth.api_key.deleted')
AUTH_OAUTH_SESSION_DELETED: EventDefinition = EventDefinition(name='auth.oauth_session.deleted')
SYSTEM_STARTUP_STARTED: EventDefinition = EventDefinition(name='system.startup.started', description='Application startup began.', message='Startup started')
SYSTEM_STARTUP_COMPLETED: EventDefinition = EventDefinition(name='system.startup.completed', description='Application startup completed.', message='Startup completed')
SYSTEM_SHUTDOWN_STARTED: EventDefinition = EventDefinition(name='system.shutdown.started', description='Application shutdown began.', message='Shutdown started')
SYSTEM_SHUTDOWN_COMPLETED: EventDefinition = EventDefinition(name='system.shutdown.completed', description='Application shutdown completed.', message='Shutdown completed')
CONFIG_IMPORTED: EventDefinition = EventDefinition(name='config.imported', description='Configuration was imported.', message='Config imported')
CONFIG_UPDATED: EventDefinition = EventDefinition(name='config.updated', description='Configuration was updated.', message='Config updated')
CONFIG_WEBHOOK_UPDATED: EventDefinition = EventDefinition(name='config.webhook.updated', description='Event webhook configuration was updated.', message='Webhook configuration updated')
CONFIG_CONNECTIONS_UPDATED: EventDefinition = EventDefinition(name='config.connections.updated', description='Connection configuration was updated.', message='Config Connections updated')
CONFIG_TOOL_SERVERS_UPDATED: EventDefinition = EventDefinition(name='config.tool_servers.updated', description='Tool server configuration was updated.', message='Config Tool Servers updated')
CONFIG_TERMINAL_SERVERS_UPDATED: EventDefinition = EventDefinition(name='config.terminal_servers.updated', description='Terminal server configuration was updated.', message='Config Terminal Servers updated')
CONFIG_CODE_EXECUTION_UPDATED: EventDefinition = EventDefinition(name='config.code_execution.updated', description='Code execution configuration was updated.', message='Config Code Execution updated')
CONFIG_MODELS_UPDATED: EventDefinition = EventDefinition(name='config.models.updated', description='Model configuration was updated.', message='Config Models updated')
CONFIG_BANNERS_UPDATED: EventDefinition = EventDefinition(name='config.banners.updated', description='Banner configuration was updated.', message='Config Banners updated')
CONFIG_SUGGESTIONS_UPDATED: EventDefinition = EventDefinition(name='config.suggestions.updated', description='Suggestion configuration was updated.', message='Config Suggestions updated')
AUTH_SIGNUP: EventDefinition = EventDefinition(name='auth.signup', description='A user account was created through signup.', message='User signed up')
AUTH_LOGIN: EventDefinition = EventDefinition(name='auth.login', description='A user successfully logged in.', message='User logged in')
AUTH_LOGOUT: EventDefinition = EventDefinition(name='auth.logout', description='A user logged out.', message='User logged out')
AUTH_PASSWORD_CHANGED: EventDefinition = EventDefinition(name='auth.password_changed', description='A user password was changed.', message='Password changed')
AUTH_API_KEY_CREATED: EventDefinition = EventDefinition(name='auth.api_key.created', description='A user API key was created.', message='API key created')
AUTH_API_KEY_DELETED: EventDefinition = EventDefinition(name='auth.api_key.deleted', description='A user API key was deleted.', message='API key deleted')
AUTH_OAUTH_SESSION_DELETED: EventDefinition = EventDefinition(name='auth.oauth_session.deleted', description='An OAuth session was deleted.', message='OAuth session deleted')
USER_CREATED: EventDefinition = EventDefinition(name='user.created', description='A user account was created.', message='User created')
USER_UPDATED: EventDefinition = EventDefinition(name='user.updated')
USER_DELETED: EventDefinition = EventDefinition(name='user.deleted')
USER_ROLE_UPDATED: EventDefinition = EventDefinition(name='user.role_updated')
USER_STATUS_UPDATED: EventDefinition = EventDefinition(name='user.status_updated')
USER_SETTINGS_UPDATED: EventDefinition = EventDefinition(name='user.settings_updated')
USER_PROFILE_UPDATED: EventDefinition = EventDefinition(name='user.profile_updated')
USER_PERMISSIONS_UPDATED: EventDefinition = EventDefinition(name='user.permissions_updated')
GROUP_CREATED: EventDefinition = EventDefinition(name='group.created')
GROUP_UPDATED: EventDefinition = EventDefinition(name='group.updated')
GROUP_DELETED: EventDefinition = EventDefinition(name='group.deleted')
GROUP_MEMBER_ADDED: EventDefinition = EventDefinition(name='group.member_added')
GROUP_MEMBER_REMOVED: EventDefinition = EventDefinition(name='group.member_removed')
CHAT_CREATED: EventDefinition = EventDefinition(name='chat.created')
CHAT_IMPORTED: EventDefinition = EventDefinition(name='chat.imported')
CHAT_UPDATED: EventDefinition = EventDefinition(name='chat.updated')
CHAT_DELETED: EventDefinition = EventDefinition(name='chat.deleted')
CHAT_DELETED_ALL: EventDefinition = EventDefinition(name='chat.deleted_all')
CHAT_COMPACTED: EventDefinition = EventDefinition(name='chat.compacted')
CHAT_PINNED: EventDefinition = EventDefinition(name='chat.pinned')
CHAT_UNPINNED: EventDefinition = EventDefinition(name='chat.unpinned')
CHAT_CLONED: EventDefinition = EventDefinition(name='chat.cloned')
CHAT_ARCHIVED: EventDefinition = EventDefinition(name='chat.archived')
CHAT_UNARCHIVED: EventDefinition = EventDefinition(name='chat.unarchived')
CHAT_SHARED: EventDefinition = EventDefinition(name='chat.shared')
CHAT_UNSHARED: EventDefinition = EventDefinition(name='chat.unshared')
CHAT_FOLDER_UPDATED: EventDefinition = EventDefinition(name='chat.folder_updated')
CHAT_TAG_ADDED: EventDefinition = EventDefinition(name='chat.tag_added')
CHAT_TAG_REMOVED: EventDefinition = EventDefinition(name='chat.tag_removed')
MESSAGE_CREATED: EventDefinition = EventDefinition(name='message.created')
MESSAGE_UPDATED: EventDefinition = EventDefinition(name='message.updated')
MESSAGE_DELETED: EventDefinition = EventDefinition(name='message.deleted')
MESSAGE_EVENT_RECEIVED: EventDefinition = EventDefinition(name='message.event_received')
MESSAGE_REACTION_ADDED: EventDefinition = EventDefinition(name='message.reaction_added')
MESSAGE_REACTION_REMOVED: EventDefinition = EventDefinition(name='message.reaction_removed')
MESSAGE_PINNED: EventDefinition = EventDefinition(name='message.pinned')
MESSAGE_UNPINNED: EventDefinition = EventDefinition(name='message.unpinned')
CHANNEL_CREATED: EventDefinition = EventDefinition(name='channel.created')
CHANNEL_UPDATED: EventDefinition = EventDefinition(name='channel.updated')
CHANNEL_DELETED: EventDefinition = EventDefinition(name='channel.deleted')
CHANNEL_MEMBER_ADDED: EventDefinition = EventDefinition(name='channel.member_added')
CHANNEL_MEMBER_REMOVED: EventDefinition = EventDefinition(name='channel.member_removed')
CHANNEL_MEMBER_ACTIVE_UPDATED: EventDefinition = EventDefinition(name='channel.member_active_updated')
CHANNEL_WEBHOOK_CREATED: EventDefinition = EventDefinition(name='channel.webhook.created')
CHANNEL_WEBHOOK_UPDATED: EventDefinition = EventDefinition(name='channel.webhook.updated')
CHANNEL_WEBHOOK_DELETED: EventDefinition = EventDefinition(name='channel.webhook.deleted')
FILE_UPLOADED: EventDefinition = EventDefinition(name='file.uploaded')
FILE_CONTENT_UPDATED: EventDefinition = EventDefinition(name='file.content_updated')
FILE_RENAMED: EventDefinition = EventDefinition(name='file.renamed')
FILE_DELETED: EventDefinition = EventDefinition(name='file.deleted')
FILE_DELETED_ALL: EventDefinition = EventDefinition(name='file.deleted_all')
FOLDER_CREATED: EventDefinition = EventDefinition(name='folder.created')
FOLDER_UPDATED: EventDefinition = EventDefinition(name='folder.updated')
FOLDER_PARENT_UPDATED: EventDefinition = EventDefinition(name='folder.parent_updated')
FOLDER_ACCESS_UPDATED: EventDefinition = EventDefinition(name='folder.access_updated')
FOLDER_DELETED: EventDefinition = EventDefinition(name='folder.deleted')
NOTE_CREATED: EventDefinition = EventDefinition(name='note.created')
NOTE_UPDATED: EventDefinition = EventDefinition(name='note.updated')
NOTE_ACCESS_UPDATED: EventDefinition = EventDefinition(name='note.access_updated')
NOTE_PINNED: EventDefinition = EventDefinition(name='note.pinned')
NOTE_UNPINNED: EventDefinition = EventDefinition(name='note.unpinned')
NOTE_DELETED: EventDefinition = EventDefinition(name='note.deleted')
MEMORY_CREATED: EventDefinition = EventDefinition(name='memory.created')
MEMORY_UPDATED: EventDefinition = EventDefinition(name='memory.updated')
MEMORY_DELETED: EventDefinition = EventDefinition(name='memory.deleted')
MEMORY_RESET: EventDefinition = EventDefinition(name='memory.reset')
KNOWLEDGE_CREATED: EventDefinition = EventDefinition(name='knowledge.created')
KNOWLEDGE_UPDATED: EventDefinition = EventDefinition(name='knowledge.updated')
KNOWLEDGE_DELETED: EventDefinition = EventDefinition(name='knowledge.deleted')
KNOWLEDGE_RESET: EventDefinition = EventDefinition(name='knowledge.reset')
KNOWLEDGE_REINDEXED: EventDefinition = EventDefinition(name='knowledge.reindexed')
KNOWLEDGE_ACCESS_UPDATED: EventDefinition = EventDefinition(name='knowledge.access_updated')
KNOWLEDGE_FILE_ADDED: EventDefinition = EventDefinition(name='knowledge.file.added')
KNOWLEDGE_FILE_UPDATED: EventDefinition = EventDefinition(name='knowledge.file.updated')
KNOWLEDGE_FILE_REMOVED: EventDefinition = EventDefinition(name='knowledge.file.removed')
KNOWLEDGE_FILE_MOVED: EventDefinition = EventDefinition(name='knowledge.file.moved')
KNOWLEDGE_DIRECTORY_CREATED: EventDefinition = EventDefinition(name='knowledge.directory.created')
KNOWLEDGE_DIRECTORY_UPDATED: EventDefinition = EventDefinition(name='knowledge.directory.updated')
KNOWLEDGE_DIRECTORY_DELETED: EventDefinition = EventDefinition(name='knowledge.directory.deleted')
KNOWLEDGE_EXTERNAL_CONNECTION_CREATED: EventDefinition = EventDefinition(name='knowledge.external_connection.created')
KNOWLEDGE_EXTERNAL_CONNECTION_UPDATED: EventDefinition = EventDefinition(name='knowledge.external_connection.updated')
KNOWLEDGE_EXTERNAL_CONNECTION_DELETED: EventDefinition = EventDefinition(name='knowledge.external_connection.deleted')
RETRIEVAL_CONTENT_PROCESSED: EventDefinition = EventDefinition(name='retrieval.content.processed')
RETRIEVAL_COLLECTION_DELETED: EventDefinition = EventDefinition(name='retrieval.collection.deleted')
RETRIEVAL_VECTOR_DB_RESET: EventDefinition = EventDefinition(name='retrieval.vector_db.reset')
RETRIEVAL_UPLOADS_RESET: EventDefinition = EventDefinition(name='retrieval.uploads.reset')
MODEL_CREATED: EventDefinition = EventDefinition(name='model.created')
MODEL_IMPORTED: EventDefinition = EventDefinition(name='model.imported')
MODEL_SYNCED: EventDefinition = EventDefinition(name='model.synced')
MODEL_UPDATED: EventDefinition = EventDefinition(name='model.updated')
MODEL_DELETED: EventDefinition = EventDefinition(name='model.deleted')
MODEL_ENABLED: EventDefinition = EventDefinition(name='model.enabled')
MODEL_DISABLED: EventDefinition = EventDefinition(name='model.disabled')
MODEL_ACCESS_UPDATED: EventDefinition = EventDefinition(name='model.access_updated')
MODEL_PROVIDER_CONFIG_UPDATED: EventDefinition = EventDefinition(name='model.provider_config.updated')
MODEL_PROVIDER_MODEL_CREATED: EventDefinition = EventDefinition(name='model.provider_model.created')
MODEL_PROVIDER_MODEL_DELETED: EventDefinition = EventDefinition(name='model.provider_model.deleted')
FUNCTION_CREATED: EventDefinition = EventDefinition(name='function.created')
FUNCTION_UPDATED: EventDefinition = EventDefinition(name='function.updated')
FUNCTION_DELETED: EventDefinition = EventDefinition(name='function.deleted')
FUNCTION_ENABLED: EventDefinition = EventDefinition(name='function.enabled')
FUNCTION_DISABLED: EventDefinition = EventDefinition(name='function.disabled')
FUNCTION_VALVES_UPDATED: EventDefinition = EventDefinition(name='function.valves_updated')
TOOL_CREATED: EventDefinition = EventDefinition(name='tool.created')
TOOL_UPDATED: EventDefinition = EventDefinition(name='tool.updated')
TOOL_DELETED: EventDefinition = EventDefinition(name='tool.deleted')
TOOL_ACCESS_UPDATED: EventDefinition = EventDefinition(name='tool.access_updated')
TOOL_VALVES_UPDATED: EventDefinition = EventDefinition(name='tool.valves_updated')
SKILL_CREATED: EventDefinition = EventDefinition(name='skill.created')
SKILL_UPDATED: EventDefinition = EventDefinition(name='skill.updated')
SKILL_DELETED: EventDefinition = EventDefinition(name='skill.deleted')
SKILL_ENABLED: EventDefinition = EventDefinition(name='skill.enabled')
SKILL_DISABLED: EventDefinition = EventDefinition(name='skill.disabled')
PROMPT_CREATED: EventDefinition = EventDefinition(name='prompt.created')
PROMPT_UPDATED: EventDefinition = EventDefinition(name='prompt.updated')
PROMPT_DELETED: EventDefinition = EventDefinition(name='prompt.deleted')
PROMPT_ENABLED: EventDefinition = EventDefinition(name='prompt.enabled')
PROMPT_DISABLED: EventDefinition = EventDefinition(name='prompt.disabled')
PROMPT_VERSION_UPDATED: EventDefinition = EventDefinition(name='prompt.version_updated')
PROMPT_ACCESS_UPDATED: EventDefinition = EventDefinition(name='prompt.access_updated')
PIPELINE_UPLOADED: EventDefinition = EventDefinition(name='pipeline.uploaded')
PIPELINE_ADDED: EventDefinition = EventDefinition(name='pipeline.added')
PIPELINE_DELETED: EventDefinition = EventDefinition(name='pipeline.deleted')
PIPELINE_VALVES_UPDATED: EventDefinition = EventDefinition(name='pipeline.valves_updated')
CALENDAR_CREATED: EventDefinition = EventDefinition(name='calendar.created')
CALENDAR_UPDATED: EventDefinition = EventDefinition(name='calendar.updated')
CALENDAR_DELETED: EventDefinition = EventDefinition(name='calendar.deleted')
CALENDAR_DEFAULT_UPDATED: EventDefinition = EventDefinition(name='calendar.default_updated')
CALENDAR_EVENT_CREATED: EventDefinition = EventDefinition(name='calendar.event.created')
CALENDAR_EVENT_UPDATED: EventDefinition = EventDefinition(name='calendar.event.updated')
CALENDAR_EVENT_DELETED: EventDefinition = EventDefinition(name='calendar.event.deleted')
CALENDAR_EVENT_RSVP_UPDATED: EventDefinition = EventDefinition(name='calendar.event.rsvp_updated')
AUTOMATION_CREATED: EventDefinition = EventDefinition(name='automation.created')
AUTOMATION_UPDATED: EventDefinition = EventDefinition(name='automation.updated')
AUTOMATION_ENABLED: EventDefinition = EventDefinition(name='automation.enabled')
AUTOMATION_DISABLED: EventDefinition = EventDefinition(name='automation.disabled')
AUTOMATION_DELETED: EventDefinition = EventDefinition(name='automation.deleted')
AUTOMATION_RUN_STARTED: EventDefinition = EventDefinition(name='automation.run_started')
AUTOMATION_RUN_COMPLETED: EventDefinition = EventDefinition(name='automation.run_completed')
AUTOMATION_RUN_FAILED: EventDefinition = EventDefinition(name='automation.run_failed')
FEEDBACK_CREATED: EventDefinition = EventDefinition(name='feedback.created')
FEEDBACK_UPDATED: EventDefinition = EventDefinition(name='feedback.updated')
FEEDBACK_DELETED: EventDefinition = EventDefinition(name='feedback.deleted')
FEEDBACK_DELETED_ALL: EventDefinition = EventDefinition(name='feedback.deleted_all')
IMAGE_GENERATED: EventDefinition = EventDefinition(name='image.generated')
IMAGE_EDITED: EventDefinition = EventDefinition(name='image.edited')
AUDIO_SPEECH_REQUESTED: EventDefinition = EventDefinition(name='audio.speech_requested')
AUDIO_TRANSCRIPTION_REQUESTED: EventDefinition = EventDefinition(name='audio.transcription_requested')
TERMINAL_SESSION_OPENED: EventDefinition = EventDefinition(name='terminal.session.opened')
TERMINAL_SESSION_CLOSED: EventDefinition = EventDefinition(name='terminal.session.closed')
USER_UPDATED: EventDefinition = EventDefinition(name='user.updated', description='A user account was updated.', message='User updated')
USER_DELETED: EventDefinition = EventDefinition(name='user.deleted', description='A user account was deleted.', message='User deleted')
USER_ROLE_UPDATED: EventDefinition = EventDefinition(name='user.role_updated', description='A user role was updated.', message='User role updated')
USER_STATUS_UPDATED: EventDefinition = EventDefinition(name='user.status_updated', description='A user status was updated.', message='User status updated')
USER_SETTINGS_UPDATED: EventDefinition = EventDefinition(name='user.settings_updated', description='A user settings object was updated.', message='User settings updated')
USER_PROFILE_UPDATED: EventDefinition = EventDefinition(name='user.profile_updated', description='A user profile was updated.', message='User profile updated')
USER_PERMISSIONS_UPDATED: EventDefinition = EventDefinition(name='user.permissions_updated', description='A user permissions object was updated.', message='User permissions updated')
GROUP_CREATED: EventDefinition = EventDefinition(name='group.created', description='A group was created.', message='Group created')
GROUP_UPDATED: EventDefinition = EventDefinition(name='group.updated', description='A group was updated.', message='Group updated')
GROUP_DELETED: EventDefinition = EventDefinition(name='group.deleted', description='A group was deleted.', message='Group deleted')
GROUP_MEMBER_ADDED: EventDefinition = EventDefinition(name='group.member_added', description='A user was added to a group.', message='Group member added')
GROUP_MEMBER_REMOVED: EventDefinition = EventDefinition(name='group.member_removed', description='A user was removed from a group.', message='Group member removed')
CHAT_CREATED: EventDefinition = EventDefinition(name='chat.created', description='A chat was created.', message='Chat created')
CHAT_IMPORTED: EventDefinition = EventDefinition(name='chat.imported', description='A chat was imported.', message='Chat imported')
CHAT_UPDATED: EventDefinition = EventDefinition(name='chat.updated', description='A chat was updated.', message='Chat updated')
CHAT_DELETED: EventDefinition = EventDefinition(name='chat.deleted', description='A chat was deleted.', message='Chat deleted')
CHAT_DELETED_ALL: EventDefinition = EventDefinition(name='chat.deleted_all', description='All chats for a scope were deleted.', message='Chat deleted all')
CHAT_COMPACTED: EventDefinition = EventDefinition(name='chat.compacted', description='A chat was compacted.', message='Chat compacted')
CHAT_PINNED: EventDefinition = EventDefinition(name='chat.pinned', description='A chat was pinned.', message='Chat pinned')
CHAT_UNPINNED: EventDefinition = EventDefinition(name='chat.unpinned', description='A chat was unpinned.', message='Chat unpinned')
CHAT_CLONED: EventDefinition = EventDefinition(name='chat.cloned', description='A chat was cloned.', message='Chat cloned')
CHAT_ARCHIVED: EventDefinition = EventDefinition(name='chat.archived', description='A chat was archived.', message='Chat archived')
CHAT_UNARCHIVED: EventDefinition = EventDefinition(name='chat.unarchived', description='A chat was unarchived.', message='Chat unarchived')
CHAT_SHARED: EventDefinition = EventDefinition(name='chat.shared', description='A chat was shared.', message='Chat shared')
CHAT_UNSHARED: EventDefinition = EventDefinition(name='chat.unshared', description='A chat was unshared.', message='Chat unshared')
CHAT_FOLDER_UPDATED: EventDefinition = EventDefinition(name='chat.folder_updated', description='A chat folder assignment was updated.', message='Chat folder updated')
CHAT_TAG_ADDED: EventDefinition = EventDefinition(name='chat.tag_added', description='A tag was added to a chat.', message='Chat tag added')
CHAT_TAG_REMOVED: EventDefinition = EventDefinition(name='chat.tag_removed', description='A tag was removed from a chat.', message='Chat tag removed')
MESSAGE_CREATED: EventDefinition = EventDefinition(name='message.created', description='A message was created.', message='Message created')
MESSAGE_UPDATED: EventDefinition = EventDefinition(name='message.updated', description='A message was updated.', message='Message updated')
MESSAGE_DELETED: EventDefinition = EventDefinition(name='message.deleted', description='A message was deleted.', message='Message deleted')
MESSAGE_EVENT_RECEIVED: EventDefinition = EventDefinition(name='message.event_received', description='A message-level event was received.', message='Message event received')
MESSAGE_REACTION_ADDED: EventDefinition = EventDefinition(name='message.reaction_added', description='A reaction was added to a message.', message='Message reaction added')
MESSAGE_REACTION_REMOVED: EventDefinition = EventDefinition(name='message.reaction_removed', description='A reaction was removed from a message.', message='Message reaction removed')
MESSAGE_PINNED: EventDefinition = EventDefinition(name='message.pinned', description='A message was pinned.', message='Message pinned')
MESSAGE_UNPINNED: EventDefinition = EventDefinition(name='message.unpinned', description='A message was unpinned.', message='Message unpinned')
CHANNEL_CREATED: EventDefinition = EventDefinition(name='channel.created', description='A channel was created.', message='Channel created')
CHANNEL_UPDATED: EventDefinition = EventDefinition(name='channel.updated', description='A channel was updated.', message='Channel updated')
CHANNEL_DELETED: EventDefinition = EventDefinition(name='channel.deleted', description='A channel was deleted.', message='Channel deleted')
CHANNEL_MEMBER_ADDED: EventDefinition = EventDefinition(name='channel.member_added', description='A member was added to a channel.', message='Channel member added')
CHANNEL_MEMBER_REMOVED: EventDefinition = EventDefinition(name='channel.member_removed', description='A member was removed from a channel.', message='Channel member removed')
CHANNEL_MEMBER_ACTIVE_UPDATED: EventDefinition = EventDefinition(name='channel.member_active_updated', description='A channel member active state was updated.', message='Channel member active updated')
CHANNEL_WEBHOOK_CREATED: EventDefinition = EventDefinition(name='channel.webhook.created', description='A channel incoming webhook was created.', message='Channel Webhook created')
CHANNEL_WEBHOOK_UPDATED: EventDefinition = EventDefinition(name='channel.webhook.updated', description='A channel incoming webhook was updated.', message='Channel Webhook updated')
CHANNEL_WEBHOOK_DELETED: EventDefinition = EventDefinition(name='channel.webhook.deleted', description='A channel incoming webhook was deleted.', message='Channel Webhook deleted')
FILE_UPLOADED: EventDefinition = EventDefinition(name='file.uploaded', description='A file was uploaded.', message='File uploaded')
FILE_CONTENT_UPDATED: EventDefinition = EventDefinition(name='file.content_updated', description='File content was updated.', message='File content updated')
FILE_RENAMED: EventDefinition = EventDefinition(name='file.renamed', description='A file was renamed.', message='File renamed')
FILE_DELETED: EventDefinition = EventDefinition(name='file.deleted', description='A file was deleted.', message='File deleted')
FILE_DELETED_ALL: EventDefinition = EventDefinition(name='file.deleted_all', description='All files for a scope were deleted.', message='File deleted all')
FOLDER_CREATED: EventDefinition = EventDefinition(name='folder.created', description='A folder was created.', message='Folder created')
FOLDER_UPDATED: EventDefinition = EventDefinition(name='folder.updated', description='A folder was updated.', message='Folder updated')
FOLDER_PARENT_UPDATED: EventDefinition = EventDefinition(name='folder.parent_updated', description='A folder parent was updated.', message='Folder parent updated')
FOLDER_ACCESS_UPDATED: EventDefinition = EventDefinition(name='folder.access_updated', description='Folder access was updated.', message='Folder access updated')
FOLDER_DELETED: EventDefinition = EventDefinition(name='folder.deleted', description='A folder was deleted.', message='Folder deleted')
NOTE_CREATED: EventDefinition = EventDefinition(name='note.created', description='A note was created.', message='Note created')
NOTE_UPDATED: EventDefinition = EventDefinition(name='note.updated', description='A note was updated.', message='Note updated')
NOTE_ACCESS_UPDATED: EventDefinition = EventDefinition(name='note.access_updated', description='Note access was updated.', message='Note access updated')
NOTE_PINNED: EventDefinition = EventDefinition(name='note.pinned', description='A note was pinned.', message='Note pinned')
NOTE_UNPINNED: EventDefinition = EventDefinition(name='note.unpinned', description='A note was unpinned.', message='Note unpinned')
NOTE_DELETED: EventDefinition = EventDefinition(name='note.deleted', description='A note was deleted.', message='Note deleted')
MEMORY_CREATED: EventDefinition = EventDefinition(name='memory.created', description='A memory was created.', message='Memory created')
MEMORY_UPDATED: EventDefinition = EventDefinition(name='memory.updated', description='A memory was updated.', message='Memory updated')
MEMORY_DELETED: EventDefinition = EventDefinition(name='memory.deleted', description='A memory was deleted.', message='Memory deleted')
MEMORY_RESET: EventDefinition = EventDefinition(name='memory.reset', description='A memory was reset.', message='Memory reset')
KNOWLEDGE_CREATED: EventDefinition = EventDefinition(name='knowledge.created', description='A knowledge was created.', message='Knowledge created')
KNOWLEDGE_UPDATED: EventDefinition = EventDefinition(name='knowledge.updated', description='A knowledge was updated.', message='Knowledge updated')
KNOWLEDGE_DELETED: EventDefinition = EventDefinition(name='knowledge.deleted', description='A knowledge was deleted.', message='Knowledge deleted')
KNOWLEDGE_RESET: EventDefinition = EventDefinition(name='knowledge.reset', description='A knowledge was reset.', message='Knowledge reset')
KNOWLEDGE_REINDEXED: EventDefinition = EventDefinition(name='knowledge.reindexed', description='A knowledge was reindexed.', message='Knowledge reindexed')
KNOWLEDGE_ACCESS_UPDATED: EventDefinition = EventDefinition(name='knowledge.access_updated', description='Knowledge access was updated.', message='Knowledge access updated')
KNOWLEDGE_FILE_ADDED: EventDefinition = EventDefinition(name='knowledge.file.added', description='A file was added to a knowledge base.', message='Knowledge File added')
KNOWLEDGE_FILE_UPDATED: EventDefinition = EventDefinition(name='knowledge.file.updated', description='A knowledge file was updated.', message='Knowledge File updated')
KNOWLEDGE_FILE_REMOVED: EventDefinition = EventDefinition(name='knowledge.file.removed', description='A file was removed from a knowledge base.', message='Knowledge File removed')
KNOWLEDGE_FILE_MOVED: EventDefinition = EventDefinition(name='knowledge.file.moved', description='A knowledge file was moved.', message='Knowledge File moved')
KNOWLEDGE_DIRECTORY_CREATED: EventDefinition = EventDefinition(name='knowledge.directory.created', description='A knowledge directory was created.', message='Knowledge Directory created')
KNOWLEDGE_DIRECTORY_UPDATED: EventDefinition = EventDefinition(name='knowledge.directory.updated', description='A knowledge directory was updated.', message='Knowledge Directory updated')
KNOWLEDGE_DIRECTORY_DELETED: EventDefinition = EventDefinition(name='knowledge.directory.deleted', description='A knowledge directory was deleted.', message='Knowledge Directory deleted')
KNOWLEDGE_EXTERNAL_CONNECTION_CREATED: EventDefinition = EventDefinition(name='knowledge.external_connection.created', description='A knowledge external connection was created.', message='Knowledge External Connection created')
KNOWLEDGE_EXTERNAL_CONNECTION_UPDATED: EventDefinition = EventDefinition(name='knowledge.external_connection.updated', description='A knowledge external connection was updated.', message='Knowledge External Connection updated')
KNOWLEDGE_EXTERNAL_CONNECTION_DELETED: EventDefinition = EventDefinition(name='knowledge.external_connection.deleted', description='A knowledge external connection was deleted.', message='Knowledge External Connection deleted')
RETRIEVAL_CONTENT_PROCESSED: EventDefinition = EventDefinition(name='retrieval.content.processed', description='Retrieval content was processed.', message='Retrieval Content processed')
RETRIEVAL_COLLECTION_DELETED: EventDefinition = EventDefinition(name='retrieval.collection.deleted', description='A retrieval collection was deleted.', message='Retrieval Collection deleted')
RETRIEVAL_VECTOR_DB_RESET: EventDefinition = EventDefinition(name='retrieval.vector_db.reset', description='The retrieval vector database was reset.', message='Retrieval Vector Db reset')
RETRIEVAL_UPLOADS_RESET: EventDefinition = EventDefinition(name='retrieval.uploads.reset', description='Retrieval uploads were reset.', message='Retrieval Uploads reset')
MODEL_CREATED: EventDefinition = EventDefinition(name='model.created', description='A model was created.', message='Model created')
MODEL_IMPORTED: EventDefinition = EventDefinition(name='model.imported', description='A model was imported.', message='Model imported')
MODEL_SYNCED: EventDefinition = EventDefinition(name='model.synced', description='A model was synced.', message='Model synced')
MODEL_UPDATED: EventDefinition = EventDefinition(name='model.updated', description='A model was updated.', message='Model updated')
MODEL_DELETED: EventDefinition = EventDefinition(name='model.deleted', description='A model was deleted.', message='Model deleted')
MODEL_ENABLED: EventDefinition = EventDefinition(name='model.enabled', description='A model was enabled.', message='Model enabled')
MODEL_DISABLED: EventDefinition = EventDefinition(name='model.disabled', description='A model was disabled.', message='Model disabled')
MODEL_ACCESS_UPDATED: EventDefinition = EventDefinition(name='model.access_updated', description='Model access was updated.', message='Model access updated')
MODEL_PROVIDER_CONFIG_UPDATED: EventDefinition = EventDefinition(name='model.provider_config.updated', description='Model provider configuration was updated.', message='Model Provider Config updated')
MODEL_PROVIDER_MODEL_CREATED: EventDefinition = EventDefinition(name='model.provider_model.created', description='A provider model was created.', message='Provider model created')
MODEL_PROVIDER_MODEL_DELETED: EventDefinition = EventDefinition(name='model.provider_model.deleted', description='A provider model was deleted.', message='Provider model deleted')
FUNCTION_CREATED: EventDefinition = EventDefinition(name='function.created', description='A function was created.', message='Function created')
FUNCTION_UPDATED: EventDefinition = EventDefinition(name='function.updated', description='A function was updated.', message='Function updated')
FUNCTION_DELETED: EventDefinition = EventDefinition(name='function.deleted', description='A function was deleted.', message='Function deleted')
FUNCTION_ENABLED: EventDefinition = EventDefinition(name='function.enabled', description='A function was enabled.', message='Function enabled')
FUNCTION_DISABLED: EventDefinition = EventDefinition(name='function.disabled', description='A function was disabled.', message='Function disabled')
FUNCTION_VALVES_UPDATED: EventDefinition = EventDefinition(name='function.valves_updated', description='Function valves were updated.', message='Function valves updated')
TOOL_CREATED: EventDefinition = EventDefinition(name='tool.created', description='A tool was created.', message='Tool created')
TOOL_UPDATED: EventDefinition = EventDefinition(name='tool.updated', description='A tool was updated.', message='Tool updated')
TOOL_DELETED: EventDefinition = EventDefinition(name='tool.deleted', description='A tool was deleted.', message='Tool deleted')
TOOL_ACCESS_UPDATED: EventDefinition = EventDefinition(name='tool.access_updated', description='Tool access was updated.', message='Tool access updated')
TOOL_VALVES_UPDATED: EventDefinition = EventDefinition(name='tool.valves_updated', description='Tool valves were updated.', message='Tool valves updated')
SKILL_CREATED: EventDefinition = EventDefinition(name='skill.created', description='A skill was created.', message='Skill created')
SKILL_UPDATED: EventDefinition = EventDefinition(name='skill.updated', description='A skill was updated.', message='Skill updated')
SKILL_DELETED: EventDefinition = EventDefinition(name='skill.deleted', description='A skill was deleted.', message='Skill deleted')
SKILL_ENABLED: EventDefinition = EventDefinition(name='skill.enabled', description='A skill was enabled.', message='Skill enabled')
SKILL_DISABLED: EventDefinition = EventDefinition(name='skill.disabled', description='A skill was disabled.', message='Skill disabled')
PROMPT_CREATED: EventDefinition = EventDefinition(name='prompt.created', description='A prompt was created.', message='Prompt created')
PROMPT_UPDATED: EventDefinition = EventDefinition(name='prompt.updated', description='A prompt was updated.', message='Prompt updated')
PROMPT_DELETED: EventDefinition = EventDefinition(name='prompt.deleted', description='A prompt was deleted.', message='Prompt deleted')
PROMPT_ENABLED: EventDefinition = EventDefinition(name='prompt.enabled', description='A prompt was enabled.', message='Prompt enabled')
PROMPT_DISABLED: EventDefinition = EventDefinition(name='prompt.disabled', description='A prompt was disabled.', message='Prompt disabled')
PROMPT_VERSION_UPDATED: EventDefinition = EventDefinition(name='prompt.version_updated', description='A prompt version was updated.', message='Prompt version updated')
PROMPT_ACCESS_UPDATED: EventDefinition = EventDefinition(name='prompt.access_updated', description='Prompt access was updated.', message='Prompt access updated')
PIPELINE_UPLOADED: EventDefinition = EventDefinition(name='pipeline.uploaded', description='A pipeline was uploaded.', message='Pipeline uploaded')
PIPELINE_ADDED: EventDefinition = EventDefinition(name='pipeline.added', description='A pipeline was added.', message='Pipeline added')
PIPELINE_DELETED: EventDefinition = EventDefinition(name='pipeline.deleted', description='A pipeline was deleted.', message='Pipeline deleted')
PIPELINE_VALVES_UPDATED: EventDefinition = EventDefinition(name='pipeline.valves_updated', description='Pipeline valves were updated.', message='Pipeline valves updated')
CALENDAR_CREATED: EventDefinition = EventDefinition(name='calendar.created', description='A calendar was created.', message='Calendar created')
CALENDAR_UPDATED: EventDefinition = EventDefinition(name='calendar.updated', description='A calendar was updated.', message='Calendar updated')
CALENDAR_DELETED: EventDefinition = EventDefinition(name='calendar.deleted', description='A calendar was deleted.', message='Calendar deleted')
CALENDAR_DEFAULT_UPDATED: EventDefinition = EventDefinition(name='calendar.default_updated', description='The default calendar was updated.', message='Calendar default updated')
CALENDAR_EVENT_CREATED: EventDefinition = EventDefinition(name='calendar.event.created', description='A calendar event was created.', message='Calendar Event created')
CALENDAR_EVENT_UPDATED: EventDefinition = EventDefinition(name='calendar.event.updated', description='A calendar event was updated.', message='Calendar Event updated')
CALENDAR_EVENT_DELETED: EventDefinition = EventDefinition(name='calendar.event.deleted', description='A calendar event was deleted.', message='Calendar Event deleted')
CALENDAR_EVENT_RSVP_UPDATED: EventDefinition = EventDefinition(name='calendar.event.rsvp_updated', description='A calendar event RSVP was updated.', message='Calendar Event rsvp updated')
AUTOMATION_CREATED: EventDefinition = EventDefinition(name='automation.created', description='An automation was created.', message='Automation created')
AUTOMATION_UPDATED: EventDefinition = EventDefinition(name='automation.updated', description='An automation was updated.', message='Automation updated')
AUTOMATION_ENABLED: EventDefinition = EventDefinition(name='automation.enabled', description='An automation was enabled.', message='Automation enabled')
AUTOMATION_DISABLED: EventDefinition = EventDefinition(name='automation.disabled', description='An automation was disabled.', message='Automation disabled')
AUTOMATION_DELETED: EventDefinition = EventDefinition(name='automation.deleted', description='An automation was deleted.', message='Automation deleted')
AUTOMATION_RUN_STARTED: EventDefinition = EventDefinition(name='automation.run_started', description='An automation run started.', message='Automation run started')
AUTOMATION_RUN_COMPLETED: EventDefinition = EventDefinition(name='automation.run_completed', description='An automation run completed.', message='Automation run completed')
AUTOMATION_RUN_FAILED: EventDefinition = EventDefinition(name='automation.run_failed', description='An automation run failed.', message='Automation run failed')
FEEDBACK_CREATED: EventDefinition = EventDefinition(name='feedback.created', description='A feedback was created.', message='Feedback created')
FEEDBACK_UPDATED: EventDefinition = EventDefinition(name='feedback.updated', description='A feedback was updated.', message='Feedback updated')
FEEDBACK_DELETED: EventDefinition = EventDefinition(name='feedback.deleted', description='A feedback was deleted.', message='Feedback deleted')
FEEDBACK_DELETED_ALL: EventDefinition = EventDefinition(name='feedback.deleted_all', description='All feedback for a scope was deleted.', message='Feedback deleted all')
IMAGE_GENERATED: EventDefinition = EventDefinition(name='image.generated', description='An image was generated.', message='Image generated')
IMAGE_EDITED: EventDefinition = EventDefinition(name='image.edited', description='An image was edited.', message='Image edited')
AUDIO_SPEECH_REQUESTED: EventDefinition = EventDefinition(name='audio.speech_requested', description='Speech generation was requested.', message='Speech requested')
AUDIO_TRANSCRIPTION_REQUESTED: EventDefinition = EventDefinition(name='audio.transcription_requested', description='Audio transcription was requested.', message='Transcription requested')
TERMINAL_SESSION_OPENED: EventDefinition = EventDefinition(name='terminal.session.opened', description='A terminal session was opened.', message='Terminal Session opened')
TERMINAL_SESSION_CLOSED: EventDefinition = EventDefinition(name='terminal.session.closed', description='A terminal session was closed.', message='Terminal Session closed')
EVENTS = EventDefinitions()
@@ -594,7 +594,13 @@ async def dispatch_webhook_event(app: Any, event: Event) -> None:
continue
try:
await post_webhook(name, webhook['url'], message, event.model_dump())
await post_webhook(
name,
webhook['url'],
message,
event.model_dump(),
description=definition.description if definition else None,
)
except Exception:
log.exception('Event webhook failed for %s', webhook.get('id'))
+21 -3
View File
@@ -16,7 +16,21 @@ log = logging.getLogger(__name__)
# Let this message reach those for whom it was written, and
# may no network partition deny the word its destination.
async def post_webhook(name: str, url: str, message: str, event_data: dict) -> bool:
def _event_text(message: str, description: str | None = None, event_data: dict | None = None) -> str:
lines = [message]
if description and description != message:
lines.append(description)
event_name = (event_data or {}).get('event')
if event_name:
lines.append(f'Event: {event_name}')
return '\n'.join(lines)
async def post_webhook(
name: str, url: str, message: str, event_data: dict, description: str | None = None
) -> bool:
try:
log.debug(f'post_webhook: {url}, {message}, {event_data}')
# Block private-IP / loopback / cloud-metadata targets — the URL is
@@ -27,10 +41,11 @@ async def post_webhook(name: str, url: str, message: str, event_data: dict) -> b
# Slack and Google Chat Webhooks
if 'https://hooks.slack.com' in url or 'https://chat.googleapis.com' in url:
payload['text'] = message
payload['text'] = _event_text(message, description, event_data)
# Discord Webhooks
elif 'https://discord.com/api/webhooks' in url:
payload['content'] = message if len(message) < 2000 else f'{message[: 2000 - 20]}... (truncated)'
content = _event_text(message, description, event_data)
payload['content'] = content if len(content) < 2000 else f'{content[: 2000 - 20]}... (truncated)'
# Microsoft Teams Webhooks
elif 'webhook.office.com' in url:
action = event_data.get('action', 'undefined')
@@ -42,6 +57,8 @@ async def post_webhook(name: str, url: str, message: str, event_data: dict) -> b
facts = [{'name': key, 'value': value} for key, value in user_dict.items()]
if event_data.get('event'):
facts.insert(0, {'name': 'event', 'value': event_data.get('event')})
if description:
facts.insert(0, {'name': 'description', 'value': description})
payload = {
'@type': 'MessageCard',
'@context': 'http://schema.org/extensions',
@@ -52,6 +69,7 @@ async def post_webhook(name: str, url: str, message: str, event_data: dict) -> b
'activityTitle': message,
'activitySubtitle': f'{name} ({VERSION}) - {action}',
'activityImage': WEBUI_FAVICON_URL,
'text': description,
'facts': facts,
'markdown': True,
}