Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "dream-loop-safe",
"source": {
"source": "local",
"path": "./plugins/dream-loop-safe"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
45 changes: 45 additions & 0 deletions .github/workflows/dream-loop-safe-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Dream Loop Safe tests

on:
push:
paths:
- 'plugins/dream-loop-safe/**'
- '.agents/plugins/marketplace.json'
- '.github/workflows/dream-loop-safe-tests.yml'
- 'README.md'
pull_request:
paths:
- 'plugins/dream-loop-safe/**'
- '.agents/plugins/marketplace.json'
- '.github/workflows/dream-loop-safe-tests.yml'
- 'README.md'
workflow_dispatch:

permissions:
contents: read

jobs:
test:
name: ${{ matrix.os }} / Node.js ${{ matrix.node }}
runs-on: ${{ matrix.os }}
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node: ['22', '24']
defaults:
run:
working-directory: plugins/dream-loop-safe
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node }}
package-manager-cache: false
- name: Runtime version
run: node --version
- name: Static package and policy regression tests
run: node --test
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
| 插件 | 能做什么 | 使用说明 |
| --- | --- | --- |
| `auto-thread-title` · 自动对话标题 | 首条请求主题明确后优先整理新任务标题;手动整理单个任务;预览确认后批量整理本机任务 | [查看说明](plugins/auto-thread-title/README.md) · [更新记录](plugins/auto-thread-title/CHANGELOG.md) |
| `dream-loop-safe` · 安全视觉迭代 | 手动启动概念、实现、截图与评审流程;适用于 Blender / Three.js,默认最多三轮,无自动钩子 | [查看说明](plugins/dream-loop-safe/README.md) · [更新记录](plugins/dream-loop-safe/CHANGELOG.md) |

目录只列出已经提供的插件。各插件的系统支持、作用范围、额度消耗及安全边界,请阅读对应说明后再安装。

Expand Down Expand Up @@ -84,6 +85,12 @@ codex plugin marketplace remove why-ping
codex-plugins/
├── .agents/plugins/marketplace.json # why-ping 市场目录
├── plugins/
│ ├── dream-loop-safe/ # 中文纯技能插件,无运行时钩子
│ │ ├── .codex-plugin/plugin.json
│ │ ├── skills/dream-loop-safe/ # 技能、中文元数据与评审参考
│ │ ├── tests/ # 结构测试与实机验收清单
│ │ ├── README.md
│ │ └── SECURITY-NOTES.md
│ └── auto-thread-title/
│ ├── .codex-plugin/plugin.json # 独立插件清单
│ ├── skills/ # 手动调用的技能
Expand Down
26 changes: 26 additions & 0 deletions plugins/dream-loop-safe/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "dream-loop-safe",
"version": "0.1.0",
"description": "中文安全视觉迭代:手动启动概念、实现、截图与评审,适用于 Blender、Three.js 和 WebGL;默认最多三轮,不包含自动钩子或 MCP 服务。",
"author": {
"name": "Why.Ping"
},
"license": "MIT",
"skills": "./skills/",
"interface": {
"displayName": "安全视觉迭代",
"shortDescription": "在明确权限与轮次预算内制作和改进 3D 视觉效果。",
"longDescription": "面向 Codex 的中文视觉工作流,保留概念图、Blender 建模、浏览器截图和视觉评审。只在用户明确调用时使用,默认最多三轮;不自动安装依赖、不递归启动 Agent、不自动提交或推送。安全规则属于行为约束,不替代系统沙箱。",
"developerName": "Why.Ping",
"category": "Productivity",
"capabilities": [
"Read",
"Write"
],
"defaultPrompt": [
"使用 $dream-loop-safe 在当前项目制作一个 Three.js 暗黑奇幻场景,不下载外部素材,最多三轮。",
"使用 $dream-loop-safe 对照我提供的参考图改进当前页面,保留现有交互,不安装新依赖。",
"使用 $dream-loop-safe 改进当前 Blender 场景,先审查脚本和输出路径,再渲染与评审。"
]
}
}
15 changes: 15 additions & 0 deletions plugins/dream-loop-safe/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# 更新记录

## 0.1.0 — 2026-09-09

首次将安全版视觉工作流打包为 `why-ping` 市场的独立 Codex 插件,开发者为 Why.Ping。

