@wowyuarm/dsh-agent-team 0.1.6 → 0.1.8

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 (108) hide show
  1. package/README.md +11 -5
  2. package/README.zh.md +11 -5
  3. package/package.json +44 -42
  4. package/packages/agent-team/README.md +2 -0
  5. package/packages/agent-team/README.zh.md +2 -0
  6. package/packages/agent-team/core-skills/member-skill-manager/SKILL.md +2 -0
  7. package/packages/agent-team/lib/index.js +140 -204
  8. package/packages/agent-team/lib/ledger.js +436 -25
  9. package/packages/agent-team/lib/member-context.js +6 -2
  10. package/packages/agent-team/lib/member-runtime.js +229 -0
  11. package/packages/agent-team/lib/preset-roster.js +1 -0
  12. package/packages/agent-team/lib/progress-nudge.js +320 -0
  13. package/packages/agent-team/lib/spec.js +30 -1
  14. package/packages/agent-team/lib/typert.host.js +250 -70
  15. package/packages/agent-team/lib/typert.remote-client.d.ts +5 -1
  16. package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
  17. package/packages/agent-team/lib/typert.remote-client.js +168 -38
  18. package/packages/agent-team/lib/types/entities.js +1 -0
  19. package/packages/agent-team/lib/types/index.d.ts +28 -44
  20. package/packages/agent-team/lib/types/index.d.ts.map +1 -1
  21. package/packages/agent-team/lib/types/ledger.d.ts +60 -2
  22. package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
  23. package/packages/agent-team/lib/types/member-context.d.ts.map +1 -1
  24. package/packages/agent-team/lib/types/member-runtime.d.ts +108 -0
  25. package/packages/agent-team/lib/types/member-runtime.d.ts.map +1 -0
  26. package/packages/agent-team/lib/types/operations.js +1 -0
  27. package/packages/agent-team/lib/types/preset-roster.d.ts.map +1 -1
  28. package/packages/agent-team/lib/types/progress-nudge.d.ts +136 -0
  29. package/packages/agent-team/lib/types/progress-nudge.d.ts.map +1 -0
  30. package/packages/agent-team/lib/types/requests-results.js +1 -0
  31. package/packages/agent-team/lib/types/spec.d.ts.map +1 -1
  32. package/packages/agent-team/lib/types/types/entities.d.ts +357 -0
  33. package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -0
  34. package/packages/agent-team/lib/types/types/operations.d.ts +303 -0
  35. package/packages/agent-team/lib/types/types/operations.d.ts.map +1 -0
  36. package/packages/agent-team/lib/types/types/requests-results.d.ts +529 -0
  37. package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -0
  38. package/packages/agent-team/lib/types/types.d.ts +10 -1070
  39. package/packages/agent-team/lib/types/types.d.ts.map +1 -1
  40. package/packages/agent-team/preset/team-member/agent.cordis.yml +6 -4
  41. package/packages/client-agent-team/README.md +3 -1
  42. package/packages/client-agent-team/README.zh.md +3 -1
  43. package/packages/client-agent-team/lib/client.js +773 -733
  44. package/packages/client-agent-team/lib/client.js.map +1 -1
  45. package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts +3 -2
  46. package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -1
  47. package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +30 -7
  48. package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts +1 -1
  49. package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
  50. package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +5 -9
  51. package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts +2 -1
  52. package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts.map +1 -1
  53. package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.js +31 -5
  54. package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts +3 -1
  55. package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
  56. package/packages/client-agent-team/lib/types/client/TeamComposer.js +39 -28
  57. package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts +1 -1
  58. package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts.map +1 -1
  59. package/packages/client-agent-team/lib/types/client/TeamConversation.js +2 -2
  60. package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.d.ts.map +1 -1
  61. package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.js +3 -2
  62. package/packages/client-agent-team/lib/types/client/TeamMessage.d.ts.map +1 -1
  63. package/packages/client-agent-team/lib/types/client/TeamMessage.js +15 -3
  64. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts +2 -2
  65. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts.map +1 -1
  66. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.js +4 -6
  67. package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts +14 -0
  68. package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts.map +1 -0
  69. package/packages/client-agent-team/lib/types/client/TeamStateDot.js +15 -0
  70. package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +2 -1
  71. package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
  72. package/packages/client-agent-team/lib/types/client/TeamThreadPage.js +41 -16
  73. package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts +1 -1
  74. package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -1
  75. package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +2 -2
  76. package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts +1 -1
  77. package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts.map +1 -1
  78. package/packages/client-agent-team/lib/types/client/index.d.ts +1 -1
  79. package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
  80. package/packages/client-agent-team/lib/types/client/index.js +9 -77
  81. package/packages/client-agent-team/lib/types/client/locales.d.ts +26 -0
  82. package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
  83. package/packages/client-agent-team/lib/types/client/locales.js +26 -0
  84. package/packages/client-agent-team/lib/types/client/navigation.d.ts +2 -1
  85. package/packages/client-agent-team/lib/types/client/navigation.d.ts.map +1 -1
  86. package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts +1 -2
  87. package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts.map +1 -1
  88. package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts +1 -1
  89. package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts.map +1 -1
  90. package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts +1 -1
  91. package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts.map +1 -1
  92. package/packages/client-agent-team/lib/types/client/slots.d.ts +5 -1
  93. package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
  94. package/packages/client-agent-team/lib/types/client/task-refs.d.ts +7 -1
  95. package/packages/client-agent-team/lib/types/client/task-refs.d.ts.map +1 -1
  96. package/packages/client-agent-team/lib/types/client/task-refs.js +25 -3
  97. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts +11 -10
  98. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts.map +1 -1
  99. package/packages/client-agent-team/lib/types/client/team-formatters.js +14 -11
  100. package/packages/client-agent-team/lib/types/client/team-membership.d.ts +1 -1
  101. package/packages/client-agent-team/lib/types/client/team-membership.d.ts.map +1 -1
  102. package/packages/tool-agent-team/lib/index.js +9 -9
  103. package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts +0 -17
  104. package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts.map +0 -1
  105. package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.js +0 -135
  106. package/packages/client-agent-team/lib/types/client/member-session-input.d.ts +0 -22
  107. package/packages/client-agent-team/lib/types/client/member-session-input.d.ts.map +0 -1
  108. package/packages/client-agent-team/lib/types/client/member-session-input.js +0 -98
