dsh-composer-plus 1.24.1 → 1.25.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/README.de.md +16 -7
- package/README.es.md +16 -7
- package/README.fr.md +16 -7
- package/README.hi.md +16 -7
- package/README.id.md +16 -7
- package/README.ja.md +16 -7
- package/README.ko.md +16 -7
- package/README.md +16 -7
- package/README.pt-BR.md +16 -7
- package/README.ru.md +16 -7
- package/README.tr.md +16 -7
- package/README.vi.md +16 -7
- package/README.zh.md +16 -7
- package/assets/features/assistant.webp +0 -0
- package/assets/features/assistantApart.webp +0 -0
- package/assets/features/assistantChatView.webp +0 -0
- package/assets/features/assistantFree.webp +0 -0
- package/assets/features/assistantNotify.webp +0 -0
- package/assets/features/memorySuggest.webp +0 -0
- package/client.js +264 -28
- package/index.js +208 -5
- package/package.json +2 -2
- package/release-notes.json +14 -14
- package/tether/gateway/admin.html +5 -0
- package/tether/gateway/server.mjs +45 -8
package/README.zh.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
然后重启 dsh。(CLI 无法安装到桌面版 profile 中;桌面版 profile 由应用自己管理。)
|
|
31
31
|
|
|
32
|
-
> dsh 使用的 pnpm 会跳过发布不到 24 小时的版本。刚发布新版本时,请加上版本号:`dsh-composer-plus@1.
|
|
32
|
+
> dsh 使用的 pnpm 会跳过发布不到 24 小时的版本。刚发布新版本时,请加上版本号:`dsh-composer-plus@1.25.0`。
|
|
33
33
|
|
|
34
34
|
## 功能
|
|
35
35
|
|
|
@@ -75,7 +75,11 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
75
75
|
| **受保护的文件** | <a id="feature-protectedfiles"></a>默认开启。智能体自己的文件工具不能读取或更改与你的模式匹配的文件:对于 **读取和写入** 模式,对文件使用的 `read`、`read_image` 和 `grep` 会被拒绝;两种模式下 `write`、`edit` 和 `str_replace_editor` 都会被拒绝。智能体会看到原因,并被告知要问你。默认模式是 `.env*`、`*.pem` 和 `*.key`。设置 → Composer Plus → **受保护的文件**:添加一个模式(例如 `published/**` 或 `config/*.yml`),点击它的类型可在 **读取和写入** 与 **仅写入** 之间切换,用 ✕ 移除它,或点击 **使用默认值**。不含 `/` 的模式会匹配任意文件夹中的文件名。这是护栏,不是沙箱:shell 命令(`cat .env`)、脚本或 MCP 工具仍能访问该文件(见“限制”)。 | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="截图:受保护的文件"></a> |
|
|
76
76
|
| **禁止的命令** | <a id="feature-blockedcommands"></a>默认开启,列表为空。智能体的 shell 命令(`bash`、`pwsh`)不能运行与你的规则匹配的命令:**阻止** 规则会拒绝调用(智能体会看到原因,并被告知要问你),**先询问** 规则会显示 dsh 的审批卡片,只有你允许后命令才会运行。设置 → Composer Plus → **禁止的命令**:输入一条规则(例如 `npm publish`、`git push --force` 或 `ssh *192.168.2.19`),点击类型可在 **阻止** 与 **先询问** 之间切换,然后点击 **添加**;点击规则的类型可以更改它,用 ✕ 移除它。一条规则是一个命令名和必须按此顺序出现在它后面的词;`*` 匹配任意文本。它也能找到 `&&`、`;`、`\|` 之后,`$(…)`、`bash -c "…"` 或 `eval` 之中,以及 `sudo` 或 `env` 之后的命令。这是护栏,不是沙箱:变量(`$CMD`)、脚本文件或其他程序仍能运行该命令(见“限制”)。 | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="截图:禁止的命令"></a> |
|
|
77
77
|
| **任务看板** | <a id="feature-taskboard"></a>左侧边栏 → **任务看板**,或在 dsh 的任意位置按 `Cmd+Shift+K`(Windows 和 Linux 上为 `Ctrl+Shift+K`)。dsh 对话的看板,显示与侧边栏相同的实时状态:等待你审批、回答或审阅计划的对话在**审核**中并带橙色圆点,运行中的对话在**进行中**,尚未打开的已完成对话在**已完成**中(绿色)。打开对话后,它的卡片会自动离开**已完成**;点击绿色卡片下方的**最近完成 (N)**,可查看你已读的已完成对话(最新 10 个,然后是**显示更早的 N 个**;展开或收起状态保存在此设备上)。在看板后面打开着时完成的对话(**新建任务**)会保持绿色,直到你打开它。点击看板顶部的项目名称打开项目列表,然后选择一个项目或**所有项目**;“每个对话一个分支”的文件夹算作它所属的项目。选择后、按 `Esc` 或点击列表外部时,列表会关闭。在列表顶部的**搜索项目**中输入,可按名称查找项目(不区分大小写和重音符号;按 `Esc` 清空搜索框),按 `Enter` 选择第一个匹配项;点击**最近 2 小时内活跃**,则只显示有对话正在等待、正在运行、已完成但尚未查看,或在最近 2 小时内有变化的项目(此设置保存在此设备上)。**新建任务**(或按 `n`)会在看板显示的项目中打开 dsh 自己的新对话(选择**所有项目**时,在 dsh 的新会话所选的项目中打开),因此你可以像在任何对话中一样添加文件、使用命令和选择模型。你的第一条消息发出后,会自动回到看板。在此之前,该对话以**新建任务**显示在**进行中**的最上方:点击它即可写第一条消息。有对话在等待你的项目,在项目列表中带橙色圆点(有任何对话在等待时,顶部的项目名称旁也有橙色圆点)。dsh 为对话命名,对话的模型根据这条消息最多写出 3 个标签。点击卡片可打开它的对话。点击橙色卡片(或其上的**回答**),即可直接在看板上回答;面板中的**打开对话**可打开完整对话:**拒绝**或**允许一次**;计划则选**同意执行**或**要求修改**;问题则选择选项或输入你自己的文字。点击已完成卡片上的 **×**,可把这张卡片从看板移除;展开**最近完成**后点击**已完成**顶部的**全部清除**,可把这些卡片从看板移除:它会先显示将移除哪个项目的多少张卡片,未读(绿色)卡片会保留。之后 8 秒内,**撤销**可把卡片放回;**已完成**下方的**已移除 (N)**列出已从看板移除的卡片,**放回**可让其中一张重新显示在**已完成**中。不会删除任何对话:对话仍保留在 dsh 的侧边栏中,重启后看板仍会记住这些操作(Tether 显示同一个看板),再次运行的对话会回到看板上。将指针指向**进行中**里的卡片(或把键盘焦点移到卡片上),即可看到它的进度:运行了多久、待办列表中的当前步骤、正在运行的工具,以及智能体的最后一行。在设置 → Composer Plus → 任务看板中,**悬停显示进度**可选择**快速(不用 AI)**(默认:只读取对话)或 **AI 摘要**(再向对话的模型发送一次简短调用,额外写出一两句话)。 | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="截图:任务看板"></a> |
|
|
78
|
-
| **助理** | <a id="feature-assistant"></a>默认开启(可在 **设置 → Composer Plus** 中关闭)。点击左侧边栏中的 **助理**(就在 **任务看板** 下方):它会打开一个长期保留的对话,你可以像使用 ChatGPT 或 Grok 那样把它当作个人助理。第一次点击会创建文件夹 `~/Assistant`,将其添加为项目“Assistant”,并以 workspace-write 权限模式和 dsh
|
|
78
|
+
| **助理** | <a id="feature-assistant"></a>默认开启(可在 **设置 → Composer Plus** 中关闭)。点击左侧边栏中的 **助理**(就在 **任务看板** 下方):它会打开一个长期保留的对话,你可以像使用 ChatGPT 或 Grok 那样把它当作个人助理。第一次点击会创建文件夹 `~/Assistant`,将其添加为项目“Assistant”,并以 workspace-write 权限模式和 dsh 的默认模型开始对话;之后每次点击都会打开同一个对话(已归档的会恢复,已删除的会重新创建)。对话还没有消息时,输入框上方会显示一张简短的卡片,说明助理能做什么,并给出三个示例请求;你发出第一条消息后,卡片就会消失。让它提醒你(“2 分钟后提醒我喝水”):它使用 dsh 的定时任务,所以到时会运行这个对话;打开 Mobile connect 时,Tether 会发送 “Turn finished” 通知。像和一位在后台干活的朋友聊天一样和它说话:耗时较长的任务(调研、多个步骤)会交给它自己的后台子代理,对话用一行说明开始了什么,然后立即空出来。第一个话题还在运行时可以开第二个话题:每个话题都有自己的子代理,每个结果准备好后都会回到这个对话。让它搜索网页,或询问你的其他对话:它可以列出所有项目的对话(运行中、等待你或空闲),并读取某个对话的最新消息。它还可以向某个对话发送消息、在项目中新建对话、停止正在运行的对话或归档对话:这四种操作都会先显示 dsh 的审批卡片(Tether 中也会显示),在你点击 **允许一次** 之前不会执行任何操作。它没有删除工具。只有这个对话拥有这些工具和它的简短说明;它从网页或其他对话中读到的文本只被当作数据,而不是命令。请把你的个人资料保存在该项目的记忆中(**项目记忆**,主题“profil”),不必每次都告诉它。 | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="截图:助理"></a> |
|
|
79
|
+
| **助理独立于对话** | <a id="feature-assistantapart"></a>默认开启(可在**设置 → Composer Plus**中关闭)。助理对话会离开左侧边栏的对话列表,不再混在你的项目对话中:用**助理**打开它。若“Assistant”项目中没有其他对话,该项目也会隐藏;侧边栏搜索仍能找到这个对话。**助理**行上的圆点显示助理的状态:工作中(后台话题运行时也算)、等待你处理(橙色:审批、提问或计划审阅)或有新回复(绿色)。助理对话打开时,**助理**行显示为当前项。关闭后,对话回到列表中,行上不再有圆点。 | <a href="assets/features/assistantApart.webp"><img src="assets/features/assistantApart.webp" width="160" alt="截图:助理独立于对话"></a> |
|
|
80
|
+
| **助理只显示消息** | <a id="feature-assistantchatview"></a>默认开启(可在**设置 → Composer Plus**中关闭)。助理对话看起来像和机器人聊天:工具调用、思考过程、步骤组和“完成于”行都会隐藏,你只看到自己的消息、它的回复、错误和审批卡片。其他对话不变。关闭后即可再次看到助理的工作步骤。 | <a href="assets/features/assistantChatView.webp"><img src="assets/features/assistantChatView.webp" width="160" alt="截图:助理只显示消息"></a> |
|
|
81
|
+
| **助理始终空闲** | <a id="feature-assistantfree"></a>默认开启(可在**设置 → Composer Plus**中关闭)。助理对话会立即回答,从不被长任务占住:它只调用自己的简短工具(你的对话、提醒、记忆和子代理)。其他每一步,例如网页搜索、网页、文件或命令,都交给后台子代理;对话用一句话说明启动了什么,随即空出来接收你的下一条消息,结果准备好后回到对话中。它的子代理照常工作。如果助理对话没有子代理工具(受其权限模式或配置影响),该规则不生效,**设置**中会说明原因。 | <a href="assets/features/assistantFree.webp"><img src="assets/features/assistantFree.webp" width="160" alt="截图:助理始终空闲"></a> |
|
|
82
|
+
| **助理播报对话动态** | <a id="feature-assistantnotify"></a>默认关闭:每条播报都是助理对话的一次模型回合,会消耗令牌。可在**设置 → Composer Plus**中开启。开启后,当其他对话完成一个较长的回合(1 分钟或更久)、失败,或等待你处理(审批、提问或计划审阅)达 30 秒时,助理会在它自己的对话中告诉你:每个对话一句简短的话,附上对话标题和项目。动态会先收集 15 秒,最多每 2 分钟播报一次;助理工作时,会等这一回合结束再播报。你手动停止的对话、较短的回合以及助理自己的对话不会播报。开启**移动连接(iPhone)**后,Tether 会收到助理常规的“回合已完成”通知。 | <a href="assets/features/assistantNotify.webp"><img src="assets/features/assistantNotify.webp" width="160" alt="截图:助理播报对话动态"></a> |
|
|
79
83
|
| **项目记忆** | <a id="feature-projectmemory"></a>默认关闭:请在 **设置 → Composer Plus** 中开启。每个项目文件夹都有自己的记忆,该项目之后的对话都会读取,就像 DS Bot 为每个 Bot 保存一份记忆。每个回合结束后,会用对话的模型调用一次,读取新消息(不含已回滚的消息),把你长期的偏好、决定和事实保存为简短笔记,并修改或删除旧笔记。智能体也可以自己保存、删除和搜索笔记(`memory_remember`、`memory_forget`、`memory_recall`)。笔记也可以是全局的:所有项目都会读取。新对话会在系统提示词中获得这些笔记;之后保存的笔记从下一个对话开始显示。文件是 dsh 主目录下的 Markdown(`storages/dsh-composer-plus/memory/`),绝不写入项目文件夹。 同一行的 **打开记忆** 会按项目(以及全局记忆)分组显示所有已保存的笔记,并可筛选。用你自己的话写下要修改的内容(例如“我从 yarn 换成了 pnpm”),然后点 **预览修改**:由 dsh 的默认模型提出修改,只有点 **应用** 才会保存。在 Tether 中:聊天标题菜单 → Project memory。 | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="截图:项目记忆"></a> |
|
|
80
84
|
| **记忆版本历史** | <a id="feature-memoryhistory"></a>在 **项目记忆** 开启时默认开启。每次保存记忆之前(智能体、回合结束后的回顾、**打开记忆**),都会保留一份原来的笔记副本。在 **打开记忆** 中选择一个项目或 **全局记忆**,然后点 **历史**:按日期列出各个版本,以及之后是谁修改了记忆。选择一个版本,即可以差异形式查看恢复会改变什么,然后点 **恢复**。恢复前的笔记也会保留,所以可以撤销恢复。每份记忆保留最新的 50 个版本。在 Tether 中:对话标题菜单 → Project memory → History。 | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="截图:记忆版本历史"></a> |
|
|
81
85
|
| **把记忆导出到 AGENTS.md** | <a id="feature-memoryexport"></a>在 **打开记忆** 中选择一个项目,然后点 **导出到 AGENTS.md**:该项目的笔记会写入其文件夹中 `AGENTS.md` 的一个标记区块,你可以提交它,并与团队和其他智能体工具共享。你会先看到差异形式的修改,只有点 **写入 AGENTS.md** 才会保存。下次导出只替换该区块。全局记忆、来源和日期不会写入。在 Tether 中:对话标题菜单 → Project memory → Export to AGENTS.md。 | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="截图:把记忆导出到 AGENTS.md"></a> |
|
|
@@ -104,7 +108,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
104
108
|
| **选项按钮** | <a id="feature-optionpicks"></a>当回答以选项列表结尾(“选项”标题或加粗的“选项”行下的 1 到 9 项编号列表,也包括“下一步”以及应用各语言中的同义词)时,回答下方会为每个选项显示一个按钮。点击即把“Option N: …”连同整个选项作为你的消息发送,就像你自己输入的一样。标有“(推荐)”的选项会有标记。按钮只显示在最新的回答下,且对话空闲、输入框为空时才显示;已选择过的回答和被回退撤回的回答不显示按钮。按钮显示期间,“下一条消息预测”不会给出猜测。在智能体的提问卡片上,按 1–9 键与点击效果相同,选择对应选项(在回答输入框中无效,问题出现后的前 0.8 秒内也无效)。 | <a href="assets/features/optionPicks.webp"><img src="assets/features/optionPicks.webp" width="160" alt="截图:选项按钮"></a> |
|
|
105
109
|
| **应用语言** | <a id="feature-language"></a>设置 → Composer Plus → **应用语言** 可以把整个 dsh 界面切换为 Türkçe、Español、Português (Brasil)、Français、Deutsch、Русский、日本語、한국어、Bahasa Indonesia、Tiếng Việt 或 हिन्दी(见下文)。 | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="截图:应用语言"></a> |
|
|
106
110
|
| **手机连接(iPhone)** | <a id="feature-mobileconnect"></a>通过 [Tether](tether/) 应用在 iPhone 上使用 dsh,可以在同一 Wi-Fi 下使用,也可以通过 [Tailscale](https://tailscale.com) 使用。请在 **设置 → Composer Plus** 中开启它(默认关闭,因为它会在这台 Mac 上开放一个网络端口)。然后点击侧边栏左下角的 **手机连接**:用 iPhone 相机扫描二维码(轻点 **Open in Tether**),或用 Tether 中的 **Scan code** 扫描,轻点 **Connect**,然后点击 **Approve**。请先安装 Tether:没有它,相机无法打开这个二维码。手机可以显示你的对话、发送消息(可附照片:输入框的 **+** → Camera、Photos 或 Paste image)、回答审批和问题,以及切换模型和智能体。你可以配对任意多台 Mac:点击应用左上角的 Mac 名称即可在它们之间切换。**手机连接** 面板会列出已配对的 iPhone 及其上次连接时间:点击 **Remove** 可立即断开其中一部。“Tailscale only”会拒绝来自本地网络的连接(适用于共享 Wi-Fi),访问日志会显示谁尝试过连接。在 Tether 中,“Settings → Privacy”可以用 Face ID 锁定应用。 | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="截图:手机连接(iPhone)"></a> |
|
|
107
|
-
| **远程电脑** | <a id="feature-remotecomputers"></a>通过 [Tailscale](https://tailscale.com) 打开你其他 Mac 上的 dsh,并在本 dsh 窗口中使用它们。在每台 Mac 的 **设置 → Composer Plus** 中开启它(默认关闭,因为它会打开网络端口)。在要被打开的 Mac 上开启 **允许其他电脑打开本机**,点击 **创建配对链接** 并复制链接。在本机左侧边栏的电脑选择器(品牌名右侧、**新建会话** 上方)中选择 **添加电脑…**,粘贴链接,输入 **名称**(不能与本机或其他电脑同名),点击 **连接**,然后在另一台 Mac 上点击 **批准**。之后选择器会列出 **本机** 和你的电脑:选择一台,它的 dsh 会占满本窗口,带有它自己的对话、侧边栏、工具和文件,而本机会在后台继续运行。选择器仍在同一位置,显示为
|
|
111
|
+
| **远程电脑** | <a id="feature-remotecomputers"></a>通过 [Tailscale](https://tailscale.com) 打开你其他 Mac 上的 dsh,并在本 dsh 窗口中使用它们。在每台 Mac 的 **设置 → Composer Plus** 中开启它(默认关闭,因为它会打开网络端口)。在要被打开的 Mac 上开启 **允许其他电脑打开本机**,点击 **创建配对链接** 并复制链接。在本机左侧边栏的电脑选择器(品牌名右侧、**新建会话** 上方)中选择 **添加电脑…**,粘贴链接,输入 **名称**(不能与本机或其他电脑同名),点击 **连接**,然后在另一台 Mac 上点击 **批准**。之后选择器会列出 **本机** 和你的电脑:选择一台,它的 dsh 会占满本窗口,带有它自己的对话、侧边栏、工具和文件,而本机会在后台继续运行。选择器仍在同一位置,显示为 **返回本机**:点击它即可返回。只有一台其他电脑时,点击选择器会立即在本机和那台电脑之间切换(不打开菜单);右键点击选择器可打开完整菜单(**添加电脑…**)。如果你有多台电脑,点击会打开菜单,在其中选择 **本机** 或另一台电脑。设置面板可以重命名和移除电脑,并列出可以打开本机的电脑(**移除** 会立即断开其中一台)。 | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="截图:远程电脑"></a> |
|
|
108
112
|
| **自动更新** | <a id="feature-autoupdate"></a>dsh 启动时,插件会检查 [最新的 GitHub release](https://github.com/furkancak1r/dsh-composer-plus/releases/latest)。如果它比当前版本新,并且已发布到 npm,插件会通过 dsh 自带的插件管理器(与 设置 → 插件 相同的途径)安装这个确切的版本,并通知你。重启 dsh 即可加载新版本。**设置 → Composer Plus → Composer Plus 更新** 会显示版本号,并提供 **检查更新** / **立即更新**。dsh 第一次以新版本启动时,会显示一次 **Composer Plus N 的新功能** 窗口,内容是该版本的发布说明,使用 **应用语言** 中选择的语言(说明随新版本一起安装,不会额外联网;没有该语言的说明时显示英文说明);点击 **关闭** 或按 `Esc` 关闭。说明下方有一行请求在 GitHub 上加星标,最多每 30 天显示一次(不联网);点击 **在 GitHub 上加星标** 或 **不再询问** 后不再显示。 通过 设置 → 插件 或复制文件夹更新后,每个新版本也会显示一次该窗口;首次安装时不显示。更新行中的 **此版本的新功能** 可再次打开它。如果磁盘上的版本比正在运行的版本新,该行会提示重启 dsh。 | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="截图:自动更新"></a> |
|
|
109
113
|
| **开/关筛选** | <a id="feature-featurefilter"></a>在 **设置 → Composer Plus** 的 **搜索功能** 旁边:**全部** 显示所有功能,**已开启** 只显示开关已开启的功能,**已关闭** 只显示开关已关闭的功能。依据是每一行自己的开关,也包括 dsh Host 保存的开关(例如 **手机连接**)。它与搜索一起使用:输入一个词并选择 **已关闭**,即可找到你关闭过的功能。在 **已开启** 或 **已关闭** 下切换过的行会一直保留,直到你再次选择筛选,因此焦点会停在它的开关上。**已开启** 和 **已关闭** 会隐藏 **应用语言** 和 **Composer Plus 更新** 两行(它们没有开关)。每次打开设置时都从 **全部** 开始。 | <a href="assets/features/featureFilter.webp"><img src="assets/features/featureFilter.webp" width="160" alt="截图:开/关筛选"></a> |
|
|
110
114
|
| **报告问题** | <a id="feature-issuereport"></a>设置 → Composer Plus → **报告问题…**(在介绍文字下方),或在侧边栏中右键点击对话(或打开它的 **…** 菜单)→ **报告 Composer Plus 问题…**。选择类型:**缺陷**、**功能请求**、**改进**、**翻译** 或 **提问**。用你自己的话和语言描述它,然后点击 **写草稿**(或按 `Cmd/Ctrl+Enter`)。调用一次 dsh 的默认模型写出英文 issue:标题带有该类型的前缀(例如 `[Bug]`),正文包含该类型的各个部分(缺陷为:What happened、Steps to reproduce、Expected、Actual),另加一行 Composer Plus、dsh 和系统的版本。阅读并修改标题和描述;**重新生成** 会写一份新草稿。**创建 issue** 会用你的 GitHub CLI(`gh`)登录在 Composer Plus 的 GitHub 仓库中创建它,并显示它的链接。issue 是公开的:看起来像密钥或密码的文字会被拒绝。`gh` 无法创建时,**改在 GitHub 上打开** 会打开 GitHub 自己的页面并填好草稿。 | <a href="assets/features/issueReport.webp"><img src="assets/features/issueReport.webp" width="160" alt="截图:报告问题"></a> |
|
|
@@ -199,7 +203,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
199
203
|
- **在新对话中继续:** 在你点击之前,什么都不会运行。点击后,Host 端会把对话(与目标检查读取的方式相同:不含推理内容和已回退的步骤)发送给对话自己的模型,并显示交接说明;只有 **开始新对话** 才会创建新对话。项目中不会写入任何内容。
|
|
200
204
|
- **上下文明细:** 只在 Host 上读取对话日志;不调用模型,不读取项目文件。
|
|
201
205
|
- **任务看板:** 看板显示 dsh 自己的对话,数据来自 dsh 在此窗口中自己的列表;它不会添加自己的对话数据。**新建任务** 会打开 dsh 自己的新对话,你在 dsh 的输入框中写第一条消息,因此审批、沙箱和对话的模型照常适用。Host 端把该对话的第一条消息保存为卡片的提示,并以另一次不带工具的请求,把它(只有前 4,000 个字符,没有其他内容)发送给该对话的模型,以获得最多 3 个标签。每个任务的提示、标签和开始时间保存在 `$DSH_HOME/storages/dsh-composer-plus/board-chats.json` 中(仅所有者可访问的文件,保留最新的 2,000 个),还保存你用 **×** 或 **全部清除** 从看板移除的对话的 ID(保留最新的 5,000 个);开关保存在旁边的 `board-switch.json` 中。不会向任何项目文件夹写入内容。**回答** 会把你的回答发送给 dsh 自己的待处理请求,与对话中自己的卡片做法相同。早期版本的旧任务列表(`board.json`)原样留在磁盘上,不会被读取。**悬停显示进度** 在这台 Mac 上读取对话的日志。使用 **快速(不用 AI)**(默认)时,不发送任何内容。使用 **AI 摘要** 时,在正在运行的卡片的进度框显示期间(或在 Tether 的看板打开期间,最多 8 张正在运行的卡片),Host 端会把该对话最新的部分(最多约 6,000 个字符:你的消息、智能体的文字回复、它的工具调用及其结果的末尾;不含推理和已回退的消息)以一次不带工具的请求发送给该对话的模型。只有在对话有了新进展后才会再次发送,每个对话最多每 20 秒一次。说明只保存在内存中;设置保存在 `$DSH_HOME/storages/dsh-composer-plus/board-progress.json` 中(仅所有者可访问的文件)。
|
|
202
|
-
- **助理:** 助理对话是 `~/Assistant` 中的一个普通 dsh 对话;它的模型请求和其他对话一样发送到 dsh 的默认模型。它的工具会读取你在这台 Mac 上其他对话的日志(标题、项目、状态,以及用 chat_read 读取的最新消息),并且只在模型调用工具时把这些内容交给该模型。发送消息、新建、停止和归档对话都要等你批准。对话 ID 保存在 `$DSH_HOME/storages/dsh-composer-plus/assistant.json`,开关保存在同目录的 `assistant-switch.json`(仅所有者可读写)。提醒和自动化使用 dsh 自己的定时任务。除了该对话发出的模型请求和网页搜索,没有任何内容离开这台 Mac
|
|
206
|
+
- **助理:** 助理对话是 `~/Assistant` 中的一个普通 dsh 对话;它的模型请求和其他对话一样发送到 dsh 的默认模型。它的工具会读取你在这台 Mac 上其他对话的日志(标题、项目、状态,以及用 chat_read 读取的最新消息),并且只在模型调用工具时把这些内容交给该模型。发送消息、新建、停止和归档对话都要等你批准。对话 ID 保存在 `$DSH_HOME/storages/dsh-composer-plus/assistant.json`,开关保存在同目录的 `assistant-switch.json`(仅所有者可读写)。提醒和自动化使用 dsh 自己的定时任务。除了该对话发出的模型请求和网页搜索,没有任何内容离开这台 Mac。“助理作为机器人”的开关状态保存在 `assistant-free.json` 和 `assistant-notify.json`(仅所有者可读写)。**助理播报对话动态**会把关于其他对话的一句简短说明(标题、项目,以及最多 300 个字符的最后回复或错误)放进助理对话,因此这些文字也会发送给助理的模型;等待中的动态只保存在内存中。
|
|
203
207
|
- **受保护的文件:** 列表和开关保存在 `$DSH_HOME/storages/dsh-composer-plus/protected-files.json` 中(仅所有者可访问的文件)。检查只读取每次文件工具调用的路径(及其真实路径),从不读取文件本身。
|
|
204
208
|
- **禁止的命令:** 规则和开关保存在 `$DSH_HOME/storages/dsh-composer-plus/blocked-commands.json` 中(仅所有者可访问的文件)。检查只读取每次 `bash` 和 `pwsh` 调用的命令文本;它不运行任何内容,也不发送任何内容。
|
|
205
209
|
- **密钥输入:** 值只会在回答请求中从卡片(或经由不记录请求内容的网关从 Tether)发送到 Host。Host 将它写入 `$DSH_HOME/storages/dsh-composer-plus/secrets/<随机名称>`(文件夹 0700,文件 0600);不会写入项目、对话记录或工具结果。Host 会在内存中保留该值,以便在该对话之后的工具结果中把它替换为 `[secret]`。文件和这份副本会在该对话这一轮结束时以及 dsh 启动时删除。开关在同一位置的 `secrets.json` 中。代理用该文件运行的命令可以把值发送到该命令发送的地方:这正是它的用途。
|
|
@@ -226,7 +230,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
226
230
|
- **对话行上没有分支标签:** 侧边栏不是“单列表”视图(在“按工作区”和“按工作区树”中,对话行都不显示标签);或者安装此版本后,该对话还没有新的一轮;或者它的文件夹不是 git 仓库;或者 **对话行显示 Git 分支** 已关闭。更新后,请重启 dsh(分支由 Host 端记录)。
|
|
227
231
|
- **目标检查显示测试以代码 127 或 “not found” 退出:** 从 Finder 或程序坞启动的 dsh 的 PATH 可能比终端里的短,因此找不到 `npm`、`pnpm` 或 `cargo`。请从终端启动 dsh,或者在 **目标检查** → **编辑** 中用完整路径设置你自己的测试命令。**立即运行** 会马上显示结果。
|
|
228
232
|
- **目标没有关闭,智能体一直在工作:** **目标检查** 发现了失败的测试或缺少的工作;目标下方的一行会显示原因(将鼠标悬停在结果上可查看详情)。请修正原因或测试命令,或者用 `/goal` 或目标栏自己完成目标(这不会被检查)。
|
|
229
|
-
- **刚发布新版本时安装失败:** 请加上版本号(`dsh-composer-plus@1.
|
|
233
|
+
- **刚发布新版本时安装失败:** 请加上版本号(`dsh-composer-plus@1.25.0`),见上文的安装说明。
|
|
230
234
|
- **立即备份显示“另一个备份操作正在进行”:** 另一个 dsh 窗口或救援控制台中正在运行一个操作(它们共用备份文件夹中的锁文件 `.composer-plus.lock`)。请等待它完成。如果没有操作在运行,下次点击时会接管已关闭进程留下的锁。
|
|
231
235
|
- **救援控制台显示“dsh is running”:** 请先退出 dsh。如果 dsh 确实已关闭,消息中提到的文件是崩溃后留下的:删除它,然后重试。
|
|
232
236
|
- **恢复后 dsh 无法启动或缺少插件:** 需要重新安装 profile 的插件包。恢复后,救援控制台会提供这一步;你也可以在它列出的 `$DSH_HOME/profiles/` 下的每个文件夹中运行 `pnpm install`。不在 vault 中的机密(另一台电脑)必须重新输入:控制台会列出它们。
|
|
@@ -260,7 +264,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
260
264
|
- **问题卡片适应窗口** 只改变 dsh 的问题卡片,不改变计划审阅卡片。它通过 dsh 的标记(`data-question-key`、`data-question-scroll`)找到卡片;如果 dsh 更新改变了这些标记,卡片会按 dsh 自己的样子显示。卡片高度跟随窗口,而不是对话:在较窄侧边面板中的对话里,较高的卡片仍可能超出对话上方。
|
|
261
265
|
- **对话标题栏适应窗口** 通过 dsh 生成的类名(`_titleRow`、`_titleCluster`、`_crumbs`、`_headerActions`、`_headerUtilities`)找到对话标题栏,因为 dsh 没有为它提供布局接口。如果 dsh 更新改了这些类名,标题栏按 dsh 原样显示。在很窄的对话栏中,标题栏可能占两到三行,所以消息上方的空间会变小。
|
|
262
266
|
- **手机连接** 只适用于 macOS(它使用 `en0`、`openssl`、`swift` 和 `dns-sd`)。它使用固定端口 19390 和 19391,因此每台 Mac 上同一时间只能有一个 dsh 运行它(每台 Mac 是手机 Mac 列表中的一项)。在 `apns.json` 中配置 APNs 密钥后(见 `tether/README.md`),Mac 通过 Apple 推送服务发送通知,即使 Tether 已关闭也能收到;Mac 必须处于唤醒状态并打开 dsh。没有该密钥时,只有在 Tether 打开或刚转入后台时,手机才能收到通知。在 Tether 中打开“Settings → Notifications → Send notifications”之前,Tether 不会发送通知。Tether 为每台已配对的 Mac 分别保存此开关和时间段。此开关在每台 Mac 上都默认关闭,打开时 iOS 会请求通知权限。iOS 应用尚未上架 App Store:请用 Xcode 从 `tether/ios` 构建它。“Tailscale only”仍然需要 Mac 有 Wi-Fi 或以太网地址(只有在有这样的地址时,网关才会启动)。访问日志按 Mac 分别保存,只保留最新的 200 次尝试;一分钟内重复的尝试不会新增一行,而是把同一行的次数加一。每条通知都会显示 Mac 和对话所属的项目(`Studio Mac · recipe-box`)、对话标题和正文:Turn finished 显示智能体的最后一条回复。有 APNs 密钥时,这段文字会经过 Apple 的推送服务。Tether 的应用锁不会隐藏 iPhone 锁定屏幕上的通知预览:请在 iOS 设置中关闭它们。Tether 的绿点跟随 Mac:在 dsh 中打开的对话,手机上的绿点也会消失。在 Tether 中打开的对话,只在手机上消失;Mac 上 dsh 自己的绿点会一直保留,直到你在 Mac 上打开该对话。
|
|
263
|
-
- **远程电脑** 需要两台 Mac 都有 Tailscale,并且被打开的 Mac 上要有开启了此功能的 Composer Plus。那台 Mac 必须处于唤醒状态,并且正在运行 dsh。只有左侧边栏展开时才显示选择器(图标栏中不显示)。如果另一台 Mac 的页面没有自己的选择器(那里的 Composer Plus 早于 1.23.0),本机的选择器会在同一位置显示在该页面上方。如果那里是 1.23.0,选择器显示那台 Mac 的名称:在它的菜单中选择 **本机** 即可返回。你打开过的每台电脑的页面会一直保留在内存中,直到你关闭此功能或重启 dsh
|
|
267
|
+
- **远程电脑** 需要两台 Mac 都有 Tailscale,并且被打开的 Mac 上要有开启了此功能的 Composer Plus。那台 Mac 必须处于唤醒状态,并且正在运行 dsh。只有左侧边栏展开时才显示选择器(图标栏中不显示)。如果另一台 Mac 的页面没有自己的选择器(那里的 Composer Plus 早于 1.23.0),本机的选择器会在同一位置显示在该页面上方。如果那里是 1.23.0,选择器显示那台 Mac 的名称:在它的菜单中选择 **本机** 即可返回。你打开过的每台电脑的页面会一直保留在内存中,直到你关闭此功能或重启 dsh。如果那台电脑当时没有响应(它在睡眠,或 Tailscale 已关闭),它的页面不会保留:再次选择它,页面会重新加载。在桌面应用中,另一台 Mac 的页面是嵌入的页面:dsh 自己的键盘快捷键(例如新建对话)在其中不起作用,那里也无法下载文件、使用麦克风或通知。它使用端口 19392(每台 Mac 上只有一个 dsh 能让其他电脑进入)。另一台 Mac 页面中的选择器只在这台 Mac 的电脑之间切换,所以你不能通过另一台 Mac 打开第三台 Mac。
|
|
264
268
|
- 会话链接在对话中有效;点击它不会打开对应的对话。用 **复制消息链接** 复制的链接,只在 dsh 0.2.1 及更高版本中、并且只从对话中的消息里才能打开对应的消息(dsh 0.2.0 没有用户文本规则,所以链接仍会被复制,但只显示为普通文本)。被回退移除的消息,或被压缩从 dsh 加载的历史中移除的消息,无法显示:此时链接会给出提示。🔗 按钮依附在 dsh 的消息行上;如果 dsh 更新改变了这部分标记,按钮就不会显示。
|
|
265
269
|
- **全部标为已读** 通过 dsh 中一个不是公开 API 的部分(dsh 会话状态中的 `completionUnread` 列表)来更改 dsh 自己的未读圆点。如果 dsh 更新重命名了它,该菜单项就不会显示。该菜单项放在 dsh 项目的“…”菜单中,而这个菜单没有给插件的插槽;如果 dsh 修改了这个菜单,该菜单项也不会显示。
|
|
266
270
|
- **原地编辑排队消息** 不会修改在此期间已经开始发送的消息,也不会覆盖在此期间已被修改的消息(例如在 iPhone 上的 Tether 中修改的),并会显示提示说明这一点。新图片需要支持图片的模型(dsh 自身的图片限制同样适用),新文件必须上传完成后才能保存。只能编辑你自己的排队消息,不能编辑队列中的目标轮次或对问题的回答。插件更新后,只有纯文字的编辑能立即生效:保存带图片或文件的消息之前,请重启 dsh(Host 端在启动时加载)。
|
|
@@ -296,7 +300,8 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
296
300
|
- **土耳其语技能包** 安装的是第三方技能:规则来自作者的 GitHub 仓库,而不是 Composer Plus;新版本会在下一次每日检查后直接使用,我们不会先审核。校验只能证明文件就是 GitHub 为该提交列出的文件,不能证明规则本身是好的。何时加载该技能由模型决定(你也可以按名称调用);这些规则只适用于土耳其语文本。Host 端使用浏览器最后报告的语言:两个浏览器使用不同语言时,以最新的报告为准。未登录时 GitHub 每小时只允许 60 次 API 请求;检查被拒绝时会保留已安装的副本,并在设置中显示原因。
|
|
297
301
|
- **理清代码库** 附带的是该技能的固定副本(caldoai/skills,提交 f3cf477):上游的改动只会随新的 Composer Plus 版本到来。该技能会运行一个较长的目标,可能改动很多文件,它的子智能体和检查也会消耗大量令牌。项目没有测试的地方,它可能在你不知情时改变行为:请在单独的分支上启动,合并前先阅读差异。项目中、自定义技能文件夹中或 `~/.dsh/skills` 中的同名技能会取代它。开关关闭时,`/untangle-codebase` 会作为普通文本发给模型。
|
|
298
302
|
- **任务看板** 显示 dsh 在此窗口中列出的对话:不在项目中的对话只显示在**所有项目**中,“每个对话一个分支”的文件夹(`<project>/.worktrees/<name>`)算作它所属的项目。卡片所在的列就是对话的实时状态,因此卡片不能拖动:对话的回合结束时(包括出错或停止之后)会移到**已完成**,再次运行时会回到**进行中**。绿色圆点是 dsh 自己的完成圆点,dsh 只在此窗口中保留它:重新加载后,已完成的对话不再显示圆点。**已完成** 显示最新的 50 个对话(**显示更早的 N 个** 显示其余对话)。**搜索项目** 只按名称查找项目,不按文件夹路径查找。当项目的所有对话都超过 2 小时、处于空闲且已读时,**最近 2 小时内活跃** 会隐藏该项目;看板仍会显示你选择的项目。**新建任务** 只记住此窗口中最新的一个新对话:如果你在发出第一条消息前打开了另一个对话,该对话会以 **新建任务** 留在 **进行中** 的最上方,直到你在其中写消息,但只有最新的那个对话会自动回到看板。重新加载后,没有消息的新对话不会出现在看板上(dsh 把它保留为自己的空白新会话)。标签来自每个任务根据其第一条消息进行的一次模型调用:它们可能不准确,不是在看板上开始的对话没有标签。标题是 dsh 自己的对话标题(由 dsh 的标题服务使用对话的模型生成);标题出现前,卡片显示第一条消息的第一行。**×** 和 **全部清除** 只把卡片从看板移除:不会删除任何对话。**撤销** 只显示 8 秒,并且只在此窗口中;之后,**已移除 (N)** → **放回** 可让卡片回来,再次运行的对话也会自动回来。**全部清除** 会先询问,然后移除所显示项目中已读的已完成卡片(选择 **所有项目** 时为所有项目),也包括 **显示更早的 N 个** 后面的卡片;未读(绿色)卡片会保留。dsh 只在此窗口中保留绿色圆点,因此重新加载后,全部清除可能会移除你还没读过回答的卡片。这个列表保存在这台 Mac 上,对每个窗口和 Tether 都有效;列表达到 5,000 个对话时,最早的对话会回来。**回答** 只回答对话最新的请求:如果对话已在别处(另一个窗口、Tether、Auto Review)回答了它,或提出了新的问题,面板会说明这一点,并且不发送任何内容。早期版本有带评论和智能体工具的任务列表;它们已被移除,旧的 `board.json` 不会显示。创意和外观来自 emanuele-em 的 [Kanzo](https://github.com/emanuele-em/kanzo)(AGPL-3.0);Composer Plus 没有使用它的任何代码。 `Cmd+Shift+K` 是 dsh 快捷键:在 Linux 的浏览器中,它没有默认按键,需要你在 dsh 的键盘快捷键页面中设置;浏览器扩展或其他应用也可能先占用它。卡片在 dsh 自己的绿点消失时(你打开了对话)离开**已完成**;对于在看板后面作为当前对话完成的对话,则在它显示且上面没有面板时离开。这个已读状态和 dsh 自己的圆点一样只保存在当前 dsh 窗口中:重新加载后或在另一个窗口中,所有已完成的对话都算已读,因此都在**最近完成**中。
|
|
299
|
-
- **助理** 在这台 Mac 的所有窗口中只有一个对话。它以 workspace-write 权限模式运行:只在 `~/Assistant` 中写文件,在其外运行的命令会先征求同意。如果你把该对话切换到没有审批的模式(完全访问),dsh 会拒绝每次审批,因此助理无法发送、新建、停止或归档对话。审批卡片只保护这六个工具:和该模式下的任何对话一样,助理运行的 shell 命令仍然可以访问网络。在 dsh 0.2.0 和 0.2.1 中,dsh 的定时任务工具只能看到助理对话自己的提醒,看不到其他对话的自动化;从 dsh 0.2.2 起,它们可以列出并修改所有定时任务。chats_list 不包含已归档、空白和子智能体对话,也不包含助理对话本身;“等待你”表示运行中的对话有未处理的审批、问题或计划审核。chat_read 返回用户的消息和智能体的回复(不含工具输出),最多 50 条消息、约 24,000 个字符。chat_archive 会拒绝仍在运行或有活动提醒的对话。模型仍可能被它读到的文本误导:审批卡片是最后一道检查,点击 **允许一次**
|
|
303
|
+
- **助理** 在这台 Mac 的所有窗口中只有一个对话。它以 workspace-write 权限模式运行:只在 `~/Assistant` 中写文件,在其外运行的命令会先征求同意。如果你把该对话切换到没有审批的模式(完全访问),dsh 会拒绝每次审批,因此助理无法发送、新建、停止或归档对话。审批卡片只保护这六个工具:和该模式下的任何对话一样,助理运行的 shell 命令仍然可以访问网络。在 dsh 0.2.0 和 0.2.1 中,dsh 的定时任务工具只能看到助理对话自己的提醒,看不到其他对话的自动化;从 dsh 0.2.2 起,它们可以列出并修改所有定时任务。chats_list 不包含已归档、空白和子智能体对话,也不包含助理对话本身;“等待你”表示运行中的对话有未处理的审批、问题或计划审核。chat_read 返回用户的消息和智能体的回复(不含工具输出),最多 50 条消息、约 24,000 个字符。chat_archive 会拒绝仍在运行或有活动提醒的对话。模型仍可能被它读到的文本误导:审批卡片是最后一道检查,点击 **允许一次** 之前请先阅读。并行话题使用 dsh 的子代理工具:没有该工具的配置或权限模式会保持原来的方式(一次一个话题,下一条消息在队列中等待或插入正在运行的回合)。哪些算长任务由模型决定,所以简短的问题也可能占用一个回合。每个话题的子代理消耗自己的 token;dsh 重启时,正在运行的话题会停止(其结果不会返回)。结果以助理对话的新回合返回,所以在一个回合进行中你输入时它会等待。
|
|
304
|
+
- **助理独立于对话**和**助理只显示消息**用样式规则隐藏 dsh 自己的行,依据的是 dsh 侧边栏和对话的标记(`data-row-key`、`data-chat-flow-kind`):dsh 更新改变这些标记后,助理对话可能重新出现在列表中,或其工作步骤重新显示。这些行只是被隐藏而不是被移除:侧边栏的键盘导航仍可能到达被隐藏的行。**助理始终空闲**会拒绝助理对话中不属于其简短工具的每次工具调用;模型随后会把这一步交给子代理,但它可能先尝试被拒绝的调用,这会多花一个模型步骤。审批卡片等待你处理时,助理对话仍算忙碌。如果它最新的请求中没有子代理工具(权限模式或配置不提供该工具),该规则不生效。**助理播报对话动态**每批动态都会启动一次助理对话的模型回合,因此会消耗令牌;开启**移动连接(iPhone)**后,同一个已完成的对话可能让手机收到两条通知(对话自己的和助理的)。dsh 重启时,等待中的动态会丢失。它只能看到这台 Mac 上的对话。
|
|
300
305
|
- **停止后发送的消息优先** 只在你停止对话后生效(或在某一轮失败后,或打开仍有队列的对话时):对话运行时发送的消息仍会排在队列末尾。它只会越过你自己的排队消息:如果队列中有目标轮次或问题回复,仍保持 dsh 自己的顺序。它会读取 dsh 中一个非公开 API 的部分(被停止的那一轮是否仍在结束中);如果 dsh 更新后改了它的名称,消息要等那一轮结束后才会被移到前面。子代理对话保持 dsh 自己的顺序。
|
|
301
306
|
- **项目记忆** 属于对话的第一个文件夹(dsh 的项目文件夹):用 `cd` 更换文件夹的对话仍使用第一个项目的记忆;通过另一条路径打开的同一文件夹共用同一份记忆。对话开始时会冻结其记忆部分,所以之后保存的笔记从下一个对话开始显示(`memory_recall` 能立即找到)。整理只保留模型决定保留的内容:它可能漏掉某个事实,也可能保留错误的内容;请在 **打开记忆** 中检查并在那里修改,或在 dsh 关闭时手动编辑文件。**打开记忆** 会把所选项目的笔记和全局笔记(选择“全部笔记”时为所有项目;最多约 60,000 个字符,其余只计数,在该次请求中无法修改)以及你的文字发送给 dsh 的默认模型,而不是对话的模型。预览在 Mac 上保留 30 分钟,直到 dsh 重启;如果在此期间整理或智能体修改了笔记,**应用** 会拒绝,你需要重新预览。**应用** 要么保存预览中的全部修改,要么一项也不保存:只要有一项修改无法保存(例如 MEMORY.md 已满),笔记就保持原样,并显示原因。每个包含你的消息的回合结束后都会调用一次模型;调用失败时,下一个回合后会再次读取同样的消息。子智能体对话不做整理。这个思路和文件格式来自 [DS Bot](https://github.com/Fei2411/DS-Bot)(Apache-2.0);Composer Plus 没有使用它的代码,也从不读取或写入 DS Bot 自己的记忆。
|
|
302
307
|
- **记忆版本历史** 为每份记忆(每个项目和全局记忆)保留最新的 50 个版本,更早的会被删除。一个版本保存的是该项目的整份记忆,而不是一条笔记。**恢复** 会放回该版本的所有文件(包括主题);如果打开版本之后记忆又被修改,就会拒绝恢复。恢复前的记忆会成为一个新版本,所以可以撤销。开关关闭时,不会保留新版本,**恢复** 也会被拒绝;已保留的版本仍在。安装此功能之前的版本不存在:历史从安装后的第一次保存开始。
|
|
@@ -352,6 +357,8 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
352
357
|
|
|
353
358
|
**我能有一个提醒我并管理其他对话的个人助理对话吗?** 可以,使用**助理**(默认开启):点击左侧边栏中的**助理**。它用 dsh 的定时任务设置提醒,搜索网页,列出并阅读你的对话;向某个对话发送消息,或新建、停止、归档对话,都要先经过你的批准。请把你的个人资料保存在它的项目记忆中,主题为“profil”。
|
|
354
359
|
|
|
360
|
+
**助理能不出现在我的对话列表中、像机器人一样工作吗?** 可以。**助理独立于对话**会把助理对话移出侧边栏列表,并在**助理**行上显示它的状态(等待你处理时为橙色)。**助理只显示消息**会隐藏它的工作步骤。**助理始终空闲**让它把每个较长的步骤交给后台子代理,因此会立即回答。**助理播报对话动态**(默认关闭,会消耗令牌)让它在其他对话完成、失败或等待你处理时告诉你。
|
|
361
|
+
|
|
355
362
|
**dsh 能像 dsh-backup 那样备份我的对话和设置吗?** 可以:**设置 → Composer Plus → 备份 → 立即备份**。它把相同格式的归档写入同一个文件夹(`~/Desktop/dsh-backups`),因此 dsh-backup 的归档也会显示并可以恢复,你可以卸载 dsh-backup。打开 **自动备份** 即可按计划备份。
|
|
356
363
|
|
|
357
364
|
**dsh 无法再启动了。如何恢复备份?** 打开备份文件夹(`~/Desktop/dsh-backups`),双击 `Composer Plus Rescue.command`(Linux:`composer-plus-rescue.sh`,Windows:`Composer Plus Rescue.cmd`)。选择 `3) Restore a backup`,选中一份备份并输入 `RESTORE`。它不需要 dsh 也能运行。
|
|
@@ -506,6 +513,8 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/
|
|
|
506
513
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
514
|
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
515
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
516
|
+
# Assistant welcome card: shows above the input on the first open of the assistant chat, goes with the switch and with the first message, not in other chats
|
|
517
|
+
PLAYWRIGHT=/path/to/playwright node test/browser-assistant-welcome.mjs /path/to/dsh/lib/bin.js
|
|
509
518
|
```
|
|
510
519
|
|
|
511
520
|
```sh
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|