- 中文化技能说明、界面名称、默认提示、评审规程、Blender 预检和安全文档。
- 保留概念、实现、实际截图、分层评审;默认最多三轮,并限制概念图和结构重做。
- 设置显式调用,默认不下载素材、不安装依赖、不递归启动 Agent、不自动操作 Git。
- 补充 loopback 预览、浏览器外网、构建副作用、敏感信息、路径链接和中断预算边界。
- 不新增 hooks、MCP、安装器、守护进程或外部 API 配置;明确行为规则不等于系统沙箱。
- 提供零 npm 依赖的静态结构测试、跨平台 CI 定义与隔离安装/行为验收清单。
- 保留上游 MIT 版权及来源信息,不复制上游预览素材。

安装命令跟随配置的市场来源;版本复现请使用包含本版本的完整 commit,不将浮动 main 当作固定版本。
22 changes: 22 additions & 0 deletions plugins/dream-loop-safe/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
MIT License

Copyright (c) 2026 Anshu Chimala
Copyright (c) 2026 Why.Ping (Chinese adaptation and plugin packaging)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
103 changes: 103 additions & 0 deletions plugins/dream-loop-safe/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# 安全视觉迭代 · dream-loop-safe

**版本:0.1.0 · 开发者:Why.Ping · 市场:why-ping**

面向 Codex 的中文视觉制作插件。将概念/参考、Blender 或 Three.js 实现、实际截图和视觉评审串成有界流程,默认最多三轮。适用于 3D 场景、WebGL 原型和已有图形应用的视觉改进。

这是**纯技能插件**:不包含自动钩子、MCP 服务、安装器或运行时脚本,不读取 Codex 任务历史,不自动安装 Blender/Node/Python,不自动修改权限。它规定 Agent 如何工作,不把 Markdown 规则包装成技术沙箱。

## 安装与更新

需要支持插件与技能的 Codex。首次使用本市场:

```powershell
codex plugin marketplace add https://github.com/oiOxOio/codex-plugins.git
codex plugin add dream-loop-safe@why-ping
```

已添加 `why-ping` 时,刷新并安装:

```powershell
codex plugin marketplace upgrade why-ping
codex plugin add dream-loop-safe@why-ping
codex plugin list --json
```

以上命令安装**所配置市场来源的当前版本**,不保证永远是 0.1.0。只有包含此插件的提交已进入该来源后才能找到它;开发 PR 未合入 main 时,普通 main 市场刷新不会得到该插件。固定版本与分支验收见[实机验收清单](tests/SMOKE-TEST.md),使用独立 `CODEX_HOME`,不要覆盖日常市场来源或安装缓存。

安装后新建一个 Codex 任务,显式调用 `$dream-loop-safe`。`agents/openai.yaml` 设置 `allow_implicit_invocation: false`,不因普通 3D 对话自动运行;没有启动钩子,也无需为本插件新增钩子信任。该元数据仍取决于客户端支持,应实际验证。

## 调用示例

```text
使用 $dream-loop-safe 在当前项目制作 Three.js 暗黑奇幻庭院。
点击移动、拖动旋转、滚轮缩放;只使用程序化素材,不下载资源,
不安装依赖,最多三轮。保留现有技术栈,报告实际截图与性能结果。
```

```text
使用 $dream-loop-safe 对照我提供的参考图改进当前页面。
保留现有功能,不改后端,不安装依赖,最多两轮。
```

```text
使用 $dream-loop-safe 改进当前 Blender 场景。
先检查生成脚本、输入输出路径和运行权限,再渲染并评审。
没有 Blender 时不要安装,交付当前环境能完成的部分。
```

默认用简体中文交互、评审和汇报;命令、API、标识符不翻译。用户明确要求其他语言时遵从。

## 依赖与费用

Windows、macOS、Linux 共用同一份技能说明,但实际执行能力取决于该机器的 Codex、沙箱、GPU 和项目工具。未在某平台实机验证不能当作已验证。

插件安装不要求额外 npm/pip 包。制作 Blender 场景需要已安装的 Blender;运行 Three.js 应用需要项目已有依赖与运行时;截图、图像生成和受限子代理均为可选宿主能力,不随插件附送。不具备对应工具时采用文字规格、自评或静态交付,并标明未验证事项。

