project_id、override、发布选项或已有项目凭证。需要更新已导入项目时,可以使用项目编辑或 Agent 能力。
先选择接入方式
完整项目要求与最小示例见项目导入与发布。如果已经有构建好的静态产物,也可以选择现有的直接上传静态产物流程。
源码 ZIP 通过 multipart 直接上传到本接口,当前不接受 OSS URL,也不提供源码导入的 prepare/complete。静态产物的 OSS 直传是独立发布流程。
导入入口只创建一个新的 Web 项目,不提供覆盖、合并多个工程、自动发布或按导入提交 ID 发布的能力。已识别为 App、小程序的导出包不支持;也不承诺把任意语言、框架或依赖服务自动转成可部署应用。AI 适配是可选的工程修改过程,不是发布成功保证。
导入新项目
project.write 和 source.write。ai_adapt=true 还需要 agent.run;后续查询 AI 状态和事件需要 agent.read,发布需要 release.write。
请求是 multipart 表单,所有普通字段以字符串传递,每个字段只提交一次;不定义重复普通字段的取值行为:
ZIP 会经过路径、文件类型和实际解压大小检查,最多 10,000 条目,单文件展开后最大 20 MiB,展开总量最大 200 MiB。源码可以直接放在 ZIP 根目录,也可以统一放在一个顶层目录;不要把多个独立项目一起打包。请使用常规 ZIP 工具生成未加密的 ZIP,文件名使用 UTF-8,不要包含链接、特殊文件或路径穿越。导入复用现有的 ZIP 读取和源码内容审核流程;内容审核不通过时不会创建项目。
Meoo 导出包与首页使用相同的识别规则,平台通过导出标识校验后保留原有运行方式:旧 Meoo Web 项目不需要补
mise.toml,原本使用 mise 的项目继续使用现有配置。请保留原始导出包中的 manifest;无法验证导出标识的包会按普通外部源码处理。
普通外部源码导入时不要求包含 mise.toml,但发布前需要补齐有效的 mise 配置。不要依赖上传 .git、node_modules、本地虚拟环境或 .env 来恢复运行环境:这些内容会被过滤或被安全检查拒绝。依赖应通过工程配置重建,环境变量另行配置。导入仍会执行内容安全检查;关闭 AI 不会跳过检查,也不意味着 ZIP 按字节原样恢复。
Content-Type,让它生成匹配的 multipart boundary。
导入事件和结果
成功建立连接后返回text/event-stream,使用命名事件;客户端应忽略注释心跳和未知事件。
关闭 AI 的完成示例:
project_id 是新项目的公开 URL ID,后续发布使用它即可,无需处理 Git 提交 ID,也无需调用 NAS 保存或 push 接口。初始化流程会完成源码持久化;import.completed 之后才可进入后续步骤。
调用顺序要求: 创建项目和写入源码在同一个导入接口内执行,但项目记录会先于源码写入完成。在收到 import.completed 前,请勿通过网页、CLI 或其他接口编辑该项目、启动 Agent、发布或删除项目。服务端不对这些入口额外加锁,并发操作可能导致源码不完整或导入失败。若开启 AI,收到完成事件后还应等待 AI Run 结束再发布。导入失败时请核对项目状态,确认原任务结束后删除遗留项目,再重新导入。
可选 AI 适配
ai_adapt=true 在源码导入成功后启动现有 Agent Run。旧 Meoo 项目沿用原框架和构建发布方式,AI 按需修复依赖、源码和运行配置;使用 mise 的项目通过 mise-import 补齐配置并验证预览。开启此选项即允许这类配置和源码修改。该适配任务禁用平台云服务开通,不执行正式发布。
import.completed.data.ai 有三种状态:
started 不表示 AI 已完成。使用现有 Agent API:
单独发布
导入完成且可选 AI 适配完成后,调用现有 发布 API:mise.toml 决定构建方式。调用方可以封装「导入 → 等待 AI(可选)→ 发布」的一键流程。
重试和错误
Idempotency-Key 必填,允许 1–128 个字母、数字、下划线或连字符。在 24 小时幂等窗口内,同一凭证、同一用户以相同 ZIP 和表单选项重试相同 Key,会接续最新进度或返回最终结果,不重复创建项目或启动 AI。不同文件或选项应使用新 Key;改变 Key 会创建另一个项目。
幂等窗口不会延长凭证有效期。重新签发的团队成员 Token 属于新的凭证,不能依靠旧 Key 跨 Token 去重。请及时保存 project_id、import_id 和终态;凭证过期后先核对已创建的项目,不要用新 Token 盲目重传旧请求。正常断线重连应复用仍有效的原凭证。
客户端断开不会取消后台导入。重连时重新提交同一请求,包括文件和 Key;接口只保留最新进度及最终结果,不提供完整历史事件回放,也不使用 Last-Event-ID。超过幂等窗口后不要把同一个 Key 当作永久查询句柄,应保存成功返回的项目 ID。
建流前的参数、权限、上传大小和幂等检查错误使用标准 application/problem+json。项目额度、ZIP 结构和内容审核属于导入任务阶段,失败通过 import.failed 返回,不能仅凭 HTTP 200 判断成功。若连接异常关闭且未收到终态,用同一请求重连确认结果。
源码内容审核失败时,import.failed.data.code 为 forbidden;超出扫描支持范围为 artifact_invalid;审核服务异常为 service_unavailable。前两种情况需修改源码包后用新 Key 导入;审核服务异常可稍后用新 Key 重试,原 Key 仍返回原失败结果。
已有记录但执行长时间无进展时,返回 import.failed,错误码为 import_interrupted,表示结果无法确认,不代表源码一定未保存。接口不会查询项目数据库来推断成功,同一 Key 的重试只返回已有结果,不重新执行导入。有 project_id 时检查该项目;没有时通过项目列表按名称和创建时间查找。若请求了 AI,也要检查当前 Agent 任务。确认无需保留且任务已结束后,再删除遗留项目、用新 Key 导入。
幂等依赖缓存记录。记录完全丢失或过期后,同一 Key 再次提交也可能被当作新请求,不能保证去重。遇到结果无法确认或状态记录过期时,先核对项目和 Agent 任务,不要盲目重传。
单次导入最长运行 24 小时;超时后停止后续写入。未收到明确结果前,优先使用同一请求重连核对,避免删除仍在导入的项目。
详细错误包装、追踪 Header 和通用重试规则见通用协议。