package/README.md CHANGED
@@ -11,6 +11,14 @@
11
11
 
12
12
  An opt-in plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): install it only where Team mode is needed; ordinary DSH sessions keep their normal preset roster.
13
13
 
14
+ ## Core ideas
15
+
16
+ - **Agents are first-class team members, not just sessions.** Each member keeps its own memory, responsibility boundaries, and private space (memory, notes, and skills), while all agents collaborate in one shared project Workspace; multiple Workspaces manage multiple teams.
17
+ - **Workspaces organize everything.** Different projects live in different Workspaces, each managing its own Agents and Channels.
18
+ - **The Human routes Channels and responsibilities.** You decide who is in which channel and what they own; mentions route work to the right agent.
19
+ - **Task Threads carry one line of progress.** Claims set the direction, Threads hold the context, and multiple session agents advance the same line of work without talking past each other — the facts of the work live in one Thread.
20
+ - **No context babysitting.** Member sessions compact automatically past the threshold, with a pre-compaction hint to persist key conclusions first. Every member keeps its own memory and notes across sessions, so identity and knowledge survive session renewal.
21
+
14
22
  ## Preview
15
23
 
16
24
  Agent Team is opt-in: after installation the ordinary DSH page stays as-is, and Team mode is one additional entry in the sidebar footer.
@@ -27,15 +35,13 @@ A Task Thread keeps Claims, Agent handoffs, Human acceptance, and follow-up repl
27
35
 
28
36
  ![Completed Task Thread in the DSH Web UI: a Claim, Agent handoffs, Human acceptance activity, and the reply composer](assets/readme/task-thread.png)
29
37
 
