amagi 0.1.6

Rust SDK, CLI, and Web API service skeleton for multi-platform social web adapters.
Documentation
# Copy this file to `.env` or to the user-level Amagi config file.
# Process environment variables still override values loaded from dotenv files.
# Boolean values in this file can use true/false, 1/0, yes/no, or on/off.

# CLI language. Accepted values: zh, zh-CN, en, en-US. Leave blank to auto-detect.
AMAGI_LANG=

# CLI-facing output. Supported values: text, json.
AMAGI_OUTPUT=text

# Optional output file path for CLI-facing payloads.
# Relative paths are resolved from the current working directory.
# Examples:
#   ./tmp/amagi-output.jsonl
#   ./logs/amagi-ready.txt
#   C:\temp\amagi\output.jsonl
AMAGI_OUTPUT_FILE=

# Pretty-print JSON output when AMAGI_OUTPUT=json.
AMAGI_OUTPUT_PRETTY=false

# Append to AMAGI_OUTPUT_FILE instead of truncating it first.
AMAGI_OUTPUT_APPEND=false

# Create missing parent directories for AMAGI_OUTPUT_FILE.
AMAGI_OUTPUT_CREATE_DIRS=false

# Optional: override the user-level dotenv path.
# Linux/macOS example: AMAGI_USER_ENV_FILE=/home/you/.config/amagi/.env
# Windows example: AMAGI_USER_ENV_FILE=C:\Users\you\AppData\Roaming\amagi\.env
# AMAGI_USER_ENV_FILE=

# Shared cookies used by CLI tasks and `amagi serve`. Leave blank to disable.
# Use the raw `Cookie:` request header value copied from a signed-in browser request.
# Example format:
#   key1=value1; key2=value2; key3=value3
# Example platform-specific cookies you may see:
#   Douyin: sessionid=...; ttwid=...
#   Bilibili: SESSDATA=...; bili_jct=...
#   Twitter/X: auth_token=...; ct0=...
#   Xiaohongshu: a1=...; web_session=...
AMAGI_DOUYIN_COOKIE=
AMAGI_BILIBILI_COOKIE=
AMAGI_KUAISHOU_COOKIE=
AMAGI_TWITTER_COOKIE=
AMAGI_XIAOHONGSHU_COOKIE=

# Shared HTTP client defaults for CLI and server fetches.
AMAGI_TIMEOUT_MS=10000
AMAGI_MAX_RETRIES=3

# Runtime logging. Supported AMAGI_LOG_FORMAT values: text, json.
AMAGI_LOG_FORMAT=text

# Supported AMAGI_LOG values: error, warn, info, debug, trace.
AMAGI_LOG=info

# Built-in HTTP server bind address.
AMAGI_HOST=127.0.0.1
AMAGI_PORT=4567

# Node-to-node HTTP proxy tuning.
AMAGI_PROXY_TIMEOUT_MS=15000
AMAGI_PROXY_MAX_HOPS=4

# Optional: WSS node transport. Uncomment and edit as a complete set.
# Supported AMAGI_NODE_ROLE values: root, worker, relay, hybrid.
# AMAGI_NODE_ID=worker-cn-a
# AMAGI_NODE_ROLE=worker
# AMAGI_NODE_ACCEPT_DOWNSTREAM=false
# AMAGI_NODE_CONNECT_UPSTREAM=wss://root.example.com/node/ws
# AMAGI_NODE_AUTH_TOKEN=change-me
#
# Optional per-node downstream credentials:
# Format: <node-id>=<secret>,<node-id>=<secret>
# AMAGI_NODE_AUTH_CREDENTIALS=worker-a=secret-a,worker-b=secret-b
#
# Optional bearer token for internal control APIs. Defaults to AMAGI_NODE_AUTH_TOKEN.
# Example: AMAGI_NODE_CONTROL_TOKEN=control-token-change-me
# AMAGI_NODE_CONTROL_TOKEN=control-token-change-me
#
# Set to true only for trusted local or test environments that use ws://.
# AMAGI_NODE_ALLOW_INSECURE_WS=false
# AMAGI_NODE_HEARTBEAT_MS=10000
# AMAGI_NODE_REQUEST_TIMEOUT_MS=15000
# AMAGI_NODE_MAX_HOPS=4
# AMAGI_NODE_MAX_CONCURRENT_TASKS=8
# AMAGI_NODE_AUTO_CLAIM_PUBLISHED_ROUTES=false

# Optional: per-platform serving policy.
# Supported *_MODE values:
#   enabled/local = handle requests locally on this process
#   upstream      = forward to *_UPSTREAM or a node route
#   disabled      = keep the route shape but reject requests
# Supported *_ROUTE values:
#   local
#   disabled
#   node:<id>     = forward through WSS node transport, for example node:worker-cn-a
# *_UPSTREAM expects a full base URL, for example:
#   https://worker-a.example.com
#   https://worker-a.example.com:4567
#
# AMAGI_PLATFORM_DOUYIN_MODE=local
# AMAGI_PLATFORM_DOUYIN_ROUTE=node:worker-cn-a
# AMAGI_PLATFORM_DOUYIN_UPSTREAM=https://douyin-upstream.example.com
#
# AMAGI_PLATFORM_BILIBILI_MODE=local
# AMAGI_PLATFORM_BILIBILI_ROUTE=local
# AMAGI_PLATFORM_BILIBILI_UPSTREAM=https://bilibili-upstream.example.com
#
# AMAGI_PLATFORM_KUAISHOU_MODE=disabled
# AMAGI_PLATFORM_KUAISHOU_ROUTE=disabled
# AMAGI_PLATFORM_KUAISHOU_UPSTREAM=https://kuaishou-upstream.example.com
#
# AMAGI_PLATFORM_XIAOHONGSHU_MODE=upstream
# AMAGI_PLATFORM_XIAOHONGSHU_ROUTE=node:worker-cn-b
# AMAGI_PLATFORM_XIAOHONGSHU_UPSTREAM=https://xiaohongshu-upstream.example.com
#
# AMAGI_PLATFORM_TWITTER_MODE=local
# AMAGI_PLATFORM_TWITTER_ROUTE=local
# AMAGI_PLATFORM_TWITTER_UPSTREAM=https://twitter-upstream.example.com