- 新增 Studio 笔记本列表页与详情页(RAG 流式聊天、历史线程切换) - 修复 streamSubgraphs: true 使 AI 流式消息正常展示 - 引用圆圈 [[cite:N]] 渲染 + 点击弹窗显示文档 chunk 内容 - 侧边栏「工作室」区域支持折叠/展开,笔记本过滤 is_owner=true - 后端 lead_agent 支持 notebook_source_ids / notebook_token 参数 - 线程 metadata 改为 thread_type=notebook,侧边栏过滤同步 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
type EnvValue = string | undefined;
|
|
|
|
function readEnv(
|
|
key:
|
|
| "VITE_BACKEND_BASE_URL"
|
|
| "VITE_LANGGRAPH_BASE_URL"
|
|
| "VITE_CANVAS_LANGGRAPH_BASE_URL"
|
|
| "VITE_NOTE_API_BASE_URL"
|
|
| "VITE_NOTEBOOK_API_BASE_URL"
|
|
| "VITE_STATIC_WEBSITE_ONLY"
|
|
| "VITE_GITHUB_OAUTH_TOKEN",
|
|
): EnvValue {
|
|
const value = import.meta.env[key];
|
|
return typeof value === "string" && value.trim() ? value : undefined;
|
|
}
|
|
|
|
export const env = {
|
|
NEXT_PUBLIC_BACKEND_BASE_URL: readEnv("VITE_BACKEND_BASE_URL"),
|
|
NEXT_PUBLIC_LANGGRAPH_BASE_URL: readEnv("VITE_LANGGRAPH_BASE_URL"),
|
|
// Canvas page uses its own LangGraph base URL so it can be independently
|
|
// routed (e.g. a separate canvas-agent server). Falls back to the main URL.
|
|
NEXT_PUBLIC_CANVAS_LANGGRAPH_BASE_URL: readEnv("VITE_CANVAS_LANGGRAPH_BASE_URL"),
|
|
NEXT_PUBLIC_NOTE_API_BASE_URL: readEnv("VITE_NOTE_API_BASE_URL"),
|
|
NEXT_PUBLIC_NOTEBOOK_API_BASE_URL: readEnv("VITE_NOTEBOOK_API_BASE_URL"),
|
|
NEXT_PUBLIC_STATIC_WEBSITE_ONLY: readEnv("VITE_STATIC_WEBSITE_ONLY"),
|
|
GITHUB_OAUTH_TOKEN: readEnv("VITE_GITHUB_OAUTH_TOKEN"),
|
|
};
|