@aswless_854771076/ai_short_studio_cli 0.1.26 → 0.1.28
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.
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Agent 代操作时,用户已在当前会话明确提供的密码只能直接
|
|
|
26
26
|
|
|
27
27
|
注册确认链接使用当前 profile 的 `baseUrl` 和 `--locale`,指向同域的 `/{locale}/auth/callback`。API 与网页需保持同域,并在 Supabase Redirect URLs 中允许各环境的 `/**`;Site URL 只作为未显式传入回调时的生产兜底。
|
|
28
28
|
|
|
29
|
-
CLI 只把 refresh token 保存到系统钥匙串,access token 仅驻留内存并在到期前自动刷新。未配置服务地址时默认连接 `https://ai-short-studio.vvicat.dev`,`--base-url`、`VVICAT_BASE_URL` 和当前 profile 可依次覆盖。首次登录会从服务端 bootstrap 取得 Supabase 公共配置,也可用 `VVICAT_SUPABASE_URL`、`VVICAT_SUPABASE_PUBLISHABLE_KEY`
|
|
29
|
+
CLI 只把 refresh token 保存到系统钥匙串,access token 仅驻留内存并在到期前自动刷新。未配置服务地址时默认连接 `https://ai-short-studio.vvicat.dev`,`--base-url`、`VVICAT_BASE_URL` 和当前 profile 可依次覆盖。首次登录会从服务端 bootstrap 取得 Supabase 公共配置,也可用 `VVICAT_SUPABASE_URL`、`VVICAT_SUPABASE_PUBLISHABLE_KEY` 显式覆盖。Google 登录在 Windows 上直接调用系统 URL Handler,确保带 `&` 的 PKCE 授权参数完整传给浏览器。服务地址和非敏感 profile 写入系统配置目录;切换环境时必须使用独立的 `--profile`,避免复用旧认证。
|
|
30
30
|
|
|
31
31
|
创作前运行 `ai-short-studio preflight --json`。CLI 会通过公开的 `/api/v1/bootstrap` 检查服务连通性、取得 Supabase 公共配置、读取 npm `latest` 稳定版本并默认更新当前全局包,再检查登录态和文本、人物、场景、故事版、视频模型配置。npm registry 暂时不可用时服务端使用配置版本降级。更新后必须按输出重跑;明确不允许全局写入时使用 `--no-update`。
|
|
32
32
|
|
|
@@ -95,6 +95,8 @@ CLI 通过 `/api/v1/bootstrap` 完成版本、连通性与 Supabase 公共配置
|
|
|
95
95
|
|
|
96
96
|
配套 Agent Skill 位于 `skills/using-vvicat-ai-short-studio-cli`,随 npm 包发布。安装或更新 CLI 时会自动安装到 Codex Skill 目录;已被用户修改或非 CLI 托管的目录不会被覆盖。
|
|
97
97
|
|
|
98
|
+
标准创作中,用户未指定时角色、道具、场景/背景和分镜图统一使用 `16:9`;视频按镜头目标时长向上取 5、10、15 秒生成档位,为剪辑保留余量。每批生成后 Agent 必须重新读取任务与资产、核对最终配置并实际检查预览,完成自我审计后才能继续或交付。
|
|
99
|
+
|
|
98
100
|
```bash
|
|
99
101
|
ai-short-studio skill install --target codex
|
|
100
102
|
ai-short-studio skill status --target codex
|
|
@@ -60,9 +60,9 @@ function createCallbackServer() {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
function openBrowser(url) {
|
|
63
|
-
const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? '
|
|
64
|
-
const args = process.platform === 'win32' ? ['
|
|
65
|
-
spawn(command, args, { detached: true, stdio: 'ignore' }).unref();
|
|
63
|
+
const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'rundll32.exe' : 'xdg-open';
|
|
64
|
+
const args = process.platform === 'win32' ? ['url.dll,FileProtocolHandler', url] : [url];
|
|
65
|
+
spawn(command, args, { detached: true, stdio: 'ignore', windowsHide: true }).unref();
|
|
66
66
|
}
|
|
67
67
|
function withTimeout(promise, milliseconds) {
|
|
68
68
|
return new Promise((resolve, reject) => {
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
7
7
|
|
|
8
8
|
## 核心原则
|
|
9
9
|
|
|
10
|
-
把 `ai-short-studio` 当作机器可读的远程控制接口。创作全程只要目标、素材含义、平台、语言、画幅、时长、风格、人物、场景、道具、模型、节点 schema
|
|
10
|
+
把 `ai-short-studio` 当作机器可读的远程控制接口。创作全程只要目标、素材含义、平台、语言、画幅、时长、风格、人物、场景、道具、模型、节点 schema、候选版本、付费范围或覆盖影响存在未知、缺失或矛盾,就合并列出最少必要问题并询问用户;得到答复前只做只读检查,不用示例值或自行推断替用户做创作决定。本文明确规定的 `16:9` 素材画幅和 `5/10/15` 秒视频生成时长是标准流程默认值,用户未另行指定时可直接采用并在执行摘要中说明,不必为这两项单独阻塞。新建或继续任何无限画布项目时,项目配置是创作节点之前的硬门禁:配置写入并回读验证通过前,不得创建或执行任何创作节点。
|
|
11
11
|
|
|
12
12
|
## 初始化检查
|
|
13
13
|
|
|
@@ -32,14 +32,23 @@ description: Use when an agent needs to inspect or operate VVICAT infinite-canva
|
|
|
32
32
|
|
|
33
33
|
## 标准创作流程
|
|
34
34
|
|
|
35
|
-
1.
|
|
35
|
+
1. 明确原始故事或剧本、目标受众与平台、语言、成片画幅、总时长与镜头目标时长、风格参考、人物/场景/道具约束,以及交付是否包含剧本、设定、分镜图、视频和音频;除本文明确的素材画幅与视频生成时长默认值外,缺项先问。
|
|
36
36
|
2. 完成 preflight、账户配置读取和节点目录检查后,新项目按“project list → 确认名称/用途 → project create → project get + canvas get + canvas settings get”继续,既有项目读取相同的已有资源;再按“项目配置门禁”确认、原子写入并回读 settings。两种项目都必须在任何创作节点之前通过门禁;既有项目只修改用户确认字段,并优先复用已确认的节点与 selected version。
|
|
37
|
-
3. 原文需要改编时执行 `novel-to-script
|
|
37
|
+
3. 原文需要改编时执行 `novel-to-script`。分镜拆解前必须先完成人物、场景、道具等本次故事涉及的素材生成。角色、道具、场景/背景、分镜图及其他视觉参考素材,用户未指定画幅时统一采用推荐值 `aspectRatio: 16:9`;用户明确指定其他画幅或平台硬性要求不同时,以用户要求为准。创建或更新节点前读取实时 `configSchema`:支持 `aspectRatio` 的节点必须显式写入最终值,不得误继承项目中的其他画幅;不支持时不得伪造字段,应说明实际继承来源并在付费生成前确认最终有效画幅。人物视觉方案的每个 `appearance.descriptions` 候选必须拆成独立输入,并采用“一候选描述 → 一个三视图节点 → 一个独立图片资产”的方式生成;道具存在多个候选方案时同样处理。每个三视图节点只能接收一个人物形象或一个道具候选,提示词必须明确“只生成当前候选的一张三视图,不得拼接其他候选”;单张三视图内部可以包含同一对象的正面、侧面和背面,但禁止把多个候选方案纵向、横向或宫格拼成一张图。`count` 只表示同一候选的独立生成版本数,每个结果必须作为独立图片版本展示和选择,不得合并为一张长图。互不依赖的素材节点应同批执行并收集真实任务 ID,再并发 `task wait`,不得等待一个完成后才提交下一个;存在上游依赖时按依赖顺序分批执行。每个任务都必须到成功终态,并让用户确认后为每项素材设置 selected version。任一素材未生成成功、未确认或没有 selected version 时,禁止执行 `storyboard-breakdown`,先询问用户并补齐。
|
|
38
38
|
4. 按实时节点 schema,把已确认的剧本节点,以及每个人物、场景、道具等相关素材节点,逐项连接到 `storyboard-breakdown` 对应输入 handle(通常为 `script`、`characters`、`locations`、`props`)。执行前重新读取画布和连线,确认本次故事涉及的素材节点无遗漏;即使服务端把素材输入标为可选,标准创作流程也不得省略。任一对应连线缺失时禁止拆解,先补线;素材范围不清楚时先询问用户。全部门禁满足后才执行并等待。成功后刷新画布,读取服务端自动创建的 `storyboard-shot` 和 `storyboard-image`,不得重复手工创建。
|
|
39
|
-
5. 生成分镜图前,用 `canvas asset get/list` 取得人物、场景、道具等已选版本,必要时下载,并把实际图片或可访问预览展示给用户;只提供资产 ID、文件路径或文字说明不算展示。用户明确确认素材与选版后,读取 `storyboard-image` 的实时 `configSchema
|
|
40
|
-
6.
|
|
39
|
+
5. 生成分镜图前,用 `canvas asset get/list` 取得人物、场景、道具等已选版本,必要时下载,并把实际图片或可访问预览展示给用户;只提供资产 ID、文件路径或文字说明不算展示。用户明确确认素材与选版后,读取 `storyboard-image` 的实时 `configSchema`,用户未指定画幅且 schema 支持时将 `aspectRatio: 16:9` 显式写入节点,再分析每个镜头的动作阶段、运镜变化、多人调度和连续性难度,选择 schema 允许的最小够用格数:简单镜头建议 4 格,常规镜头使用默认 6 格,复杂镜头建议 9 格,16/25 格只用于用户明确需要的长动作或高密度关键帧。向用户展示逐镜建议并确认后,将各自 `gridSize` 写入对应节点;旧服务 schema 未暴露字段时不得虚假写入,应说明限制并回退到项目有效值,`gridSize` 未另行确认时为 6 格。连续叙事优先建议 `imageLayout: storyboard`,同时说明 `grid` 与 `single` 可选,最终由用户确认布局、镜头范围、参考资产、模型与费用范围。未展示或未确认时禁止生成分镜图。
|
|
40
|
+
6. 执行分镜图后按“生成后自我审计”检查任务、配置和真实产物,并把实际分镜图或可访问预览展示给用户。用户明确确认分镜图以及需要制作的视频镜头后,才能刷新画布并复用服务端自动创建的 `storyboard-video-prompt`;宫格和故事版均先按实际布局重写完整视频提示词,再经用户确认后执行自动创建的 `video-generate`。视频生成默认不拆格,整张分镜图连接到 `references` 且仅作参考,不得作为首帧;节点不再提供 `videoInputMode`。为给后续剪辑留余量,设镜头目标时长为 `d`:`0 < d <= 5` 时生成 5 秒,`5 < d <= 10` 时生成 10 秒,`10 < d <= 15` 时生成 15 秒;保留原目标时长供剪辑裁切,不得为了凑生成档位改写叙事时长。`d` 缺失或非法时默认生成 5 秒;`d > 15` 时先拆镜或取得用户确认。最终值必须由实时 `video-generate.configSchema` 支持;模型不支持目标档位时,展示可用选项并在付费生成前确认,不得静默缩短。音频按交付范围执行。未展示或未确认分镜图时禁止生成视频。
|
|
41
41
|
7. 配置门禁固定用一次 `canvas settings set` 写入确认字段;通过门禁后的节点与连线写入,仍需在每次写入前重新读取画布版本,优先用专用 node/edge 命令,批量图变更才用低层 `canvas apply`。每次执行都读取真实任务 ID 并 `task wait`,不用固定 sleep。
|
|
42
|
-
8.
|
|
42
|
+
8. 每批图片、视频或音频生成完成后必须先通过“生成后自我审计”,才能报告成功、请求选版或进入下一付费阶段。交付前再次确认 selected version 与下载目录,记录项目、节点、任务和资产 ID、审计结论、失败项与未决项。临时项目在所有结束路径删除;既有项目绝不擅自删除。
|
|
43
|
+
|
|
44
|
+
## 生成后自我审计
|
|
45
|
+
|
|
46
|
+
每批生成完成后必须主动审计,不等待用户指出问题,也不能用 `task wait` 成功代替审计:
|
|
47
|
+
|
|
48
|
+
1. 重新读取任务、画布、节点、连线和资产,确认所有任务处于成功终态,预期产物真实存在,selected version、输入引用和自动创建的下游节点没有错位、遗漏或重复。
|
|
49
|
+
2. 对照执行前确认值核对节点最终有效配置:视觉素材默认或显式画幅正确,视频生成时长符合 `5/10/15` 秒档位,模型、分辨率、质量、布局和格数没有被继承值意外覆盖。
|
|
50
|
+
3. 实际查看图片/视频/音频预览;核对人物身份、场景、道具、动作顺序、构图、连续性,以及黑帧、拉伸、裁切、破音、空结果等明显缺陷。能从资产元数据取得的画幅和时长必须与配置交叉核对。
|
|
51
|
+
4. 输出简短审计结论,逐项列出通过项、缺陷、失败项和未决项。只读即可确认的问题直接补查;涉及再次付费生成、改选版本或覆盖用户内容时先展示问题并取得确认。自我审计不能替代用户选版和阶段确认。
|
|
43
52
|
|
|
44
53
|
需要生成语音时,先从 `canvas settings get` 确认最终 `audioModel`,再读取实时 `tts.configSchema`。当有效模型为百炼 CosyVoice 时,必须让用户确认兼容且非空的 `voice`,并只按实时 schema 写入 `languageHints`、`format`、`sampleRate`、`volume`、`cosyRate`、`pitch` 和 `instruction`;`rate` 仅用于非 CosyVoice 模型。CLI 会校验字符串、数字、整数、枚举和数值上下限,不得用 schema 外字段或越界值绕过确认。
|
|
45
54
|
|
|
@@ -95,9 +104,11 @@ ai-short-studio canvas node list --project "$PROJECT_ID" --json
|
|
|
95
104
|
- 素材未完成或未连线就拆分镜:人物、场景、道具等相关素材必须任务成功、已确认 selected version,并逐项连接到 `storyboard-breakdown` 对应输入后才能执行。
|
|
96
105
|
- 未展示产物就继续:生成分镜图前展示并确认素材,生成视频前展示并确认分镜图;只报告 ID 或路径不能代替预览与用户确认。
|
|
97
106
|
- 所有镜头沿用项目格数却声称已动态配置:实时 schema 提供 `gridSize` 时,必须展示并确认逐镜难度建议,再把数值写入对应节点;只有旧服务未暴露字段时才回退到项目格数,未另行确认时为 6 格。
|
|
98
|
-
-
|
|
107
|
+
- 视觉素材混用不同默认画幅:用户未指定时,角色、道具、场景/背景和分镜图统一使用 `16:9`;实时 schema 支持时显式写入节点,避免继承项目中的其他画幅。
|
|
108
|
+
- 按叙事目标时长直接生成视频:目标镜头按所在区间向上取 5/10/15 秒生成档位,保留原目标时长供剪辑裁切。
|
|
99
109
|
- 多个三视图候选被拼成一张图:每个候选必须使用独立输入和独立三视图节点生成;`count` 产生的多个版本也必须保持为独立图片,不能拼接展示。
|
|
100
110
|
- 涉及剪辑却自行设计:时间线、字幕、转场、音频编排或渲染必须先使用 `remotion-best-practices`。
|
|
101
111
|
- 只检查任务创建响应:必须 `task wait` 并检查终态和错误字段。
|
|
112
|
+
- 任务成功就直接交付:每批生成后必须重新读取状态与资产、核对配置并实际查看产物,输出审计结论后才能继续。
|
|
102
113
|
- 下载列表中的任意 URL:先确认资产的 selected version,再下载。
|
|
103
114
|
- 测试创建资源但未清理:用调用方的 `finally`/trap 删除唯一前缀项目。
|
|
@@ -33,7 +33,7 @@ ai-short-studio auth status --json
|
|
|
33
33
|
ai-short-studio auth logout
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Google 登录会打开浏览器并通过本机环回地址完成 PKCE 回调。
|
|
36
|
+
Google 登录会打开浏览器并通过本机环回地址完成 PKCE 回调。Windows 直接调用系统 URL Handler,避免授权 URL 中 `&` 后的 `redirect_to` 和 PKCE 参数被命令解释器截断;若授权后仍跳到站点默认地址,先更新 CLI 并重试。
|
|
37
37
|
邮箱注册的密码只从隐藏输入或 stdin 读取。`confirmationRequired: true` 时需先完成邮件验证再登录;为 `false` 时 CLI 已保存会话。
|
|
38
38
|
邮箱注册确认链接由当前 profile 的 `baseUrl` 和 `--locale` 生成,格式为同域的 `/{locale}/auth/callback`。Supabase Redirect URLs 必须允许对应环境的 `/**`,无需为本地或测试注册修改全局 Site URL。
|
|
39
39
|
|
|
@@ -162,4 +162,8 @@ ai-short-studio config set --file <config.json> --json
|
|
|
162
162
|
|
|
163
163
|
生成 `storyboard-image` 前,用 `canvas asset get/list` 取得素材 selected version,必要时通过 `canvas asset download` 下载,并向用户实际展示人物、场景、道具等预览;用户确认后才可执行。逐镜头根据需要独立呈现的动作、表情、主体关系、视角和空间调度状态选择最小够用的 `gridSize`,不得沿用统一格数或仅按时长推算;先用实时节点 schema 核对允许值,再向用户列出“镜号、复杂度依据、建议格数”,确认后逐个更新对应 `storyboard-image` 节点。生成视频前,同样取得并展示实际分镜图或可访问预览,确认分镜图和视频镜头范围后才可执行 `storyboard-video-prompt` / `video-generate`。仅输出资产 ID、URL、文件路径或成功状态不能代替展示;任一确认缺失时停止并询问。
|
|
164
164
|
|
|
165
|
+
用户未指定画幅时,角色、道具、场景/背景、分镜图及其他视觉参考素材统一使用 `16:9`;实时 schema 支持 `aspectRatio` 时显式写入节点,避免继承项目中的其他画幅。视频生成按镜头目标时长向上取档:`0 < d <= 5` 生成 5 秒,`5 < d <= 10` 生成 10 秒,`10 < d <= 15` 生成 15 秒;目标时长仍保留给剪辑裁切,缺失或非法时默认 5 秒,超过 15 秒时先拆镜或取得确认。最终档位必须受实时 schema 支持。
|
|
166
|
+
|
|
167
|
+
每批生成完成后都必须自我审计:重新读取任务、画布、节点、连线和资产,核对终态、selected version、输入引用、最终有效画幅、视频时长档位、模型与布局,并实际查看预览中的身份、场景、道具、动作、连续性及黑帧、拉伸、裁切、破音或空结果。输出通过项、缺陷、失败项和未决项;再次付费生成、改选版本或覆盖用户内容前先取得确认。
|
|
168
|
+
|
|
165
169
|
`storyboard-breakdown`、`storyboard-image` 和 `storyboard-video-prompt` 成功后会由服务端物化下游节点。每步完成后先重新 `canvas get` 或 `canvas node list` 获取真实 ID,禁止照示例伪造 ID 或重复建节点。
|