dsh-mutipleagent 0.0.0-stage → 0.4.0
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/CHANGELOG.md +214 -0
- package/CONTRIBUTING.md +49 -0
- package/LICENSE +21 -0
- package/README.en.md +125 -0
- package/README.md +302 -2
- package/SECURITY.md +27 -0
- package/THIRD_PARTY_NOTICES.md +29 -0
- package/assets/agents/MAGPIE-LICENSE +21 -0
- package/assets/agents/README.md +47 -0
- package/assets/agents/antigravity.png +0 -0
- package/assets/agents/claude.png +0 -0
- package/assets/agents/codex.png +0 -0
- package/assets/agents/copilot.svg +1 -0
- package/assets/agents/dsh.svg +1 -0
- package/assets/agents/gemini.png +0 -0
- package/assets/agents/grok.svg +1 -0
- package/assets/agents/hermes.svg +1 -0
- package/assets/agents/kimi.svg +1 -0
- package/assets/agents/omp.svg +7 -0
- package/assets/agents/opencode.svg +1 -0
- package/assets/agents/pi.svg +1 -0
- package/assets/kenney/LICENSE-furniture-kit.txt +23 -0
- package/assets/kenney/LICENSE-mini-characters.txt +28 -0
- package/assets/kenney/characters/Textures/colormap.png +0 -0
- package/assets/kenney/characters/character-female-a.glb +0 -0
- package/assets/kenney/characters/character-female-b.glb +0 -0
- package/assets/kenney/characters/character-female-c.glb +0 -0
- package/assets/kenney/characters/character-female-d.glb +0 -0
- package/assets/kenney/characters/character-female-e.glb +0 -0
- package/assets/kenney/characters/character-female-f.glb +0 -0
- package/assets/kenney/characters/character-male-a.glb +0 -0
- package/assets/kenney/characters/character-male-b.glb +0 -0
- package/assets/kenney/characters/character-male-c.glb +0 -0
- package/assets/kenney/characters/character-male-d.glb +0 -0
- package/assets/kenney/characters/character-male-e.glb +0 -0
- package/assets/kenney/characters/character-male-f.glb +0 -0
- package/assets/kenney/furniture/benchCushion.glb +0 -0
- package/assets/kenney/furniture/bookcaseOpen.glb +0 -0
- package/assets/kenney/furniture/books.glb +0 -0
- package/assets/kenney/furniture/cabinetTelevision.glb +0 -0
- package/assets/kenney/furniture/cardboardBoxClosed.glb +0 -0
- package/assets/kenney/furniture/chairCushion.glb +0 -0
- package/assets/kenney/furniture/chairDesk.glb +0 -0
- package/assets/kenney/furniture/chairModernCushion.glb +0 -0
- package/assets/kenney/furniture/coatRackStanding.glb +0 -0
- package/assets/kenney/furniture/computerKeyboard.glb +0 -0
- package/assets/kenney/furniture/computerMouse.glb +0 -0
- package/assets/kenney/furniture/computerScreen.glb +0 -0
- package/assets/kenney/furniture/desk.glb +0 -0
- package/assets/kenney/furniture/doorway.glb +0 -0
- package/assets/kenney/furniture/kitchenBar.glb +0 -0
- package/assets/kenney/furniture/kitchenCabinet.glb +0 -0
- package/assets/kenney/furniture/kitchenCoffeeMachine.glb +0 -0
- package/assets/kenney/furniture/kitchenFridgeLarge.glb +0 -0
- package/assets/kenney/furniture/kitchenMicrowave.glb +0 -0
- package/assets/kenney/furniture/kitchenSink.glb +0 -0
- package/assets/kenney/furniture/lampRoundFloor.glb +0 -0
- package/assets/kenney/furniture/lampSquareTable.glb +0 -0
- package/assets/kenney/furniture/laptop.glb +0 -0
- package/assets/kenney/furniture/loungeChairRelax.glb +0 -0
- package/assets/kenney/furniture/loungeSofa.glb +0 -0
- package/assets/kenney/furniture/plantSmall1.glb +0 -0
- package/assets/kenney/furniture/plantSmall2.glb +0 -0
- package/assets/kenney/furniture/plantSmall3.glb +0 -0
- package/assets/kenney/furniture/pottedPlant.glb +0 -0
- package/assets/kenney/furniture/radio.glb +0 -0
- package/assets/kenney/furniture/rugRectangle.glb +0 -0
- package/assets/kenney/furniture/rugRound.glb +0 -0
- package/assets/kenney/furniture/sideTable.glb +0 -0
- package/assets/kenney/furniture/speaker.glb +0 -0
- package/assets/kenney/furniture/stoolBar.glb +0 -0
- package/assets/kenney/furniture/table.glb +0 -0
- package/assets/kenney/furniture/tableCoffee.glb +0 -0
- package/assets/kenney/furniture/tableRound.glb +0 -0
- package/assets/kenney/furniture/televisionModern.glb +0 -0
- package/assets/kenney/furniture/toaster.glb +0 -0
- package/assets/kenney/furniture/trashcan.glb +0 -0
- package/assets/kenney/furniture/wallWindow.glb +0 -0
- package/assets/logo.svg +12 -0
- package/assets/scene-icons/arcade.png +0 -0
- package/assets/scene-icons/cafe.png +0 -0
- package/assets/scene-icons/castle.png +0 -0
- package/assets/scene-icons/christmas.png +0 -0
- package/assets/scene-icons/graveyard.png +0 -0
- package/assets/scene-icons/map.png +0 -0
- package/assets/scene-icons/office.png +0 -0
- package/assets/scene-icons/pirate.png +0 -0
- package/assets/scene-icons/station.png +0 -0
- package/assets/scenes/arcade.jpg +0 -0
- package/assets/scenes/cafe.jpg +0 -0
- package/assets/scenes/castle.jpg +0 -0
- package/assets/scenes/christmas.jpg +0 -0
- package/assets/scenes/graveyard.jpg +0 -0
- package/assets/scenes/office.jpg +0 -0
- package/assets/scenes/pirate.jpg +0 -0
- package/assets/scenes/station.jpg +0 -0
- package/client.js +144 -0
- package/cordis.patch.yml +3 -0
- package/harness.cjs +49 -0
- package/package.json +89 -4
- package/public/app.js +1 -0
- package/public/chunks/chunk-MU3LEDFF.js +4305 -0
- package/public/demo-icons/arrow-counterclockwise.svg +4 -0
- package/public/demo-icons/arrow-right.svg +3 -0
- package/public/demo-icons/bell.svg +3 -0
- package/public/demo-icons/box-seam-fill.svg +3 -0
- package/public/demo-icons/chat-left-text-fill.svg +3 -0
- package/public/demo-icons/check-lg.svg +3 -0
- package/public/demo-icons/chevron-down.svg +3 -0
- package/public/demo-icons/cpu-fill.svg +4 -0
- package/public/demo-icons/crosshair.svg +3 -0
- package/public/demo-icons/diagram-3-fill.svg +3 -0
- package/public/demo-icons/file-earmark-code-fill.svg +3 -0
- package/public/demo-icons/fullscreen.svg +3 -0
- package/public/demo-icons/pause-fill.svg +3 -0
- package/public/demo-icons/people-fill.svg +3 -0
- package/public/demo-icons/pie-chart-fill.svg +3 -0
- package/public/demo-icons/play-fill.svg +3 -0
- package/public/demo-icons/search.svg +3 -0
- package/public/demo-icons/shield-check.svg +4 -0
- package/public/demo-icons/stack.svg +4 -0
- package/public/demo-icons/x-lg.svg +3 -0
- package/public/demo.css +225 -0
- package/public/demo.html +67 -0
- package/public/demo.js +7 -0
- package/public/index.html +59 -0
- package/public/style.css +15 -0
- package/public/vendor/office.js +1631 -0
- package/src/codex.js +674 -0
- package/src/demo.js +103 -0
- package/src/harness-watcher.js +584 -0
- package/src/server.js +239 -0
- package/vendor/licenses/BOOTSTRAP-ICONS-LICENSE.txt +21 -0
- package/vendor/licenses/ESBUILD-LICENSE.txt +21 -0
- package/vendor/licenses/MESHOPTIMIZER-LICENSE.txt +22 -0
- package/vendor/licenses/PLAYWRIGHT-LICENSE.txt +202 -0
- package/vendor/licenses/PLAYWRIGHT-NOTICE.txt +5 -0
- package/vendor/licenses/THREE-LICENSE.txt +21 -0
package/README.md
CHANGED
|
@@ -1,3 +1,303 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dsh-mutipleagent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/lkuliuying/dsh-mutipleagent/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/dsh-mutipleagent)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
[English](README.en.md) · 简体中文
|
|
8
|
+
|
|
9
|
+
DeepSeek Harness 多 Agent 3D 协作办公室插件。安装后,任意会话页顶部标签行会多出「多 Agent 办公室」,点开即用——直接显示当前会话的办公室,不必先选工作目录、再选会话;侧栏入口保留,用于跨项目浏览。观察真实主会话、子 Agent、工具活动和完整汇报,沿用本项目已有的 3D 场景与交互。
|
|
10
|
+
|
|
11
|
+
**只读**:不启动任务、不调用模型、不审批、不修改会话,也不把任何内容发到本机以外。
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
| 任务详情 | 协作动态 |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
|  |  |
|
|
18
|
+
|
|
19
|
+
以上为 `npm run screenshots` 生成的演示画面(演示数据,非真实会话)。
|
|
20
|
+
|
|
21
|
+
当前版本为 `v0.4.0`,包名为 `dsh-mutipleagent`,仓库地址为 [lkuliuying/dsh-mutipleagent](https://github.com/lkuliuying/dsh-mutipleagent)。兼容 DeepSeek Harness `^0.2.2-rc.1`,需要 Node.js `^22.19.0 || >=24.0.0`。
|
|
22
|
+
|
|
23
|
+
各版本变化见 [CHANGELOG.md](CHANGELOG.md),发布说明见 [GitHub Releases](https://github.com/lkuliuying/dsh-mutipleagent/releases)。
|
|
24
|
+
|
|
25
|
+
## v0.4.0 更新
|
|
26
|
+
|
|
27
|
+
- 办公室场景铺满一整层:4 列 × 3 行「对坐工位」共 24 座,主 Agent 与第一位子 Agent 隔桌面对面;共享长桌中间是背靠背的双屏,两侧各配键鼠与副屏。房间同时补上玻璃会议室、设备柜、书架、茶水吧与休息角。
|
|
28
|
+
- 「隐藏面板」:点场景工具条上的按钮(或按 `H`)只留 3D 画面,顶栏、统计卡、Agent 详情与任务协作流程一起收起;右下角「显示面板」或 `Esc` 恢复,偏好存在本地,刷新后保持。
|
|
29
|
+
- 镜头整体拉远并居中,整层办公室完整入画;室外地坪与背景同色,不再出现悬空平台的硬边,底部工位也不会被协作流程挡住。
|
|
30
|
+
|
|
31
|
+
## v0.3.1 更新
|
|
32
|
+
|
|
33
|
+
- 打开「多 Agent 办公室」标签时,会话页底部的输入框自动收起,切回「对话」立刻恢复——标签页内本来就不需要打字,画面因此多出一整块高度。
|
|
34
|
+
- 嵌入模式下办公室自己的整条顶栏(搜索、会话下拉、计时、铃铛)也一并收起,协作统计与「Agent 详情」上移到标签页顶部;搜索和通知改用宿主自带的。
|
|
35
|
+
- 「Agent 详情」面板的「查看任务详情」与「查看屏幕 / 查看任务原文」上移到标题下方,不必滚到底部;面板底部的小字说明、场景左下角的操作提示一并删除,任务协作流程标题行的说明改为单行省略。
|
|
36
|
+
|
|
37
|
+
## v0.3.0 更新
|
|
38
|
+
|
|
39
|
+
- 办公室进入会话页顶部标签行:注册 `conversation.view`,与「对话 / 轨迹 / 上下文」并列,标签行放不下时收进右侧「更多会话视图」。不再需要先在侧栏打开面板、再挑工作目录和会话。
|
|
40
|
+
- 打开即锁定当前会话:页面用 `?mode=live&source=harness&rootId=<会话 ID>&embed=1` 打开,目录选择器自动隐藏,标题显示当前会话名;切换会话、切换标签时 iframe 会按新的会话 ID 重载。会话不在默认根列表(例如子 Agent 会话)时自动回退到全量列表,不再报「未找到该会话」。
|
|
41
|
+
- 嵌入模式收掉与宿主重复的外壳:品牌、模式切换、语言切换、账号区隐藏,只留搜索、会话、通知。
|
|
42
|
+
- 侧栏入口与全局面板保留,行为不变;`main` / `sidebar.panellist` 注册未改动。
|
|
43
|
+
|
|
44
|
+
## v0.2.1 更新
|
|
45
|
+
|
|
46
|
+
- 读取只展开真正变化的会话:`sessionQuery.observeSession()` 的观察租约只取 header 与日志游标,事件按需物化;游标未变的会话不再克隆整份日志、也不再重新折叠,复用数见 `/api/health` 的 `reused`。
|
|
47
|
+
- 未运行的会话按持久化修订号判断,日志没变就直接复用,不重读 zstd 日志;观察不可用时自动回退整份读取。
|
|
48
|
+
|
|
49
|
+
## v0.2.0 更新
|
|
50
|
+
|
|
51
|
+
- 中英双语界面,默认跟随系统语言,顶栏可切换。
|
|
52
|
+
- 渲染与读取都提速:首屏只等家具和 3 个角色;`app.js` 从 731.6 KB 降到 10.5 KB、`demo.js` 从 814 KB 降到 73.4 KB,three.js 只打一份共享 chunk 并启用 gzip;会话没有新事件时不再重复折叠。
|
|
53
|
+
- 静态资源支持 `ETag` / `304` 与 gzip;没有页面连接时停止轮询,打开即刷新。
|
|
54
|
+
- `/api/health` 增加版本、运行时长、客户端数、读取耗时与轮询状态。
|
|
55
|
+
- 工程化:ESLint、Prettier、`.gitattributes`、CI(Node 22.19 / 24 + 浏览器验收 + 构建产物一致性)、`npm run release` 一键发布。
|
|
56
|
+
- 修正演示模式下 `/api/health` 报错、模型未加载完成时的空引用等问题。
|
|
57
|
+
|
|
58
|
+
完整变更(含 v0.1~v0.1.3)见 [CHANGELOG.md](CHANGELOG.md),发布说明见 [Releases](https://github.com/lkuliuying/dsh-mutipleagent/releases)。
|
|
59
|
+
|
|
60
|
+
## 安装到 Harness
|
|
61
|
+
|
|
62
|
+
### 从 npm 安装
|
|
63
|
+
|
|
64
|
+
包已发布到 [npm](https://www.npmjs.com/package/dsh-mutipleagent),版本号与插件版本一致:
|
|
65
|
+
|
|
66
|
+
dsh plugin --profile desktop add 'dsh-mutipleagent@0.2.1' --ignore-scripts
|
|
67
|
+
|
|
68
|
+
升级时把 `0.2.1` 换成目标版本号。首次安装建议完全退出 Harness Desktop 后再执行,装完重新启动。
|
|
69
|
+
|
|
70
|
+
### 从 GitHub 标签安装
|
|
71
|
+
|
|
72
|
+
完全退出 Harness Desktop,在 PowerShell 运行以下命令,再重新启动 Harness:
|
|
73
|
+
|
|
74
|
+
dsh plugin --profile desktop add 'dsh-mutipleagent@https://codeload.github.com/lkuliuying/dsh-mutipleagent/legacy.tar.gz/refs/tags/v0.2.1' --ignore-scripts
|
|
75
|
+
|
|
76
|
+
如果终端没有 `dsh` 命令,可使用 Desktop 随附的 CLI:
|
|
77
|
+
|
|
78
|
+
& 'C:\ProgramSoftware\Deepseek\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'dsh-mutipleagent@https://codeload.github.com/lkuliuying/dsh-mutipleagent/legacy.tar.gz/refs/tags/v0.2.1' --ignore-scripts
|
|
79
|
+
|
|
80
|
+
上述命令既可首次安装,也可把原来固定在 `v0.1`~`v0.1.3` 的安装切换到 `v0.2.1`。安装源固定到具体标签,后续升级需改为目标版本的标签;仅重启不会切换版本。
|
|
81
|
+
|
|
82
|
+
### 从本地源码打包
|
|
83
|
+
|
|
84
|
+
在项目目录完成构建与本地打包:
|
|
85
|
+
|
|
86
|
+
npm ci
|
|
87
|
+
npm run build
|
|
88
|
+
node -e "require('node:fs').mkdirSync('.artifacts', { recursive: true })"
|
|
89
|
+
npm pack --pack-destination .artifacts --ignore-scripts
|
|
90
|
+
|
|
91
|
+
退出 Harness Desktop 后,安装本地包;路径按实际位置调整:
|
|
92
|
+
|
|
93
|
+
dsh plugin --profile desktop add "F:\Program\Multiple-Agent\.artifacts\dsh-mutipleagent-0.2.1.tgz"
|
|
94
|
+
|
|
95
|
+
如果终端没有 `dsh` 命令,可使用 Desktop 随附的 CLI,例如 PowerShell:
|
|
96
|
+
|
|
97
|
+
& 'C:\ProgramSoftware\Deepseek\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'F:\Program\Multiple-Agent\.artifacts\dsh-mutipleagent-0.2.1.tgz'
|
|
98
|
+
|
|
99
|
+
重启 Harness,在任意会话页顶部标签行点「多 Agent 办公室」,或从侧栏「多 Agent 办公室」打开。不需要单独运行办公室服务,也不需要设置 API Key。插件从 `sessionQuery` 公开接口读取会话,不读取 `.codex`、凭据或私有推理。
|
|
100
|
+
|
|
101
|
+
也可以从 Git 地址安装最新主分支:
|
|
102
|
+
|
|
103
|
+
dsh plugin --profile desktop add https://github.com/lkuliuying/dsh-mutipleagent.git
|
|
104
|
+
|
|
105
|
+
### 插件行为与边界
|
|
106
|
+
|
|
107
|
+
- 页面位于宿主的 `/dsh-mutipleagent/` 路由,Web 和 Desktop 共用同源入口;会话接口沿用 Harness 登录校验,仅允许 owner 访问。
|
|
108
|
+
- 主会话与真实子 Agent 的关系、状态和正文来自已记录事件。没有百分比时显示「未记录」;子 Agent 结束不代表主任务完成。
|
|
109
|
+
- 会话内标签直接绑定当前会话:`conversation.view` 的 `inject(sessionId)` 拿到会话 ID 后拼进页面地址,嵌入模式隐藏目录选择器,标题显示当前会话;标签行空间不足时收进「更多会话视图」,可在其中固定或取消固定。
|
|
110
|
+
- 侧栏入口仍是跨项目视图:先选择工作目录,再从该目录选择具体会话。展开下拉后可按完整路径或会话标题、时间、ID 筛选;目录显示完整路径和会话数量,会话分行显示标题、创建时间与短 ID,同名会话也能区分。未记录目录的会话单独归组。
|
|
111
|
+
- 记住上次选择的目录和会话;地址中明确指定的会话优先。「跟随新会话」仅跟随当前目录,其他项目的新任务不会抢走显示。窄窗口通过「会话 / 团队」打开同样的目录筛选。
|
|
112
|
+
- 可以选择成员、搜索任务、查看任务与汇报全文,或切换到明确标记的模拟演示。后台会话标题最多每 30 秒刷新一次,正在观察的团队随原有轮询更新。
|
|
113
|
+
- 搜索与下拉支持方向键、Home / End 和 Enter;下拉中 Escape 取消筛选并返回触发器,Tab 继续切换焦点。任务搜索按 `/` 聚焦,Escape 先收起结果,再按一次清空;清空按钮保留输入框焦点。中文输入法组合期间 Enter 不会提前选择。演示模式使用同样的控件。
|
|
114
|
+
- 插件只读观察,不启动任务、不调用模型、不审批、不修改会话。需要在 Harness 会话中实际创建子 Agent 才会出现真实协作。
|
|
115
|
+
- 停用或卸载时释放路由、轮询、事件连接和页面资源。构建产物与模型随包提供,不使用 CDN。
|
|
116
|
+
|
|
117
|
+
插件源码入口为 `harness.cjs` 和 `client.js`;`src/harness-watcher.js` 将公开会话事件转换为办公室快照,`cordis.patch.yml` 负责宿主插件注册。不会安装第二份 Harness 运行时,也未新增 npm 依赖。
|
|
118
|
+
|
|
119
|
+
插件验证命令:
|
|
120
|
+
|
|
121
|
+
npm test
|
|
122
|
+
npm run test:plugin:ui
|
|
123
|
+
npm run smoke:host
|
|
124
|
+
|
|
125
|
+
`smoke:host` 在隔离进程中使用本机 Desktop 的实际 SDK 和合成会话验证插件加载,不调用模型、不安装插件、不写入用户 profile。可通过 `DSH_DESKTOP_EXE` 指定其他安装路径。
|
|
126
|
+
|
|
127
|
+
## 独立 Codex 观察器
|
|
128
|
+
|
|
129
|
+
继续在 Codex Desktop 或 CLI 中执行任务,在本地浏览器观察主 Agent 分配任务、子 Agent 并行执行、提交汇报,以及主 Agent 的最终总结。
|
|
130
|
+
|
|
131
|
+
这是只读观察器。它不会启动 Codex 任务、修改 Codex 配置、处理审批、调用模型或上传会话内容。
|
|
132
|
+
|
|
133
|
+
## 开始使用
|
|
134
|
+
|
|
135
|
+
需要 Node.js 20 或更新版本,以及支持 WebGL 的浏览器。交付目录已包含构建好的页面和全部模型,日常使用不需要安装 npm 依赖,也不需要填写 API Key。
|
|
136
|
+
|
|
137
|
+
Windows 双击 **启动办公室.cmd**,服务就绪后会打开浏览器:
|
|
138
|
+
|
|
139
|
+
http://127.0.0.1:4317
|
|
140
|
+
|
|
141
|
+
也可以在此目录运行:
|
|
142
|
+
|
|
143
|
+
node src/server.js --open
|
|
144
|
+
|
|
145
|
+
保持启动窗口运行;关闭窗口或按 Ctrl+C 停止服务。端口被占用时可以运行:
|
|
146
|
+
|
|
147
|
+
node src/server.js --port 4320 --open
|
|
148
|
+
|
|
149
|
+
默认读取当前用户的 .codex/sessions。自定义数据目录时,在 PowerShell 中设置:
|
|
150
|
+
|
|
151
|
+
$env:CODEX_HOME = 'D:\your-codex-home'
|
|
152
|
+
node src/server.js --open
|
|
153
|
+
|
|
154
|
+
这里填写 Codex 数据目录,不是 sessions 子目录。应用只读该目录中的会话文件,不读取 auth.json 或其他凭据文件。
|
|
155
|
+
|
|
156
|
+
## 怎么看
|
|
157
|
+
|
|
158
|
+
- 左侧选择一个主任务,团队树包含它的子 Agent 和后代;完成的成员仍留在团队中。
|
|
159
|
+
- 拖动旋转办公室,滚轮缩放;点击人物或团队成员查看详情,点击显示器查看该工位的屏幕详情,点击复位按钮恢复全景。
|
|
160
|
+
- 顶部「模式」下拉切换真实会话与演示会话;铃铛查看协作动态,打开面板后红点自动消除,也可点「全部已读」。
|
|
161
|
+
- 右侧查看任务原文、实际工具活动、可见进展消息和汇报全文;汇报可展开和复制。
|
|
162
|
+
- 底部时间线展示分配、追加指令、等待、汇报、完成和失败。分配用消息流表达;子 Agent 汇报时走向协调区,界面状态立即更新。
|
|
163
|
+
- 上次选择的任务与减少动画偏好保存在当前浏览器。首次读取、刷新、切换任务或重连时不播放历史动画。
|
|
164
|
+
- 无 WebGL 时仍可使用团队树、活动记录与报告;在原 Codex 中回答审批或追问。
|
|
165
|
+
|
|
166
|
+
要实际出现子 Agent,请在 Codex 中明确要求并行分工,例如:
|
|
167
|
+
|
|
168
|
+
> 请启动两个只读子 Agent:一个检查接口契约,另一个检查测试缺口。等待它们完成,再汇总发现和建议。
|
|
169
|
+
|
|
170
|
+
## 演示
|
|
171
|
+
|
|
172
|
+
### 参考图风格的独立 Demo
|
|
173
|
+
|
|
174
|
+
打开 http://127.0.0.1:4317/demo.html ,使用全屏等距 3D 场景、蓝白悬浮卡片、右侧任务详情和底部协作流程。原监控页仍位于根路径。
|
|
175
|
+
|
|
176
|
+
该页面使用纯前端模拟数据,不请求真实会话接口。默认停在第 16 秒的并行执行阶段;点击“播放演示”继续,完整流程共 48 秒。可暂停、重新开始,或点击底部阶段预览对应状态。进度百分比表示脚本进度。
|
|
177
|
+
|
|
178
|
+
点击场景标签、人物、工位或任务列表选择 Agent;搜索框可按角色、任务或文件名过滤。任务完成后可阅读完整模拟汇报,最后由主 Agent 汇总。顶部还可切换第二组只读审阅示例。
|
|
179
|
+
|
|
180
|
+
窄屏默认收起详情,使用“Agent 详情”打开;底部“协作流程与任务”可展开。减少动画和镜头复位位于左下方。
|
|
181
|
+
|
|
182
|
+
新增页面源码为 web/demo.js、web/demo-scene.js 和 web/demo-state.mjs;样式为 public/demo.css。运行 npm run build 同时构建原监控页和新 Demo,未增加框架或后端接口。
|
|
183
|
+
|
|
184
|
+
### 用参考图界面观察真实任务
|
|
185
|
+
|
|
186
|
+
保持普通模式服务运行,打开 http://127.0.0.1:4317/demo.html?mode=live 。也可以点击 Demo 顶部“演示数据”切换到真实模式。真实模式沿用同一套 3D 场景、卡片与流程布局,数据通过已有只读 API 和 SSE 接入,不新增后端接口。
|
|
187
|
+
|
|
188
|
+
- 顶部选择主会话,页面恢复上次选择。URL 的 rootId 参数可固定观察指定会话;“跟随新会话”会在发现新建主会话时切换,“固定当前会话”持续观察当前团队。这两个选项不暂停 Codex。
|
|
189
|
+
- 点击人物标签、工位或任务列表查看实际成员;“团队”按钮在窄屏或 WebGL 不可用时也能选择成员和主会话。支持超过四人及嵌套团队。已结束的上一轮成员可通过“查看历史成员”展开,保留结果但不计入本轮指标。
|
|
190
|
+
- 分配、追加消息和汇报出现时播放蓝色消息流;子 Agent 收到真实汇报记录后走向父 Agent。状态先更新,动画独立播放;首次加载、切换和重连不重播历史。
|
|
191
|
+
- “查看汇报全文”和“查看任务原文”按实际记录读取。未知进度显示“未记录”,没有主任务完成事件时不会因为子任务结束而显示全部完成。
|
|
192
|
+
- 左下刷新图标仅重新连接日志流;页面不能启动、暂停、重启或审批 Codex 任务。
|
|
193
|
+
|
|
194
|
+
真实模式源码为 web/live-source.mjs、web/live-state.mjs 和 web/live-office.js,模拟模式仍独立保留。
|
|
195
|
+
|
|
196
|
+
如希望新 Codex 项目任务默认并行协作,可以自行在用户级 ~/.codex/AGENTS.md 中规定“主 Agent 统筹,独立工作交给 2~3 个子 Agent,收集真实汇报后汇总”。实际执行仍受会话权限、更高优先级指令和任务是否可拆分约束。观察页面本身不会修改规则或强制 Codex 生成子 Agent。
|
|
197
|
+
|
|
198
|
+
视觉核对与交互验收见 [docs/design-qa.md](docs/design-qa.md)。
|
|
199
|
+
|
|
200
|
+
### 原版办公室演示
|
|
201
|
+
|
|
202
|
+
双击 **演示办公室.cmd**,或者运行:
|
|
203
|
+
|
|
204
|
+
node src/server.js --demo --port 4318 --open
|
|
205
|
+
|
|
206
|
+
演示服务使用内存中的模拟团队,不读取本机 Codex 日志,不执行任务。页面始终有醒目的演示标记;刷新页面不会重新启动演示序列,重启服务可从头演示。
|
|
207
|
+
|
|
208
|
+
## 数据与接口
|
|
209
|
+
|
|
210
|
+
渲染、寻路、人物动作及模型复用自 whatsmyagentdoing;读取流程沿用其轮询与增量尾读思路,针对 Codex 团队关系、完整报告和 Desktop 继承历史增加了专用实现。
|
|
211
|
+
|
|
212
|
+
服务只监听 127.0.0.1。所有浏览器接口均为 GET,拒绝跨源请求及非本机 Host;没有更新、安装场景、执行任务等远程写入接口。应用不使用遥测、外部字体或 CDN。
|
|
213
|
+
|
|
214
|
+
| 接口 | 用途 |
|
|
215
|
+
| --- | --- |
|
|
216
|
+
| GET /api/sessions?rootId=会话ID | 主任务列表和选中团队快照;省略 rootId 时选择最近任务 |
|
|
217
|
+
| GET /events?rootId=会话ID | SSE 团队快照流,重连后直接重建当前状态 |
|
|
218
|
+
| GET /api/report?sessionId=会话ID&eventId=事件ID | 从原始记录读取完整可见正文 |
|
|
219
|
+
| GET /api/health | 本机存活检查 |
|
|
220
|
+
|
|
221
|
+
Agent 包含 id、parentId、rootId、状态、任务记录和汇报记录;CollaborationEvent 包含事件 ID、会话 ID、目标 ID、时间、类型及短预览。字节偏移和内部文件引用只保留在服务进程中,不向浏览器提供任意路径读取接口。报告正文不做 1500 字符截断,按需读取,不保存副本。
|
|
222
|
+
|
|
223
|
+
## 接入限制
|
|
224
|
+
|
|
225
|
+
- 已在本机 Codex Desktop 0.167.0-alpha.3.2 的真实会话上验证:任务路径创建结果、父子关系、两份真实子 Agent 最终汇报和完整正文读取。完成当前主任务后的最终回复,会在 Codex 写入日志后同步。
|
|
226
|
+
- 兼容创建结果返回 Agent ID 的形式,以及原生 collab_* 事件。Desktop 子 Agent 继承的历史根据 subagent_history_start_ordinal 排除;内部审批/整理线程不作为协作成员展示。
|
|
227
|
+
- 日志通常按消息块落盘,不逐字同步。已知文件约每秒检查一次,新文件约每五秒发现一次;没有新日志不会自动判定任务失败。
|
|
228
|
+
- 日志不是稳定的公开 API。升级 Codex 后如字段变化,未知状态/缺失正文会明确显示,无法读取的成员不会阻断其他成员。
|
|
229
|
+
- 本机当前 Desktop 的部分 spawn_agent、followup_task 和 send_message 参数以加密载荷落盘,无法从日志恢复分配正文。此时只展示真实关系、事件及“未记录可见明文”,不展示密文、不解密、不用生成文本补全;已记录为明文的最终回复仍可读取全文。纯 AGENTS.md 指令与环境注入不作为用户任务。
|
|
230
|
+
- 默认发现最近 24 小时活跃的日志,最多列出最近 60 个主任务;日期很早但最近续聊的会话也能发现。已选中任务按已知 ID 补齐子日志。
|
|
231
|
+
- 时间线显示最近 40 条协作事件,Agent 活动显示最近 16 条,汇报页显示最近 8 份完整汇报。界面不是完整日志归档;原始记录仍由 Codex 保管。
|
|
232
|
+
- 不读取私有推理、系统消息、开发者消息或凭据;任务与汇报中用户自己提供的内容按原文展示。
|
|
233
|
+
- 本轮主 Agent 的最终结束状态需等本轮交付回复落盘后才能观察;结束与总结路径另由解析测试和浏览器演示验证。
|
|
234
|
+
|
|
235
|
+
## 常见问题
|
|
236
|
+
|
|
237
|
+
**打开后团队里只有一个主 Agent?**
|
|
238
|
+
插件只显示真实存在过的子 Agent。需要在 Harness 会话里明确要求并行分工(例如"起两个只读子 Agent 分别检查接口和测试"),并且该会话确实产生了 `spawn_agent` 及后续事件。演示模式(顶部「模式」→「演示会话」)不含真实数据,仅用于看交互。
|
|
239
|
+
|
|
240
|
+
**界面上的数字和我在会话里看到的不一致?**
|
|
241
|
+
日志按消息块落盘,不是逐字同步;服务约每秒检查一次已知会话、约每五秒发现新会话。百分比与完成数只认已记录事件,缺记录时显示「未记录」,子 Agent 结束也不会把主任务标成完成。
|
|
242
|
+
|
|
243
|
+
**会把我的会话内容上传吗?**
|
|
244
|
+
不会。服务只监听 `127.0.0.1`,所有接口都是 `GET`,没有遥测、外部字体或 CDN;详细边界见 [SECURITY.md](SECURITY.md)。
|
|
245
|
+
|
|
246
|
+
**Web 版 Harness 能用吗?**
|
|
247
|
+
可以。面板走宿主的 `/dsh-mutipleagent/` 同源路由,会话接口沿用 Harness 登录校验,仅 owner 可访问。
|
|
248
|
+
|
|
249
|
+
**没有 WebGL 或显卡较弱?**
|
|
250
|
+
页面会自动降级为团队树、活动记录与汇报列表,功能不丢;也可勾选「减少动画」。
|
|
251
|
+
|
|
252
|
+
**端口 4317 被占用?**
|
|
253
|
+
`node src/server.js --port 4320 --open`,或者直接改用插件面板(走宿主编排,不占用固定端口)。
|
|
254
|
+
|
|
255
|
+
**怎么更新到新版本?**
|
|
256
|
+
在插件市场更新,或按下方「线上安装与更新」把命令里的 tag 换成目标版本;只重启不会切换版本。
|
|
257
|
+
|
|
258
|
+
## 参与贡献
|
|
259
|
+
|
|
260
|
+
- 开发与测试约定见 [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
261
|
+
- 安全问题请走私密通道,见 [SECURITY.md](SECURITY.md)
|
|
262
|
+
- 版本变化见 [CHANGELOG.md](CHANGELOG.md)
|
|
263
|
+
|
|
264
|
+
## 开发与验证
|
|
265
|
+
|
|
266
|
+
依赖与上游锁定版本一致;锁文件中的下载地址已统一为 npm 官方 registry。
|
|
267
|
+
|
|
268
|
+
npm ci
|
|
269
|
+
npm run build
|
|
270
|
+
npm test
|
|
271
|
+
|
|
272
|
+
提交前建议跑完整闸门(CI 同样执行):
|
|
273
|
+
|
|
274
|
+
npm run lint
|
|
275
|
+
npm run format:check
|
|
276
|
+
npm run check:compat
|
|
277
|
+
npm test
|
|
278
|
+
|
|
279
|
+
构建使用 esbuild(代码分割,three.js 打进共享 chunk)和 Three.js。测试使用 Node 内置测试框架;浏览器测试使用已安装的 Google Chrome 和 Playwright,在隔离模拟数据上检查实际 WebGL、交互、响应式布局及无 WebGL 降级。测试不会读取你的真实历史。
|
|
280
|
+
|
|
281
|
+
README 里的截图由演示数据生成,可随时重跑:
|
|
282
|
+
|
|
283
|
+
npm run screenshots
|
|
284
|
+
|
|
285
|
+
发布新版本(维护者):
|
|
286
|
+
|
|
287
|
+
npm run release -- 0.2.0
|
|
288
|
+
|
|
289
|
+
脚本会要求 `CHANGELOG.md` 先有对应段落,然后依次跑 lint、格式检查、构建、兼容自检和测试,最后提交并打 tag;推 tag 后由 GitHub Actions 创建 Release。
|
|
290
|
+
|
|
291
|
+
真实接入检查需要显式给出一个主会话 ID:
|
|
292
|
+
|
|
293
|
+
node tests/live.cjs 主会话ID
|
|
294
|
+
|
|
295
|
+
该检查只读所选任务及其团队,输出计数和验证结果,不复制任务或汇报原文。验证证据保存在 .verification 中。
|
|
296
|
+
|
|
297
|
+
源码组织:src 是本地只读服务与 Codex 解析,web 是页面交互和团队场景,vendor 与 public/vendor 是固定版本上游渲染代码,assets 是本地模型和素材。
|
|
298
|
+
|
|
299
|
+
## 开源许可
|
|
300
|
+
|
|
301
|
+
基于 [Charonyuu/whatsmyagentdoing](https://github.com/Charonyuu/whatsmyagentdoing),固定提交 c69bf2bc98cf96a63d146070e9bbc83b507bf0bf,版本 0.8.1。上游 MIT 许可证保留在 LICENSE。模型来自 Kenney Mini Characters 与 Furniture Kit(CC0),原始许可证保留在 assets/kenney。其余素材的来源说明保留在 assets/agents/README.md。
|
|
302
|
+
|
|
303
|
+
详见 THIRD_PARTY_NOTICES.md。观察器和插件不会修改上游仓库、安装全局技能,或更改模型、权限、并发配置及用户级 AGENTS.md 规则。
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 安全策略
|
|
2
|
+
|
|
3
|
+
## 支持范围
|
|
4
|
+
|
|
5
|
+
安全修复只进入最新发布版本。请先确认 `dsh-mutipleagent` 是当前版本(见 [CHANGELOG.md](CHANGELOG.md))再报告问题。
|
|
6
|
+
|
|
7
|
+
## 报告漏洞
|
|
8
|
+
|
|
9
|
+
请**不要**在公开 issue 中披露可被利用的细节。使用 GitHub 的私密报告通道:
|
|
10
|
+
|
|
11
|
+
<https://github.com/lkuliuying/dsh-mutipleagent/security/advisories/new>
|
|
12
|
+
|
|
13
|
+
报告中请尽量包含:受影响版本、复现步骤、期望与实际结果,以及你认为的影响面。48 小时内会收到初步答复;修复发布后会在 Release 说明中致谢(除非你要求匿名)。
|
|
14
|
+
|
|
15
|
+
## 设计上的安全边界
|
|
16
|
+
|
|
17
|
+
这个插件是只读观察器,边界写进了代码,也写在这里,便于审计:
|
|
18
|
+
|
|
19
|
+
- **只读**:不启动、暂停或审批任何 Harness 任务,不调用模型,不写入会话文件,不修改配置。
|
|
20
|
+
- **数据来源**:只通过 Harness 公开的 `sessionQuery` 接口读取当前 profile 的会话事件;不读取 `auth.json`、凭据、私有推理、系统消息或开发者消息。
|
|
21
|
+
- **网络**:服务只监听 `127.0.0.1`;所有浏览器接口都是 `GET`;拒绝跨源请求、非本机 Host 和非 owner 访问(沿用宿主登录校验)。没有遥测、外部字体、CDN 或第三方脚本。
|
|
22
|
+
- **渲染**:页面中的任务、汇报等文本一律用 `textContent` 写入,不拼接 HTML。
|
|
23
|
+
- **响应头**:CSP(`default-src 'self'`、`object-src 'none'`、`form-action 'none'`)、`x-content-type-options: nosniff`、`referrer-policy: no-referrer`、`permissions-policy` 关闭摄像头/麦克风/定位/支付/USB、`cross-origin-resource-policy: same-origin`。
|
|
24
|
+
- **面板 iframe**:`sandbox="allow-scripts allow-same-origin"`。同源是必需的(面板要读同源 API 与本地偏好),页面内容全部来自插件自身的静态文件,不接受用户 HTML;弹窗、顶层跳转、表单提交、下载、插件和指针锁定仍被沙箱拒绝。
|
|
25
|
+
- **本地服务**:静态资源带 ETag 与 `must-revalidate`,不会被中间层长期缓存;gzip 缓存上限 32 MB。
|
|
26
|
+
|
|
27
|
+
如果你发现以上任一边界可以被绕过(例如通过会话内容注入脚本、越权读取其他会话、绕过 owner 校验),那就是安全问题,请按上面的通道报告。
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
## whatsmyagentdoing
|
|
4
|
+
|
|
5
|
+
- Project: https://github.com/Charonyuu/whatsmyagentdoing
|
|
6
|
+
- Revision: c69bf2bc98cf96a63d146070e9bbc83b507bf0bf (0.8.1)
|
|
7
|
+
- Copyright (c) 2026 cheoyu
|
|
8
|
+
- License: MIT, reproduced in LICENSE.
|
|
9
|
+
- Reused source: public/office.js → public/vendor/office.js; web/office3d.js → vendor/office3d.js. Resource URLs were adapted to support the Harness plugin mount path. Team layout and behavior extensions are in web/team-office.js.
|
|
10
|
+
- The incremental log reader design informed the Codex-only reader in src/codex.js.
|
|
11
|
+
|
|
12
|
+
## Kenney assets
|
|
13
|
+
|
|
14
|
+
Mini Characters and Furniture Kit by Kenney, https://kenney.nl, CC0.
|
|
15
|
+
Original license files are retained in assets/kenney.
|
|
16
|
+
|
|
17
|
+
## Agent icons and logo
|
|
18
|
+
|
|
19
|
+
Assets are preserved from the pinned upstream revision. Source and attribution are in assets/agents/README.md and assets/agents/MAGPIE-LICENSE.
|
|
20
|
+
|
|
21
|
+
## JavaScript dependencies
|
|
22
|
+
|
|
23
|
+
The browser bundle includes Three.js (MIT) and its bundled loaders, controls, SkeletonUtils and Meshopt decoder. The Meshopt decoder is available under the MIT license as distributed with Three.js. esbuild is MIT-licensed and used only at build time. Playwright is Apache-2.0-licensed and used only for verification.
|
|
24
|
+
|
|
25
|
+
Dependency license texts are copied into vendor/licenses with the distributable.
|
|
26
|
+
|
|
27
|
+
## Bootstrap Icons
|
|
28
|
+
|
|
29
|
+
The independent reference-style demo uses locally bundled SVG icons from https://github.com/twbs/icons. Bootstrap Icons is MIT-licensed; its original license is preserved in vendor/licenses/BOOTSTRAP-ICONS-LICENSE.txt. Icon paths are preserved; their displayed colors are styled by the demo stylesheet.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 yetone
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Provider icons
|
|
2
|
+
|
|
3
|
+
`omp.svg` is a neutral OMP monogram made for this interface. It is not an
|
|
4
|
+
official oh-my-pi logo and contains no external resources. `opencode.svg` and
|
|
5
|
+
`hermes.svg` are likewise neutral marks drawn for this interface — a terminal
|
|
6
|
+
prompt and an H in a ring. Neither reproduces an official OpenCode or Hermes
|
|
7
|
+
logo, and neither contains external resources.
|
|
8
|
+
|
|
9
|
+
These official product icons identify the providers of sessions. They are served
|
|
10
|
+
locally so offline use and canvas/video capture do not depend on a third party.
|
|
11
|
+
Brand marks belong to their respective owners; this project is not endorsed by
|
|
12
|
+
them. The project code license does not grant rights to these trademarks.
|
|
13
|
+
|
|
14
|
+
Retrieved 2026-10-25, artwork unchanged:
|
|
15
|
+
|
|
16
|
+
- `antigravity.png`: the official Google Antigravity mark, retrieved 2026-10-31 from
|
|
17
|
+
https://antigravity.google/assets/image/antigravity-logo.png (linked as an icon by
|
|
18
|
+
https://antigravity.google/).
|
|
19
|
+
- `claude.png`: Claude's official website favicon, downloaded from
|
|
20
|
+
https://assets.claude.com/95a868946ac8a31e5ff832e2899f294aa368b836.png?w=128&h=128
|
|
21
|
+
(linked by https://claude.com/).
|
|
22
|
+
- `codex.png`: the official transparent Codex product mark bundled in the installed
|
|
23
|
+
OpenAI desktop app, `ChatGPT.app/Contents/Resources/app.asar` →
|
|
24
|
+
`webview/assets/codex-app-ga-logo-3e5209898ca3.png`.
|
|
25
|
+
Brand reference: https://openai.com/brand/.
|
|
26
|
+
- `copilot.svg`: the GitHub Copilot mark, retrieved 2026-10-29 from
|
|
27
|
+
Simple Icons (https://cdn.jsdelivr.net/npm/simple-icons@13.21.0/icons/githubcopilot.svg).
|
|
28
|
+
Brand reference: https://github.com/logos.
|
|
29
|
+
- `gemini.png`: Google's official Gemini product icon, downloaded from
|
|
30
|
+
https://www.gstatic.com/lamda/images/gemini_sparkle_4g_512_lt_f94943af3be039176192d.png
|
|
31
|
+
(linked by https://gemini.google.com/).
|
|
32
|
+
|
|
33
|
+
Added 2026-10-26 from Magpie's bundled client icons, with the SVG artwork unchanged:
|
|
34
|
+
|
|
35
|
+
- `kimi.svg`: `internal/gui/assets/icons/kimi.svg`.
|
|
36
|
+
- `dsh.svg`: `internal/gui/assets/icons/deepseek-color.svg`, the icon Magpie
|
|
37
|
+
assigns to DeepSeek Harness.
|
|
38
|
+
- `grok.svg`: `internal/gui/assets/icons/xai.svg`, the icon Magpie assigns to
|
|
39
|
+
Grok Build.
|
|
40
|
+
|
|
41
|
+
Source project: https://github.com/yetone/magpie. Its MIT notice is included
|
|
42
|
+
in `MAGPIE-LICENSE`; trademark ownership remains with the respective brands.
|
|
43
|
+
Monochrome Kimi and xAI marks retain their transparent backgrounds. The UI
|
|
44
|
+
displays them in black on light themes and white on dark themes; the SVG
|
|
45
|
+
geometry is not modified.
|
|
46
|
+
- `pi.svg`: the Pi mark, retrieved 2026-11-06 from
|
|
47
|
+
https://github.com/earendil-works/pi/blob/main/apps/p2/public/icons/favicon.svg (MIT repository).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>DeepSeek</title><path d="M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z" fill="#4D6BFE"></path></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Grok</title><path d="M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Hermes</title><circle cx="12" cy="12" r="9.2"/><path d="M8.5 7.6v8.8M15.5 7.6v8.8M8.5 12h7"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Kimi</title><path d="M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z"></path><path d="M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z"></path></svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 96 96">
|
|
2
|
+
<title>OMP monogram</title>
|
|
3
|
+
<rect x="3" y="3" width="90" height="90" rx="24" fill="#a96926"/>
|
|
4
|
+
<g fill="none" stroke="#fff9ed" stroke-width="6" stroke-linecap="round" stroke-linejoin="round">
|
|
5
|
+
<path d="M18 38h12v22H18z M41 60V38l8 12 8-12v22 M69 60V38h10v11H69"/>
|
|
6
|
+
</g>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>OpenCode</title><path d="M8.6 6.2 2.9 12l5.7 5.8M15.4 6.2 21.1 12l-5.7 5.8M13.6 4.8 10.4 19.2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 4" shape-rendering="crispEdges"><rect x="0" y="0" width="3" height="1" fill="rgb(228 138 122)"/><rect x="2" y="1" width="1" height="1" fill="rgb(228 138 122)"/><rect x="0" y="1" width="1" height="3" fill="rgb(79 142 179)"/><rect x="1" y="2" width="1" height="1" fill="rgb(79 142 179)"/><rect x="3" y="2" width="1" height="2" fill="rgb(234 182 93)"/></svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
Furniture Kit (2.0)
|
|
4
|
+
|
|
5
|
+
Created/distributed by Kenney (www.kenney.nl)
|
|
6
|
+
Creation date: 20-10-2018 16:21
|
|
7
|
+
|
|
8
|
+
------------------------------
|
|
9
|
+
|
|
10
|
+
License: (Creative Commons Zero, CC0)
|
|
11
|
+
http://creativecommons.org/publicdomain/zero/1.0/
|
|
12
|
+
|
|
13
|
+
This content is free to use in personal, educational and commercial projects.
|
|
14
|
+
Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
|
|
15
|
+
|
|
16
|
+
------------------------------
|
|
17
|
+
|
|
18
|
+
Donate: http://support.kenney.nl
|
|
19
|
+
Request: http://request.kenney.nl
|
|
20
|
+
Patreon: http://patreon.com/kenney/
|
|
21
|
+
|
|
22
|
+
Follow on Twitter for updates:
|
|
23
|
+
http://twitter.com/KenneyNL
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
Mini Characters (1.0)
|
|
4
|
+
|
|
5
|
+
Created/distributed by Kenney (www.kenney.nl)
|
|
6
|
+
Creation date: 17-07-2024 11:31
|
|
7
|
+
|
|
8
|
+
------------------------------
|
|
9
|
+
|
|
10
|
+
License: (Creative Commons Zero, CC0)
|
|
11
|
+
http://creativecommons.org/publicdomain/zero/1.0/
|
|
12
|
+
|
|
13
|
+
You can use this content for personal, educational, and commercial purposes.
|
|
14
|
+
|
|
15
|
+
Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement)
|
|
16
|
+
|
|
17
|
+
------------------------------
|
|
18
|
+
|
|
19
|
+
• Website : www.kenney.nl
|
|
20
|
+
• Donate : www.kenney.nl/donate
|
|
21
|
+
|
|
22
|
+
• Patreon : patreon.com/kenney
|
|
23
|
+
|
|
24
|
+
Follow on social media for updates:
|
|
25
|
+
|
|
26
|
+
• Twitter: twitter.com/KenneyNL
|
|
27
|
+
• Instagram: instagram.com/kenney_nl
|
|
28
|
+
• Mastodon: mastodon.gamedev.place/@kenney
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|