93 lines
4.3 KiB
Makefile
93 lines
4.3 KiB
Makefile
|
|
# ──────────────────────────────────────────────
|
|||
|
|
# cursor-api-proxy — 設定與建置
|
|||
|
|
# 編輯下方變數,然後執行 make env 產生 .env 檔
|
|||
|
|
# ──────────────────────────────────────────────
|
|||
|
|
|
|||
|
|
# ── 伺服器設定 ─────────────────────────────────
|
|||
|
|
HOST ?= 127.0.0.1
|
|||
|
|
PORT ?= 8765
|
|||
|
|
API_KEY ?=
|
|||
|
|
TIMEOUT_MS ?= 300000
|
|||
|
|
MULTI_PORT ?= false
|
|||
|
|
VERBOSE ?= false
|
|||
|
|
|
|||
|
|
# ── Agent / 模型設定 ──────────────────────────
|
|||
|
|
AGENT_BIN ?= agent
|
|||
|
|
AGENT_NODE ?=
|
|||
|
|
AGENT_SCRIPT ?=
|
|||
|
|
DEFAULT_MODEL ?= auto
|
|||
|
|
STRICT_MODEL ?= true
|
|||
|
|
MAX_MODE ?= false
|
|||
|
|
FORCE ?= false
|
|||
|
|
APPROVE_MCPS ?= false
|
|||
|
|
|
|||
|
|
# ── 工作區與帳號 ──────────────────────────────
|
|||
|
|
WORKSPACE ?=
|
|||
|
|
CHAT_ONLY_WORKSPACE ?= true
|
|||
|
|
CONFIG_DIRS ?=
|
|||
|
|
|
|||
|
|
# ── TLS / HTTPS ───────────────────────────────
|
|||
|
|
TLS_CERT ?=
|
|||
|
|
TLS_KEY ?=
|
|||
|
|
|
|||
|
|
# ── 記錄 ──────────────────────────────────────
|
|||
|
|
SESSIONS_LOG ?=
|
|||
|
|
|
|||
|
|
# ──────────────────────────────────────────────
|
|||
|
|
|
|||
|
|
ENV_FILE ?= .env
|
|||
|
|
|
|||
|
|
.PHONY: env run build clean help
|
|||
|
|
|
|||
|
|
## 產生 .env 檔(預設輸出至 .env,可用 ENV_FILE=xxx 覆寫)
|
|||
|
|
env:
|
|||
|
|
@printf '# 由 make env 自動產生,請勿手動編輯\n' > $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_HOST=%s\n' "$(HOST)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_PORT=%s\n' "$(PORT)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_API_KEY=%s\n' "$(API_KEY)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_TIMEOUT_MS=%s\n' "$(TIMEOUT_MS)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_MULTI_PORT=%s\n' "$(MULTI_PORT)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_VERBOSE=%s\n' "$(VERBOSE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_AGENT_BIN=%s\n' "$(AGENT_BIN)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_AGENT_NODE=%s\n' "$(AGENT_NODE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_AGENT_SCRIPT=%s\n' "$(AGENT_SCRIPT)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_DEFAULT_MODEL=%s\n' "$(DEFAULT_MODEL)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_STRICT_MODEL=%s\n' "$(STRICT_MODEL)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_MAX_MODE=%s\n' "$(MAX_MODE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_FORCE=%s\n' "$(FORCE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_APPROVE_MCPS=%s\n' "$(APPROVE_MCPS)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_WORKSPACE=%s\n' "$(WORKSPACE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_CHAT_ONLY_WORKSPACE=%s\n' "$(CHAT_ONLY_WORKSPACE)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_CONFIG_DIRS=%s\n' "$(CONFIG_DIRS)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_TLS_CERT=%s\n' "$(TLS_CERT)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_TLS_KEY=%s\n' "$(TLS_KEY)" >> $(ENV_FILE)
|
|||
|
|
@printf 'CURSOR_BRIDGE_SESSIONS_LOG=%s\n' "$(SESSIONS_LOG)" >> $(ENV_FILE)
|
|||
|
|
@echo "已產生 $(ENV_FILE)"
|
|||
|
|
|
|||
|
|
## 編譯二進位檔
|
|||
|
|
build:
|
|||
|
|
go build -o cursor-api-proxy .
|
|||
|
|
|
|||
|
|
## 載入 .env 後直接執行(需先執行 make env 或已有 .env)
|
|||
|
|
run: build
|
|||
|
|
@if [ -f $(ENV_FILE) ]; then \
|
|||
|
|
set -a && . ./$(ENV_FILE) && set +a && ./cursor-api-proxy; \
|
|||
|
|
else \
|
|||
|
|
echo "找不到 $(ENV_FILE),請先執行 make env"; exit 1; \
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
## 清除產出物
|
|||
|
|
clean:
|
|||
|
|
rm -f cursor-api-proxy $(ENV_FILE)
|
|||
|
|
|
|||
|
|
## 顯示說明
|
|||
|
|
help:
|
|||
|
|
@echo "可用目標:"
|
|||
|
|
@echo " make env 產生 .env(先在 Makefile 頂端填好變數)"
|
|||
|
|
@echo " make build 編譯 cursor-api-proxy 二進位檔"
|
|||
|
|
@echo " make run 編譯並載入 .env 執行"
|
|||
|
|
@echo " make clean 刪除二進位檔與 .env"
|
|||
|
|
@echo ""
|
|||
|
|
@echo "覆寫範例:"
|
|||
|
|
@echo " make env PORT=9000 API_KEY=mysecret TIMEOUT_MS=60000"
|