feat: add kimi a7m overlay workflow and remote43 validation

This commit is contained in:
phamnazage-jpg
2026-05-26 07:50:43 +08:00
parent 497e5d91b4
commit 83a05b4889
174 changed files with 3424 additions and 122 deletions

View File

@@ -273,6 +273,7 @@ run_test_import_remote43_provider_subscription_prep() {
pack_dir="$tmpdir/pack"
mkdir -p "$fakebin"
mkdir -p "$pack_dir/providers"
printf '%s\n' '{"pack_id":"openai-cn-pack","version":"1.1.3"}' > "$pack_dir/pack.json"
printf '%s\n' '{"provider_id":"deepseek","base_url":"https://upstream.example.com/v1"}' > "$pack_dir/providers/deepseek.json"
cat > "$fakebin/curl" <<'EOF'
@@ -334,13 +335,13 @@ case "$url" in
*/api/import-batches/123)
write_body '{"managed_resources":[{"ResourceType":"group","HostResourceID":"7","ResourceName":"DeepSeek 默认分组"}]}'
;;
*/api/providers/deepseek/status*)
*/api/providers/deepseek/status\?pack_id=openai-cn-pack\&host_id=remote43-current-host)
write_body '{"status":"ready"}'
;;
*/api/providers/deepseek/access/status*)
*/api/providers/deepseek/access/status\?pack_id=openai-cn-pack\&host_id=remote43-current-host)
write_body '{"latest_access_status":"subscription_ready"}'
;;
*/api/providers/deepseek/access/preview*)
*/api/providers/deepseek/access/preview\?pack_id=openai-cn-pack\&host_id=remote43-current-host)
write_body '{"available":true}'
;;
*)
@@ -492,6 +493,7 @@ EOF
HOST_BASE="http://127.0.0.1:18087" \
CRM_HOST_BASE="http://127.0.0.1:18093" \
REMOTE_HOST_BASE="http://127.0.0.1:18093" \
HOST_NAME="human-friendly-host-name" \
ROOT="$artifact_dir/root" \
ART="$artifact_dir/run" \
PACK_PATH="$pack_dir" \
@@ -553,6 +555,14 @@ EOF
assert_not_contains "$ssh_contents" "http://127.0.0.1:18087/v1/models"
assert_not_contains "$ssh_contents" "http://127.0.0.1:18087/v1/chat/completions"
assert_not_contains "$ssh_contents" "user-key"
local provider_status
provider_status="$(cat "$artifact_dir/run/13-provider-status.json")"
assert_contains "$provider_status" '"status":"ready"'
local access_status
access_status="$(cat "$artifact_dir/run/14-access-status.json")"
assert_contains "$access_status" '"latest_access_status":"subscription_ready"'
}
run_test_migrate_historical_artifacts() {
@@ -642,10 +652,111 @@ EOF
[[ -f "$sensitive_root/20260522_foo/05-subscription-access-prep.sql" ]] || fail "sql file was not moved to sensitive mirror"
}
run_test_remote43_patched_stack_renderers() {
# shellcheck disable=SC1091
source "$ROOT_DIR/scripts/remote43_patched_stack_lib.sh"
local host_env crm_env bootstrap
host_env="$(render_remote43_host_env "stack-pg" "stack-redis" "db-pass" "sub2api" "admin@sub2api.local" "admin-pass" "jwt-secret" "totp-secret")"
crm_env="$(render_remote43_crm_env "18143" "file:/tmp/sub2api.db?_foreign_keys=on" "crm-token")"
bootstrap="$(render_remote43_bootstrap_script \
"/home/ubuntu/test-stack" \
"/home/ubuntu/test-stack/.env.host" \
"/home/ubuntu/test-stack/.env.crm" \
"sub2api-patched" \
"sub2api-cn-relay-manager-server" \
"/home/ubuntu/test-stack/data" \
"/home/ubuntu/test-stack/sub2api-cn-relay-manager.db" \
"/home/ubuntu/test-stack/crm.pid" \
"/home/ubuntu/test-stack/crm.log" \
"test-stack-app" \
"test-stack-pg" \
"test-stack-redis" \
"test-stack-net" \
"weishaw/sub2api:0.1.129" \
"postgres:16-alpine" \
"redis:7-alpine" \
"db-pass" \
"sub2api" \
"18139" \
"18143" \
"8080")"
assert_contains "$host_env" "AUTO_SETUP=true"
assert_contains "$host_env" "DATABASE_HOST=stack-pg"
assert_contains "$host_env" "REDIS_HOST=stack-redis"
assert_contains "$crm_env" "SUB2API_CRM_LISTEN_ADDR=127.0.0.1:18143"
assert_contains "$crm_env" "SUB2API_CRM_ADMIN_TOKEN=crm-token"
assert_contains "$bootstrap" 'rm -f "$DATA_DIR/install.lock" "$DATA_DIR/config.yaml" "$DATA_DIR/.installed"'
assert_contains "$bootstrap" '-v "$HOST_BINARY:/app/sub2api:ro"'
assert_contains "$bootstrap" '-p "127.0.0.1:$HOST_PORT:$HOST_CONTAINER_PORT"'
assert_contains "$bootstrap" '/api/v1/auth/login'
assert_contains "$bootstrap" '/healthz'
assert_contains "$bootstrap" 'source "$1"; set +a; exec "$2"'
}
run_test_setup_remote43_patched_stack_dry_run() {
local tmpdir pack_dir shared_pack_dir host_bin crm_bin operator_env tunnel_script stdout_file ssh_key
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' RETURN
pack_dir="$tmpdir/pack"
shared_pack_dir="$tmpdir/shared-pack"
host_bin="$tmpdir/sub2api-patched"
crm_bin="$tmpdir/server"
operator_env="$tmpdir/operator.env"
tunnel_script="$tmpdir/tunnel.sh"
stdout_file="$tmpdir/setup.stdout.txt"
ssh_key="$tmpdir/remote43.pem"
mkdir -p "$pack_dir/providers"
printf '%s\n' '{"pack_id":"openai-cn-pack","version":"1.1.3"}' > "$pack_dir/pack.json"
printf '%s\n' '{"provider_id":"kimi-a7m"}' > "$pack_dir/providers/kimi-a7m.json"
printf '%s\n' '#!/usr/bin/env bash' > "$host_bin"
printf '%s\n' '#!/usr/bin/env bash' > "$crm_bin"
printf '%s\n' 'dummy-key' > "$ssh_key"
chmod +x "$host_bin" "$crm_bin"
KEY="$ssh_key" \
REMOTE="ubuntu@example.com" \
STACK_NAME="test-stack" \
HOST_PORT=18139 \
CRM_PORT=18143 \
HOST_BINARY="$host_bin" \
CRM_BINARY="$crm_bin" \
PACK_DIR="$pack_dir" \
LOCAL_SHARED_PACK_DIR="$shared_pack_dir" \
LOCAL_OPERATOR_ENV_FILE="$operator_env" \
LOCAL_TUNNEL_SCRIPT="$tunnel_script" \
REMOTE_ROOT="/home/ubuntu/test-stack" \
DRY_RUN=1 \
bash "$ROOT_DIR/scripts/setup_remote43_patched_stack.sh" >"$stdout_file"
[[ -f "$operator_env" ]] || fail "operator env file was not created"
[[ -f "$tunnel_script" ]] || fail "tunnel script was not created"
[[ -f "$shared_pack_dir/pack.json" ]] || fail "shared pack mirror was not created"
local stdout_text operator_env_text tunnel_text
stdout_text="$(cat "$stdout_file")"
operator_env_text="$(cat "$operator_env")"
tunnel_text="$(cat "$tunnel_script")"
assert_contains "$stdout_text" "remote43 patched stack prepared"
assert_contains "$stdout_text" "local operator env file: $operator_env"
assert_contains "$stdout_text" "DRY_RUN: ssh -i $ssh_key"
assert_contains "$operator_env_text" "CRM_BASE=http://127.0.0.1:18143"
assert_contains "$operator_env_text" "HOST_BASE=http://127.0.0.1:18139"
assert_contains "$operator_env_text" "PACK_PATH=$shared_pack_dir"
assert_contains "$operator_env_text" "REMOTE_HOST_ENV_FILE=/home/ubuntu/test-stack/.env.host"
assert_contains "$tunnel_text" "-L 18143:127.0.0.1:18143"
assert_contains "$tunnel_text" "-L 18139:127.0.0.1:18139"
}
run_test_build_subscription_access_prep_sql
run_test_real_host_acceptance_after_import_hook
run_test_check_deepseek_completion_split
run_test_import_remote43_provider_subscription_prep
run_test_migrate_historical_artifacts
run_test_remote43_patched_stack_renderers
run_test_setup_remote43_patched_stack_dry_run
echo "PASS: real host script regression checks"