42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
# Codex 接入说明
|
|
|
|
Rednote Tool Studio 是确定性的项目、构建与校验服务,不内嵌任何 LLM。Codex、Claude Code 或其他编码代理通过 HTTP 操作它。
|
|
|
|
生产环境使用 HTTP Basic Auth。用户名默认为 `studio`,密码由部署方保存在 `STUDIO_PASSWORD` 中。代理调用所有业务 API 时都应发送 `Authorization` 请求头;`GET /api/health` 是唯一无需认证的接口。
|
|
|
|
## 建议工作流
|
|
|
|
1. `POST /api/projects` 创建项目,保存响应中的 `id` 和 `revision`。
|
|
2. `GET /api/projects/{id}` 获取文件列表。
|
|
3. 逐个读取必要文件,避免覆盖用户未要求修改的内容。
|
|
4. 使用 `PUT /files/{path}` 或 `POST /patch` 写入,并始终传当前 `revision`。
|
|
5. 若修改了 `package.json`,调用 `POST /dependencies/install`。安装过程禁用依赖生命周期脚本。
|
|
6. `POST /build` 后读取结构化报告;根据 `code`、`file`、`line` 和 `suggestion` 修复。
|
|
7. `POST /validate` 直到 `status` 为 `passed`。
|
|
8. `POST /package`,将 `artifactUrl` 返回给用户。
|
|
|
|
完整接口契约位于 `GET /openapi.json`。
|
|
|
|
## 约束
|
|
|
|
- 小工具纯本地运行,不调用网络接口,不加载任何外链资源。
|
|
- 不使用内联脚本、行内事件、`type="module"`、`import()`、Web Worker、WASM 或受限设备 API。
|
|
- 源码可以用 React JSX;服务会将最终代码打包成面向 Chrome 61 的 ES2017 经典脚本。
|
|
- `index.html` 必须位于 ZIP 根目录。
|
|
- 修改失败并返回 HTTP 409 时,重新获取项目与文件,再基于最新 revision 应用改动。
|
|
- 校验通过表示静态门禁通过,不等同于小红书模拟器或真机验收。
|
|
|
|
## 示例
|
|
|
|
```bash
|
|
curl -X POST http://localhost:3000/api/projects \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{"name":"周末灵感签","template":"basic"}'
|
|
|
|
curl -X POST http://localhost:3000/api/projects/PROJECT_ID/package \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{}'
|
|
```
|
|
|
|
不要把服务暴露到不可信网络。后续部署到共享环境时,应在 API 前增加身份认证、项目授权和请求限流。
|