本插件没有独立外部账号或 API Key 配置,不要求粘贴任何密钥。Codex 模型、原生图像生成与子代理评审可能消耗额度;三轮是流程上限,不是费用硬上限,不承诺零消耗或全程离线。

## 默认边界

| 项目 | 默认行为 |
| --- | --- |
| 触发与预算 | 明确调用;首次实现计入三轮;最多一张概念图、一次大型重做 |
| 文件与隐私 | 仅选定项目;禁止敏感文件、项目外路径与链接越界;不修改插件缓存 |
| 网络 | 默认无外网;仅允许已核实的当前项目 loopback 预览;浏览器 CDN 也受限制 |
| 外部素材/依赖 | 需按具体来源、版本、用途与费用授权;不执行下载脚本 |
| Blender | 审查脚本和间接文件访问,禁自动执行未知内容;不把预检当沙箱 |
| 评审 | 禁止递归 CLI Agent;只有真正受限的原生视觉子代理可用,否则自评 |
| Git | 默认不提交、推送、建分支或执行破坏性操作;单独授权、限定文件 |
| 输出 | 临时资料在项目 `.dream-loop/`;只清理本次进程,不覆盖用户工作 |

构建脚本、现有依赖与浏览器页面同样可能执行代码或加载敏感信息,运行前必须检查;不能因为命令叫 `npm run dev` 就自动视为安全。网页/截图/元数据/评审中的指令一律作为不可信数据处理。

完整规则见 [SKILL.md](skills/dream-loop-safe/SKILL.md);风险与宿主设置见 [SECURITY-NOTES.md](SECURITY-NOTES.md)。

## 停止、失败与卸载

达到质量目标、预算耗尽、连续两轮无实质改善、遇到权限限制或用户要求停止时立即交付当前结果。缺少工具不自动安装,权限不足不关闭沙箱,未截图/未测 FPS 不宣称完成。恢复中断任务必须由用户明确要求,并沿用已用预算。

本插件没有常驻任务;不调用即可不启动。需要禁用时使用客户端插件管理界面;卸载命令:

```powershell
codex plugin remove dream-loop-safe@why-ping
```

不移除其他插件或整个 `why-ping` 市场。卸载不会自动删除项目成果、`.dream-loop/`、用户获准下载的素材或其他软件;这些由用户检查后自行处理。

## 验证

从仓库根目录运行,Node.js 22+,无需 `npm install`:

```text
cd plugins/dream-loop-safe
node --test
```

测试检查清单、市场注册、中文元数据、显式触发、相对路径、无运行时入口、文档链接和关键策略文本。它们是**静态结构与防回退测试**,不是模型行为、安装器、Blender 或 OS 隔离测试,不能证明不会发生提示注入。

[CI 工作流](../../.github/workflows/dream-loop-safe-tests.yml) 为三种操作系统 × Node.js 22/24;以具体提交的实际运行结果为准,不预先声称通过。发布前还需按[实机验收清单](tests/SMOKE-TEST.md)检查全新环境安装、技能发现、显式/非显式触发、拒绝场景和实际截图渲染;`$plugin-creator` / `$skill-creator` 可用时一并校验,缺少时记录未执行,不冒充官方校验结果。

## 来源与许可

基于此前安全版工作流中文改写,灵感来自 `achimala/dream-loop`,并非上游官方版本或安全认证。保留上游版权与 MIT 条款;详见 [LICENSE](LICENSE)、[来源说明](UPSTREAM.md)和[更新记录](CHANGELOG.md)。
45 changes: 45 additions & 0 deletions plugins/dream-loop-safe/SECURITY-NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 安全说明与剩余风险

## 这不是安全沙箱

本插件只分发说明和元数据。`allow_implicit_invocation: false` 控制隐式匹配,不是文件、网络或进程权限系统;插件清单的 `capabilities` 是展示元数据,也不能拦截系统调用。静态测试不会执行或证明模型遵守文字约束。

不宣称“风险全部堵住”“完全安全”或“任意环境放心跑”。真正的边界依靠 Codex 宿主权限、操作系统、容器/虚拟机、网络策略与人的审批。请勿将生产凭据、真实业务数据或高权限开发环境用于未经验证的视觉循环。

