plugin.yaml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. name: chatto-platform
  2. label: Chatto
  3. kind: platform
  4. version: main
  5. description: >
  6. Chatto gateway adapter for Hermes Agent.
  7. Connects to a Chatto server (cloud-hosted or self-hosted team chat) and relays messages
  8. between rooms/DMs and the Hermes agent. Uses the Chatto ConnectRPC API
  9. (JSON over HTTP) for outbound messages and the Chatto realtime WebSocket
  10. protocol (binary protobuf) for inbound events. Nothing to install:
  11. chattolib[realtime] and its dependencies are vendored into the plugin.
  12. author: Paul Klumpp
  13. provides_tools:
  14. - chatto_send_dm
  15. - chatto_send_room
  16. - chatto_send_ephemeral
  17. - chatto_list_rooms
  18. - chatto_get_message
  19. - chatto_get_history
  20. - chatto_search_messages
  21. - chatto_list_room_attachments
  22. - chatto_list_pinned_messages
  23. - chatto_pin_message
  24. - chatto_set_custom_status
  25. - chatto_delete_custom_status
  26. - chatto_fetch_link_preview
  27. - chatto_mark_thread_as_read
  28. - chatto_list_room_groups
  29. requires_env:
  30. - name: CHATTO_BASE_URL
  31. description: "Base URL of the Chatto server (e.g. https://chat.example.com) leave blank for ChattoHQ (https://chat.chatto.run)"
  32. prompt: "Chatto server Base URL"
  33. password: false
  34. - name: CHATTO_TOKEN
  35. description: "Bot API key (e.g. cht_BK_...) — generate one in Chatto under Settings → Bot Accounts"
  36. prompt: "Chatto bot token"
  37. password: true
  38. optional_env:
  39. - name: CHATTO_HOME_CHANNEL
  40. description: "Room ID for cron / notification delivery (default: none — context-less deliveries are not sent without it)"
  41. prompt: "Home room ID (or empty)"
  42. password: false
  43. # Asked before CHATTO_ALLOWED_USERS: a "yes" here makes the user list moot,
  44. # and the two are mutually exclusive (hermes_validate_config rejects both).
  45. - name: CHATTO_ALLOW_ALL_USERS
  46. description: "Allow any Chatto user to talk to the agent (default: false)"
  47. prompt: "Allow all users? (true/false)"
  48. password: false
  49. - name: CHATTO_ALLOWED_USERS
  50. description: "Comma-separated Chatto logins or user IDs allowed to talk to the agent (default: none — denies everyone unless CHATTO_ALLOW_ALL_USERS=true)"
  51. prompt: "Allowed users (comma-separated)"
  52. password: false
  53. - name: CHATTO_REQUIRE_MENTION_ROOMS
  54. description: "Comma-separated room IDs where the bot answers only when addressed (@name, @all or @here); rooms on neither this nor CHATTO_OPTIONAL_MENTION_ROOMS stay silent — read-only, never seeded into context, never answered. DMs always get a response. (default: none — the listed rooms answer only mentions)"
  55. prompt: "Mention-required room IDs (comma-separated)"
  56. password: false
  57. - name: CHATTO_AUTO_THREAD
  58. description: "Auto-create threads for replies in rooms (default: true). Set false to reply in the room timeline."
  59. prompt: "Auto-thread replies? (true/false)"
  60. password: false
  61. - name: CHATTO_OPTIONAL_MENTION_ROOMS
  62. description: "Comma-separated room IDs where the bot answers every message, addressed or not; rooms on neither this nor CHATTO_REQUIRE_MENTION_ROOMS stay silent — read-only, never seeded into context, never answered. (default: none — the listed rooms answer everything)"
  63. prompt: "Free-response room IDs (comma-separated)"
  64. password: false
  65. - name: CHATTO_ROOM_TOOLSETS
  66. description: "Per-room toolset restriction as comma-separated room_id:toolset entries, e.g. RbmwiHk4vs9a3Ql:web,RbmwiHk4vs9a3Ql:file — several entries for one room accumulate. A room with an entry REPLACES the platform's toolset list for its turns, so list every toolset the room should keep; rooms without an entry keep the normal platform toolsets. (default: none — no room is restricted)"
  67. prompt: "Per-room toolsets (room_id:toolset, comma-separated)"
  68. password: false
  69. - name: CHATTO_REACTIONS
  70. description: "Add 👀/✅/❌/🚫 reactions to messages during processing (default: true)"
  71. prompt: "Enable message reactions? (true/false)"
  72. password: false
  73. - name: CHATTO_EDIT_DISPATCH
  74. description: "Treat edits of chat messages as corrections: a message being processed is restarted with the edited text, a message the bot ignored (e.g. missing @mention) is re-checked against its new text. Already-answered messages stay answered, and edits older than CHATTO_EDIT_WINDOW are ignored. (default: true)"
  75. prompt: "Process message edits as corrections? (true/false)"
  76. password: false
  77. - name: CHATTO_EDIT_WINDOW
  78. description: "How long after posting an edit may still land, in seconds; older edits are ignored (default: 300)"
  79. prompt: "Edit window in seconds (or empty for 300)"
  80. password: false
  81. - name: CHATTO_RESUME_WINDOW
  82. description: "How long a stream position saved by a clean shutdown may still be used after a gateway restart, in seconds. Within the window the bot receives what arrived while it was down; an older position is discarded so a long outage does not replay hours of history. 0 disables it, and a crash (no clean shutdown) leaves no position to resume from. (default: 900)"
  83. prompt: "Restart resume window in seconds (or empty for 900, 0 disables)"
  84. password: false