# gstackDemo **Repository Path**: AfandaInBeijing/gstack-demo ## Basic Information - **Project Name**: gstackDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-22 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gstack-demo 场景化 Agent 编排平台 **V1 最小可运行版**:SceneSpec(JSON Schema)+ 内存 API + React Flow 画布。API 层为 **Express**(与 Midway 相同的 REST 契约,后续可迁入 Midway + DB)。 ## 要求 - Node.js 18+ - 包管理:仓库规则推荐 `tnpm`;本机无 `tnpm` 时用 `npm` 即可 ## 开发 ```bash npm install npm test # SceneSpec 样例校验 + 前端 tsc npm run dev ``` 设计 token 与约定见根目录 **`DESIGN.md`**。 - 前端: - API:(默认 **7010**,避免与本机已占用的 **7001** 冲突) `npm run dev` 会先构建 `@gstack-demo/scene-spec`(含 JSON Schema),再并行启动 api / web。 ### 页面空白 / 列表一直加载? 多半是 **API 没起来**(端口冲突)。终端里若出现 `EADDRINUSE`,执行: ```bash lsof -i :7010 kill ``` 然后重新 `npm run dev`。若改用其他端口,需同时设置 **`PORT`**(api)并把 **`apps/web/vite.config.ts`** 里 `proxy['/api'].target` 改成同一端口。 ## 行为说明(对齐设计稿) - **单写者(1B)**:创建场景的用户为 `writerUserId`;顶部切换 **alice / bob** 模拟多用户——非创建者保存会 **403**。 - **分享(2A)**:无公网外链;使用 **导出 JSON**。 - **SceneSpec**:`packages/scene-spec/scene-spec.schema.json`,运行时由 `ajv` 校验。 ## 设计文档 见 `~/.gstack/projects/gstatckdemo/afanda-master-design-20260322-205113.md`(或你本机 gstack projects 路径)。