dsh-kingdom 0.8.0 → 2.0.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.
Files changed (162) hide show
  1. package/ASSETS_NOTICE.md +22 -0
  2. package/LICENSE +661 -29
  3. package/NOTICE +9 -0
  4. package/README.md +93 -94
  5. package/THIRD_PARTY_NOTICES.md +92 -0
  6. package/cordis.patch.yml +6 -6
  7. package/docs/V2.0-RELEASE-NOTES.md +30 -0
  8. package/docs/V2.0-USER-GUIDE.md +74 -0
  9. package/lib/adapter/dsh-backend.js +327 -24
  10. package/lib/adapter/dsh-backend.js.map +1 -1
  11. package/lib/adapter/dsh-cost.js +68 -0
  12. package/lib/adapter/dsh-cost.js.map +1 -0
  13. package/lib/adapter/dsh-session-events.js +86 -0
  14. package/lib/adapter/dsh-session-events.js.map +1 -0
  15. package/lib/adapter/dsh-usage.js +159 -0
  16. package/lib/adapter/dsh-usage.js.map +1 -0
  17. package/lib/capability/admin.js +72 -0
  18. package/lib/capability/admin.js.map +1 -0
  19. package/lib/capability/dsh-enforcement.js +143 -34
  20. package/lib/capability/dsh-enforcement.js.map +1 -1
  21. package/lib/capability/resolver.js +21 -8
  22. package/lib/capability/resolver.js.map +1 -1
  23. package/lib/capability/service.js +169 -26
  24. package/lib/capability/service.js.map +1 -1
  25. package/lib/capability/tool-disclosure.js +144 -0
  26. package/lib/capability/tool-disclosure.js.map +1 -0
  27. package/lib/core/binding.js +52 -34
  28. package/lib/core/binding.js.map +1 -1
  29. package/lib/core/budget.js +304 -0
  30. package/lib/core/budget.js.map +1 -0
  31. package/lib/core/collaboration.js +422 -0
  32. package/lib/core/collaboration.js.map +1 -0
  33. package/lib/core/cost.js +212 -0
  34. package/lib/core/cost.js.map +1 -0
  35. package/lib/core/db.js +197 -4
  36. package/lib/core/db.js.map +1 -1
  37. package/lib/core/execution.js +2 -2
  38. package/lib/core/execution.js.map +1 -1
  39. package/lib/core/governed-claim.js +46 -0
  40. package/lib/core/governed-claim.js.map +1 -0
  41. package/lib/core/governed.js +891 -98
  42. package/lib/core/governed.js.map +1 -1
  43. package/lib/core/kingdom.js +78 -70
  44. package/lib/core/kingdom.js.map +1 -1
  45. package/lib/core/owner-binding-intent.js +732 -0
  46. package/lib/core/owner-binding-intent.js.map +1 -0
  47. package/lib/core/owner-control.js +86 -0
  48. package/lib/core/owner-control.js.map +1 -0
  49. package/lib/core/owner-window.js +822 -0
  50. package/lib/core/owner-window.js.map +1 -0
  51. package/lib/core/task-service.js +296 -133
  52. package/lib/core/task-service.js.map +1 -1
  53. package/lib/core/territory.js +44 -14
  54. package/lib/core/territory.js.map +1 -1
  55. package/lib/core/usage.js +39 -0
  56. package/lib/core/usage.js.map +1 -0
  57. package/lib/core/workspace-admission.js +225 -0
  58. package/lib/core/workspace-admission.js.map +1 -0
  59. package/lib/dispatch/evidence.js +5 -2
  60. package/lib/dispatch/evidence.js.map +1 -1
  61. package/lib/dispatch/reconcile.js +3 -9
  62. package/lib/dispatch/reconcile.js.map +1 -1
  63. package/lib/dispatch/service.js +464 -64
  64. package/lib/dispatch/service.js.map +1 -1
  65. package/lib/gui/assets/characters/chancellor-idle.svg +67 -0
  66. package/lib/gui/assets/characters/chancellor-sleeping.svg +67 -0
  67. package/lib/gui/assets/characters/chancellor-thinking.svg +67 -0
  68. package/lib/gui/assets/characters/chancellor-working.svg +67 -0
  69. package/lib/gui/assets/characters/knight-redraw-r1-idle.svg +67 -0
  70. package/lib/gui/assets/characters/knight-redraw-r1-sleeping.svg +67 -0
  71. package/lib/gui/assets/characters/knight-redraw-r1-thinking.svg +67 -0
  72. package/lib/gui/assets/characters/knight-redraw-r1-working.svg +67 -0
  73. package/lib/gui/assets/characters/supervisor-idle.svg +67 -0
  74. package/lib/gui/assets/characters/supervisor-sleeping.svg +67 -0
  75. package/lib/gui/assets/characters/supervisor-thinking.svg +67 -0
  76. package/lib/gui/assets/characters/supervisor-working.svg +67 -0
  77. package/lib/gui/console-app.js +2330 -0
  78. package/lib/gui/console-app.js.map +1 -0
  79. package/lib/gui/contract.js +5 -5
  80. package/lib/gui/contract.js.map +1 -1
  81. package/lib/gui/control-contract.js +232 -0
  82. package/lib/gui/control-contract.js.map +1 -0
  83. package/lib/gui/local-control.js +423 -0
  84. package/lib/gui/local-control.js.map +1 -0
  85. package/lib/gui/owner-control.js +310 -0
  86. package/lib/gui/owner-control.js.map +1 -0
  87. package/lib/gui/owner-ui.js +191 -0
  88. package/lib/gui/owner-ui.js.map +1 -0
  89. package/lib/gui/server.js +445 -35
  90. package/lib/gui/server.js.map +1 -1
  91. package/lib/gui/snapshot.js +1346 -67
  92. package/lib/gui/snapshot.js.map +1 -1
  93. package/lib/gui/visual-assets.js +56 -0
  94. package/lib/gui/visual-assets.js.map +1 -0
  95. package/lib/gui/visual-system.js +272 -0
  96. package/lib/gui/visual-system.js.map +1 -0
  97. package/lib/gui/workbench-ui.js +358 -0
  98. package/lib/gui/workbench-ui.js.map +1 -0
  99. package/lib/gui/workbench.js +163 -0
  100. package/lib/gui/workbench.js.map +1 -0
  101. package/lib/index.js +1384 -361
  102. package/lib/index.js.map +1 -1
  103. package/lib/runner-context-broker.js +1134 -0
  104. package/lib/runner-context-broker.js.map +1 -0
  105. package/lib/runtime-cost-observer.js +145 -0
  106. package/lib/runtime-cost-observer.js.map +1 -0
  107. package/lib/types/adapter/contract.d.ts +61 -1
  108. package/lib/types/adapter/dsh-backend.d.ts +32 -13
  109. package/lib/types/adapter/dsh-cost.d.ts +13 -0
  110. package/lib/types/adapter/dsh-session-events.d.ts +16 -0
  111. package/lib/types/adapter/dsh-usage.d.ts +36 -0
  112. package/lib/types/capability/admin.d.ts +13 -0
  113. package/lib/types/capability/dsh-enforcement.d.ts +11 -7
  114. package/lib/types/capability/service.d.ts +10 -3
  115. package/lib/types/capability/tool-disclosure.d.ts +36 -0
  116. package/lib/types/core/binding.d.ts +19 -10
  117. package/lib/types/core/budget.d.ts +81 -0
  118. package/lib/types/core/collaboration.d.ts +110 -0
  119. package/lib/types/core/cost.d.ts +99 -0
  120. package/lib/types/core/db.d.ts +44 -4
  121. package/lib/types/core/execution.d.ts +1 -1
  122. package/lib/types/core/governed-claim.d.ts +7 -0
  123. package/lib/types/core/governed.d.ts +182 -1
  124. package/lib/types/core/kingdom.d.ts +3 -0
  125. package/lib/types/core/owner-binding-intent.d.ts +176 -0
  126. package/lib/types/core/owner-control.d.ts +53 -0
  127. package/lib/types/core/owner-window.d.ts +226 -0
  128. package/lib/types/core/task-service.d.ts +60 -13
  129. package/lib/types/core/territory.d.ts +9 -2
  130. package/lib/types/core/usage.d.ts +26 -0
  131. package/lib/types/core/workspace-admission.d.ts +43 -0
  132. package/lib/types/dispatch/evidence.d.ts +2 -5
  133. package/lib/types/dispatch/service.d.ts +62 -4
  134. package/lib/types/gui/console-app.d.ts +137 -0
  135. package/lib/types/gui/contract.d.ts +396 -16
  136. package/lib/types/gui/control-contract.d.ts +111 -0
  137. package/lib/types/gui/local-control.d.ts +120 -0
  138. package/lib/types/gui/owner-control.d.ts +45 -0
  139. package/lib/types/gui/owner-ui.d.ts +2 -0
  140. package/lib/types/gui/server.d.ts +17 -3
  141. package/lib/types/gui/snapshot.d.ts +33 -11
  142. package/lib/types/gui/visual-assets.d.ts +27 -0
  143. package/lib/types/gui/visual-system.d.ts +2 -0
  144. package/lib/types/gui/workbench-ui.d.ts +5 -0
  145. package/lib/types/gui/workbench.d.ts +33 -0
  146. package/lib/types/index.d.ts +157 -6
  147. package/lib/types/runner-context-broker.d.ts +119 -0
  148. package/lib/types/runtime-cost-observer.d.ts +22 -0
  149. package/lib/types/worker/collaboration.d.ts +35 -0
  150. package/lib/types/worker/dsh-subagent.d.ts +4 -4
  151. package/lib/types/worker/executor-factory.d.ts +2 -1
  152. package/lib/types/worker/executor.d.ts +8 -3
  153. package/lib/types/worker/governed-executor.d.ts +8 -1
  154. package/lib/worker/collaboration.js +172 -0
  155. package/lib/worker/collaboration.js.map +1 -0
  156. package/lib/worker/dsh-subagent.js +4 -4
  157. package/lib/worker/executor-factory.js.map +1 -1
  158. package/lib/worker/executor.js +7 -2
  159. package/lib/worker/executor.js.map +1 -1
  160. package/lib/worker/governed-executor.js +295 -84
  161. package/lib/worker/governed-executor.js.map +1 -1
  162. package/package.json +23 -8
