-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
161 lines (139 loc) · 6.68 KB
/
Copy pathconfig.example.yaml
File metadata and controls
161 lines (139 loc) · 6.68 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
# ╔══════════════════════════════════════════════╗
# ║ BridgeMost Configuration ║
# ║ Copy to config.yaml and fill in your values ║
# ╚══════════════════════════════════════════════╝
#
# QUICKSTART: Run `python3 -m bridgemost setup` for an interactive wizard
# that generates this file automatically.
# ─── Adapter (optional) ────────────────────────
# adapter: "telegram"
# Options: "telegram", "googlechat"
# If omitted, auto-detected from config sections below
# ─── Telegram Adapter ─────────────────────────
telegram:
bot_token: "YOUR_TELEGRAM_BOT_TOKEN"
# Create a bot via @BotFather → /newbot → copy the token
# ─── Telegram Presentation (optional) ──────────
# Clean Telegram UX for Hermes-style bots.
#
# telegram_presentation:
# enabled: true
# suppress_internal_progress: true
# show_placeholder: true
# placeholder_text: "🧠⚡ Conectando a la red neuronal..."
# placeholder_delay_seconds: 1.2
# stream_final_response: true
# stream_chunk_chars: 180
# stream_edit_interval: 0.18
# ─── Google Chat Adapter (alternative) ─────────
# Uncomment this section to use Google Chat instead of Telegram.
# Requires Google Workspace + Service Account with domain-wide delegation.
#
# googlechat:
# credentials_file: "/path/to/service-account.json"
# # Download from GCP Console → IAM → Service Accounts → Keys → JSON
# # This file NEVER leaves your server — BridgeMost reads it locally
#
# delegated_user: "you@yourcompany.com"
# # The Workspace user to impersonate (ghost mode)
# # Messages appear as this user in Google Chat
#
# space: "spaces/AAAAxxxxxxx"
# # The Google Chat Space to bridge
# # Find it: Chat API → spaces.list, or from the Space URL
#
# poll_interval: 2.0
# # Seconds between message polls (lower = faster but more API calls)
# ─── Mattermost ────────────────────────────────
mattermost:
url: "http://localhost:8065"
# The URL of your Mattermost server (same URL you open in browser)
# Use http:// for local, https:// if behind reverse proxy/tunnel
bot_token: "YOUR_MM_BOT_TOKEN"
# A token from any bot on your MM server
# Find it: Integrations → Bot Accounts → pick a bot → copy token
# Used for: WebSocket connection to receive real-time events
bot_user_id: "YOUR_MM_BOT_USER_ID"
# The Mattermost user ID (26-char alphanumeric) of the bot above
# Find it: mmctl user search <botname>
# Or: curl http://YOUR_MM/api/v4/users/username/<botname> -H "Authorization: Bearer TOKEN"
# ─── Users ─────────────────────────────────────
users:
- telegram_id: 123456789
# Your numeric Telegram user ID
# Find it: send any message to @userinfobot on Telegram
telegram_name: "Your Name"
# Display name (used in logs only, not shown anywhere)
mm_user_id: "your_mm_user_id"
# Your Mattermost user ID (26-char alphanumeric)
# Find it: mmctl user search <your_username>
# Or: curl http://YOUR_MM/api/v4/users/username/<you> -H "Authorization: Bearer TOKEN"
mm_token: "YOUR_PERSONAL_ACCESS_TOKEN"
# Your Personal Access Token (PAT)
# Create: MM → click your avatar → Profile → Security → Personal Access Tokens → Create
# IMPORTANT: EnableUserAccessTokens must be enabled in System Console
bots:
- name: "MyBot"
# Friendly name — used with /bot command in Telegram to switch bots
mm_bot_id: "bot_user_id_here"
# The Mattermost user ID of this bot (26-char alphanumeric)
mm_dm_channel: ""
# Leave EMPTY — BridgeMost auto-discovers it at startup
# Only fill in manually if auto-discovery fails (check logs)
default: true
# Set to true for the bot you want to talk to by default
# Add more bots:
# - name: "AnotherBot"
# mm_bot_id: "another_bot_user_id"
# mm_dm_channel: ""
# default: false
# ─── DM Bridges (optional) ─────────────────────
# DM Bridge mode: instead of switching bots with /bot, give each MM bot its
# own dedicated Telegram bot. Users DM that TG bot directly — messages bridge
# transparently to the matching MM bot DM channel, bidirectionally.
#
# Each entry needs its own TG bot (create via @BotFather → /newbot).
# Users and tokens are inherited from the `users` section above.
#
# dm_bridges:
# - name: "assistant-a"
# # Friendly name — used in logs and for the SQLite store file (dm_assistant-a.db)
#
# tg_bot_token: "YOUR_DEDICATED_TG_BOT_TOKEN"
# # Token for the bot dedicated to this MM bot
# # Create a new bot in @BotFather for each DM bridge
#
# mm_bot_id: "mm_bot_user_id_here"
# # Mattermost user ID of the target bot (26-char alphanumeric)
# # DM channel between the user and this bot is auto-discovered at startup
#
# - name: "assistant-b"
# tg_bot_token: "ANOTHER_DEDICATED_TG_BOT_TOKEN"
# mm_bot_id: "another_mm_bot_user_id_here"
# ─── Health Check (optional) ───────────────────
health:
port: 9191
# HTTP endpoint at /health for monitoring
# Binds to 127.0.0.1 only (not exposed externally)
# ─── Logging (optional) ────────────────────────
logging:
level: "INFO"
# Options: DEBUG, INFO, WARNING, ERROR
file: ""
# Path to log file. Empty = stdout only (recommended with systemd)
# ─── Data Persistence (optional) ───────────────
storage:
data_dir: ""
# Directory for SQLite database (message ID mappings)
# Empty = current working directory
# Message mappings persist across restarts (30-day TTL, auto-pruned)
# ─── Voice-to-Text (optional) ──────────────────
# Transcribes voice messages before posting to Mattermost
# Requires a Whisper-compatible API (OpenAI, Groq, local faster-whisper)
#
# voice_to_text:
# url: "http://localhost:9000" # Whisper API endpoint
# api_key: "" # Required for OpenAI/Groq; empty for local
# model: "large-v3" # large-v3 (local), whisper-1 (OpenAI)
# language: "" # "es", "en", or "" for auto-detect
# keep_audio: true # Also attach original audio file in MM