forked from EduCraft/curriculum-project-hub
feat(hub): 抽出运行时配置
This commit is contained in:
+5
-13
@@ -13,7 +13,7 @@
|
||||
import "dotenv/config";
|
||||
import Fastify from "fastify";
|
||||
import { prisma } from "./db.js";
|
||||
import { createDefaultModelRegistry } from "./agent/defaultModels.js";
|
||||
import { createEnvRuntimeSettings } from "./settings/runtime.js";
|
||||
import { createLarkClient, startFeishuListenerWithClient } from "./feishu/client.js";
|
||||
import { makeTriggerHandler } from "./feishu/trigger.js";
|
||||
|
||||
@@ -36,11 +36,9 @@ async function main(): Promise<void> {
|
||||
const databaseUrl = requireEnv("DATABASE_URL");
|
||||
void databaseUrl;
|
||||
|
||||
// Claude Code SDK auth via OpenRouter's Anthropic Skin.
|
||||
// ANTHROPIC_AUTH_TOKEN = OpenRouter API key; ANTHROPIC_API_KEY must be empty.
|
||||
requireEnv("ANTHROPIC_AUTH_TOKEN");
|
||||
process.env["ANTHROPIC_BASE_URL"] ??= "https://openrouter.ai/api";
|
||||
process.env["ANTHROPIC_API_KEY"] ??= "";
|
||||
const runtimeSettings = createEnvRuntimeSettings();
|
||||
await runtimeSettings.provider("openrouter");
|
||||
|
||||
const feishuAppId = requireEnv("FEISHU_APP_ID");
|
||||
const feishuAppSecret = requireEnv("FEISHU_APP_SECRET");
|
||||
const feishuBotOpenId = requireEnv("FEISHU_BOT_OPEN_ID");
|
||||
@@ -56,20 +54,14 @@ async function main(): Promise<void> {
|
||||
});
|
||||
app.log.info("startup: cleared stale locks + dead runs");
|
||||
|
||||
|
||||
|
||||
app.get("/api/healthz", async () => ({ ok: true, ts: Date.now() }));
|
||||
|
||||
// Model registry (role-as-data, ADR-0017). Defaults are OpenRouter model
|
||||
// slugs; ANTHROPIC_DEFAULT_SONNET_MODEL can override the role default.
|
||||
const models = createDefaultModelRegistry();
|
||||
|
||||
// --- Feishu listener ---
|
||||
const feishuListenerEnabled = booleanEnv("HUB_FEISHU_LISTENER_ENABLED", true);
|
||||
if (feishuListenerEnabled) {
|
||||
const feishuConfig = { appId: feishuAppId, appSecret: feishuAppSecret, botOpenId: feishuBotOpenId };
|
||||
const larkClient = createLarkClient(feishuConfig);
|
||||
const trigger = makeTriggerHandler({ prisma, models, logger: app.log });
|
||||
const trigger = makeTriggerHandler({ prisma, settings: runtimeSettings, logger: app.log });
|
||||
startFeishuListenerWithClient(feishuConfig, larkClient, app.log, trigger);
|
||||
} else {
|
||||
app.log.info("feishu listener disabled by HUB_FEISHU_LISTENER_ENABLED");
|
||||
|
||||
Reference in New Issue
Block a user