Files
beaver_project/app-instance/entrypoint.sh
steven_li ebfa242862 feat(outlook): 添加Outlook集成功能支持
添加完整的Outlook MCP集成,包括邮件和日历功能,通过AuthZ模式进行认证和权限管理,
支持邮箱连接、断开、状态检查和数据同步等功能。

fix(config): 统一配置文件路径从.nanobot到.beaver

将配置文件路径从/root/.nanobot统一更改为/root/.beaver,更新Dockerfile中的环境变量定义,
确保所有组件使用一致的配置目录结构。

feat(agent): 添加代理删除功能和助手身份提示

为代理注册表添加delete_agent方法,实现代理的动态删除功能;同时添加海狸助手身份提示,
确保AI助手在交互中保持一致的身份认知。

feat(engine): 增强引擎循环并添加意图决策快照

扩展AgentLoop类,添加intent_agent_decision参数用于意图驱动的代理决策,并在会话中记录
决策快照,便于后续分析和调试。

feat(authz): 扩展认证客户端功能

为AuthzClient添加设置权限、用户注册、后端注册和Outlook设置管理等新方法,增强系统
的认证和授权能力。
2026-05-14 16:01:46 +08:00

82 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
APP_PUBLIC_PORT="${APP_PUBLIC_PORT:-8080}"
APP_FRONTEND_PORT="${APP_FRONTEND_PORT:-3000}"
APP_BACKEND_PORT="${APP_BACKEND_PORT:-18080}"
BEAVER_HOME="${BEAVER_HOME:-/root/.beaver}"
BEAVER_CONFIG_PATH="${BEAVER_CONFIG_PATH:-$BEAVER_HOME/config.json}"
BEAVER_WORKSPACE="${BEAVER_WORKSPACE:-$BEAVER_HOME/workspace}"
BEAVER_AUTH_FILE="${BEAVER_AUTH_FILE:-$BEAVER_HOME/web_auth_users.json}"
BEAVER_RUNTIME_ENV_FILE="${BEAVER_RUNTIME_ENV_FILE:-$BEAVER_HOME/runtime.env}"
log() {
printf '[app-instance] %s\n' "$*"
}
require_file() {
local path="$1"
local message="$2"
if [[ ! -f "$path" ]]; then
printf '[app-instance] %s: %s\n' "$message" "$path" >&2
exit 1
fi
}
cleanup() {
local status=$?
if [[ -n "${NGINX_PID:-}" ]]; then
kill "${NGINX_PID}" 2>/dev/null || true
fi
if [[ -n "${FRONTEND_PID:-}" ]]; then
kill "${FRONTEND_PID}" 2>/dev/null || true
fi
if [[ -n "${BACKEND_PID:-}" ]]; then
kill "${BACKEND_PID}" 2>/dev/null || true
fi
wait 2>/dev/null || true
exit "$status"
}
trap cleanup EXIT INT TERM
mkdir -p "$BEAVER_HOME" "$BEAVER_WORKSPACE"
if [[ -f "$BEAVER_RUNTIME_ENV_FILE" ]]; then
set -a
. "$BEAVER_RUNTIME_ENV_FILE"
set +a
fi
require_file "$BEAVER_CONFIG_PATH" "Missing Beaver config"
export BEAVER_AUTH_FILE
export BEAVER_RUNTIME_ENV_FILE
export BEAVER_HOME
export BEAVER_CONFIG_PATH
export BEAVER_WORKSPACE
export PORT="$APP_FRONTEND_PORT"
export HOSTNAME="127.0.0.1"
log "starting Beaver backend on 127.0.0.1:${APP_BACKEND_PORT}"
(
cd /opt/app/backend
python -m uvicorn "beaver.interfaces.web.app:create_app" --factory --host 127.0.0.1 --port "$APP_BACKEND_PORT"
) &
BACKEND_PID=$!
log "starting frontend on 127.0.0.1:${APP_FRONTEND_PORT}"
(
cd /opt/app/frontend
node server.js
) &
FRONTEND_PID=$!
log "starting nginx on 0.0.0.0:${APP_PUBLIC_PORT}"
nginx -c /opt/app/nginx.conf -g 'daemon off;' &
NGINX_PID=$!
wait -n "$BACKEND_PID" "$FRONTEND_PID" "$NGINX_PID"