dsh-plugin-stardeck 0.20.1
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/LICENSE +21 -0
- package/README.md +162 -0
- package/cordis.patch.yml +5 -0
- package/lib/client.js +46287 -0
- package/lib/client.js.map +1 -0
- package/lib/index.d.mts +534 -0
- package/lib/index.mjs +7856 -0
- package/package.json +86 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kaiji-Z
|
|
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.
|
package/README.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# ⬡ 作战室 · dsh-plugin-stardeck
|
|
4
|
+
|
|
5
|
+
**把「和 agent 聊天」变成「向舰队下达命令」。**
|
|
6
|
+
|
|
7
|
+
一个 RTS 星际战舰风格的多 agent 编排看板,为 [DeepSeek Harness](https://github.com/deepseek-ai)(dsh)打造。
|
|
8
|
+
你是舰长:下大白话命令,大副拆解成带验收标准的任务书,外勤小队在各星球(工作区)自主作战——
|
|
9
|
+
而你,只需要在想起来的时候回舰桥看一眼。
|
|
10
|
+
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
[](https://nodejs.org)
|
|
13
|
+
[](#安装--开发)
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
*3D 星域:每颗星球 = 一个真实工作区,彩环 = 战线归属,弧形铭文 = 星球名,中央飞碟 = 大副旗舰*
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
> **📦 独立形态已分家(2026-09-01)**:本插件的内核(账本/状态机/KillCredit)已全面移植为 **stardeck(星舰甲板)**——agent 无关的独立守护进程 + MCP,opencode/codex/pi 等任意 CLI agent 都能当外勤小队,不再需要 dsh(可行性实弹 9/9 + 移植实弹 10/10 证据在案)。本仓继续以 **dsh 插件形态维护**(bug 修复守护态);边界宪法、验收纪律、版本方案两仓同源。
|
|
24
|
+
|
|
25
|
+
## 为什么做这个
|
|
26
|
+
|
|
27
|
+
这个项目起源于一个所有 AI agent 用户都有的不满:**侧栏**。
|
|
28
|
+
|
|
29
|
+
现在的 agent 侧栏都在管理两样东西——项目文件夹和会话列表。用久了必然遇到:
|
|
30
|
+
|
|
31
|
+
- 会话多到一定程度,**找不到想回的那个会话**;
|
|
32
|
+
- 好容易回去了,**想不起来当初让它干什么**,得往回翻聊天记录找命令;
|
|
33
|
+
- 一个会话里常常干过**好几种事**,不是「一个会话只做一件事」,记录乱成一团。
|
|
34
|
+
|
|
35
|
+
于是我意识到:用 agent 的本质动作其实特别简单——**输入命令 → agent 执行 → 输入命令 → agent 执行**。
|
|
36
|
+
那为什么不直接**以命令为切入点**?找到当时下达的那道命令,知道我让 agent 做了什么,
|
|
37
|
+
就能一路追溯到 agent 在哪里、完成了什么、死在了哪一步。
|
|
38
|
+
|
|
39
|
+
再往前一步:这不像在用工具,**像在当星际迷航的舰长**——舰长下达命令,大副和舰队成员
|
|
40
|
+
去各个星球执行。于是有了这个新的 agent 使用范式:
|
|
41
|
+
|
|
42
|
+
> **不再是单纯的对话,而是下达一道道命令。**
|
|
43
|
+
|
|
44
|
+
它带来三个直接的好处:
|
|
45
|
+
|
|
46
|
+
1. **混乱的 session 被收编了。** 会话不再是管理的单位,命令才是。会话自动挂进由命令索引的
|
|
47
|
+
**战线**,从任何一张卡都能溯源到「我当初说了什么」。
|
|
48
|
+
2. **你真的可以挂机了。** 大副会分诊、呈计划、派兵、验收;全绿自动收官。你不必盯屏幕,
|
|
49
|
+
每次回到屏幕前,像舰长巡视一样一次性处理多条战线的事宜。
|
|
50
|
+
3. **它变有趣了。** 这很重要。
|
|
51
|
+
|
|
52
|
+
## 它长什么样
|
|
53
|
+
|
|
54
|
+
### 舰桥:星域即桌面
|
|
55
|
+
|
|
56
|
+

|
|
57
|
+
|
|
58
|
+
- **星域是界面本体**:任务 / 执行中 / 任务回报三只浮舱贴边压图,底部命令调度条满宽压底;
|
|
59
|
+
- **浮舱即战况**:任务(大副侧台账)→ 执行中(实时动词活动行)→ 任务回报(等你翻阅收官);
|
|
60
|
+
- **命令调度条**:全部命令卡横滚,每张卡一条四段生命条(命令→任务→执行→战报);
|
|
61
|
+
- 卡片按**战线分组**、链色随战线——多代续接的战线一眼成串。
|
|
62
|
+
|
|
63
|
+
### 灵动岛:到访即处理
|
|
64
|
+
|
|
65
|
+

|
|
66
|
+
|
|
67
|
+
点击顶部胶囊钉住:到访摘要(你离开时发生了什么)+ 收件箱(决重试 / 批计划 /
|
|
68
|
+
翻任务回报 / 答澄清)排成一列,最老的排最前。一次到访,批量发落。
|
|
69
|
+
|
|
70
|
+
### 悬停聚焦:族系一目了然
|
|
71
|
+
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
悬停任何一张卡——乃至直接悬停星球——同族(同一条战线)的任务、执行、回报卡
|
|
75
|
+
一起亮起,其余压暗;管线随族显形。多代续接的战线不用找,它自己会亮。
|
|
76
|
+
|
|
77
|
+
### 2D 战术盘:雷达值班态
|
|
78
|
+
|
|
79
|
+

|
|
80
|
+
|
|
81
|
+
不想要 3D 时还有一块 2D 雷达:HQ 居中、同心距离环、星球名签上移、
|
|
82
|
+
战线分段环、编队相位一览——值班监控的语言,V 键一键切换。
|
|
83
|
+
|
|
84
|
+
### 下达命令:像定闹钟一样简单
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
- **常用命令模板**:每周总结 / 依赖巡检 / 测试巡检 / 文档同步 / 代码审查,点击即填;
|
|
89
|
+
- **星球与战线一个控件**:先选星球(大副决定或指定工作区),再选接续哪条战线或新开——
|
|
90
|
+
续接必随该星球的战线,结构上不可能选错;
|
|
91
|
+
- **闹钟式定时**:单次 / 每天 / 工作日 / 每周…,下次触发时间实时预览,cron 只留给想写的人;
|
|
92
|
+
- **三档自主度**:`!! 直接做`(L0 全自动)/ 大副分诊(默认,L1 计划呈批)/ `?? 先看方案`(L2 对话收敛)。
|
|
93
|
+
|
|
94
|
+
### 一条命令的聚焦页:追溯的终点
|
|
95
|
+
|
|
96
|
+

|
|
97
|
+
|
|
98
|
+
点任何一张卡,进入这条命令的四段故事线:命令 → 任务 → 执行 → 任务回报。
|
|
99
|
+
计划呈批时,顶部常驻**「等你定夺」决策带**——批准即放权,驳回即重谈,
|
|
100
|
+
一键保留后果说明。半夜呈批的计划会明说「夜间无人值守照常执行」。
|
|
101
|
+
|
|
102
|
+
### 星域:舰队在真实工作区上作战
|
|
103
|
+
|
|
104
|
+
顶部大图即星域。星球 = 真实工作区(或在沙盒里新建),颜色环 = 战线归属,
|
|
105
|
+
状态一望可知(蓝 = 机器在动 / 琥珀 = 等你 / 绿 = 善终 / 红 = 败),
|
|
106
|
+
外勤小队编队在星球间飞行执行任务。深空与天空双主题,浅色模式是完整的另一套美术
|
|
107
|
+
(浮空岛 + 天空旗舰 + 状态色环垫),不是简单反色。
|
|
108
|
+
|
|
109
|
+
## 核心概念
|
|
110
|
+
|
|
111
|
+
| 概念 | 是什么 |
|
|
112
|
+
|---|---|
|
|
113
|
+
| **命令** | 你下达的一句话。板是一台读投影:账本里有的不隐藏,没有的不显示。 |
|
|
114
|
+
| **战线** | 命令的聚合。多代续接(深化/重试/转向)成一条战线,绑一颗星球,链色标识。 |
|
|
115
|
+
| **星球** | 真实工作区。星域是它们的地图;HQ 点击可把宿主已有工作区注册为星球。 |
|
|
116
|
+
| **大副** | 你的贴身参谋会话:分诊每道命令、起草任务书、验收、呈批计划。 |
|
|
117
|
+
| **外勤小队** | 按兵种(侦察/工程/卫生/宣传…TOML 可扩编)编成的子代理部队,在隔离工作区执行。 |
|
|
118
|
+
| **KillCredit** | 机械收官判据:提交全绿自动验收,失败留败因一票否决。 |
|
|
119
|
+
|
|
120
|
+
## 快速开始
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# 安装(dsh 内)
|
|
124
|
+
dsh plugin add dsh-plugin-stardeck # npm(发布后)
|
|
125
|
+
dsh plugin add ./dsh-plugin-stardeck-0.1.0.tgz
|
|
126
|
+
|
|
127
|
+
# 从源码跑(在 deepseek-harness checkout 内)
|
|
128
|
+
git clone https://github.com/Kaiji-Z/dsh-plugin-stardeck
|
|
129
|
+
cd dsh-plugin-stardeck && pnpm install && pnpm verify
|
|
130
|
+
pnpm dsh --profile web --patch <本仓库路径>/cordis.dev.yml --port 3080 --no-open
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
打开 web 端,侧边栏点「舰桥」,`+` 下达第一道命令——或者按 `n`。
|
|
134
|
+
|
|
135
|
+
**数据与恢复**:一切状态落在 append-only JSONL 账本(战役/命令/挂载三条流),
|
|
136
|
+
状态由 fold 派生——崩溃可恢复,战后可复盘,历史永不丢。
|
|
137
|
+
|
|
138
|
+
> Windows 本地开发:`pnpm add file:` 装不进 profile 时用 junction(`mklink /J`)绕过;
|
|
139
|
+
> patch 旗标必须 `dsh --profile web --patch ...` 连写。
|
|
140
|
+
|
|
141
|
+
## 机器检查的信任
|
|
142
|
+
|
|
143
|
+
不靠「我觉得能跑」:`pnpm verify` 三段式(单元/回归测试 + 构建 + bundle 针脚断言)
|
|
144
|
+
每次提交全绿;`verify:eval` LLM 监督层(三维评分 + 越界一票否决);`verify:e2e`
|
|
145
|
+
真实 LLM 两代续接链实弹门。UI 侧有全套 Playwright 取证脚本(`scripts/shoot-*.py`),
|
|
146
|
+
对比度、键盘可达、双主题均有机检。协议见 [VERIFICATION.md](VERIFICATION.md)。
|
|
147
|
+
|
|
148
|
+
## 文档
|
|
149
|
+
|
|
150
|
+
| 文档 | 内容 |
|
|
151
|
+
|---|---|
|
|
152
|
+
| [DESIGN.md](DESIGN.md) | 实现决策录:每个版本为什么这么做(改 UI 前必读) |
|
|
153
|
+
| [AGENTS.md](AGENTS.md) | 给 AI 迭代 agent 的开局指引与坑录 |
|
|
154
|
+
| [VERIFICATION.md](VERIFICATION.md) | 验证协议正本 |
|
|
155
|
+
|
|
156
|
+
## 版本变化
|
|
157
|
+
|
|
158
|
+
完整的版本历史见 [CHANGELOG.md](CHANGELOG.md)(Keep a Changelog 格式)。
|
|
159
|
+
|
|
160
|
+
## License
|
|
161
|
+
|
|
162
|
+
[MIT](LICENSE)
|