mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
faaf13a0e9
* feat: add Supermarket integration (MCP & Skill marketplace) Backend: - Add [supermarket] config section with base_url (default: supermarket.memoh.ai) - Add SupermarketHandler with proxy endpoints for MCPs, Skills, and Tags - Add install endpoints: POST /bots/:id/supermarket/install-mcp (creates MCP connection with env vars) and install-skill (downloads tar.gz, extracts to container via gRPC) - Register handler in FX wiring, generate Swagger docs and TypeScript SDK Frontend: - Add /settings/supermarket route with Store icon in sidebar - Create supermarket page with search, tag filtering, MCP and Skill sections - Add MCP/Skill card components with tag badges and install buttons - Add install dialogs: MCP (bot selector + env var form), Skill (bot selector) - Add i18n entries for en.json and zh.json * fix: improve supermarket install UX - Create BotSelect component with avatar + name using UI Select - Replace NativeSelect in install dialogs and usage page with BotSelect - Change MCP install flow: navigate to bot detail MCP tab with pre-filled draft instead of direct install, letting users review before saving - Move Supermarket sidebar entry between Browser and Usage * web: remove supermarket page top tag selector bar Drop the horizontal tag chips and getSupermarketTags fetch; keep search and tag filter via card tag clicks with clearable badge. * web: add homepage link to supermarket MCP and Skill cards Show an external-link icon next to the card title when homepage is available, opening in a new tab on click.
65 lines
1.1 KiB
TOML
65 lines
1.1 KiB
TOML
# Memoh configuration template
|
|
# Copy to config.toml and adjust values for your environment.
|
|
# For local development, use: cp devenv/app.dev.toml config.toml
|
|
|
|
[log]
|
|
level = "info"
|
|
format = "text"
|
|
|
|
[server]
|
|
addr = ":8080"
|
|
|
|
[admin]
|
|
username = "admin"
|
|
password = "admin123"
|
|
email = "admin@memoh.local"
|
|
|
|
[auth]
|
|
jwt_secret = "CHANGE-ME-TO-A-RANDOM-SECRET"
|
|
jwt_expires_in = "168h"
|
|
|
|
timezone = "UTC"
|
|
|
|
[containerd]
|
|
socket_path = "/run/containerd/containerd.sock"
|
|
namespace = "default"
|
|
|
|
[workspace]
|
|
# registry = "memoh.cn" # Uncomment for China mainland mirror
|
|
default_image = "debian:bookworm-slim"
|
|
snapshotter = "overlayfs"
|
|
data_root = "data"
|
|
cni_bin_dir = "/opt/cni/bin"
|
|
cni_conf_dir = "/etc/cni/net.d"
|
|
|
|
[postgres]
|
|
host = "127.0.0.1"
|
|
port = 5432
|
|
user = "memoh"
|
|
password = "memoh123"
|
|
database = "memoh"
|
|
sslmode = "disable"
|
|
|
|
[qdrant]
|
|
base_url = "http://127.0.0.1:6334"
|
|
api_key = ""
|
|
timeout_seconds = 10
|
|
|
|
[sparse]
|
|
base_url = "http://127.0.0.1:8085"
|
|
|
|
[registry]
|
|
providers_dir = "conf/providers"
|
|
|
|
[browser_gateway]
|
|
host = "127.0.0.1"
|
|
port = 8083
|
|
server_addr = ":8080"
|
|
|
|
[supermarket]
|
|
base_url = "https://supermarket.memoh.ai"
|
|
|
|
[web]
|
|
host = "127.0.0.1"
|
|
port = 8082
|