@iqiyi-intl-nadoupro/nadoupro-cli 1.0.0-test.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +25 -0
  2. package/package.json +42 -0
  3. package/scripts/bootstrap.js +393 -0
  4. package/scripts/install.js +99 -0
  5. package/scripts/run.js +65 -0
  6. package/scripts/skill-sync.js +18 -0
  7. package/skills/nadou/SKILL.md +68 -0
  8. package/skills/nadou/commands/audio.md +125 -0
  9. package/skills/nadou/commands/auth.md +91 -0
  10. package/skills/nadou/commands/canvas-attachment.md +71 -0
  11. package/skills/nadou/commands/canvas-edge.md +65 -0
  12. package/skills/nadou/commands/canvas-graph.md +191 -0
  13. package/skills/nadou/commands/canvas-management.md +77 -0
  14. package/skills/nadou/commands/canvas-media.md +377 -0
  15. package/skills/nadou/commands/canvas-node.md +228 -0
  16. package/skills/nadou/commands/canvas.md +123 -0
  17. package/skills/nadou/commands/evidence.md +30 -0
  18. package/skills/nadou/commands/image-tools.md +88 -0
  19. package/skills/nadou/commands/image.md +273 -0
  20. package/skills/nadou/commands/material.md +59 -0
  21. package/skills/nadou/commands/media.md +156 -0
  22. package/skills/nadou/commands/model.md +103 -0
  23. package/skills/nadou/commands/points.md +43 -0
  24. package/skills/nadou/commands/schedule.md +112 -0
  25. package/skills/nadou/commands/space.md +253 -0
  26. package/skills/nadou/commands/system.md +50 -0
  27. package/skills/nadou/commands/task-request.md +188 -0
  28. package/skills/nadou/commands/task.md +229 -0
  29. package/skills/nadou/commands/text.md +81 -0
  30. package/skills/nadou/commands/video-advanced.md +96 -0
  31. package/skills/nadou/commands/video.md +247 -0
  32. package/skills/nadou/guides/artifact-presentation.md +146 -0
  33. package/skills/nadou/guides/canvas-dependency-graph.md +101 -0
  34. package/skills/nadou/guides/canvas-first-complex-workflow.md +83 -0
  35. package/skills/nadou/guides/execution-interaction.md +54 -0
  36. package/skills/nadou/guides/failure-cost-presentation.md +42 -0
  37. package/skills/nadou/guides/intent-templates.md +53 -0
  38. package/skills/nadou/guides/model-rules.md +7 -0
  39. package/skills/nadou/guides/utf8-input-safety.md +13 -0
  40. package/skills/nadou/node-types/audio.md +66 -0
  41. package/skills/nadou/node-types/clip.md +43 -0
  42. package/skills/nadou/node-types/director3d.md +41 -0
  43. package/skills/nadou/node-types/group.md +59 -0
  44. package/skills/nadou/node-types/image.md +137 -0
  45. package/skills/nadou/node-types/index.md +77 -0
  46. package/skills/nadou/node-types/json-contract.md +275 -0
  47. package/skills/nadou/node-types/model3d.md +35 -0
  48. package/skills/nadou/node-types/storyboard.md +43 -0
  49. package/skills/nadou/node-types/text.md +93 -0
  50. package/skills/nadou/node-types/video.md +119 -0
  51. package/skills/nadou/policies/core-safety.md +35 -0
  52. package/skills/nadou/policies/cost-and-write.md +37 -0
  53. package/skills/nadou/policies/result-and-recovery.md +41 -0
  54. package/skills/nadou/recipes/atomic-image.md +77 -0
  55. package/skills/nadou/recipes/canvas-image.md +92 -0
  56. package/skills/nadou/recipes/one-click-film.md +234 -0
  57. package/skills/nadou/recipes/quality-review.md +95 -0
  58. package/skills/nadou/recipes/typical-flows-host-adaptation.md +113 -0
  59. package/skills/nadou/workflows/atomic.md +61 -0
  60. package/skills/nadou/workflows/canvas.md +59 -0
  61. package/skills/nadou/workflows/local.md +41 -0
  62. package/skills/nadou/workflows/task-recovery.md +45 -0