30
- ### No context babysitting
31
-
32
- Member sessions compact automatically once token usage passes the threshold, and each member gets a pre-compaction hint to persist its key conclusions first. Every member keeps its own memory and notes across sessions, so identity and knowledge survive session renewal.
38
+ If this looks useful, a star on [GitHub](https://github.com/wowyuarm/dsh-agent-team) helps other DSH users find it.
33
39
 
34
40
  ## Quick start
35
41
 
36
42
  ### 1. Check DSH
37
43
 
38
- This release is certified against DSH `0.1.1-rc.2`. If `dsh` is not installed yet, start DSH with the official package:
44
+ This release is certified against DSH `0.1.2-rc.1`. If `dsh` is not installed yet, start DSH with the official package:
39
45
 
40
46
  ```sh
41
47
  npx @deepseek-ai/dsh web
@@ -104,7 +110,7 @@ Published packages include built artifacts. A local checkout needs the adjacent
104
110
 
105
111
  ## Compatibility and limits
106
112
 
107
- - This release is certified against DSH `0.1.1-rc.2`.
113
+ - This release is certified against DSH `0.1.2-rc.1`, and requires it: earlier DSH versions are not supported.
108
114
  - The bundle is single-host. It does not provide distributed consensus, Team direct messages, nested Threads, or semantic Direction deduplication.
109
115
  - The current DSH SQLite Session schema rejects databases from older DSH versions. Delete the old Session database and start fresh when upgrading across that boundary; this bundle does not migrate it.
110
116
  - Team-managed Agent Sessions use `danger-full-access`. Use them only in trusted Workspaces.
package/README.zh.md CHANGED
@@ -11,6 +11,14 @@
11
11
 
12
12
  一个为 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 提供的按需启用插件:只在需要 Team mode 的 profile 安装,普通 DSH Session 保持原有 preset roster。
13
13
 
14
+ ## 核心想法
15
+
16
+ - **Agent 是 Team 的一等单位,不只是会话。** 每个 Agent 成员有自己的记忆与职责边界,以及私有空间——memory、notes 与 skills 单独维护;同时所有 Agent 在同一个共享项目 Workspace 下协作,多 Workspace 可管理多支 Team。
17
+ - **Workspace 组织一切。** 不同项目放在不同 Workspace,各自管理自己的 Agents 与 Channels。
18
+ - **Human 管 Channel 与职责。** 你决定谁在哪个频道、负责什么;@提及把工作路由到对的 Agent。
19
+ - **Task Thread 串联推进。** 用 Task 认领方向、Thread 保持上下文,多个 Session Agent 围绕同一条工作线推进而不散乱。工作事实落在同一条 Thread 里,成员之间不会各说各的。
20
+ - **无需操心上下文。** 成员会话超阈值自动压缩,压缩前提示成员先沉淀关键结论。每个成员的 memory 与 notes 跨会话保留,身份与知识不随会话续期丢失。
21
+
14
22
  ## 预览
15
23
 
16
24
  Agent Team 是按需启用的:安装后普通 DSH 页面保持原样,Team mode 只是侧栏底部多出的一个入口。
@@ -27,15 +35,13 @@ Task Thread 把 Claim、Agent 交接、Human 验收和后续回复保留在同
27
35
 
28
36
  ![DSH Web UI 中已完成的 Task Thread:含 Claim、Agent 交接、Human 验收活动和回复 composer](assets/readme/task-thread.png)
29
37
 
30
- ### 无需操心上下文
31
-
32
- 成员会话在 token 用量超过阈值后自动压缩,压缩前会提示成员先沉淀关键结论。每个成员的 memory 与 notes 跨会话保留,身份与知识不随会话续期丢失。
38
+ 如果觉得有用,欢迎在 [GitHub](https://github.com/wowyuarm/dsh-agent-team) 点个 star,帮更多 DSH 用户发现它。
33
39
 
34
40
  ## 快速开始
35
41
 
36
42
  ### 1. 检查 DSH
37
43
 
38
- 当前版本已针对 DSH `0.1.1-rc.2` 完成认证。如果还没有安装 `dsh`,先使用官方 package 启动 DSH:
44
+ 当前版本已针对 DSH `0.1.2-rc.1` 完成认证。如果还没有安装 `dsh`,先使用官方 package 启动 DSH:
39
45
 
40
46
  ```sh
41
47
  npx @deepseek-ai/dsh web
@@ -104,7 +110,7 @@ dsh web
104
110
 
105
111
  ## 兼容性与限制
106
112
 
107
- - 当前版本已针对 DSH `0.1.1-rc.2` 完成认证。
113
+ - 当前版本已针对 DSH `0.1.2-rc.1` 完成认证,并且要求该版本:更早的 DSH 版本不受支持。
108
114
  - Bundle 是单 Host,不提供分布式共识、Team direct message、嵌套 Thread 或 Direction 语义去重。
109
115
  - 当前 DSH SQLite Session schema 不接受旧版 DSH 的数据库。跨越该边界升级时,删除旧 Session 数据库并重新开始;本 bundle 不负责迁移。
110
116
  - Team 管理的 Agent Session 使用 `danger-full-access`。只在可信 Workspace 中使用。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wowyuarm/dsh-agent-team",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "A persistent agent team for long-running collaboration in DeepSeek Harness",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,7 +38,6 @@
38
38
  "client": {
39
39
  "platform": "web",
40
40
  "inject": [
41
- "@deepseek-ai/dsh-client-runtime",
42
41
  "@deepseek-ai/dsh-api-remotes",
43
42
  "@deepseek-ai/dsh-client-ui-sidebar",
44
43
  "@deepseek-ai/dsh-client-ui-layout",
@@ -51,7 +50,7 @@
51
50
  }
52
51
  },
53
52
  "dependencies": {
54
- "@deepseek-ai/dsh-storage-sqlite": ">=0.1.1-rc.2 <0.2.0",
53
+ "@deepseek-ai/dsh-storage-sqlite": ">=0.1.2-rc.1 <0.2.0",
55
54
  "zod": "^4.4.3"
56
55
  },
57
56
  "devDependencies": {
@@ -122,45 +121,48 @@
122
121
  },
123
122
  "peerDependencies": {
124
123
  "@deepseek-ai/cordis": "^4.0.1",
125
- "@deepseek-ai/dsh-agent": ">=0.1.1-rc.2 <0.2.0",
126
- "@deepseek-ai/dsh-agent-default-model": ">=0.1.1-rc.2 <0.2.0",
127
- "@deepseek-ai/dsh-agent-presets": ">=0.1.1-rc.2 <0.2.0",
128
- "@deepseek-ai/dsh-agent-tool-presentation": ">=0.1.1-rc.2 <0.2.0",
129
- "@deepseek-ai/dsh-api-remotes": ">=0.1.1-rc.2 <0.2.0",
130
- "@deepseek-ai/dsh-brand": ">=0.1.1-rc.2 <0.2.0",
131
- "@deepseek-ai/dsh-client-locale": ">=0.1.1-rc.2 <0.2.0",
132
- "@deepseek-ai/dsh-client-runtime": ">=0.1.1-rc.2 <0.2.0",
133
- "@deepseek-ai/dsh-client-ui-conversation": ">=0.1.1-rc.2 <0.2.0",
134
- "@deepseek-ai/dsh-client-ui-input-trigger": ">=0.1.1-rc.2 <0.2.0",
135
- "@deepseek-ai/dsh-client-ui-layout": ">=0.1.1-rc.2 <0.2.0",
136
- "@deepseek-ai/dsh-client-ui-primitives": ">=0.1.1-rc.2 <0.2.0",
137
- "@deepseek-ai/dsh-client-ui-settings-general": ">=0.1.1-rc.2 <0.2.0",
138
- "@deepseek-ai/dsh-client-ui-sidebar": ">=0.1.1-rc.2 <0.2.0",
139
- "@deepseek-ai/dsh-client-ui-slots": ">=0.1.1-rc.2 <0.2.0",
140
- "@deepseek-ai/dsh-client-ui-workspace": ">=0.1.1-rc.2 <0.2.0",
141
- "@deepseek-ai/dsh-command-compact": ">=0.1.1-rc.2 <0.2.0",
142
- "@deepseek-ai/dsh-compaction": ">=0.1.1-rc.2 <0.2.0",
143
- "@deepseek-ai/dsh-home-paths": ">=0.1.1-rc.2 <0.2.0",
144
- "@deepseek-ai/dsh-invariants": ">=0.1.1-rc.2 <0.2.0",
145
- "@deepseek-ai/dsh-llm": ">=0.1.1-rc.2 <0.2.0",
146
- "@deepseek-ai/dsh-sandbox-policy": ">=0.1.1-rc.2 <0.2.0",
147
- "@deepseek-ai/dsh-scope": ">=0.1.1-rc.2 <0.2.0",
148
- "@deepseek-ai/dsh-session": ">=0.1.1-rc.2 <0.2.0",
149
- "@deepseek-ai/dsh-session-persistence": ">=0.1.1-rc.2 <0.2.0",
150
- "@deepseek-ai/dsh-skill-filesystem": ">=0.1.1-rc.2 <0.2.0",
151
- "@deepseek-ai/dsh-storage-domain": ">=0.1.1-rc.2 <0.2.0",
152
- "@deepseek-ai/dsh-token-meter": ">=0.1.1-rc.2 <0.2.0",
153
- "@deepseek-ai/dsh-tool-bash": ">=0.1.1-rc.2 <0.2.0",
154
- "@deepseek-ai/dsh-tool-fs": ">=0.1.1-rc.2 <0.2.0",
155
- "@deepseek-ai/dsh-tool-fs-search": ">=0.1.1-rc.2 <0.2.0",
156
- "@deepseek-ai/dsh-tool-jobs": ">=0.1.1-rc.2 <0.2.0",
157
- "@deepseek-ai/dsh-tool-pwsh": ">=0.1.1-rc.2 <0.2.0",
158
- "@deepseek-ai/dsh-tool-skill": ">=0.1.1-rc.2 <0.2.0",
159
- "@deepseek-ai/dsh-tool-todo": ">=0.1.1-rc.2 <0.2.0",
160
- "@deepseek-ai/dsh-tool-web": ">=0.1.1-rc.2 <0.2.0",
161
- "@deepseek-ai/dsh-tools": ">=0.1.1-rc.2 <0.2.0",
162
- "@deepseek-ai/dsh-typert-protocol": ">=0.1.1-rc.2 <0.2.0",
163
- "@deepseek-ai/dsh-workspace": ">=0.1.1-rc.2 <0.2.0",
124
+ "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0",
125
+ "@deepseek-ai/dsh-agent-default-model": ">=0.1.2-rc.1 <0.2.0",
126
+ "@deepseek-ai/dsh-agent-presets": ">=0.1.2-rc.1 <0.2.0",
127
+ "@deepseek-ai/dsh-agent-tool-presentation": ">=0.1.2-rc.1 <0.2.0",
128
+ "@deepseek-ai/dsh-api-remotes": ">=0.1.2-rc.1 <0.2.0",
129
+ "@deepseek-ai/dsh-api-session-controller": ">=0.1.2-rc.1 <0.2.0",
130
+ "@deepseek-ai/dsh-api-workspace-controller": ">=0.1.2-rc.1 <0.2.0",
131
+ "@deepseek-ai/dsh-brand": ">=0.1.2-rc.1 <0.2.0",
132
+ "@deepseek-ai/dsh-client-locale": ">=0.1.2-rc.1 <0.2.0",
133
+ "@deepseek-ai/dsh-client-ui-conversation": ">=0.1.2-rc.1 <0.2.0",
134
+ "@deepseek-ai/dsh-client-ui-input-trigger": ">=0.1.2-rc.1 <0.2.0",
135
+ "@deepseek-ai/dsh-client-ui-layout": ">=0.1.2-rc.1 <0.2.0",
136
+ "@deepseek-ai/dsh-client-ui-primitives": ">=0.1.2-rc.1 <0.2.0",
137
+ "@deepseek-ai/dsh-client-ui-renderer": ">=0.1.2-rc.1 <0.2.0",
138
+ "@deepseek-ai/dsh-client-ui-settings-general": ">=0.1.2-rc.1 <0.2.0",
139
+ "@deepseek-ai/dsh-client-ui-sidebar": ">=0.1.2-rc.1 <0.2.0",
140
+ "@deepseek-ai/dsh-client-ui-slots": ">=0.1.2-rc.1 <0.2.0",
141
+ "@deepseek-ai/dsh-client-ui-workspace": ">=0.1.2-rc.1 <0.2.0",
142
+ "@deepseek-ai/dsh-command-compact": ">=0.1.2-rc.1 <0.2.0",
143
+ "@deepseek-ai/dsh-compaction": ">=0.1.2-rc.1 <0.2.0",
144
+ "@deepseek-ai/dsh-home-paths": ">=0.1.2-rc.1 <0.2.0",
145
+ "@deepseek-ai/dsh-invariants": ">=0.1.2-rc.1 <0.2.0",
146
+ "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0",
147
+ "@deepseek-ai/dsh-sandbox-policy": ">=0.1.2-rc.1 <0.2.0",
148
+ "@deepseek-ai/dsh-scope": ">=0.1.2-rc.1 <0.2.0",
149
+ "@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0",
150
+ "@deepseek-ai/dsh-session-persistence": ">=0.1.2-rc.1 <0.2.0",
151
+ "@deepseek-ai/dsh-skill": ">=0.1.2-rc.1 <0.2.0",
152
+ "@deepseek-ai/dsh-skill-filesystem": ">=0.1.2-rc.1 <0.2.0",
153
+ "@deepseek-ai/dsh-storage-domain": ">=0.1.2-rc.1 <0.2.0",
154
+ "@deepseek-ai/dsh-token-meter": ">=0.1.2-rc.1 <0.2.0",
155
+ "@deepseek-ai/dsh-tool-bash": ">=0.1.2-rc.1 <0.2.0",
156
+ "@deepseek-ai/dsh-tool-fs": ">=0.1.2-rc.1 <0.2.0",
157
+ "@deepseek-ai/dsh-tool-fs-search": ">=0.1.2-rc.1 <0.2.0",
158
+ "@deepseek-ai/dsh-tool-jobs": ">=0.1.2-rc.1 <0.2.0",
159
+ "@deepseek-ai/dsh-tool-pwsh": ">=0.1.2-rc.1 <0.2.0",
160
+ "@deepseek-ai/dsh-tool-skill": ">=0.1.2-rc.1 <0.2.0",
161
+ "@deepseek-ai/dsh-tool-todo": ">=0.1.2-rc.1 <0.2.0",
162
+ "@deepseek-ai/dsh-tool-web": ">=0.1.2-rc.1 <0.2.0",
163
+ "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0",
164
+ "@deepseek-ai/dsh-typert-protocol": ">=0.1.2-rc.1 <0.2.0",
165
+ "@deepseek-ai/dsh-workspace": ">=0.1.2-rc.1 <0.2.0",
164
166
  "react": "^18.2.0"
165
167
  },
166
168
  "keywords": [
@@ -18,6 +18,8 @@ Every operation record carries a positive global sequence, unique operation and
18
18
 
19
19
  Member creation commits one stable Member/session/Workspace/preset/private-memory identity before unpublished Agent setup. Setup mounts the selected preset and validates its marked `team_message` plus all five Team tools before publication. Failure leaves only that Member unavailable. Suspend waits for the owned `AgentHandle` to stop; resume and Host remount restore the exact persisted session.
20
20
 
21
+ Archival is the reversible third state between suspend and remove, for Members and Channels alike. `archiveMember` commits `team/member-archived`, disposes the live session while keeping private memory and the Session log on disk, archives the Session from grouping surfaces, and releases the Member's active Claims with public `claims_released` Activities plus Attention/marker cleanup. `archiveChannel` commits `team/channel-archived` with the same release shape across every owner on the Channel's Threads. Memberships survive both forms — hidden state, not departure. Archived entities are gone from every Team API surface: projections, ref resolution (their Task refs stop resolving, so message bodies render plain text), and ref-addressed reads (`readThread`/`threadHistory`/`threadObservations`/`listClaims` reject with an explicit archived error) — while the facts stay complete in the ledger for replay and a future restore; that boundary is the archival-vs-remove divide. Removal from archived stays available as the data hygiene path; there is no restore entry point yet (mirroring archived dsh sessions).
22
+
21
23
  Members optionally carry durable capability intent (`capabilities.tools.allow`, `capabilities.skills.allow`). It flows verbatim through every lifecycle operation, replays unchanged after Host restart, and commits without known-name validation so Harness upgrades can never break old ledgers; divergence from known names surfaces at activation as derived, non-persisted `capabilityWarnings`. `tools.allow` is a deliberate interface reservation (no UI write path today) that future Runtime Revision manifest orchestration depends on. Edits follow absent-clears semantics like `model`: a caller that does not manage capabilities must echo the stored value back or its edit clears the override.
22
24
 
23
25
  Activation applies `tools.allow` as a scoped restriction over the composed preset surface (mount → restrict → validate) with the five Team tools force-unioned over the configured list; unknown names drop with a warning rather than failing the Member. A live allow-list edit swaps the restriction at a turn boundary in the same Session — idle Members apply immediately, and an edit racing a running turn waits for it while later lifecycle operations queue behind the wait. Restriction failures isolate to that Member's activation diagnostic.
@@ -18,6 +18,8 @@ Service 使用 `ctx.storageDomain`、`ctx.workspaceRegistry`、`ctx.agents`、`c
18
18
 
19
19
  创建 Member 时,先提交稳定的 Member/session/Workspace/preset/private-memory 身份,再执行 unpublished Agent setup。Setup 挂载指定 preset,并在发布前检查带 marker 的 `team_message` 和全部五个 Team tools。失败只把该 Member 标为 unavailable。Suspend 等待所属 `AgentHandle` 完全停止;resume 和 Host remount 恢复同一个持久 session。
20
20
 
21
+ 归档(archival)是介于 suspend 与 remove 之间的可逆第三态,Member 与 Channel 通用。`archiveMember` 提交 `team/member-archived`,dispose 活跃 session(私有记忆与 Session log 留在磁盘),把 Session 从分组面归档,并释放该 Member 的活跃 Claim(公开 `claims_released` Activity + Attention/marker 清理)。`archiveChannel` 提交 `team/channel-archived`,对该频道全部 Threads 上所有 owner 做同样的释放。两种归档都保留 Memberships——是隐藏而非离开。归档实体在所有 Team API 面上"默认不存在":投影、ref 解析(其 Task ref 不再解析,消息正文渲染为纯文本)、按 ref 的读取(`readThread`/`threadHistory`/`threadObservations`/`listClaims` 以明确的 archived 错误拒绝)——而事实在 ledger 中完整保留,供重放与未来恢复;这条边界正是归档与 remove 的分界。从归档态 remove 仍可用(数据卫生路径);本轮有意不提供恢复入口(对齐 dsh session 归档现状)。
22
+
21
23
  Member 可携带持久能力意图(`capabilities.tools.allow`、`capabilities.skills.allow`)。它随全部 lifecycle operation 原样流转,Host restart 后原样重放,commit 时不做已知名校验(Harness 升级不会破坏旧 ledger);与已知名的偏差在 activation 时派生为不持久化的 `capabilityWarnings`。`tools.allow` 是有意的接口预留(当前无 UI 写入路径),供后续 Runtime Revision manifest 编排依赖。编辑语义与 `model` 一致(absent 即清除):不管理 capabilities 的调用方必须回传已存储的值,否则其编辑会清掉该覆盖。
22
24
 
23
25
  Activation 把 `tools.allow` 作为 scoped restriction 应用在已组合的 preset 面上(mount → restrict → validate),五个 Team tools 在配置之上强制并集;未知名 drop + warning,不使 Member 失败。对 live Member 的 allow-list 编辑在 turn 边界同 Session 换装 restriction——idle 立即生效,与 running turn 竞争的编辑等待其结束,后续 lifecycle 操作在该等待之后排队。restriction 失败只隔离为该 Member 的 activation diagnostic。
@@ -7,6 +7,8 @@ description: Create, install, revise, or retire this Member's private skills, in
7
7
 
8
8
  A skill preserves a reusable way of working. It is not a memory, a personal preference, or a record of one event.
9
9
 
10
+ Skills are private to this Member — no other human or agent can read this directory. When a Team message or your session output needs the method, restate the relevant content there; citing a skill by name does not transfer it to anyone.
11
+
10
12
  ## Decide
11
13
 
12
14
  Create or revise a skill when the method has been demonstrated in real work and will make later work clearer or more reliable. Keep one-off work, changing facts, and personal continuity in this Member's notes and memory index instead.