package/NOTICE ADDED
@@ -0,0 +1,9 @@
1
+ dsh-Kingdom 1.0.0
2
+ Copyright (c) 2026 lusblead
3
+
4
+ dsh-Kingdom 1.0.0 and later are licensed under the GNU Affero General
5
+ Public License, version 3 or (at your option) any later version.
6
+
7
+ Releases 0.8.0 and earlier remain available under the BSD 3-Clause License
8
+ that accompanied those releases. This notice does not retroactively change
9
+ the license of historical releases.
package/README.md CHANGED
@@ -5,10 +5,10 @@
5
5
  **在 DeepSeek Harness 里,装一个插件,拥有一个自己的 Agent 王国。**
6
6
 
7
7
  [![CI](https://github.com/lusblead/dsh-Kingdom/actions/workflows/ci.yml/badge.svg)](https://github.com/lusblead/dsh-Kingdom/actions/workflows/ci.yml)
8
- [![Version](https://img.shields.io/badge/version-0.8.0-blue)](https://github.com/lusblead/dsh-Kingdom/releases)
9
- [![License](https://img.shields.io/badge/license-BSD--3--Clause-green)](LICENSE)
10
- [![DSH](https://img.shields.io/badge/DSH-0.1.0--rc.5-orange)](#compatibility)
11
- [![Node](https://img.shields.io/badge/Node-%3E%3D22.19-339933)](#requirements)
8
+ [![Version](https://img.shields.io/badge/version-2.0.0-blue)](https://github.com/lusblead/dsh-Kingdom/releases)
9
+ [![License](https://img.shields.io/badge/license-AGPL--3.0--or--later-green)](LICENSE)
10
+ [![DSH](https://img.shields.io/badge/DSH-0.1.5--rc-orange)](#1-前置要求)
11
+ [![Node](https://img.shields.io/badge/Node-%3E%3D22.19-339933)](#1-前置要求)
12
12
 
13
13
  </div>
14
14
 
@@ -16,7 +16,10 @@
16
16
 
17
17
  ## 这是什么?
18
18
 
19
- **dsh-Kingdom 是一个 DeepSeek Harness(DSH)插件**:安装后,你不需要部署任何服务、数据库或 GUI,直接在 DSH 会话里用自然语言就能**创建并运行一个属于自己的最小王国**——
19
+ 2.0 提供围绕任务和交付的个人工作台、独立人类管理窗口、按需小团队协作、用量与软预算。查看 [2.0 使用指南](docs/V2.0-USER-GUIDE.md) 和 [版本说明及验证范围](docs/V2.0-RELEASE-NOTES.md)。默认单执行者;工具按需展示关闭,协作须明确采纳。
20
+
21
+ **dsh-Kingdom 是一个 DeepSeek Harness(DSH)插件**:产品目标是在不另行部署外部服务、独立数据库或单独 GUI 前端的前提下,在 DSH 中**创建并运行一个属于自己的最小王国**——
22
+
20
23
 
21
24
  ```text
22
25
  你:初始化王国
@@ -25,11 +28,12 @@ DSH:已创建王国「My Kingdom」,你成为 Owner
25
28
  你:给当前项目建一个 RAG 研发领
26
29
  DSH:已创建领地「RAG 研发领」
27
30
 
28
- 你:让 Chancellor 把"检查测试情况"规划成任务,Supervisor 派给 Worker 执行,然后验收
31
+ 你:让 Chancellor 把"检查测试情况"规划成任务,Supervisor 派给 Worker,
32
+ 再通过 `kingdom_start_task_governed` 执行并验收
29
33
  DSH:任务 CREATED → ASSIGNED → RUNNING → REVIEW → DONE ✅
30
34
  ```
31
35
 
32
- **王国是真实的**:角色、领地、任务、验收记录全部持久化在本地,重启 DSH 也不会消失。
36
+ **插件实现本地持久化语义**:角色、领地、任务和验收记录写入本地 SQLite;正式数据库迁移仍须按对应版本的迁移边界执行。
33
37
 
34
38
  ---
35
39
 
@@ -37,19 +41,19 @@ DSH:任务 CREATED → ASSIGNED → RUNNING → REVIEW → DONE ✅
37
41
 
38
42
  | 特性 | 说明 |
39
43
  |---|---|
40
- | 🚀 **零门槛安装** | 一个 tgz + 一条命令,无需 bash / tsc / 外部服务 / GUI |
44
+ | 🚀 **零门槛安装** | 发布后的一个 tgz + 一条命令;内置 GUI 随 `lib/**` 交付,无需独立前端 |
41
45
  | 🏛 **完整角色体系** | Owner / Chancellor / Supervisor / Worker,角色与 Session / 模型解耦 |
42
- | 📋 **真实治理闭环** | 规划 → 分配 → 独立执行 → 验收,任务状态全程留痕 |
46
+ | 📋 **治理闭环语义** | 规划 → 分配 → 独立执行 → 验收,任务状态全程留痕 |
43
47
  | ⚖️ **Claim ≠ Fact** | **Worker 说自己完成了 ≠ 任务完成**——完成权只在 Supervisor,代码强制,不是口头约定 |
44
- | 👷 **Worker 独立执行** | 每次执行在独立 DSH 会话(one-shot subagent)进行,结果结构化返回 |
45
- | 🔁 **返工留痕** | REWORK 后同一 Worker 新会话重做,每次尝试(attempt)都有记录 |
46
- | 💾 **重启恢复** | 全部状态存本地 SQLite,关掉 DSH 再开,王国原样还在 |
48
+ | 👷 **Persistent Governed Worker** | 候选源码的 canonical headless 路径使用 `kingdom_start_task_governed`:Worker 绑定长期 DSH Session,结果结构化返回并经 Capability/Lease 治理 |
49
+ | 🔁 **返工留痕** | governed REWORK 复用同一 Worker Persistent Session;每次尝试(attempt)都有独立 Lease/Execution 记录 |
50
+ | 💾 **持久化与恢复语义** | 状态写入本地 SQLite;真实 DSH 重启恢复与正式数据库本轮未验证(`NOT_RUN`) |
47
51
  | 🔄 **换届与会话归属**(v0.4) | `kingdom_unbind_role` 解绑 / `kingdom_bind_session` 把角色绑到**独立会话**;`session-bound` 模式下只有被绑定会话能行使职权 |
48
52
  | 🪪 **会话身份预留字段**(v0.4) | 角色可携带 `model_name` / `agent_name` / `session_meta`(JSON 扩展槽)——现在不必填,未来完整会话逐步填满 |
49
- | 🎭 **GUI 就绪**(可选) | 结构化快照 + 本地数据网关(默认关闭),前端页面由 GUI 部署方提供 |
50
- | 👑 **Persistent Governed Worker**(v0.8) | Worker 拥有**长期 DSH Session**(REWORK 唤醒同一 Worker);Session ↔ Territory Affinity 不可改绑;每次执行经 **Capability Gate**(仅 GRANTED+ENFORCED 才 dispatch,Runtime 无法 enforce → **DENIED + zero execution**);**Execution Lease** 互斥 + **Dispatch Intent**(crash 可 reconcile,不盲发);terminal 证据来自事件链,**Runtime 跑完 ≠ Task DONE**(Claim → Supervisor 裁定链不变) |
53
+ | 🎛 **内置本地 GUI**(v1.0) | 直接执行 `/kingdom gui` 打开操作台,进行会话绑定的任务规划、指派、持久治理执行与审查;Owner 配置仍只走 direct Slash |
54
+ | 👑 **Persistent Governed Worker**(v0.8) | Worker 拥有**长期 DSH Session**(REWORK 唤醒同一 Worker);Session ↔ Territory Affinity 不可改绑;每次执行经 **Capability Gate**(仅 GRANTED+ENFORCED 才 dispatch,Runtime 无法 enforce → **DENIED + zero execution**);**Execution Lease** 互斥 + **Dispatch Intent**(crash 可 reconcile,不盲发);terminal 证据来自事件链,**Runtime 跑完 ≠ Task DONE**(Claim → Supervisor 裁定链不变)。这是 canonical headless 路径 |
51
55
  | 🛡️ **Fail-closed 能力治理**(v0.8) | 无自授 / 超 Ceiling / scope 外 / 部分 policy 一律拒绝;approval=never 禁扩权;workspace 外写真实拒绝;RECOVERING 状态如实显示,禁止显示成 Done |
52
- | 🧩 **Legacy 兼容**(v0.8) | 旧 one-shot 路径继续 `LEGACY_COMPAT` 工作,回归全绿 |
56
+ | 🧩 **Legacy 兼容**(v0.8) | `kingdom_start_task` 仅在用户明确选择时作为 `LEGACY_COMPAT` one-shot 入口;不会作为默认路径、错误恢复建议或 persistent 失败 fallback |
53
57
 
54
58
  ---
55
59
 
@@ -57,49 +61,49 @@ DSH:任务 CREATED → ASSIGNED → RUNNING → REVIEW → DONE ✅
57
61
 
58
62
  ### 1. 前置要求
59
63
 
60
- - **DeepSeek Harness(dsh)** ≥ `0.1.0-rc.5`
64
+ - **DeepSeek Harness(dsh)** `0.1.5-rc` 系列;本版验证 CLI `0.1.5-rc.1` 和主要组件 `0.1.5-rc.2`,旧宿主请继续使用对应旧版插件
61
65
  - **Node.js** ≥ `22.19`(内置 SQLite,插件零原生依赖)
62
66
  - 一个可用的模型 API key(Worker 执行需要)
63
67
 
64
- ### 2. 安装
68
+ ### 2. 安装 v2.0.0
65
69
 
66
- **方式 A:npm(推荐)**
70
+ **方式 A:npm**
67
71
 
68
72
  ```bash
69
- dsh plugin --profile web add dsh-kingdom
73
+ dsh plugin --profile web add dsh-kingdom@2.0.0 --registry=https://registry.npmjs.org
70
74
  ```
71
75
 
72
76
  **方式 B:从 GitHub Releases 下载 tgz**
73
77
 
74
- 从 [Releases](https://github.com/lusblead/dsh-Kingdom/releases) 下载 `dsh-kingdom-0.7.0.tgz`,然后:
78
+ 从 [Releases](https://github.com/lusblead/dsh-Kingdom/releases) 下载 `dsh-kingdom-2.0.0.tgz`,然后:
75
79
 
76
80
  ```bash
77
- dsh plugin --profile web add ./dsh-kingdom-0.7.0.tgz
81
+ dsh plugin --profile web add ./dsh-kingdom-2.0.0.tgz
78
82
  ```
79
83
 
80
- > 安装时会打印 5 条 peer dependency warning——**这是预期的**(这些包由 DSH 运行时提供),不是失败。
81
- > 判断安装成功:**重启 DSH 后** `/kingdom status` 能返回真实状态。
82
-
83
- 重启 DSH,插件自动加载。开始使用:
84
+ 内置 GUI 随 `lib/**` 包含在 tgz 中,不需要额外 GUI zip:
84
85
 
85
86
  ```bash
86
- /kingdom init # 初始化或接入本地王国(幂等)
87
- /kingdom status # 查看王国真实状态
87
+ /kingdom gui # 激活短期本地控制会话并打开内置操作台
88
+ /kingdom status # 也可以从 DSH 会话查看王国真实状态
88
89
  ```
89
90
 
90
- ### 3. 30 秒体验一个王国
91
+ Owner 是本机人类操作者,不是 Agent 或 Session。管理操作可由用户直接键入
92
+ exact `/kingdom` Slash,或从 `/kingdom owner.gui` 准确激活的独立短时管理窗口完成;`OWNER.session_id` 永远保持 `null`。Chancellor、Supervisor、
93
+ Worker 才使用真实 DSH caller session 的会话绑定(`session-bound`)角色平面;历史
94
+ `declarative / local-demo` 语义不能解锁产品写入。
91
95
 
92
- ```
93
- 你:初始化王国
94
- 你:给当前项目创建一个 RAG 研发领
95
- 你:任命一个 Chancellor 和 Supervisor,绑定一个 Worker
96
- 你:让 Chancellor 规划"检查测试情况"为任务,Supervisor 派给 Worker
97
- 你:开始执行任务
98
- 你:验收任务(ACCEPT / REWORK / FAIL)
99
- 你:王国现在什么情况?
100
- ```
96
+ ### 3. 用 GUI 完成最小治理闭环
101
97
 
102
- 每一步都用自然语言,模型自动调用对应的 `kingdom_*` 工具完成真实写入。
98
+ 1. 先由人类通过 direct `/kingdom` Slash 或准确激活的人类管理窗口完成初始化、能力上限、领地、角色/会话与 Worker 执行方案配置;具体步骤见 [首次使用](docs/V2.0-USER-GUIDE.md#第一次使用)。
99
+ 2. 在本地 DSH 会话直接键入 exact `/kingdom gui`;若本机浏览器完成带 ticket 的导航,一次性入口兑换后会重定向到干净的 `/console`。若本机打开请求失败,控制会话虽已激活,但命令只显示不含 ticket 的干净 `/console` 参考地址;该地址不能完成一次性兑换,不要手工拼接或复用启动值,直接重新执行 `/kingdom gui`。
100
+ 3. 日常工作台用于会话绑定操作与只读观察:Chancellor 会话规划任务;任务领地的 Supervisor 会话负责指派、选择 Host 提供的沙箱模式、启动与审查。设置页可进入独立人类管理页面。切换角色职权时要从对应真实 DSH 会话重新激活,不能由浏览器自报身份。
101
+ 4. Worker 输出只会进入待审状态 `REVIEW`。Supervisor 选择接受 `ACCEPT` 后才进入 `DONE`;返工 `REWORK` 回到 `RUNNING` 并保留同一 Assignment,判定失败 `FAIL` 进入 `FAILED`。不用时执行 `/kingdom gui stop` 撤销控制会话并关闭本地 server。
102
+
103
+ Owner 专属 JSON Slash 命令只接受单个 object envelope;未知字段、额外 token、重复字段和
104
+ `OWNER.session_id` 改绑会在写入前拒绝。独立 GUI/HTTP 不能自行取得 Authority;只有 direct
105
+ `/kingdom gui` 激活闭包内的短期控制会话才可能执行日常角色操作,浏览器 payload 不能提交
106
+ principal/session/Owner capability。
103
107
 
104
108
  ---
105
109
 
@@ -107,17 +111,24 @@ dsh plugin --profile web add ./dsh-kingdom-0.7.0.tgz
107
111
 
108
112
  | 阶段 | 工具 |
109
113
  |---|---|
110
- | 王国基础 | `kingdom_init` · `kingdom_status` |
111
- | 领地 | `kingdom_create_territory` · `kingdom_list_territories` · `kingdom_delete_territory` |
112
- | 角色 | `kingdom_bind_role` · `kingdom_unbind_role` · `kingdom_bind_session` · `kingdom_list_bindings` |
113
- | 任务治理 | `kingdom_plan_task` · `kingdom_assign_task` · `kingdom_start_task` · `kingdom_review_task` · `kingdom_list_tasks` |
114
+ | 王国基础 | **`/kingdom init`**(Owner direct)· `kingdom_status`(只读) |
115
+ | 领地 | **`/kingdom territory.* <JSON>`**(Owner direct)· `kingdom_list_territories`(只读) |
116
+ | 角色 | **`/kingdom role.* <JSON>`**(Owner direct)· `kingdom_list_bindings`(只读) |
117
+ | 能力治理 | **`/kingdom ceiling <JSON>`**(Owner direct) |
118
+ | 任务治理 | `kingdom_plan_task` · `kingdom_assign_task` · **`kingdom_start_task_governed`(CANONICAL HEADLESS)** · `kingdom_review_task` · `kingdom_list_tasks` |
119
+ | 显式兼容 | `kingdom_start_task`(`LEGACY_COMPAT` one-shot;必须传 `legacy_opt_in=true`,仅用户明确选择,不自动 fallback) |
114
120
  | 执行控制 | `kingdom_execution_control` |
115
- | GUI(可选) | `kingdom_snapshot` · `kingdom_task_detail` |
121
+ | GUI | **`/kingdom gui`**(打开)· **`/kingdom gui stop`**(撤销并关闭)· `kingdom_snapshot` · `kingdom_task_detail` |
116
122
 
117
- > **领地删除(v0.5.1)**:`kingdom_delete_territory`(网关 `territory.delete`、GUI 操作台删除按钮)遵循治理语义——
123
+ > **领地删除(v0.5.1)**:`/kingdom territory.delete <JSON>` 遵循治理语义——
118
124
  > 领地下存在任务(任意状态)时**默认拒绝**;传 `force=true` 才级联删除:未终态任务统一标记 `FAILED`、
119
125
  > 活跃执行终止,`TERRITORY_DELETED` / `TASK_FAILED` 事件留痕;`DONE`/`FAILED` 终态任务不篡改。
120
126
 
127
+ > **Owner Ceiling(v0.8)**:在任何 governed start 前,用户直接执行
128
+ > `/kingdom ceiling {"ceiling":{"filesystem.write":true,"tool:pwsh":true}}`。
129
+ > `ceiling` 不是 Agent Grant,不能由 Tool 参数或 `exec.agent.session.id` 代替;未配置或越过
130
+ > Ceiling 仍由既有 Capability Gate 拒绝并完成 Lease cleanup。清空 Ceiling 只会保持 fail-closed。
131
+
121
132
  ---
122
133
 
123
134
  ## 🧠 它如何保证"治理是真的"?
@@ -128,7 +139,7 @@ dsh plugin --profile web add ./dsh-kingdom-0.7.0.tgz
128
139
  Worker 交回结果 ──→ 这是一条 Claim(自述),只进 REVIEW
129
140
  ↓
130
141
  Supervisor ACCEPT ──→ DONE(组织事实)
131
- Supervisor REWORK ──→ 返工(同 Worker 新会话)
142
+ Supervisor REWORK ──→ 返工(同一 Worker Persistent Session)
132
143
  Supervisor FAIL ──→ FAILED(组织事实)
133
144
  ```
134
145
 
@@ -143,58 +154,38 @@ Worker 交回结果 ──→ 这是一条 Claim(自述),只进 REVIEW
143
154
 
144
155
  ## 📁 数据与存储
145
156
 
146
- | 路径 | 说明 |
157
+ | 项目 | 说明 |
147
158
  |---|---|
148
159
  | `~/.dsh/kingdom/kingdom.db` | 王国全部数据(SQLite,自包含) |
149
- | 7 张表 | kingdoms · territories · role_bindings · tasks · worker_results · executions · events |
160
+ | Schema v4 | 在既有王国、领地、角色、任务、呈报、执行与事件之外,包含 Assignment、Affinity、Capability Decision、Lease 与 Dispatch 等治理账本 |
150
161
 
151
- 每一版升级都是**零 migration**——旧库打开即自动收敛,数据不丢。
162
+ 全新库或尚无王国数据的库可直接建立 v4;已有 v3 库默认保持 v3,不会自动迁移。只有经过 Formal DB Migration Gate 明确放行后才可迁移;未迁移时 GUI governed plan 与 governed start 均 fail-closed。本文档施工没有读取、迁移或验证正式数据库(`NOT_RUN`),不能据此声称旧库兼容或迁移通过。
152
163
 
153
164
  ---
154
165
 
155
- ## 🎛 GUI(王国操作台,可选)
166
+ ## 🎛 GUI(王国操作台)
156
167
 
157
- GUI 是**独立的前端**,与插件的**后端数据网关**分离:
168
+ GUI 已内置在插件中,不需要下载或启动第二个前端项目。直接在本地 DSH 会话执行:
158
169
 
159
- | 角色 | 地址 | 用途 |
160
- |---|---|---|
161
- | 前端页面 | **本地自托管**:Release 附带的 `dsh-kingdom-gui-*.zip`(解压后 `cd server && npx wrangler dev`,浏览器打开提示的地址);开发时可 `vite dev` | 你打开的页面 |
162
- | 后端数据网关 | `http://127.0.0.1:<guiPort>`(仅本机回环) | 填进**前端页面的连接框**,不要当页面打开 |
163
-
164
- > **前端是纯本地组件**:界面、网关、数据全部在你自己的机器上,不需要任何云端服务。
165
- > (早期实验性的云端页面 `agent-governance-ui.luyus704.chatgpt.site` 已停止维护,不再提供。)
166
-
167
- ### 三步用上 GUI(含"没有 GUI"的解法)
168
-
169
- 1. **开网关**:在 profile 的 `cordis.patch.yml` 为 dsh-kingdom 配置端口(整段替换,需重复默认键):
170
-
171
- ```yaml
172
- - id: dsh-kingdom
173
- name: dsh-kingdom
174
- config:
175
- kingdomName: My Kingdom
176
- ownerName: ""
177
- workerProvider: spawn
178
- guiPort: 34817 # 0=关闭(默认);只绑 127.0.0.1
179
- guiToken: "" # 可选:设置后请求需 Authorization: Bearer
180
- guiAllowOrigins:
181
- - "*"
182
- authMode: declarative
170
+ ```text
171
+ /kingdom gui
183
172
  ```
184
173
 
185
- 2. **重启 DSH**(让 guiPort 生效;`/kingdom help` 会显示网关地址)。
186
- 3. **本地打开前端页面**:从 [Releases](https://github.com/lusblead/dsh-Kingdom/releases) 下载 `dsh-kingdom-gui-*.zip` → 解压 → 在 `server` 目录运行 `npx wrangler dev` → 浏览器打开提示的地址(默认 `http://localhost:8787`)→ 连接框填入 `http://127.0.0.1:34817` → 看到王国与操作台。
187
-
188
- > 默认安装**没有 GUI 是预期的**(`guiPort=0` 关闭、前端独立分发):agent 说"没有 GUI"时,
189
- > 按上面三步开启即可。整个过程在本地完成,离线/内网环境同样可用(Release 自带 prebuilt-dist,无需联网下载前端)。
174
+ 插件只绑定 `127.0.0.1`,按实际监听端口生成一次性短期启动值,并请求本机浏览器打开 Console。启动值只兑换一次,随后重定向到干净的 `/console`;写请求还须通过 HttpOnly `SameSite=Strict` Cookie、CSRF、唯一 request id、精确 Origin 与单一在途请求检查。GUI/HTTP 本身没有 Authority,也不能构造 Owner 或角色身份。
190
175
 
191
176
  ### 操作台能力
192
177
 
193
- - 读面:Snapshot / 任务详情 / 事件流(每 2.5s 轮询,revision 防回退);
194
- - 写面(经网关执行,非演示预览):初始化王国、创建/删除领地(含级联语义确认)、绑定/解绑/换会话(含 model/agent 身份)、规划任务、派发、验收 ACCEPT/REWORK/FAIL、执行暂停/恢复/终止;
195
- - 写命令要求 `X-Kingdom-Client` 头(CORS 预检,防简单表单式 CSRF);
196
- - **`start` 保持诚实边界**:启动 Worker 需要活的委派父 Agent,只能在 DSH 会话内用 `kingdom_start_task` 触发,GUI 不伪造执行;
197
- - 鉴权强度由快照 `auth.trustLevel` 如实声明(`local-demo` / `session-verified`),GUI 必须展示。
178
+ - 首页就是无外层边框的“王国地图”:默认森林墨绿主题,可切换四种主题;领地颜色随主题区分,人物卡片按任务状态显示不同状态色。
179
+ - “管理中心”和“王国账本”是独立页面。首页只保留组织结构和一个主输入框;在输入框键入 `/` 可选择领地并发起常用任务,复杂技术信息放在展开详情中。
180
+ - 四类证据分别是治理事实(`GOVERNANCE_FACT`)、运行观察(`RUNTIME_OBSERVATION`)、执行者呈报(`WORKER_CLAIM`)与派生解释(`DERIVED_EXPLANATION`),不能压成一条“总体成功”。
181
+ - 日常主链是规划→指派→持久治理执行→呈报进入 `REVIEW`→Supervisor 裁决 `ACCEPT/REWORK/FAIL/HANDOFF`;持久路径失败不会自动降级到 `LEGACY_COMPAT`。
182
+ - Owner 专属动作始终不可执行(`executable=false / DIRECT_SLASH_REQUIRED`)。带状态 GET 需要有效本地控制 Cookie 或已配置 bearer;内部 `readContext` 来自 direct 激活时捕获的 Session,不接受浏览器自报,也不序列化到响应。
183
+ - 对 `GOVERNED_PERSISTENT`,暂停、恢复、终止当前都不可执行。合法生命周期候选在会话、Supervisor、scope、Host 与命令覆盖检查通过后,投影返回 `executable=false / GOVERNED_RUNTIME_CONTROL_UNAVAILABLE`;其他状态可能不列动作或先显示更早的拒绝原因。命令名称存在不代表可验证的 Runtime control seam 已实现。
184
+ - 未结算的持久治理 Execution 会在访问 Runtime/Session/Lease 前阻止新 attempt;对已有 Dispatch 关联的不可判定恢复路径,Dispatch、Lease、Execution 原子进入 `RECOVERING`,不改 Task、不自动重试或伪造终态。
185
+ - 事件与投影 payload 经过递归、有界脱敏,但这不是提交秘密的许可。
186
+ - 证据必须分层读取:静态源码/测试只是前置;fake Runtime、headless 浏览器、桌面真实连续交互、真实 DSH/Provider 是不同证据层级,不能互相替代。
187
+ > v1.0 GUI 的王国地图、管理中心、王国账本、任务→执行→审查、Authority 与恢复口径见
188
+ > [v1.0 GUI 快速开始](docs/v1.0/GUI_QUICK_START.md)。
198
189
 
199
190
  ---
200
191
 
@@ -207,31 +198,39 @@ GUI 是**独立的前端**,与插件的**后端数据网关**分离:
207
198
  | 0.3.x | 执行生命周期 + GUI 适配层 + 热插拔加固 | ✅ 已发布 |
208
199
  | 0.4.x | **换届与会话归属**:unbind/bind_session、会话身份预留字段、session-bound 强制校验、init 引导 | ✅ 已发布 |
209
200
  | 0.5.x | **领地删除**(拒绝优先 + force 级联 + 事件留痕)、GUI 删除控制、市场收录 | ✅ 已发布 |
210
- | 未来 | 多 Worker、Handoff、GUI 正式版、完整治理后端 | 🚧 规划中 |
201
+ | 0.8.0 | Persistent Governed Worker、Capability/Lease/Dispatch/Recovery | ✅ 已发布 |
202
+ | 0.9.0-alpha.1 | 内置可操作 GUI 最小闭环 | 本地源码阶段,尚未发布 |
203
+ | 1.0.0 | 王国地图、管理中心、王国账本、移交、沙箱与诚实的执行控制投影 | ✅ 已发布 |
204
+ | 2.0.0 | 个人工作台、人类管理窗口、有界协作、用量与软预算、恢复约束 | 当前版本;收益测量见版本说明 |
211
205
 
212
- > 已安装用户经 dsh-market 自动看到新版本(Update available);每个版本的发布说明见 [Releases](https://github.com/lusblead/dsh-Kingdom/releases)(发布流水线见 [RELEASE.md](RELEASE.md))。
206
+ > 已发布版本与市场更新状态以 [Releases](https://github.com/lusblead/dsh-Kingdom/releases) 为准(发布流程见 [RELEASE.md](RELEASE.md))。
213
207
 
214
208
  ---
215
209
 
216
210
  ## 📖 文档
217
211
 
218
- - [LICENSE](LICENSE) — BSD-3-Clause
212
+ - [2.0 使用指南](docs/V2.0-USER-GUIDE.md) — 安装、首次配置、日常任务、协作与恢复
213
+ - [2.0 版本说明](docs/V2.0-RELEASE-NOTES.md) — 新功能、修复及实际验证范围
214
+ - [v1.0 GUI 快速开始](docs/v1.0/GUI_QUICK_START.md) — 历史版本参考
215
+ - [LICENSE](LICENSE) — AGPL-3.0-or-later
219
216
 
220
217
  ## 🤝 参与贡献
221
218
 
222
- 欢迎提交 Issue / PR。开发环境需要 DSH checkout:
219
+ 欢迎提交 Issue / PR。克隆源码后安装锁定依赖并构建;单元测试使用隔离夹具,不读取个人数据库或调用付费模型:
223
220
 
224
221
  ```bash
225
- DSH_CHECKOUT=<checkout> bash scripts/build.sh # 或手动 tsc
226
- node scripts/p2-smoke.mjs # Phase 2 自测(81 断言)
227
- node scripts/p3-smoke.mjs # Phase 3 自测(113 断言)
228
- node scripts/hotplug-audit.mjs # 热插拔审计(27 断言)
229
- npm pack # 产出可分发 tgz
222
+ npm ci --registry=https://registry.npmjs.org
223
+ npm run typecheck
224
+ npm test
225
+ node scripts/p2-smoke.mjs # 当前治理与恢复测试
226
+ node scripts/p3-smoke.mjs # 当前 GUI 与人类管理窗口测试
227
+ node scripts/hotplug-audit.mjs # 服务释放、撤销与恢复测试
228
+ npm pack # 从当前源码重新构建并打包
230
229
  ```
231
230
 
232
231
  ## 📜 许可证
233
232
 
234
- [BSD-3-Clause](LICENSE) © 2026 lusblead
233
+ [AGPL-3.0-or-later](LICENSE) © 2026 lusblead。v0.8.0 及更早版本保持其发布时的 BSD-3-Clause 许可。
235
234
 
236
235
  ---
237
236
 
@@ -0,0 +1,92 @@
1
+ # Third-party notices
2
+
3
+ The dsh-Kingdom npm package does not bundle its JavaScript peer dependencies
4
+ or development dependencies. Those dependencies are installed separately and
5
+ remain subject to their own licenses and notices.
6
+
7
+ No third-party artwork is included in the twelve character SVG assets; see
8
+ `ASSETS_NOTICE.md`.
9
+
10
+ ## Inline GUI icons: Lucide
11
+
12
+ `src/gui/visual-assets.ts` includes a minimal, static subset of the Lucide SVG
13
+ icons. There is no Lucide runtime dependency, CDN request, or remote font.
14
+ Only SVG whitespace and the outer accessibility/class attributes were adapted;
15
+ the upstream geometry is retained.
16
+
17
+ - Project: https://github.com/lucide-icons/lucide
18
+ - Exact source revision: `a537cb6eb323b885f4c60baf3cec1a995982d167`
19
+ (upstream commit dated 2026-09-07; retrieved 2026-09-08).
20
+ - Icon source directory: https://github.com/lucide-icons/lucide/tree/a537cb6eb323b885f4c60baf3cec1a995982d167/icons
21
+ - License source: https://github.com/lucide-icons/lucide/blob/a537cb6eb323b885f4c60baf3cec1a995982d167/LICENSE
22
+
23
+ | GUI key | Upstream SVG |
24
+ | --- | --- |
25
+ | map | `icons/map.svg` |
26
+ | management | `icons/sliders-horizontal.svg` |
27
+ | ledger | `icons/book-open.svg` |
28
+ | refresh | `icons/refresh-cw.svg` |
29
+ | chancellor | `icons/crown.svg` |
30
+ | supervisor | `icons/shield-check.svg` |
31
+ | worker | `icons/bot.svg` |
32
+ | plan | `icons/clipboard-list.svg` |
33
+ | assign | `icons/git-branch.svg` |
34
+ | next | `icons/arrow-right.svg` |
35
+ | run | `icons/play.svg` |
36
+ | review | `icons/clipboard-check.svg` |
37
+ | accept | `icons/circle-check.svg` |
38
+ | lock | `icons/lock-keyhole.svg` |
39
+ | error | `icons/circle-alert.svg` |
40
+ | idle | `icons/circle.svg` |
41
+ | unknown | `icons/circle-question-mark.svg` |
42
+ | empty | `icons/inbox.svg` |
43
+
44
+ The complete upstream license, including its Feather attribution and MIT
45
+ license, follows unchanged. These permissive terms are retained alongside the
46
+ project's AGPL-3.0-or-later license.
47
+
48
+ ```text
49
+ ISC License
50
+
51
+ Copyright (c) 2026 Lucide Icons and Contributors
52
+
53
+ Permission to use, copy, modify, and/or distribute this software for any
54
+ purpose with or without fee is hereby granted, provided that the above
55
+ copyright notice and this permission notice appear in all copies.
56
+
57
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
58
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
59
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
60
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
61
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
62
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
63
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
64
+
65
+ ---
66
+
67
+ The following Lucide icons are derived from the Feather project:
68
+
69
+ airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
70
+
71
+ The MIT License (MIT) (for the icons listed above)
72
+
73
+ Copyright (c) 2013-present Cole Bemis
74
+
75
+ Permission is hereby granted, free of charge, to any person obtaining a copy
76
+ of this software and associated documentation files (the "Software"), to deal
77
+ in the Software without restriction, including without limitation the rights
78
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
79
+ copies of the Software, and to permit persons to whom the Software is
80
+ furnished to do so, subject to the following conditions:
81
+
82
+ The above copyright notice and this permission notice shall be included in all
83
+ copies or substantial portions of the Software.
84
+
85
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
86
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
87
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
88
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
89
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
90
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
91
+ SOFTWARE.
92
+ ```
package/cordis.patch.yml CHANGED
@@ -1,6 +1,6 @@
1
- # dsh-kingdom bundle patch:把本插件作为 profile bundle 层插入。
2
- # 安装(dsh plugin add dsh-kingdom)后自动进入 profile bundles,
3
- # 重启 DSH 自动加载,无需 dev_inject_plugin。
4
- - insert:
5
- - id: dsh-kingdom
6
- name: 'dsh-kingdom'
1
+ # dsh-kingdom bundle patch:把本插件作为 profile bundle 层插入。
2
+ # 安装(dsh plugin add dsh-kingdom)后自动进入 profile bundles,
3
+ # 重启 DSH 自动加载,无需 dev_inject_plugin。
4
+ - insert:
5
+ - id: dsh-kingdom
6
+ name: 'dsh-kingdom'
@@ -0,0 +1,30 @@
1
+ # dsh-Kingdom 2.0.0
2
+
3
+ 2.0 将目标草稿、任务执行、主管审查、交付、用量与人类管理窗口放在同一个个人工作台中。默认一个执行者;独立子项适合并行时,先审核一份固定版本的协作计划,再由主管按预算、依赖与工作区约束推进。
4
+
5
+ ## 功能与使用边界
6
+
7
+ - 今日工作台、任务、待我处理、王国地图、用量、设置六个入口;四主题、窄屏、键盘与减少动态效果偏好。
8
+ - 独立短时人类管理窗口,准确预览变更、确认提交、查询回执;到期、撤销、窗口替换和丢响应不会自动扩大权限或重发操作。
9
+ - 协作最多两个子项和一个独立整合者;只读资源可共享,写资源独占,接受的前置结果才可交接。子项完成后父任务仍须实际整合与单独审查。
10
+ - 用量区分实报、估计预留、未确认、共享与恢复中。软预算限制新增工作,在途请求仍可能计费;金额未知不会显示为零。
11
+ - 超时不等于执行失败,未知执行先对账;证据不足时保留占用和 RECOVERING,不自动重发。
12
+
13
+ 本版不包含记忆系统、跨任务召回、自动会话续接或无限扩队。工具按需展示保持关闭,协作须明确采纳。真实人工减负和付费 Token 节省尚未完成成对测量,不宣传具体收益比例。
14
+
15
+ ## 安装与兼容
16
+
17
+ 参阅随包提供的 [使用指南](V2.0-USER-GUIDE.md)。验证组合是 Windows、Node 24.11.1、DSH CLI 0.1.5-rc.1 和主要组件 0.1.5-rc.2;2.0 的 DSH peer 范围明确限定在相应 rc 系列。旧宿主请使用对应旧版 Kingdom。避免在插件目录安装另一份 DSH Core。
18
+
19
+ 升级前先停止新增任务并核对未决执行,做 SQLite 一致备份,在新路径恢复副本验证。WAL 模式不能只复制主数据库。正式数据库、任意旧库、v3→v4 迁移及持续并发写入备份均未在本轮执行;不能从打包成功推断迁移安全。
20
+
21
+ ## 发布前修复与验证
22
+
23
+ - 已采纳计划固定执行者,拒绝会让计划永久失效的 HANDOFF;普通任务原有转交保持可用。
24
+ - 失败或中止的准确尝试经主管 REWORK 后可以重试,包括真实派发事务和多个失败子项的逐项恢复。历史未结算执行仍阻断新增工作。
25
+ - Legacy 与受治理入口双向遵守真实目录写互斥,覆盖父子目录及链接别名;检查与执行事实创建同事务,失败整体回滚。
26
+ - 管理窗口明确拒绝提交后保留输入并允许重新预览;结果未知时保留非敏感操作引用,刷新后先查询原回执,不重复发送。窄屏可完整读取计划指纹。
27
+ - 修复 Unix socket 路径过长导致的本地通信启动失败;超出系统字节上限时在创建资源前给出明确原因。完整认证与清理边界不变。
28
+ - 打包前重新编译;发布脚本在编译或测试非零退出时停止。CI 和 smoke 使用隔离 fixture,不读取用户的正式数据库。
29
+
30
+ Windows 干净工作区全量检查中 **473 项通过**;Unix 专用路径检查在 Linux CI 中验证。发布还核对隔离 smoke、准确包的官方 DSH 本地 SSE 接线、四主题与宽/窄屏 GUI、包内容与远端摘要。上述运行使用隔离数据和脚本模型,用于核对产品接线与失败路径,不代表真实付费模型质量或收益。
@@ -0,0 +1,74 @@
1
+ # dsh-Kingdom 2.0 使用指南
2
+
3
+ 这是运行于 DSH 的个人 Agent 工作台。任务规划、角色分工、执行、返工、主管审查、用量和人类管理窗口已连通。默认单执行者;协作须明确采纳,工具按需展示默认关闭。
4
+
5
+ ## 支持组合与安装
6
+
7
+ 本轮验证环境为 Windows、Node 24.11.1、DSH CLI 0.1.5-rc.1;Session/Agent/Tools/Commands/PiAI/token-meter 主要组件实际为0.1.5-rc.2、Cordis4.0.2。包声明Node≥22.19,但本轮没有逐个验证所有Node/操作系统组合。
8
+
9
+ 2.0 支持经过验证的 DSH `0.1.5-rc` 组件组合;较旧宿主请继续使用对应旧版 Kingdom。使用官方 DSH 的同一套依赖,避免在插件目录再装一份不同版本的 DSH Core。包包含编译插件、内置 GUI、12 个角色 SVG、bundle 补丁与本指南,不需要另起前端服务。
10
+
11
+ 已有可用 `web` profile 时,安装准确版本:
12
+
13
+ ```shell
14
+ dsh plugin --profile web add dsh-kingdom@2.0.0 --registry=https://registry.npmjs.org
15
+ ```
16
+
17
+ 也可从 [GitHub Release](https://github.com/lusblead/dsh-Kingdom/releases/tag/v2.0.0) 下载 tgz,核对随附校验清单后安装:
18
+
19
+ ```shell
20
+ dsh plugin --profile web add ./dsh-kingdom-2.0.0.tgz
21
+ ```
22
+
23
+ 若要先隔离试用,在新的终端给 DSH 选择一个新的目录,再按所用官方模板建立 profile;不要指向已有正式数据目录。例如:
24
+
25
+ ```powershell
26
+ $env:DSH_HOME = Join-Path $env:LOCALAPPDATA 'KingdomTrial'
27
+ ```
28
+
29
+ 选择自己的全新目录,不覆盖已有 `KingdomTrial`。按官方模板建立并配置 `web` profile 后再安装插件,启动时沿用同一个 `DSH_HOME` 和 profile。仅安装插件不会自动配好模型或绑定角色。模型 Provider 配置由 DSH 管理,必须使用真实可用的模型路线;“模型已配置”不等于执行成功。
30
+
31
+ ## 第一次使用
32
+
33
+ 1. 在可信的本机直接命令入口运行 `/kingdom init`。若希望通过网页填写初始化内容,可直接输入下面的单次管理命令;两种初始化方式任选一种。Owner 是人类操作者,不是 Agent 角色或会话。
34
+ 2. 准备独立的宰相与主管DSH会话,建立角色绑定、领地及主理主管,给执行者选择模型配置。每个执行者保留一个长期会话,同一会话不跨领地。
35
+ 3. 打开 `/kingdom gui` 查看今日工作台、任务、待我处理、地图、用量与设置。普通进度无需人类逐条处理;主管审查和人类管理事项分开显示。
36
+ 4. 常用人类管理动作在 `/kingdom owner.gui` 创建的独立短时窗口进行,先逐字段预览再提交。窗口只包含当次明确动作与资源范围,至多10分钟;到期需重新从直接入口激活。管理窗口不能代替主管ACCEPT。
37
+
38
+ 空库首次初始化的网页命令(初始化后不能重复使用):
39
+
40
+ ```text
41
+ /kingdom owner.gui {"kingdomId":null,"actions":["init"],"scope":{"kingdomWide":false,"territoryIds":[],"bindingIds":[],"roleTypes":[],"targetSessionIds":[],"workspaceRoots":[]},"ttlMs":600000}
42
+ ```
43
+
44
+ 日常窗口的 `owner.gui` 参数是 `{kingdomId,actions,scope,ttlMs}`;scope 包含 `kingdomWide/territoryIds/bindingIds/roleTypes/targetSessionIds/workspaceRoots`。使用 `/kingdom status` 和 `/kingdom help` 核对真实王国、角色和命令,只填写本次需要的范围。窗口到期或打开失败后重新从直接入口激活,不能把干净的 `/owner` 或 `/console` 地址当作含一次性授权的启动链接。不要分享带启动票据的地址。
45
+
46
+ 普通工作台和人类管理窗口分别持有短时控制状态:人类管理窗口不能代替宰相建任务或主管 ACCEPT;切换角色时从对应真实 DSH 会话重新执行 `/kingdom gui`。若按钮不可用,先查看其原因,核对当前会话、领地及绑定。模型不能通过转述“用户同意”激活人类窗口。
47
+
48
+ ## 日常任务与协作
49
+
50
+ 从一句目标建立可编辑草稿,明确范围和验收;宰相创建任务,主管指派并授予当次能力,执行者产生Claim。主管可ACCEPT、REWORK或FAIL。执行结束、主管接受、人类验收是不同状态;返工保留原验收与上一轮理由。
51
+
52
+ 小任务使用单执行者。适合拆分时,宰相提出一份有理由、成员、依赖、范围、产物与整合人的计划;人类准确采纳后,主管有界推进。首版至多两个子项及一个主整合者,专家强制只读。独立目录可并行,同一目录读共享、写独占;不能并行写同一工作区时先等待结算,再串行推进。
53
+
54
+ 子项被接受后,主整合者还要完成父任务并单独审查。成员多数同意不能代替验证;计划和摘要不能授予权限。失败收缩为串行只停止新增并行,不粗暴中止已有执行。
55
+
56
+ ## 用量与异常
57
+
58
+ 用量页区分Provider实报、预留估计、在途、未确认、共享/未归属与恢复中。没有可信价格表时金额显示未知,不能把估计当账单。计划的协调费用标为同期王国成本保守上界;软预算只限制新增,已在途仍可能继续产生费用。
59
+
60
+ 等待超时不等于失败。已有Dispatch、丢响应、迟到结果或清理不明时,先由当前合法主管对账原执行,不能重发来试运气。原进程证据完整的迟到结果可对账;重启后旧内存凭据不能恢复,证据不足保持RECOVERING/资源占用,界面说明可确认事实及缺口。尚不承诺任意运行状态都能一键暂停、恢复或中止。
61
+
62
+ ## 升级、备份和回退
63
+
64
+ 先停止新增任务并核对所有活动/恢复执行,再对源库做SQLite一致备份;WAL模式下不能只复制主 `.db` 文件。保留原版本、配置及备份,在全新目录恢复副本并核验完整性、外键、Task/结果/事件和未结算占用,之后才考虑正式切换。
65
+
66
+ 已有v3库默认不自动迁移v4;新库自动具备v4,旧库只有在准确迁移授权和副本验证后才显式启用迁移。1.4/1.5在现有事件账本增加事实,不清洗历史结果。恢复备份不会恢复旧Owner窗口或不透明运行凭据。
67
+
68
+ 尚未写入新事实时,可以在隔离目录恢复旧程序与旧备份。写入新计划/预算/资源事实后,不能盲目用旧程序打开新库;旧程序不懂这些约束。出现问题先保留新库和日志,在新路径恢复最近一致副本,不覆盖原始数据、不伪造已运行工作被撤销。
69
+
70
+ ## 当前限制
71
+
72
+ 本地隔离脚本验证证明的是接线与异常约束。没有完成真实付费 Provider 的质量/缓存/成本成对实验,也没有测出真人主动操作时间减少约 30% 或任务 Token 费用下降 20%。因此不宣称收益达标,不自动打开工具展示或协作。记忆、跨任务召回、自动会话续接、大规模扩队、云端多租户及自动主管 ACCEPT 不在本版内。
73
+
74
+ 安装、恢复、修复和最终包的实测范围见 [2.0 版本说明](V2.0-RELEASE-NOTES.md)。公开版本及下载以 [Releases](https://github.com/lusblead/dsh-Kingdom/releases) 和 [官方 npm](https://www.npmjs.com/package/dsh-kingdom) 为准;发布不替代正式数据迁移或真人使用验收。