feat: 完成短剧项目空间与结构化资产创作闭环 (#38)

* feat(canvas): 短剧项目空间 - 建立项目章节与画布关联 MVP

* feat(canvas): 短剧项目空间 - 完善项目资产、镜头与流程闭环

Refs #30

* fix(deploy): 本地部署 - 修复前端构建并忽略本地 PostgreSQL 配置

* feat(*): 短剧项目空间 - 完成项目、章节、资产、角色与画布创作闭环

Refs #30

---------

Co-authored-by: ddCat <ddcat666@88.com>
This commit is contained in:
ddcat666
2026-07-27 10:45:11 +08:00
committed by GitHub
parent 431b9e3294
commit d2fbc413b3
208 changed files with 22655 additions and 4234 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "infinite-canvas",
"version": "0.1.0",
"description": "Use Codex to read and operate Infinite Canvas through the local Canvas Agent MCP server.",
"description": "Use Codex to read and operate Yingce through the local Canvas Agent MCP server.",
"author": {
"name": "ddcat"
},
@@ -11,14 +11,14 @@
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Infinite Canvas",
"shortDescription": "Use Codex to operate the current Infinite Canvas board.",
"longDescription": "Connects Codex to the local Canvas Agent MCP server so Codex can inspect the current Infinite Canvas board, create nodes, connect flows, and trigger generation through the web canvas confirmation flow.",
"displayName": "影策",
"shortDescription": "Use Codex to operate the current Yingce canvas.",
"longDescription": "Connects Codex to the local Canvas Agent MCP server so Codex can inspect the current Yingce canvas, create nodes, connect flows, and trigger generation through the web canvas confirmation flow.",
"developerName": "ddcat",
"category": "Productivity",
"capabilities": ["Canvas", "MCP", "Creative Workflow"],
"defaultPrompt": [
"打开 Infinite Canvas",
"打开影策",
"读取当前画布并总结节点结构",
"根据选中节点创建一组生图提示词"
],

View File

@@ -1,17 +1,17 @@
# Infinite Canvas Codex Plugin
# 影策 Codex 插件
这个插件把 Infinite Canvas 的本地 Canvas Agent MCP 打包给 Codex app 使用,让 Codex 能打开本地画布、读取当前节点、创建内容并触发生成流程。
这个插件把影策的本地 Canvas Agent MCP 打包给 Codex app 使用,让 Codex 能打开本地画布、读取当前节点、创建内容并触发生成流程。
## 安装
> Infinite Canvas 尚未上架 Codex 公共插件目录,直接搜索不会显示。请从本仓库自带的 marketplace 安装。
> 影策尚未上架 Codex 公共插件目录,直接搜索不会显示。请从本仓库自带的 marketplace 安装。
### AI 自动安装
把下面这段发给 Codex:
```text
请从 https://github.com/ddcat-ai/open-ai-canvas.git 安装 Infinite Canvas Codex 插件。
请从 https://github.com/ddcat-ai/open-ai-canvas.git 安装影策 Codex 插件。
请 clone 仓库到 ~/plugins/open-ai-canvas,确认 .agents/plugins/marketplace.json 和
plugins/infinite-canvas/.codex-plugin/plugin.json 都存在。然后运行
codex plugin marketplace add ~/plugins/open-ai-canvas,
@@ -39,7 +39,7 @@ codex plugin add infinite-canvas@infinite-canvas-local
### 本仓库开发调试
如果你就在 Infinite Canvas 仓库中调试插件,可以直接添加当前仓库。建议使用仓库绝对路径,避免 Codex 从其他工作目录解析失败:
如果你就在影策仓库中调试插件,可以直接添加当前仓库。建议使用仓库绝对路径,避免 Codex 从其他工作目录解析失败:
```bash
cd /path/to/infinite-canvas
@@ -49,15 +49,15 @@ codex plugin add infinite-canvas@infinite-canvas-local
## 使用
1. 新建 Codex 线程后说“打开 Infinite Canvas”。
2. 插件会确认当前仓库的本地画布服务是否已运行;端口被占用时会检查进程归属,不会把其他项目的 `3000` 当作 Infinite Canvas。
1. 新建 Codex 线程后说“打开影策”。
2. 插件会确认当前仓库的本地画布服务是否已运行;端口被占用时会检查进程归属,不会把其他项目的 `3000` 当作影策。
3. 确认或启动后,插件会直接打开新建画布 URL,并自动尝试连接本地 Agent。
4. 画布打开后,让 Codex 读取或操作当前画布。
常用提示:
```text
打开 Infinite Canvas
打开影策
读取当前画布并总结节点结构
根据选中节点创建一组生图提示词
```

View File

@@ -1,15 +1,15 @@
---
name: canvas
description: 操作 Infinite Canvas 当前网页画布,读取节点、选区、创建文本节点、创建生成流程、连接节点或触发生成。
description: 操作影策当前网页画布,读取节点、选区、创建文本节点、创建生成流程、连接节点或触发生成。
---
# Infinite Canvas
# 影策画布
你正在帮助用户操作 Infinite Canvas 网页画布。需要理解或改动画布时,优先使用已配置的 `infinite-canvas` MCP 工具;不要让用户手动复制 JSON、URL 或 token。
你正在帮助用户操作影策网页画布。需要理解或改动画布时,优先使用已配置的 `infinite-canvas` MCP 工具;不要让用户手动复制 JSON、URL 或 token。
## 工作流
- 如果用户还没有打开或连接网页画布,使用 `open-canvas` 技能打开 Infinite Canvas,不要要求用户手动复制 URL 或 token。
- 如果用户还没有打开或连接网页画布,使用 `open-canvas` 技能打开影策,不要要求用户手动复制 URL 或 token。
- 操作前先用 `canvas_get_state` 读取当前画布;如果用户明确提到选中内容、当前节点或“这个”,先用 `canvas_get_selection`。
- 创建单个文本内容优先用 `canvas_create_text_node`。
- 创建生成内容优先用 `canvas_generate_text`、`canvas_generate_image`、`canvas_generate_video`、`canvas_generate_audio`。

View File

@@ -1,11 +1,11 @@
---
name: open-canvas
description: 打开 Infinite Canvas 网页画布并自动连接本地 Canvas Agent。用户要求打开、启动、进入、使用 Infinite Canvas 或画布时使用。
description: 打开影策网页画布并自动连接本地 Canvas Agent。用户要求打开、启动、进入、使用影策或画布时使用。
---
# Open Infinite Canvas
# 打开影策画布
当用户要求打开、启动、进入或使用 Infinite Canvas 时,不要把 URL 交给用户手动复制,不要通过浏览器点击“新建画布”。优先快速拉起本地画布和本地 Canvas Agent,然后直接打开带 `mode`、`agentUrl`、`agentToken` 的 URL,让网页自动创建或选择画布并连接 Agent。
当用户要求打开、启动、进入或使用影策时,不要把 URL 交给用户手动复制,不要通过浏览器点击“新建画布”。优先快速拉起本地画布和本地 Canvas Agent,然后直接打开带 `mode`、`agentUrl`、`agentToken` 的 URL,让网页自动创建或选择画布并连接 Agent。
## 默认打开方式
@@ -17,7 +17,7 @@ description: 打开 Infinite Canvas 网页画布并自动连接本地 Canvas Age
## 工作流
1. 如果当前仓库是 Infinite Canvas 项目,优先使用当前仓库的 `web/` 前端。
1. 如果当前仓库是影策项目,优先使用当前仓库的 `web/` 前端。
2. 先检查本地端口归属:如果 `3000`、`3001` 等端口已被占用,必须用 `lsof`/`ps` 或服务输出确认监听进程的工作目录属于当前仓库的 `web/`,不能只因为端口存在就当成本地画布。
3. 如果已有当前仓库的 Next dev 服务,复用它并记录真实画布地址,例如 `http://localhost:3001`。
4. 如果没有当前仓库的服务,启动本地画布开发服务,默认在 `web/` 下运行 `bun run dev`;若默认端口被其他项目占用,改用空闲端口启动,例如 `bunx next dev --webpack -H 0.0.0.0 -p <空闲端口>`。不要执行构建或测试。
@@ -29,7 +29,7 @@ description: 打开 Infinite Canvas 网页画布并自动连接本地 Canvas Age
## 用户只安装插件时
- 如果当前工作区不是 Infinite Canvas 源码仓库,优先提示用户先打开或启动 Infinite Canvas 网页,再连接本地 Agent。
- 如果当前工作区不是影策源码仓库,优先提示用户先打开或启动影策网页,再连接本地 Agent。
- 可以使用线上画布地址或用户给出的本地地址作为 `<画布网页地址>`,但仍要通过本地 Canvas Agent 获取 token 后再打开最终 URL。
- 不要假设用户已经安装本仓库依赖;插件的 MCP 会通过 `npx -y @ddcat666/open-ai-canvas-agent mcp` 使用已发布的 Canvas Agent。