@@ -0,0 +1,113 @@
1
+ # 典型流程与宿主适配
2
+
3
+ ## WorkBuddy 的画布路由安全
4
+
5
+ 首次写入画布前,宿主应检查 `nadou version --json`、`nadou skill status --json` 和
6
+ `nadou capability list --json`。如果内嵌 Skill 已过期或不可用,必须在生成前报告,不能用猜测的工作流替代。
7
+
8
+ 以下路由必须相互独立:
9
+
10
+ - 独立执行 `nadou image/video/audio`:不写入画布
11
+ - 请求画布生成节点:先执行 `canvas node estimate`,再执行 `canvas node generate`,默认立即执行;明确要求在画布中生成音频时也保留在此路由,不能切换到 `nadou audio`
12
+ - 将本地素材放入画布:创建上传或自定义节点;该节点必须保持上传来源,不能宣称具备生成节点的提示词展示能力
13
+ - 挂载现有任务产物:当前只有契约定义,不自动收集,也不使用“下载后上传”的回退方案或伪造 `generated` 补丁
14
+
15
+ 字段 `imageNodeOrigin` 表示来源,不是界面开关。不得修改该字段、`isCustomNode`、任务状态、回调 URL 或元数据,让上传节点伪装成生成节点。
16
+
17
+ 本页把已确认的 CLI 能力组织为用户可理解的流程。先读取本页,再按链接进入具体命令页;不能把
18
+ 流程中的“暂停”跳过,也不能把尚未开放的平台能力用本地命令、其他平台或未批准接口替代。
19
+
20
+ ## 首次使用
21
+
22
+ 1. 先按 README 安装或升级 CLI;安装完成后运行 `nadou version --json` 和 `nadou doctor --json`。
23
+ 2. 使用 `nadou auth status --profile <profile> --no-interactive --json` 检查该配置环境。状态为
24
+ `missing`、`expired` 或 `reauth_required` 时,才运行 `nadou auth login --profile <profile>`,由
25
+ 系统浏览器完成授权;已认证时不得重复登录。
26
+ 3. `profile` 只选择本地环境或配置,不是产品中的个人/团队账号。使用用户或当前任务明确指定的配置环境,
27
+ 再用 `nadou auth whoami --profile <name> --json` 核实登录身份;不得把多个配置环境包装成个人/团队账号候选。
28
+ 4. 运行 `nadou space current --profile <profile> --json` 和 `nadou space list --profile <profile> --json`。
29
+ 有多个可用空间且用户未指定时,展示真实 ID、名称和当前标记并暂停;用户明确选择后才执行一次
30
+ `nadou space use <space-id>`,随后回读 `space current`。
31
+ 5. 最后运行 `nadou capability list --json` 展示当前安装版本的可用能力;需要生成时再用
32
+ `model list` / `model schema` 发现该账号真实可用的模型和参数。
33
+
34
+ 结果必须分开报告:当前配置/登录身份、同一登录身份下服务端权威的个人/团队空间、可选空间,以及本地能力目录。
35
+ `capability list` 只描述已安装 CLI,不能证明模型、额度或空间写权限已经可用。
36
+
37
+ ## 单个素材
38
+
39
+ 1. 先澄清目标、是否需要参考素材、生成数量、比例/时长、模型偏好、交付目录和可接受的预算。
40
+ 2. 读取 [意图模板](../guides/intent-templates.md) 和对应的[图片](../commands/image.md)、[视频](../commands/video.md)、
41
+ [音频](../commands/audio.md)或[高级视频](../commands/video-advanced.md)说明;本地参考素材先显式上传,模型与参数只从实时
42
+ `model list` / `model schema` 取得。
43
+ 3. 路径、计费空间和交付目标有歧义时暂停。未指定画布或交付目录的独立图片、视频或音频,必须在估价和提交确认前
44
+ 使用 `space current` 与 `space directory list` 列出真实目录候选,让用户在同一次确认中选择目录并确认费用;未选择时不得提交,
45
+ 不得默认个人空间根目录或先生成再补问目录。明确画布时转为 `canvas node generate`,不提交独立任务。
46
+ 4. 对图片、视频和音频以同一个请求文件完成预演、余额查询、服务端估价和费用确认;确认后仅
47
+ `task submit` 一次。文本生成不走图片/视频/音频费用预检,直接返回正文。
48
+ 5. 只用原任务 ID 查询任务和可信在线产物,并显式交付到提交前确认的目录。默认呈现在线结果和空间交付;
49
+ 只有用户明确要求本地文件时才执行下载。生成、在线产物、空间交付和显式本地下载状态必须分开报告,
50
+ 不能把“已提交”或“已生成”称为“已交付”。
51
+
52
+ 路径歧义、费用高于用户预算、模型能力变化、估价不明确或写入结果未知都是暂停点。它们的恢复规则以
53
+ [任务](../commands/task.md)和[空间](../commands/space.md)为准,不能自动重试写请求或重建任务。
54
+
55
+ ## 复杂影视任务
56
+
57
+ 默认采用 [画布优先工作流](../guides/canvas-first-complex-workflow.md):先将需求整理为创作简报和分镜,读取实时画布,
58
+ 一次建立空节点与资产依赖边,回读确认后再填入每个节点的提示词和模型配置;随后用一次多节点估价确认总范围,
59
+ 按依赖波次执行 `canvas node generate` 并保存每个任务 ID。不能先用独立任务生成角色/场景参考,再回画布猜哪些节点需要连线。
60
+ 当前 CLI 的生成提交仍是单节点原子请求,所谓“批量执行”由 Agent 按已确认的节点清单和依赖波次编排,不代表存在未经批准的
61
+ 服务端批量提交接口。
62
+
63
+ 只有用户明确选择“独立素材 + 本地线性后处理”时,才按[一键成片](one-click-film.md)分别完成角色/场景参考、
64
+ 多参考视频生成、逐任务验收;下载可信产物后,可用 `nadou media normalize`、`compose`、`subtitle`、`verify` 在本机
65
+ 完成**线性**合成、硬字幕和技术核验。这条独立路径不事后补挂画布。
66
+
67
+ 用户已选择个人或团队文件夹、但未给出画布时,直接使用该文件夹发现结果中的两个 ID 创建画布:
68
+
69
+ ```sh
70
+ nadou canvas create "<创作名称>" \
71
+ --group-id <selected-folder-group-id> --directory-id <selected-folder-id> \
72
+ --profile <profile> --json
73
+ ```
74
+
75
+ 保存返回的 `workflow_id`,随后所有 Graph 编辑和节点生成都显式携带该 ID。目录 ID 缺少所属空间 ID、
76
+ 创建结果未知或服务端拒绝时停在当前步骤;不得创建第二张画布、改投其他目录或猜测目标。
77
+
78
+ 必须在以下点暂停并说明阻塞,而非承诺完成平台成片:
79
+
80
+ - 剧本/分镜节点的专有生成和编辑参数结构尚未公开;只能创建和读取其结构,不能猜测业务字段。
81
+ - 平台画布发布、复杂专业剪辑和未进入当前允许列表的云端合并仍没有公开可执行契约;若当前环境已提供
82
+ `canvas media timeline` 与 `backend-submit/backend-status`,画布时间线合成按 [画布媒体](../commands/canvas-media.md)
83
+ 执行,并在导出前按 [画布依赖图](../guides/canvas-dependency-graph.md) 核对源素材边。
84
+ - 本地 `media compose` 不支持转场、多轨、背景音乐或自动混音,且本地产物不代表已上传回平台画布。
85
+
86
+ 用户接受本地线性成片时,明确本地输出路径和验收结果;当前环境没有上述组合式契约时,要求平台时间线/导出才记录为后端阻塞项并等待
87
+ 已批准的精确请求方法和路径;已部署的公开命令不能改用内部接口或绕过允许列表。
88
+
89
+ ## 定时任务
90
+
91
+ CLI 可以为图片/视频选择本地或服务端定时,为独立 `TEXT2TEXT` 选择本地定时,为单个画布节点选择服务端定时。模式、未来时间和
92
+ IANA 时区必须显式选择;本地模式依赖工作进程,服务端模式通过普通任务提交创建。创建后以原任务 ID 使用
93
+ `nadou task status <task-id>`、`task wait <task-id>` 或 `task events <task-id>`;等待窗口应覆盖到执行时间
94
+ 加上预期耗时。`CANCELED` 和 `PAUSED` 是非成功终态,不能自动重提。
95
+
96
+ 取消/改期的状态对账以服务端事实为准:`CANCELED` 证明取消成功;`SCHEDULED` 且时间等于目标值证明改期成功;
97
+ 进入 `INIT/RUNNING` 或终态说明窗口已过。已知服务端任务 ID 可使用 `task reschedule/cancel-scheduled`;
98
+ 上下文任务的两个命令要求权威项目、画布或会话上下文;独立任务仅 `reschedule` 可省略上下文,取消仍需上下文。两者写前后均回读同一任务 ID,且写操作不自动重试。服务端任务分页和
99
+ DAG 接口仍未进入允许列表;本地 `schedule cancel/update/list` 只管理尚未提交的本地计划,不得冒充服务端管理。
100
+
101
+ ## 宿主适配
102
+
103
+ 先识别宿主在当前运行时**真实提供**的提问、确认、媒体展示和跨回合上下文能力;不凭宿主名称假设
104
+ 能力存在。若宿主未提供某种交互,使用清晰的聊天问题并暂停,等待明确答复。
105
+
106
+ | 宿主 | 询问与确认 | 产物展示 | 长任务恢复 | 降级 |
107
+ | --- | --- | --- | --- | --- |
108
+ | Codex | 优先使用当前模式实际提供的结构化提问/确认能力。 | 优先展示已核实的在线入口和空间路径;仅在用户明确下载且验证成功后展示本地媒体。 | 保留原任务 ID、画布 ID 和已知交付状态,跨回合继续查询。 | 使用简洁聊天问题并暂停。 |
109
+ | WorkBuddy | 使用宿主实际提供的确认能力;没有时明确提问并等待。 | 按宿主真实能力展示已核实的在线入口和空间路径;显式本地下载成功时才展示本地文件。 | 用原任务 ID 继续,不新建任务替代恢复。 | 使用聊天问题并暂停。 |
110
+ | Trae | 先发现当前版本真实提供的确认能力,再选择对应交互。 | 按运行时能力展示,不假设内嵌媒体可用。 | 用原任务 ID 继续,不新建任务替代恢复。 | 明确说明正在使用的 CLI 组件名和所缺能力,不隐瞒组件名称。 |
111
+
112
+ 任何宿主中,费用确认、空间切换、删除、终止和结果未知都保留原有安全规则;宿主交互能力不能扩大
113
+ CLI 或后端的授权范围。
@@ -0,0 +1,61 @@
1
+ # 独立原子创作工作流
2
+
3
+ 用户没有指定画布,且目标是独立文本、图片、视频或音频时读取本页。先遵守 [核心安全边界](../policies/core-safety.md);图片、视频、音频还必须遵守 [费用与写入](../policies/cost-and-write.md) 与 [结果与恢复](../policies/result-and-recovery.md)。
4
+
5
+ 标准独立生图到此只需根技能、本页和上述 3 个政策文件。不读取配方、`commands/`、`guides/` 或 `node-types/`;命令事实直接查当前 CLI。只有 `capability describe`、对应命令 `--help` 和 `model schema` 仍无法解析一个具体场景语义时,才回到根技能额外读取一个直接相关页。
6
+
7
+ ## 路由
8
+
9
+ | 媒体 | 当前场景 | 入口 |
10
+ | --- | --- | --- |
11
+ | 文本 | `text2text`;读取图片正文用 `image_to_text` | `nadou text` |
12
+ | 图片 | `text2img`、`image_ref`、`panorama`、`three_view`、`inpaint` | `nadou image` |
13
+ | 视频 | `text2video`、`multi_reference`、`first_last_frame`、`video_edit`、`motion_control` | `nadou video` |
14
+ | 音频 | `text2audio`、`audio2audio` | `nadou audio` |
15
+
16
+ 多参考视频优先使用显式角色参数 `--reference-video`、`--reference-image`、
17
+ `--reference-audio`。CLI 按 video → image → audio 的跨角色顺序展开,同一角色保持命令行
18
+ 顺序,并将结果同步写入 `params.image`、`form.referenceImages` 和 `form.thumbsOrder`。
19
+ 角色参数不能与无角色 `--reference` 混用;旧参数继续兼容已有有序图片调用。
20
+
21
+ 多参考包含视频时,不根据 URL 后缀猜测媒体类型,也不把模型目录的 `generateAudio=true`
22
+ 默认值静默发送。角色未知时省略该默认字段,显式音频开关在提交前失败关闭,避免模型拒绝
23
+ sound-on 请求。该策略只修改 CLI 请求构造,不修改 NadouAI 后端或 allowlist。
24
+
25
+ 独立 `image_ref` 默认使用 plain 提示词并保持现有自动化兼容;当用户或 Agent 需要在
26
+ 提示词中明确绑定参考图语义时,再按根技能的故障消歧规则读取 `commands/image.md` 并使用
27
+ `--prompt-format rich`、`--prompt-file`/`--stdin`。富文本标签必须按顺序对应显式
28
+ `--reference`;UI 标签中的 Canvas `data-id` 会在独立请求前移除,不能单独用于恢复素材 URL。
29
+
30
+ 场景必须由用户意图和当前 CLI 能力共同确定。先运行 `nadou capability describe <capability-id> --json`,再用 `nadou model list --scenario <scenario> --profile <profile> --json` 与 `nadou model schema` 获取当前账号的模型、默认值、枚举和引用上限。不要从模型名、素材数量或示例猜场景。
31
+
32
+ ## 通用准备
33
+
34
+ 1. 运行 `nadou auth status --profile <profile> --json`。只有状态明确要求登录时才运行一次 `auth login`;凭据存储不可用不是未登录。
35
+ 2. 查询当前模型目录和参数结构。长提示词使用 UTF-8 `--prompt-file` 或可靠的 `--stdin`,不要把正文写入日志。
36
+ 3. 可信 HTTPS 素材直接复用。只有本地素材确实进入本次请求、目标能力要求服务端 URL 且用户接受远端上传时,才执行一次 `material upload`;上传不是空间交付,也不创建画布节点。多参考视频的本地参考音频必须先运行 `nadou media inspect --input <audio> --json`,再用当前账号模型 Schema 的 `audio_duration`(单位秒,含边界)校验;超限时在上传前停止。
37
+ 4. 请求或目标存在歧义时,在任何生成或写入前集中询问一次;未回答就停止。
38
+
39
+ ## 文本
40
+
41
+ 文本任务用 `nadou text` 执行并直接呈现服务端返回的正文。不要把正文说成已保存的空间素材,也不要创建本地媒体文件。当前媒体估价流程只覆盖图片、视频和音频;不得把文本描述为已估价、免费或已保存。
42
+
43
+ ## 图片、视频和音频
44
+
45
+ 1. 用相应高层命令的 `--dry-run --json` 生成唯一请求,把响应的 `data.request` 字段本身保存为 UTF-8 `request.json`;不要保存外层响应外壳。CLI 会在预览、估价和提交前校验媒体 URL 的完整性、一致性、可访问性和有限内容可解析性;URL 或媒体正文失败时先修复素材来源,不要改写域名或自动重试。
46
+ 2. 按 [费用与写入](../policies/cost-and-write.md) 读取计费空间、目录候选、余额和同请求估价,在一条摘要中让用户选择目录并确认费用与提交。
47
+ 3. 确认后只用同一个 `request.json` 执行一次 `task submit`。保存任务 ID,只用 `task wait`、`task outputs` 和显式交付继续。
48
+ 4. 取得可信输出后,仅向提交前绑定的空间目录执行一次 `space artifact deliver` 并核对回读。默认不下载到本地;用户明确要求本地文件时,另进入 [本地处理与交付](local.md)。远程音频 URL 无法由本地 `media inspect` 证明时,保留 `input_audio_duration` 的服务端校验标记,不得伪造本地通过结论。
49
+
50
+ 上述标准流程已包含必要编排规则,不再预读媒体、请求、积分、空间或任务命令页。一旦 CLI 动态事实已解决具体问题,立即停止加载额外文档。
51
+
52
+ ## 定时
53
+
54
+ - 图片和视频支持 `local` 或 `server`;模式默认关闭,只有用户明确给出模式、未来时间和 IANA 时区后才进入定时分支。先查 `capability describe`、`--help` 和结构化预览;仍有单点语义不清时才读一页定时参考。
55
+ - 独立 `TEXT2TEXT` 只支持本地计划;独立音频当前不支持定时。
56
+ - `local` 使用普通预览请求和显式 `schedule worker`;`server` 使用带时间参数的预览请求。两种模式不得自动切换。
57
+ - 画布节点定时不属于本工作流,改读 [画布工作流](canvas.md)。
58
+
59
+ ## 完成条件
60
+
61
+ 文本以真实正文为完成证据。图片、视频和音频分别核实任务、输出与空间交付回读;生成成功不等于空间交付成功。等待超时、部分成功、失败或结果未知时,立即转入 [任务恢复](task-recovery.md),不得重新提交。
@@ -0,0 +1,59 @@
1
+ # 画布工作流
2
+
3
+ 用户明确给出或选择画布、节点、连线,或要求保留可编辑的多步骤创作、画布剪辑与导出时读取本页。始终同时读取 [核心安全边界](../policies/core-safety.md);有写入或生成时读取 [费用与写入](../policies/cost-and-write.md),有异步任务或交付时读取 [结果与恢复](../policies/result-and-recovery.md)。
4
+
5
+ ## 确定画布上下文
6
+
7
+ 1. 使用用户明确给出的画布 ID;没有 ID 时列出真实候选让用户选择,不按名称猜测。
8
+ 2. 多阶段创作需要新画布时,先取得明确的 `group_id` 与 `directory_id`,再执行一次 `canvas create`。创建后保存返回的画布 ID。
9
+ 3. 每次画布调用都显式传 `--canvas-id`。先用 `canvas get` 读取实时 `Graph`;不要使用已移除的旧上下文或 `Graph` 读取命令。
10
+ 4. 会话结束后不保留画布 ID,不把其他会话或其他画布的节点 ID 带入当前流程。
11
+
12
+ ## 结构写入
13
+
14
+ 1. 先按 [画布依赖图](../guides/canvas-dependency-graph.md) 把用户目标翻译成节点与依赖边。资产被引用、编辑、拼接或合成时,源节点必须显式连到目标节点;布局和分组不能替代依赖边。
15
+ 2. 同一画布、同一批需要创建或修改多个节点/连线时,使用一次 `canvas graph mutate` 提交有序 `operations`,不得按每两个、每三个等任意固定数量拆批。普通新节点和自动布局批次必须带 `--auto-layout-only`,让显式 `CREATE_NODE.position` 在触网前失败;确实需要拆分命令时,凡使用自动布局,或修改相同分组、锚点、连线,都必须按画布串行。只有固定几何流程省略该开关、调用方已经提供明确且互不重叠的 `position`,且业务意图彼此独立时才可并发。
16
+ 3. 节点、边或批量 `Graph` 变更执行“写前读取 → 一次写入 → 写后回读”。使用新的变更 ID;结果未知时 CLI 可在有界窗口内只读查询原 mutation receipt,但始终只发送一次写请求。未收敛时保留原变更 ID 继续只读对账,不依据 `Graph` 暂时缺失换 ID 重写。
17
+ 4. 生成节点只写 `prompt`、模型与参数结构允许的配置。URL、回填状态、任务状态和产物 `metadata` 由上传或生成生命周期管理,不用通用修改伪造。
18
+ 画布生成、估价和服务端定时预览提交前会复用媒体 URL 预检;节点引用 URL 不完整、字段错位或不可访问时在远端写入前停止,不会猜测替换 URL。
19
+ 5. 上传/自定义节点与生成节点是不同来源。不得通过下载、重传或修改来源字段把上传节点冒充生成节点。
20
+
21
+ 结构、节点和连线命令先用当前 `capability describe`、对应 `--help` 和节点参数结构解决。仍有一个具体协议语义不清时,才在 [画布](../commands/canvas.md)、[Graph](../commands/canvas-graph.md)、[节点](../commands/canvas-node.md)、[连线](../commands/canvas-edge.md) 或 [节点类型](../node-types/index.md) 中选与该问题直接相关的一页,不要整组预读。
22
+
23
+ ## 独立任务产物进入画布
24
+
25
+ 任务已由独立 `task submit` 完成、现在需要进入明确 Canvas 时,读取 [任务产物绑定契约](../commands/canvas-attachment.md)。
26
+ 单产物固定执行:读取 task output → 显式复制到目标 Canvas 的 group/directory → 用复制返回的 `materialId`
27
+ 执行一次 attach → 查询原 receipt 收敛 → Graph 回读 → 建立真实 `source -> attached target` 边。
28
+ 复制、attach 和 edge 是三个独立远端写入,必须分别保留 request/mutation 身份;任一步失败或未知时后续保持等待,
29
+ 不得用通用 `data.url` 节点、`allOutputs=true` 或反向连线替代。
30
+
31
+ ## 节点生成
32
+
33
+ 当前既有文本、图片、视频、音频生成节点都走同一主流程:
34
+
35
+ 积分余额与生成估价是两个明确入口:`nadou points summary` 查询当前激活计费空间的余额,
36
+ `nadou canvas node estimate --canvas-id <canvas-id> --node-id <node-id>` 只估算明确目标节点;不存在
37
+ `nadou canvas points`,也不存在画布历史总消耗查询。可选的只读探测命令不可用时,删除该探测步骤并回到原用户任务;
38
+ 不得把它改写成“查看画布积分”或要求用户重新选择无关节点范围。
39
+
40
+ 1. 读取目标节点、入边和当前模型参数结构。图片/视频/音频节点确认已保存完整且一致的 `prompt`、`modelName`、`modelType`、`taskType` 与 `modelParams.model`;文本节点至少确认非空 `prompt` 与 `modelParams.model`,历史节点可省略其余路由字段。
41
+ 2. 用 `canvas node estimate` 估算一个或多个明确节点。向用户展示逐项事实和总预计积分;不可估价时停止。视频需求明确包含对白、现场声、音乐或音效时,对单节点估价同时传 `--audio-intent required`;用户明确要求静音成片时传 `--audio-intent forbidden`。未获得明确音频意图时保持 `auto`,不得从关键词猜测。
42
+ 3. 用户确认后,每个目标节点只执行一次 `canvas node generate`,并沿用估价时相同的 `--audio-intent`。CLI 会将该意图与最终出站请求的 `generateAudio` 对账;冲突或字段未知时在提交前停止。立即模式使用默认 `disabled`,不得附带仅属于服务端定时的预览、时间、摘要或积分上限参数。
43
+ 4. 保存返回的任务 ID,用 `canvas node wait` 观察同一任务和回填;等待超时或回填未完成不是失败,也不授权重提。
44
+
45
+ 需要 `server` 定时时,先用同一画布/节点、时间和 IANA 时区执行 `--schedule-mode server --dry-run`,再按 CLI 返回的确认摘要与积分上限提交。画布节点不支持 `local` 定时;服务端定时管理能力只按当前 `capability` 暴露项执行。
46
+
47
+ 文本节点无图片入边时提交 `TEXT2TEXT`;显式图片入边且场景为 `IMG2TEXT` 时提交图生文。请求携带
48
+ `workflowId + nodeId`,后端 callback 回写同一文本节点的 `data.text`,CLI 不以独立 `nadou text` 或普通 Graph patch 冒充关联生成。
49
+ 图生图、首尾帧、多参考或音频参考必须先建立明确入边,不能按 URL 或节点类型推断顺序。只在用户要求可复制操作手册或确需完整文生图示例时,才读取 [画布图片配方](../recipes/canvas-image.md)。
50
+
51
+ ## 画布剪辑与导出
52
+
53
+ 用户要求网页剪辑台展示时,若手里是 `{openId, assets}` 或空白节点,先使用 `timeline initialize`(需要审查文件时先 `timeline init`),再使用 `timeline web-read` 核对;只有已有完整网页工程 Timeline 才直接使用 `timeline web-write` 与 `timeline web-read`。要求 CLI/后端导出时,使用 `timeline export-write`、`timeline export-read`、`export backend-submit` 与 `export backend-status`。两种持久化职责不得手工混选,离线 `timeline validate` 不能替代写入和回读。
54
+
55
+ 提交导出前必须核对源素材到 `clip` 的依赖边、`Timeline` 主轨与回读一致性;`backend-submit` 会先写并确认网页主轴,再提交导出,并在导出返回明确成功或失败后立即恢复可能被覆盖的网页信封,不等待渲染完成。提交收据必须匹配原 workflow/clip/idempotency identity;`PROCESSING/RECONCILING` 只用原 key 有限查询提交收据终态,不等待成片,身份错配、状态缺失或超时均按结果未知处理;同 key 不同请求体的幂等冲突也不做后置写。导出结果未知时不做后写或自动切换旧链路。先以当前能力描述、`--help` 和回读解决;仍有一个导出协议语义不清时,才读取 [画布媒体](../commands/canvas-media.md)。
56
+
57
+ ## 完成条件
58
+
59
+ 只报告已核实的画布 ID、节点 ID、任务/作业、回填状态与可信输出。画布生成默认不包含个人空间交付或本地下载;只有用户另行明确要求时,才把它们拆成新的模式步骤。
@@ -0,0 +1,41 @@
1
+ # 本地处理与交付工作流
2
+
3
+ 用户明确要求把已有任务产物下载到本机,或处理本地视频、音频、字幕与交付证据时读取本页。先读取 [核心安全边界](../policies/core-safety.md);任何文件写入还要读取 [费用与写入](../policies/cost-and-write.md),失败或部分完成时读取 [结果与恢复](../policies/result-and-recovery.md)。
4
+
5
+ ## 确定输入与目标
6
+
7
+ 1. 明确真实输入文件或原任务/输出,不把远端 URL、目标目录、临时文件或缩略图当作本地文件。
8
+ 2. 在写入前披露绝对目标路径、将创建的文件和不覆盖规则。目标存在或范围不明确时停止,让用户选择新路径或明确覆盖。
9
+ 3. 本地处理不调用新的生成任务。需要新素材时先结束本模式,再进入 [独立原子创作](atomic.md) 或 [画布工作流](canvas.md)。
10
+
11
+ ## 下载已有任务产物
12
+
13
+ - 必须先取得原任务 ID,并用 `task outputs` 确认可信输出。
14
+ - 单项下载可用 `task download`;需要可恢复的多产物下载时使用 `task download-batch` 与持久清单。
15
+ - 部分失败只用原清单恢复,不自动覆盖文件、不重新生成,也不换任务 ID。
16
+ - 下载成功只证明本地交付,不代表空间交付或画布回填成功。
17
+
18
+ 下载参数先查当前 `capability describe`、`task download --help` 或 `task download-batch --help`。只有仍有一个具体恢复语义无法解析时,才读取 [任务](../commands/task.md)。
19
+
20
+ ## 本地媒体处理
21
+
22
+ | 目标 | 当前入口 |
23
+ | --- | --- |
24
+ | 读取技术信息 | `media inspect` |
25
+ | 校验、导出或烧录字幕 | `media subtitle validate`、`media subtitle export`、`media subtitle` |
26
+ | 顺序拼接 | `media concat` |
27
+ | 规格规范化 | `media normalize` |
28
+ | 按清单组合 | `media compose` |
29
+ | 混音 | `media mix` |
30
+ | 抽帧 | `media frames` |
31
+ | 最终技术核验 | `media verify` |
32
+
33
+ 输入、输出和清单先按对应媒体子命令的当前 `--help` 构造。只有文件契约的一个具体语义仍无法解析时,才读取 [本地媒体](../commands/media.md)。只做用户要求的变换;技术核验不自动授权转码、覆盖或派生新文件。
34
+
35
+ ## 交付证据
36
+
37
+ 多任务或长视频交付可按需使用 `evidence generation`、`evidence delivery` 和 `evidence validate`。证据文件只记录真实任务/作业/输出、本地相对路径、哈希与核验结果;不能用计划值填充成功事实。只有 `evidence --help` 仍无法解析一个格式语义时,才读取 [交付证据](../commands/evidence.md)。
38
+
39
+ ## 完成条件
40
+
41
+ 文件存在、命令成功且所需核验通过后,才报告本地路径。分别说明下载、后期处理与技术核验状态;不得把本地产物描述为空间素材、Canvas 回填或平台导出结果。
@@ -0,0 +1,45 @@
1
+ # 任务恢复工作流
2
+
3
+ 用户提供已有任务 ID,或要继续等待、查询产物、下载、交付、处理失败/取消/部分成功/结果未知时读取本页。先读取 [结果与恢复](../policies/result-and-recovery.md) 与 [核心安全边界](../policies/core-safety.md)。
4
+
5
+ ## 建立恢复锚点
6
+
7
+ 1. 优先使用用户或 CLI 已返回的任务 ID;涉及画布时同时保留画布 ID、节点 ID,涉及交付时保留作业 ID、输出序号、空间组 ID 与目录 ID。
8
+ 2. 没有任务 ID 且提交结果未知时,保留请求 ID、请求摘要和确认摘要,停止写入并按 CLI 建议人工对账。不要通过重新提交来“寻找”原任务。
9
+ 3. 不按提示词、URL、名称、顺序、时间接近或旧会话猜任务/作业/输出身份。
10
+
11
+ ## 只读观察
12
+
13
+ - `task status`:读取当前状态。
14
+ - `task wait`:继续观察一个或多个已知任务;本地观察超时不等于远端失败。
15
+ - `task events`:查看本次轮询观察到的状态变化,不把它当作服务端历史事件流。
16
+ - `task outputs`:只从成功任务读取可信输出。
17
+ - `task report`:汇总多个已知任务、作业、输出与恢复动作。
18
+ - `task history`:仅在用户提供当前支持的明确范围时用于发现,不替代已知任务 ID。
19
+
20
+ 命令路径与状态字段先查当前 `capability describe`、对应 `task ... --help` 和结构化响应。仍有一个具体语义不清时,才在 [任务](../commands/task.md) 或 [失败与费用事实](../guides/failure-cost-presentation.md) 中选直接相关的一页,不同时读取。
21
+
22
+ ## 按结果继续
23
+
24
+ | 观察结果 | 下一步 |
25
+ | --- | --- |
26
+ | 非终态或等待超时 | 保存原任务 ID,稍后继续 `status/wait/outputs`;不重提 |
27
+ | 成功且有可信输出 | 按原计划显式下载、空间交付或继续 Canvas 回填核对 |
28
+ | 部分成功 | 逐项保留成功的作业/输出并交付;列出失败或未知项,不自动重做整批 |
29
+ | 明确失败或取消 | 保留原因和已成功项;只有用户明确要求新任务时,才退出恢复模式重新估价和授权 |
30
+ | 写入结果未知 | 只查询原对象、原变更或原幂等键;不能自动再写 |
31
+ | 读取失败 | 可按 `suggested_actions` 恢复同一只读操作;不能改写为新提交 |
32
+
33
+ ## 下载与空间交付
34
+
35
+ 下载必须复用原任务/输出;批量下载只恢复原清单。空间交付必须从 `task outputs` 选择可信任务/作业/输出,并向原计划或用户新明确选择的目录执行一次 `space artifact deliver`。交付明确失败与结果未知要分开处理,任何一项都不授权重新生成。
36
+
37
+ 需要本地文件时进入 [本地处理与交付](local.md)。空间目录和交付细节先查相关 `space ... --help` 与结构化响应;仍有一个具体语义不清时,才读取 [空间](../commands/space.md)。
38
+
39
+ ## 定时任务
40
+
41
+ 已知服务端 `SCHEDULED` 任务只使用当前 CLI 暴露的 `task reschedule` 或 `task cancel-scheduled`。本地计划只使用 `schedule status/update/cancel`,两类 ID 与生命周期不得混用。只有能力描述、`--help` 和当前状态仍无法解析一个定时语义时,才读取 [定时](../commands/schedule.md)。
42
+
43
+ ## 完成条件
44
+
45
+ 最终回复逐项保留原任务/作业/输出、观察状态、可信产物与下载/空间/画布状态。恢复结束不等于所有阶段成功;无法确认时明确写“结果未知”并给出只读下一步。