概览
什么是 AIaW
AI as Workspace——一个 Quasar 2 + Vue 3 + TypeScript 构建的 AI 对话客户端。lingion/AIaW 这个 fork 基于上游 NitroRCr/AIaW 项目,移除了云同步功能和上游的演示服务(src/utils/config.ts 中 DexieDBURL = undefined,所有 Web 服务 URL 来自 .env.app 构建时注入,可以替换)。
本文档根据实际源码目录编写,不是从 README.md 或 AIaW 官方文档站点复制而来。下面的每条命令、文件路径和数值都是从 ~/Desktop/blog/aiaw/ 目录中逐文件读取的。
仓库信息一览
| 字段 | 值 | 来源 |
|---|---|---|
name / 版本 | aiaw 2.0.8.9 | package.json |
| 上游仓库 | NitroRCr/AIaW(产品名"AI as Workspace") | package.json author 字段 |
| App ID(Capacitor) | app.aiaw.glass | capacitor.config.ts |
| App ID(Tauri) | app.aiaw | src-tauri/tauri.conf.json |
| Quasar 模式列表 | SPA、PWA、Capacitor(Android/iOS)、Tauri、SSR(代码中存在,默认 SPA) | quasar.config.js |
| 启动引导文件 | i18n、unocss、global-components | quasar.config.js |
| 前端框架 | Quasar 2.18 + Vue 3.5 + Pinia 2 + vue-router 4 + vue-i18n 11 | package.json |
| CSS 管线 | UnoCSS 0.62(preset-rem-to-px)+ Quasar SCSS | uno.config.ts、quasar.config.js |
| 构建目标(浏览器) | es2022、firefox115、chrome115、safari15;Node node20 | quasar.config.js |
| Node 引擎要求 | ^24 || ^22 || ^20 || ^18 | package.json |
| 包管理器 | pnpm(仅 sharp 允许在 pnpm.onlyBuiltDependencies 中) | package.json |
| 开发端口(SPA) | 9005;PWA 9006 | quasar.config.js |
顶层目录结构(实际路径)
aiaw/
|-- android/ Capacitor 7 Android 项目(Gradle,app.aiaw.glass)
|-- src/ Vue 3 SPA 源码(主应用)
| |-- boot/ i18n / UnoCSS / 全局组件初始化的引导文件
| |-- components/ 可复用 Vue SFC 组件(assistant-item、model-item 等)
| |-- composables/ use-call-api、use-dialog-chain、use-create-dialog 等组合式函数
| |-- css/ 全局 SCSS 样式
| |-- i18n/ en-US / zh-CN / zh-TW(按语言分隔的 TS 翻译文件)
| |-- layouts/ MainLayout + 工作区侧边抽屉
| |-- pages/ 路由级页面(WorkspacePage、SettingsPage 等)
| |-- router/ routes.ts + index.ts
| |-- stores/ Pinia 状态存储(workspaces、providers、plugins 等)
| |-- utils/ db.ts、types.ts、values.ts、plugins/、platform-api.ts
| '-- views/ 子路由视图(DialogView、AssistantView 等)
|-- src-tauri/ Tauri 2 桌面端封装
|-- src-capacitor/ Capacitor 特定桥接层的 package.json
|-- src-pwa/ PWA manifest + Service Worker
|-- src-backend/ (空占位目录——本 fork 没有服务端代码)
|-- docs/ VitePress 用户文档(独立站点)
|-- scripts/ 脚本工具(sync-version、generate-app-icons、sync-android-shell 等)
|-- public/ 静态资源(头像、字体、图标、JSON 数据)
|-- resources/ 操作系统级图标文件(Android .png、Tauri .icns)
|-- quasar.config.js Quasar CLI 配置
|-- capacitor.config.ts Capacitor CLI 配置
|-- uno.config.ts UnoCSS 配置
|-- tsconfig.json
'-- .env.app 上游演示服务 URL(DEXIE/LITELLM/BUDGET/SEARXNG)
本 fork 中没有的内容
- 没有
src-backend/服务端代码——该目录存在但为空。这个 fork 是纯客户端的 - 没有云同步:
src/utils/config.ts硬编码了export const DexieDBURL = undefined,注释中写道"Cloud sync is stripped by default in this fork. Re-enable only if you explicitly wire your own Dexie Cloud URL."(云同步在本 fork 中默认被移除。仅当你明确配置了自己的 Dexie Cloud URL 时才重新启用) - 没有签入
.env文件。.env.app文件包含了上游的演示 URL,但本 fork 在运行时忽略它们——因为每一个服务路径(DocParse、SearXNG、CorsFetch、Litellm、Budget、Dexie)都被src/utils/config.ts中对应的*BaseURL常量所控制,所有这些常量都返回undefined,除非在构建时设置了对应的环境变量 - 没有针对本 fork 定制的 CI/CD 流水线
许可证
仓库包含上游的 LICENSE 文件(35 KB 文本文件)。作者是上游 NitroRCr;本 fork 是移除了云服务的个人部署版本。
参见:技术博文:AIaW 移动端 Fork——深入解析 8 个新增文件、Camera+LocalFs+Pyodide+PDF.js+Cerebras/MiniMax 集成的技术细节。