KarlOfLaw/dsh-goal-mode-enhance 预览 preview

KarlOfLaw/dsh-goal-mode-enhance

为DeepSeek Harness提供可视化目标模式:目标栏/头部入口/设置页(历史与多会话总览)/目标概览模型工具

项目介绍Project Overview

DSH 目标模式增强插件,为 DeepSeek Harness Web 界面提供可视化目标管理。通过 composer 上方目标栏替换内置 goal 条,支持多行目标编辑、轮次进度与上限追踪、暂停/恢复/完成等按钮操作,并在 General 与独立设置页提供入口开关。数据通过 ctx.remote.goals 与 CAS revision 同步,UI 状态经 ui-goal-mode 命名空间持久化,安装需 DSH web profile 与内置目标系统。覆盖内置条采用 priority -10,可能与其他同类 dock 插件冲突。

DSH Goal Mode Enhance is a Cordis plugin for the DeepSeek Harness web interface that replaces the built-in goal strip with a full visual lifecycle bar above the composer. It supports multi-line goal creation with optional round limits, pause/resume/edit/complete/clear actions, a progress indicator, and a collapsible chip entry on the composer tool row, plus a dedicated settings section and a general toggle persisted under the ui-goal-mode namespace. Data is read via useProjection('goal') and mutated through ctx.remote.goals with CAS revision optimistic concurrency, so no polling is needed. Install via the release tarball with dsh plugin --profile web add; requires the DSH web profile and the built-in goals service. The dock uses priority -10 to override the native strip, which may conflict with other dock plugins targeting conversation.input.dock.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:KarlOfLaw/dsh-goal-mode-enhance

KarlOfLaw/dsh-goal-mode-enhance 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-goal-mode

DeepSeek Harness Web 界面提供可视化 goal 模式的插件。

把原本只能靠对话命令(/goal)和模型工具(create_goal / get_goal / update_goal)操作的目标系统,变成看得见、点得动的界面。

English | 中文

两种形态

本仓库同时提供两种形态,推荐使用 A(正式插件,稳定、可注册安装)

形态 说明 适合
A. 正式插件包(推荐) 独立 npm 包结构(dsh.plugin.json + cordis.patch.yml + 构建产物),dsh plugin add 安装,页面刷新/重启不丢 日常使用、分享给他人
B. 动态插件源码(保留) 会话内 cordis_define + cordis_run 加载(host.js / client.js 快速试玩、调试

功能(形态 A)

  • 完整生命周期目标栏(composer 上方,conversation.input.dock,替换内置 goal 条):
    • 无目标时: 按钮展开「设定目标」创建表单
    • 有目标时:状态标签 + 目标文本 + 轮次进度条与 n/上限 + 已达上限徽标
    • 图标按钮:⏸ 暂停 / ▶ 恢复 / ✎ 编辑(多行)/ ✓ 完成 / 🗑 清除 / 收起
    • 已完成:完成横幅 + 「开始新目标」
  • 多行编辑/创建:目标内容用多行文本框(自动换行、可拖高、Ctrl+Enter 提交),可同框设置轮次上限
  • Composer 工具行入口conversation.input.left): 目标按钮 + 阶段色点(绿=进行中 / 黄=暂停 / 红=阻塞),点击展开/收起目标栏;目标栏可折叠为内容自适应胶囊
  • General 设置开关settings.general.item):「在输入框工具行显示目标入口」,经 ui-goal-mode 设置命名空间持久化
  • 独立「目标」设置页settings.section):展示当前会话的目标状态、轮次和紧凑目标预览,长目标可按需展开,并附使用说明
  • 零空闲干扰:未设置目标时,composer 上方不渲染任何内容(除非创建表单显式打开)

截图

目标栏——完成态(与原生任务条同屏共存)

goal dock with native todo strip

创建表单(多行目标 + 轮次上限)

goal create form

折叠胶囊(工具行入口点击展开/收起)

collapsed goal chip

原理

部分 实现
数据展示 useProjection('goal') 实时投影(含实时 roundsStarted),零轮询
操作通道 ctx.remote.goals(web 装配的 api-remotes 挂载的 Remote 命名空间),带 CAS revision 乐观并发
偏好持久化 host 半注册 ui-goal-mode 设置命名空间,client 策略镜像 Host 段落
UI 落点 conversation.input.dock(goal 单元,priority -10 覆盖内置条)、conversation.input.leftsettings.general.itemsettings.section
图标 内联 SVG 线条图标(Feather 风格,currentColor 随主题)

数据本身存储在会话日志(goal/change 事件),持久化由引擎保证,插件只负责展示与操作。

安装

  • 形态 A(正式插件):推荐直接使用 Release 预构建 tarball——dsh plugin --profile web add <tgz 路径> 后重启即可;开发者本地构建方式见 INSTALL.md。已验证的 DSH 版本兼容性结论见 COMPATIBILITY.md
  • 形态 B(动态插件):见 host.js / client.js 顶部注释,会话内 cordis_define + cordis_run 加载。

仓库结构

dsh-goal-mode/
├── src/                      # 形态 A 插件源码
│   ├── index.ts              # host 半:注册 ui-goal-mode 设置命名空间
│   ├── invariant.ts          # 包不变式伴生
│   ├── settings-contract.ts  # 浏览器安全的设置常量/类型(host 与 client 共享)
│   └── client/
│       ├── index.ts          # 插件主体:注册 dock 条 / composer 入口 / 设置行
│       ├── GoalBar.tsx       # 目标栏 / 创建 / 编辑 / 胶囊 / composer 按钮
│       ├── ComposerEntryRow.tsx  # 设置开关行
│       ├── GoalSettingsSection.tsx # 独立目标设置页
│       ├── settings-policy.ts    # 偏好策略(Host 设置镜像)
│       ├── store.ts          # 查看状态(页面内)
│       ├── slots.ts / locales.ts / styles.ts
├── build.mjs                 # esbuild 单文件构建(host ESM + client CJS bundle)
├── dsh.plugin.json           # 插件清单
├── cordis.patch.yml          # web profile patch 挂载
├── package.json / tsconfig.json / pnpm-workspace.yaml
├── host.js                   # 形态 B 动态插件 host 半(保留)
├── client.js                 # 形态 B 动态插件 client 半(保留)
├── INSTALL.md                # 安装指南
└── README.md

要求

  • DeepSeek Harness(Web GUI,web profile)
  • 目标系统内置(goals 服务 + goal 投影)

License

MIT

上一个 Prev dsh-agents-plugins 下一个 Next dsh-loghud