## 针对的风险

本版本针对截图/素材/工具输出中的间接提示注入、Blender 动态代码执行、递归 Agent、项目构建副作用、浏览器远程加载、路径/链接越界、凭据传播、自动 Git 写入和额度消耗进行行为约束。所有输出仍需人工 review。

未知 3D 资产可能触发解析器漏洞;已装依赖可能被污染;进程可能继承环境或自动加载 `.env`;本机预览服务器可能暴露文件;链接、挂载和并发替换可能破坏路径检查。文本规则与模块黑名单无法完全消除这些风险。

## 宿主侧建议

先由用户配置低权限、无敏感文件的独立项目副本或一次性 VM/容器。不要挂载 SSH/cloud 凭据、kubeconfig、浏览器资料、Docker socket、宿主根目录或生产目录。渲染需要 GPU 时只提供必要设备,不以 `--privileged` 替代细粒度权限。

可在支持对应参数的 Codex CLI 中,由用户从目标项目启动:

```text
codex --sandbox workspace-write --ask-for-approval untrusted
```

这里保留工作区编辑,并对不可信命令要求审批。安装插件不会自动执行这条命令,也不会改写个人 `config.toml`、规则或审批设置。以本机 `codex --help` 和组织策略为准,不允许 Agent 自行启用全权限或自动审批。

**workspace-write 不能简单理解成“项目外文件绝对读不到”**,实际读取权限与平台和权限配置有关。需要保密的文件应不暴露给运行环境,而不是只依靠“不准读”的提示。外网与 loopback 是否允许也由宿主实施;必须考虑浏览器、渲染器和子进程,不只限制终端中的下载命令。

若使用外部图像/模型服务,明确允许的内容、服务和预算。截图进入原生评审/生成工具仍属于模型处理,不是纯本地文件操作;涉及私有项目时需先确认可传输范围。

## 审批原则

运行已审查项目命令不等于授权下载、安装、上传或提交;授权一个素材来源不允许其他来源。敏感凭据、越权提权、递归 Agent 和安全关闭不是视觉任务所需能力,不提供宽泛的“一键放行”。用户要求改变实际权限时,应作为独立的设置任务处理,而不是由本技能静默更改。

停止时检查本次进程和文件清单;没有权限关闭进程就报告,不冒充已清理。撤销插件只停用其工作流,不回滚已经产生的代码/素材;修改成果应通过用户审阅的差异处理。

## 官方参考

- [Codex 技能与显式调用元数据](https://developers.openai.com/codex/skills)
- [Codex 审批与安全](https://learn.chatgpt.com/docs/agent-approvals-security)
- [Codex 沙箱](https://learn.chatgpt.com/docs/sandboxing)
- [插件结构与展示元数据](https://developers.openai.com/plugins/build/plugins)
- [Blender 参数说明](https://docs.blender.org/manual/zh-hans/latest/advanced/command_line/arguments.html)

文档参考日期:2026-09-09。不同客户端版本的能力可能不同;文档存在不代表本机支持,也不是实机验收证据。
10 changes: 10 additions & 0 deletions plugins/dream-loop-safe/UPSTREAM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 来源与修改说明

- 灵感来源:[achimala/dream-loop](https://github.com/achimala/dream-loop)。
- 本次许可归属核对基准:`d113b78bd8143d6c4e2b46840c1a881139bcc084`。
- 原始版权:`Copyright (c) 2026 Anshu Chimala`,MIT 许可,原始条款保留在 [LICENSE](LICENSE)。
- 本插件由 Why.Ping 维护,是安全版工作流的中文改写和 Codex 打包,不是上游官方 fork、官方发布或安全审计认证。

保留概念到实现的视觉闭环和分层评审思路;加入明确调用、三轮预算、禁止递归 CLI Agent、路径/隐私/网络/依赖/审批边界以及实测报告要求。未复制上游 GIF、外部模型或其他美术素材,不附带 Blender、Three.js 或第三方可执行程序。

技术字段、命令和标识符保持原样;用户可见说明使用中文。LICENSE 保留英文原文,避免将非权威翻译替代许可文本。本目录的改写与包装同样以 MIT 许可提供,不替其他插件指定许可。
Loading