技术架构
NESTA Web、AI Gateway、流式协议、数据边界与文档站构建架构。
NESTA 的运行时由 Web PWA 与 AI Gateway 组成,权威知识与独立静态站点构成只读的产品和工程说明层。浏览器不持有模型服务密钥,模型输出也不能直接绕过产品状态机改变家庭状态。
Web PWA
Web 工程按以下方向组织:
app -> pages -> features -> entities
\ \ \--> shared
\--> application -> features/entities/shared
app/负责启动、依赖装配、错误边界、导航、浏览器历史和 PWA 生命周期。pages/只组合公开功能接口,不承载领域模型。application/协调跨功能状态与用例。features/是垂直功能切片,只通过本地公共入口对外暴露能力。entities/保存共享领域类型,shared/保存业务中立的 UI、传输、存储和工具基础设施。
ESLint 约束高层依赖方向。功能可以依赖实体和共享层,但不能导入其他功能的内部实现、页面或启动层。
可替换的数据边界
活动、成员、记忆、空间、服务和对话通过各功能拥有的 Repository 接口访问数据。内部构建绑定确定性的 Mock 实现;后续真实后端适配器必须通过相同契约测试,页面组件不根据数据源模式分支。
Gateway 对模型供应商暴露中立的流式接口。Mock、混合和真实运行模式共享同一内部事件协议;供应商凭据只存在于服务端,缺失凭据时真实模式必须明确失败。
流式对话与 A2UI
- 浏览器通过同源
/api/**请求 Gateway,并以 SSE 接收流式事件。 - Gateway 负责请求大小、家庭边界、幂等、超时和速率限制。
- 私聊和明确提及 NESTA 的家庭频道回复可以携带受约束的 A2UI 表面。
- Gateway 拥有工具参数校验、可信数据和动作授权;浏览器再次校验事件和组件目录。
- 模型不能提供任意组件、脚本、HTML、远程媒体或未登记 URL,也不能直接执行高风险家庭动作。
安全与持久化边界
- 日志只记录请求标识、路由、状态和耗时,不记录提示词正文。
- Markdown 渲染禁用原始 HTML;任何外部跳转由白名单或可信映射产生。
- 浏览器可以缓存应用壳、对话历史和已完成的紧凑 A2UI 快照,但
/api/**始终使用网络请求。 - Service Worker 更新等待用户确认,避免正在进行的流被新版本强制刷新。
文档与网站链路
Guide、Product、Design 和 Dev 都是独立静态站点。各构建器只读取自己的 knowledge/ 来源与共享 Token,生成可重复构建的静态文件;NESTA 主站只读取站点注册表。网站实现和发布产物都不能成为规范来源。