Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@
- 公开 API 与领域对象命名要表达业务意图,避免含糊词。
- 把不需要的直接删除, 无需考虑兼容性

## 前端设计默认规则
- 前端相关请求(页面、组件、控制台、playground、样式重构、视觉 polish)默认遵循 `aevatar-frontend-design` 规范;若运行环境存在同名 skill,优先使用。
- 先确定一个明确审美方向,再开始编码;禁止把多个弱风格混在一起,禁止生成无记忆点的通用 SaaS 外观。
- 禁止默认回落到通用 AI 审美:避免把 `Inter/Arial/Roboto/system-ui` 作为首选字体,避免紫白渐变、模板化卡片网格、无差异面板堆叠。
- 优先抽取 design tokens / CSS variables / theme tokens,统一颜色、字体、间距、圆角、阴影与动效,不接受大面积零散硬编码。
- 在现有信息架构和交互模型内提升层次、比例、对比、质感与动效;除非用户明确要求大改,否则不要破坏既有导航和工作流。
- 结果必须可用:响应式、键盘可达、基本可访问性达标,真实内容密度下仍可读。


## 测试与质量门禁
- 测试栈:xUnit、FluentAssertions、`coverlet.collector`。
- 测试文件命名:`*Tests.cs`,单文件聚焦一个行为域。
Expand Down
9 changes: 9 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,15 @@
- 先抽象后实现;优先接口注入;避免跨层直接调用。
- 公开 API 与领域对象命名表达业务意图,避免含糊词。

## 前端设计默认规则
- 前端相关请求(页面、组件、控制台、playground、样式重构、视觉 polish)默认遵循 `aevatar-frontend-design` 规范;若运行环境存在同名 skill,优先使用。
- 先确定一个明确审美方向,再开始编码;禁止把多个弱风格混在一起,禁止生成无记忆点的通用 SaaS 外观。
- 禁止默认回落到通用 AI 审美:避免把 `Inter/Arial/Roboto/system-ui` 作为首选字体,避免紫白渐变、模板化卡片网格、无差异面板堆叠。
- 优先抽取 design tokens / CSS variables / theme tokens,统一颜色、字体、间距、圆角、阴影与动效,不接受大面积零散硬编码。
- 在现有信息架构和交互模型内提升层次、比例、对比、质感与动效;除非用户明确要求大改,否则不要破坏既有导航和工作流。
- 结果必须可用:响应式、键盘可达、基本可访问性达标,真实内容密度下仍可读。


## 测试与质量门禁
- 测试栈:xUnit、FluentAssertions、`coverlet.collector`。
- 测试文件命名:`*Tests.cs`,单文件聚焦一个行为域。
Expand Down
4 changes: 4 additions & 0 deletions apps/aevatar-console-web/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ NYXID_CLIENT_ID=
NYXID_REDIRECT_URI=http://127.0.0.1:5173/auth/callback
NYXID_SCOPE="openid profile email roles groups"

# Ornn skills platform
# Optional. Defaults to the public Ornn instance when omitted.
ORNN_BASE_URL=https://ornn.chrono-ai.fun

# Local dev stack ports used by scripts/dev-stack.sh
# FRONTEND_PORT affects the dev server bind port.
# API/CONFIG ports affect backend startup only; update the proxy targets above too.
Expand Down
3 changes: 3 additions & 0 deletions apps/aevatar-console-web/.env.production.example
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@ NYXID_CLIENT_ID=replace-with-public-client-id
NYXID_REDIRECT_URI=https://console.example.com/auth/callback
NYXID_SCOPE="openid profile email roles groups"

# Ornn skills platform for the browser client
ORNN_BASE_URL=https://ornn.example.com

# Planned but not wired in the current frontend build:
# AEVATAR_CONSOLE_PUBLIC_PATH=/console/
1 change: 1 addition & 0 deletions apps/aevatar-console-web/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ functions/*
.umi
.umi-production
.umi-test
src/.umi-*
.turbopack

# screenshot
Expand Down
3 changes: 3 additions & 0 deletions apps/aevatar-console-web/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@ NYXID_BASE_URL=http://127.0.0.1:3001
NYXID_CLIENT_ID=your-public-client-id
NYXID_REDIRECT_URI=http://127.0.0.1:5173/auth/callback
NYXID_SCOPE="openid profile email"
ORNN_BASE_URL=https://ornn.chrono-ai.fun
# Optional when deploying under a sub-path such as /console/
AEVATAR_CONSOLE_PUBLIC_PATH=/
```

`NYXID_BASE_URL` and `NYXID_CLIENT_ID` are required. The console no longer ships a baked-in NyxID tenant or client id.
`NYXID_REDIRECT_URI` must exactly match the public client registration in NyxID.
`ORNN_BASE_URL` controls the Ornn skills endpoint used by Studio Settings. If you omit it, the frontend falls back to the public Ornn instance.
If you change `.env.local`, restart `pnpm dev` so Umi reloads the injected env values.

## Available scripts
Expand Down Expand Up @@ -83,6 +85,7 @@ env Cli__App__NyxId__Enabled=true Cli__App__ScopeId=aevatar \
cd apps/aevatar-console-web
AEVATAR_API_TARGET=http://127.0.0.1:5080 \
AEVATAR_STUDIO_API_TARGET=http://127.0.0.1:6690 \
ORNN_BASE_URL=https://ornn.chrono-ai.fun \
pnpm dev
```

Expand Down
1 change: 1 addition & 0 deletions apps/aevatar-console-web/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ const config: ReturnType<typeof defineConfig> = defineConfig({
process.env.NYXID_REDIRECT_URI,
),
'process.env.NYXID_SCOPE': JSON.stringify(process.env.NYXID_SCOPE),
'process.env.ORNN_BASE_URL': JSON.stringify(process.env.ORNN_BASE_URL),
'process.env.AEVATAR_CONSOLE_PUBLIC_PATH': JSON.stringify(
process.env.AEVATAR_CONSOLE_PUBLIC_PATH,
),
Expand Down
6 changes: 6 additions & 0 deletions apps/aevatar-console-web/config/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ export default [
menuGroupKey: "build",
menuBadgeKey: "build.assets",
},
{
path: "/scopes/files",
name: "Files",
component: "./scopes/files",
menuGroupKey: "build",
},
{
path: "/studio",
name: "Studio",
Expand Down
Loading
Loading