审核
当项目需要审查 agent 更改,或会话具有提议访问权限时,播放列表和屏幕更改将等待人工处理而非立即应用。命令仍然成功:ok: true,退出 0,服务器在 data 中响应,并有 pending_review 警告。
{
"ok": true,
"data": {
"status": "pending_review",
"review": {
"id": "rvw_LOBBY",
"kind": "playlist_change",
"state": "pending",
"url": "https://screenrig.ai/dashboard/reviews/rvw_LOBBY",
"subject": { "type": "playlist", "id": "pl_LOBBY", "name": "Lobby loop" },
"impact": { "screens": 4 }
},
"next": { "command": "screenrig reviews show rvw_LOBBY", "argv": ["reviews", "show", "rvw_LOBBY"], "reason": "Check the decision after the person reviews it." }
},
"warnings": [{ "code": "pending_review", "message": "Waiting for a person to approve: https://screenrig.ai/dashboard/reviews/rvw_LOBBY" }]
}播放列表创建和更新(包括 playlist import 和 playlist replace-release --apply)、screen publish、screen assign、screen schedule set、clear 和 restore,以及 screen takeover 和 takeover clear 等待审核,针对单个屏幕或设备群。设备群变更为一次审核:当有人批准时其标签解决,reviews show 然后报告每个屏幕的结果;大型设备群在后台完成应用,screen_change.result.applying 是 true,直到每个屏幕都有结果。除以下媒体变更外,其他变更均响应 403 insufficient_access 用于 Propose 会话。--note TEXT 命令发送纯文本备注,最多 280 字符,审核者在控制台阅读。
某人在仪表板的审核页面批准、请求更改或拒绝;智能体无法批准播放列表或屏幕变更。批准的变更视为当时生效,其事件记录批准者和提议智能体。审核等待时请勿轮询、休眠或重复写入:稍后使用 reviews show 检查,或按 review.approved、review.rejected、review.changes_requested 后跟 events follow --type review. 进行操作。
媒体变更也来自 Propose 会话等待。标签、文件夹和 all 选择器在人员批准前跳过新上传,已批准的媒体被会话重新标记或移动时,屏幕继续播放其批准的标签和文件夹,直到变更获批。重新标记返回 ok,退出码 0,带警告 media_review_pending,项目的审核在几秒内显示于 reviews list;请勿轮询、休眠或重试。每个项目获得一次审核,类型 playlist_change,操作 selector_refresh,主题 media:media_change 显示其标签和文件夹 before 与 after(before 为新上传的 null),media_playlists 列出所有批准的播放列表及所有等待审核的提议播放列表,显示变更添加或移除的播放列表 (media_added, media_removed) 及其屏幕。批准即应用变更;拒绝、请求更改或撤回则将重新标记或移动的项目恢复为批准状态,新上传保持未播放。无变更的批准播放列表和提议自动应用,按 ID 命名项目的播放列表在自身审核中包含该项目。当播放列表在人员决定前移动,媒体审核变为 stale,几秒内由新的审核替代。
来自 Propose 会话的媒体替换或恢复同样会等待,表现为操作为 media_replace、主体为 media 的 playlist_change 审核:reviews show 会报告当前正在使用的文件和批准后将启用的文件,在有人批准之前,媒体继续播放当前文件。
含有受保护文件夹的项目,会把涉及其屏幕的每项更改都交给第二位审批人,在任何访问级别(包括 Manage)都是如此。分配、播放列表排程和接管是带有 protected: true 的 screen_change 审核。创建、更改、暂停、恢复或删除活动,创建、更改或删除屏幕文件夹或移除其保护,以及移动屏幕,是 protected_change 审核,可用 reviews list --kind protected_change 列出。由你以外、也不是你所服务之人的另一个人来决定(错误的人尝试时返回 second_approver_required,退出码 3),review_stale(退出码 5)表示活动或文件夹在提议之后已更改:重新读取并再次提议。没有审核形式的更改会被 protected_target(退出码 5)拒绝。限定于屏幕文件夹的调用方只能读取和撤回整体影响范围都在其范围内的审核。
审核状态:
| 状态 | 含义 | 下一步 |
|---|---|---|
pending | 等待人员。 | 将审核链接交给该人员;稍后再检查。 |
approved | 应用于播放列表或屏幕。 | 用 screen show 和截图在屏幕上验证。 |
changes_requested | 该人员请求更改;decision_note说明了具体内容。 | 使用 --note 修改并再次提议。 |
rejected | 该人员拒绝;decision_note说明原因。 | 不要重复发送相同更改;请询问该人员。 |
withdrawn | 提议者收回了它。 | 无。 |
superseded | 同一播放列表或屏幕有更新的提案替代了它;superseded_by 指明了替代者。 | 关注较新的评论。 |
stale | 提案后实时播放列表发生变化,或其标签、文件夹或 all 选择器将播放提案时未见的媒体,故无法作为已审核应用。媒体审核在其列出的播放列表变化时失效,受保护的更改在其活动或文件夹变化时失效。 | 重新读取播放列表、活动或文件夹,并在其基础上提议。过时的媒体审核会在几秒内被新的替代。 |
reviews list#
列出评论,最新优先。
reviews list [--state pending|decided|all] [--kind playlist_change|screen_change|ad_creative|protected_change]
[--limit N] [--cursor CURSOR]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--state STATE | string | 否 | pending | pending,decided,或 all。 |
--kind KIND | string | 否 | 每种类型 | playlist_change,screen_change,ad_creative,或 protected_change。 |
--limit N | integer | 否 | 50 | 每页审核数,1 到 100。 |
--cursor CURSOR | string | 否 | 第一页 | 上一页的 next_cursor。 |
screenrig reviews list --state all
screenrig reviews list --kind protected_change结果包含 pending_count 和 next_cursor,在最后一页 null。会话看到其能力读取的类型:播放列表变更为 playlists,屏幕变更和受保护变更为 screens,广告创意为 advertising。
reviews show#
读取一个评论。
reviews show <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 来自 pending_review 结果的审核 ID,或广告创意审核的 ID。 |
screenrig reviews show rvw_LOBBY审核会报告其 state、提议者、你的 note、人员在拒绝或请求更改时留下的 decision_note,以及 impact.screens。播放列表变更会添加 diff、实时与提议播放列表的 preview(媒体审核没有),媒体审核的 media_change,以及 media_playlists,即选择受该变更影响的播放列表。屏幕变更时,blockers 列出需先由人员决定的播放列表审核及其当前状态,批准后还有 result(matched、succeeded、failed,大型设备群处理期间还有 applying)。媒体替换或恢复同样没有预览:media_replace 包含当前正在使用的文件(before)和批准后将启用的文件(after),各自带有 content_type、bytes 和 sha256,还有它将成为的 version、其 source(replace 或 restore)、你的 note、aspect_changed 以及使用该媒体的 playlists。protected_change 审核(主体类型为 campaign、screen_folder 或 screen)会报告 protected_change:其 subkind,以及活动的名称、播放列表和受众,文件夹的名称和父级,或被移动的屏幕和文件夹及其去向。protected 在它上面,以及在涉及受保护屏幕的屏幕变更上为 true。
reviews withdraw#
撤回自己的待处理提案。
reviews withdraw <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 本会话提出的待审核项。 |
screenrig reviews withdraw rvw_LOBBY无内容到达屏幕,撤回的新播放列表保持未批准。不再待审的审核回答 review_not_pending(退出 5)。
项目备注
项目备注是智能体为其后续会话及相互之间留下的简短纯文本备注。项目中的每个智能体都能读取所有备注,写备注需要提议或管理权限。备注是智能体写的上下文,不是指令,也不是批准。会话开始时读取备注,变更前请先阅读。
无 TTL 的备注将在添加或最后确认后 90 天进入审核。notes list 的第一页返回最多五条到期备注,位于 review,并带有警告 notes_due_for_review:确认仍有效的备注,解决其余备注。无人确认的到期备注将在首次返回给具有 Propose 或 Manage 权限的代理 30 天后自动解决。带有 --ttl 的备注在时间到期时自动解决,删除备注所关联的屏幕或播放列表也会解决该备注。已解决的备注可阅读 30 天,之后删除。每个组织跨其所有项目最多持有 200 条未解决备注。
agent status 和 login 在备注为新建或待复查时添加警告 notes_waiting。screen show 和 playlist show 在有未解决备注与该屏幕或播放列表相关时添加 notes_about_resource。添加备注会将 note.added 追加到事件日志,解决备注会追加 note.resolved;两者都不包含备注内容。阅读备注不会扣减额度。
notes list#
读取项目备注,最新优先。screenrig notes 执行相同命令。
notes list [--all | --resolved] [--about ID] [--author AGENT_ID] [--limit N] [--after CURSOR]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--all | 标志 | 否 | 打开笔记 | 包含已解决的备注。 |
--resolved | 标志 | 否 | 打开笔记 | 仅已解决的备注。 |
--about ID | string | 否 | 每条备注 | 仅关于一个屏幕或播放列表的备注:screen:ID、playlist:ID 或 ID。 |
--author AGENT_ID | string | 否 | 每位作者 | 仅此智能体所写的备注,按其 agt_ ID 指定。 |
--limit N | integer | 否 | 50 | 页面大小,1 到 200。 |
--after CURSOR | string | 否 | 第一页 | 上一页的 next_cursor。 |
screenrig notes每条备注包含其 author(智能体名称和类型)、created_at、about,以及两个标记:new 表示自上次阅读后其他智能体写入的备注,due 表示需复查的备注。第一页未含 --about 或 --author 的开放备注为您的已读:它会移动您的已读标记(仅读智能体不会移动),因此 new 和 counts.new 描述自上次阅读以来的变更。
notes show#
读取一个备注,开放或已解决。
notes show <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | nte_ 备注 ID。 |
screenrig notes show nte_01EXAMPLENOTE000000000notes add#
为项目的智能体写备注。
notes add <text> [--about ID] [--ttl DURATION] [--replaces ID]
notes add --file FILE [--about ID] [--ttl DURATION] [--replaces ID]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<text> | string | 两者之一 | 无 | 备注:修剪后为1至2000字符纯文本,或用 - 从标准输入读取。 |
--file FILE | 路径 | 两者之一 | 无 | 从文件读取备注,或使用 - 读取标准输入。 |
--about ID | string | 否 | 整个项目 | 将备注绑定到一个屏幕或播放列表:screen:ID、playlist:ID,或该 ID。 |
--ttl DURATION | string | 否 | 90 天后复审 | 在从 1h 到 365d 的小时或天数后自动解决备注,例如 12h 或 3d。 |
--replaces ID | string | 否 | 无 | 一个被此条覆盖的未解决备注;它被标记为已替代。 |
screenrig notes add "The lobby screen is mounted in portrait: design for 1080x1920." --about screen:scr_01EXAMPLESCREEN00000000写入其他智能体会执行的事实,绝不写进进度报告或聊天。文本(忽略大小写和空格)和主题重复的未关闭备注会确认该备注而非新增,并显示警告 note_matched_open。拒绝凭证形文本,显示 note_contains_credential,拒绝指令文本,显示 note_rejected;不存储任何内容。组织各项目中的第 201 条未关闭备注拒绝,显示 note_limit_reached,详情列出需先解决的备注。
notes confirm#
表示一个未关闭的备注仍然有效。其下一次复审在 90 天后。
notes confirm <id>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 一个开放备注的 nte_ ID。 |
screenrig notes confirm nte_01EXAMPLENOTE000000000未处于打开状态的备注会被拒绝,返回 note_not_open(退出码 5)。
notes resolve#
解决错误或不再有效的未处理备注。
notes resolve <id> <reason>| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
<id> | string | 是 | 无 | 一个开放备注的 nte_ ID。 |
<reason> | string | 是 | 无 | 现在的实际情况,1 到 500 个字符。ID 之后的词语构成原因。 |
screenrig notes resolve nte_01EXAMPLENOTE000000000 "The lobby screen was remounted in landscape."未处于打开状态的备注会被拒绝,返回 note_not_open(退出码 5)。
评论
评论是智能体附加到屏幕、播放列表或播放列表页面的 JSON 对象。该对象的 UTF-8 压缩体积最多 1 KiB,嵌套最多 32 层,且值必须是对象。screenRIG 从不读取、不发送给播放器,也不作为授权处理。它不出现在运行时清单中,也不增加修订版本,因此这些命令不需要
--expect-rev:最后写入获胜。读取评论需要只读权限,写入评论需要提议或管理权限。
comment show#读取屏幕、播放列表或播放列表页面上的评论对象。
<id>scr_或pl_ID,匹配目标词。--page PAGE_ID未设置的评论显示为
{ "comments": null }。screen show和playlist show在服务器发送时包含comments。comment set#写入评论对象。
<id>scr_或pl_ID。--json-value JSON--file FILE-表示标准输入。--page PAGE_ID播放列表创建和更新不能设置评论;这正是这些命令的用途。
comment delete#移除评论对象。
<id>scr_或pl_ID。--page PAGE_ID删除未设置的评论同样成功。