dsh-team 0.2.1 → 0.2.3
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.md +44 -98
- package/{lib → dist}/client.js +296 -296
- package/dist/client.ts.map +1 -0
- package/dsh-manifest.json +40 -0
- package/package.json +9 -11
- /package/{lib → dist}/client.js.map +0 -0
- /package/{lib → dist}/index.d.ts +0 -0
- /package/{lib → dist}/index.js +0 -0
package/README.md
CHANGED
|
@@ -4,89 +4,60 @@
|
|
|
4
4
|
|
|
5
5
|
给 dsh 加一支可以指挥的团队:主会话作为 **leader**,可以派生若干**常驻队友(teammate)**,队友有自己的会话、记忆与工具;成员之间通过**邮箱**互发消息(消息成为收件人的下一个 turn),共享一份**任务列表**;会话视图环里多出一个 **Agent 团队**页签,把花名册、协作关系与消息流画成一间能看见的协作室。设计理念参考 Claude Code 的 agent team(共享任务列表 + 邮箱直连 + 成员自协调),实现完全走 dsh 的能力缝。
|
|
6
6
|
|
|
7
|
-
整个能力是**一个包、一行装配**:宿主半边(`dsh-team`)与浏览器半边(`dsh-team/client`)从同一个 `package.json`
|
|
7
|
+
整个能力是**一个包、一行装配**:宿主半边(`dsh-team`)与浏览器半边(`dsh-team/client`)从同一个 `package.json` 构建。仓库根放 `dsh-manifest.json`(声明插件元数据:入口、`dsh.bundle` patch 与 `dsh.client` 注入),预构建产物在 `dist/`(宿主 ESM `dist/index.js`、浏览器闭包工厂 `dist/client.js`),npm 包与仓库都直接携带这些文件,克隆即装、无需现场构建。
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
- **具名常驻队友**:`team_spawn` 把一个 `ctx.subagents` 的 continuable 子代变成团队成员——会话、日志、冷恢复、活动驻留与中断都由 harness 负责,队友不占会话树。
|
|
12
|
-
- **成员邮箱**:`team_send` 把消息变成收件人的下一个 turn;投递由 leader 权威执行,队友之间的转发有会话预算。
|
|
13
|
-
- **共享任务列表**:`team_task` 建 / 改 / 结案,`team_list` 看花名册、任务与最近流量。
|
|
14
|
-
- **虚拟工作区**:共享黑板 + 每人一块私有便笺(`team_note` / `team_board`),落进 storage domain,跨重启、不占 turn。
|
|
15
|
-
- **协作室页签**:会话视图环里的第三个页签,实时展示成员座位、走动、消息流、工作区与任务板。
|
|
16
|
-
|
|
17
|
-
## 设计
|
|
18
|
-
|
|
19
|
-
### 队友 = continuable subagent
|
|
20
|
-
|
|
21
|
-
队友必须有会话(要记忆、要日志、要能恢复),所以问题不是"别建会话",而是"别建一个普通会话"。`ctx.subagents.startContinuable()` 建的子代天然满足:
|
|
22
|
-
|
|
23
|
-
- `childSessionMeta` 打上 `origin: 'subagent'` → 会话树不展示,也不参与通用 Host 路由;
|
|
24
|
-
- durable child id + descriptor 由缝持有 → dsh 重启后队友**冷恢复**,团队不丢;
|
|
25
|
-
- 队友的 transcript 仍可读:内置的 subagent 目录里它们是 `continuable` 子代,标签是 `名字 (角色)`,协作室里点一个成员就打开。
|
|
26
|
-
|
|
27
|
-
本插件在这之上只补三样 subagent 缝故意不提供的东西:**具名成员**、**成员之间的投递**、**一份共享任务列表**。
|
|
28
|
-
|
|
29
|
-
### 投递权威永远是 leader 的
|
|
30
|
-
|
|
31
|
-
`ctx.subagents.followup()` 只认 durable 直接父级的权威,而 leader 正是每个队友的直接父级。所以 peer↔peer 消息也是"由 leader 权威执行、消息源里写明真实发送者"的一次投递:
|
|
32
|
-
|
|
33
|
-
- `relation` 决定**谁可以要求**投递(`managed` 只能发给 leader,`peer` 可以直接发给任何成员),
|
|
34
|
-
- 从不决定**谁来执行**投递(永远是 leader 权威)。
|
|
35
|
-
|
|
36
|
-
消息落到收件人自己的日志里,source 是 `{ kind: 'team-message', form: 'relay', senderSessionId, senderName, chainId, hop }`——发送者归属与会话深度都随持久化一起留存。
|
|
37
|
-
|
|
38
|
-
### 队友之间不会聊到天荒地老
|
|
39
|
-
|
|
40
|
-
`team_send` 把消息变成对方的下一个 turn——两个 peer 互相礼貌回复就能永远转下去,而这一切**不在用户的主对话里**,没人踩刹车。所以投递带**会话预算**,是机械约束而不是提示词祈祷:
|
|
41
|
-
|
|
42
|
-
- **一次对话(chain)**:leader 每发一条消息就开一条新链(`hop = 0`);队友发消息时**继承它当前正在处理的那条投递**的链,`hop + 1`。所以"leader 交办 → A 问 B → B 答 A"是同一次对话,而不是三条互不相干的消息。
|
|
43
|
-
- **深度上限**(`maxChainHops`,默认 4):一次对话在队友之间最多转这么多手,超了 `team_send` 直接拒绝。
|
|
44
|
-
- **同一有序对不许来回磨**(`maxChainRoundTrips`,默认 2):一条链里 A→B 最多这么多条。
|
|
45
|
-
- **一字不差的重发直接拒**:同一条链里同一有序对重复同样的内容,对收件人不产生任何新信息。
|
|
46
|
-
- **出口永远开着**:以上三条**只管队友→队友**。发给 leader 从不拒绝。所以预算不会把"有话要说"的成员困住,它只是把话逼回收敛点——拒绝语本身就是"settle it yourself and report to the leader"。
|
|
47
|
-
- **为什么 leader 那一侧不设限**:leader 的每个 turn 都在用户看得见、能中断的主对话里,链走到 leader 就已经收敛了。真正危险的是**看不见的**横向循环。
|
|
48
|
-
- **深度是持久事实**:`hop` 写进投递的 `team-message` 源里,跟着收件人的日志一起存,所以协作室的气泡上能看到"第 n 跳"——第 3 跳起变警告色。深度不是只有拒绝时才存在的东西,它一直是可观测的。
|
|
49
|
-
|
|
50
|
-
链的执行状态(谁在处理哪条链、每条边发过几次)是**进程内**的,随 leader 的 live team 一起建立与丢弃,最多记住最近 64 条链;重启后重新开始——重启本身就断链。
|
|
51
|
-
|
|
52
|
-
### 两个虚拟工作区
|
|
53
|
-
|
|
54
|
-
队友做完一件事,除了发消息告诉别人,还应该有个地方**把它写下来**。所以团队有两个**虚拟**工作区——它们不是文件,也不在用户的真实工作目录里:
|
|
55
|
-
|
|
56
|
-
- **共享黑板**:全队可读可写的具名条目(结论、约定、交接物)。
|
|
57
|
-
- **私有便笺**:每个成员一块只有自己能读写的板子,用来把自己的状态带过 turn 边界。
|
|
9
|
+
## 安装
|
|
58
10
|
|
|
59
|
-
|
|
11
|
+
npm 预构建包,一行装配:
|
|
60
12
|
|
|
61
|
-
|
|
13
|
+
```sh
|
|
14
|
+
dsh plugin --profile web add dsh-team
|
|
15
|
+
```
|
|
62
16
|
|
|
63
|
-
|
|
17
|
+
也可以克隆源码构建后挂 link:
|
|
64
18
|
|
|
65
|
-
|
|
19
|
+
```sh
|
|
20
|
+
git clone https://github.com/huxint/dsh-team.git
|
|
21
|
+
cd dsh-team
|
|
22
|
+
pnpm install
|
|
23
|
+
pnpm run build
|
|
24
|
+
dsh plugin --profile web add link:$PWD
|
|
25
|
+
```
|
|
66
26
|
|
|
67
|
-
|
|
27
|
+
包自带 `cordis.patch.yml`(`package.json` 里的 `dsh.bundle.patch` 指向它),`plugin add` 装进去即生效。web profile 的 base bundle(`@deepseek-ai/dsh-base`)已经带齐所需的 continuable subagent provider、session projection 与持久化;虚拟工作区还需要挂载 storage-domain(`@deepseek-ai/dsh-web-app` 已组合),没有它团队其余能力照常,只是 `team_note` / `team_board` 不会注册。
|
|
68
28
|
|
|
69
|
-
|
|
29
|
+
验证装配与启动:
|
|
70
30
|
|
|
71
|
-
|
|
31
|
+
```sh
|
|
32
|
+
dsh --profile web --dump-config | grep 'id: team'
|
|
33
|
+
dsh --profile web
|
|
34
|
+
```
|
|
72
35
|
|
|
73
|
-
|
|
74
|
-
- **身份提示段落同样分得清**:花名册读不到时,段落会说"团队还在、主会话没加载、把活收个尾写进黑板";真正被解雇的成员才会看到"团队已经不在了"。段落每次组装都重算,所以 leader 一回来,下一步就自动恢复成完整花名册。
|
|
75
|
-
- **工作区不受影响**:队友的席位(`leaderId` / `memberId` / 名字)是**组装时就捕获**的,不需要每次调用回去问 leader。所以 `team_note` / `team_board` 在 leader 不在场时照常可写可读——这正是把它做成 durable 而不是会话日志的收益。
|
|
36
|
+
在会话里让主会话调用 `team_spawn` 派生第一名队友,视图环里就会出现 `Agent 团队` 页签。卸载:
|
|
76
37
|
|
|
77
|
-
|
|
38
|
+
```sh
|
|
39
|
+
dsh plugin --profile web remove dsh-team
|
|
40
|
+
```
|
|
78
41
|
|
|
79
|
-
|
|
42
|
+
## 能力一览
|
|
80
43
|
|
|
81
|
-
-
|
|
82
|
-
- `
|
|
44
|
+
- **具名常驻队友**:`team_spawn` 把一个 `ctx.subagents` 的 continuable 子代变成团队成员——会话、日志、冷恢复、活动驻留与中断都由 harness 负责,队友不占会话树。
|
|
45
|
+
- **成员邮箱**:`team_send` 把消息变成收件人的下一个 turn;投递由 leader 权威执行,队友之间的转发有会话预算。
|
|
46
|
+
- **共享任务列表**:`team_task` 建 / 改 / 结案,`team_list` 看花名册、任务与最近流量。
|
|
47
|
+
- **虚拟工作区**:共享黑板 + 每人一块私有便笺(`team_note` / `team_board`),落进 storage domain,跨重启、不占 turn。
|
|
48
|
+
- **协作室页签**:会话视图环里的第三个页签,实时展示成员座位、走动、消息流、工作区与任务板。
|
|
83
49
|
|
|
84
|
-
|
|
50
|
+
## 设计
|
|
85
51
|
|
|
86
|
-
|
|
52
|
+
实现完全走 dsh 的能力缝,不造新运行时:
|
|
87
53
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
54
|
+
- **队友 = continuable subagent**:`team_spawn` 用 `ctx.subagents.startContinuable()` 建具名常驻子代——会话、日志、冷恢复、活动驻留与中断全由 harness 负责,队友不进会话树;transcript 仍可读(内置 subagent 目录里标签是 `名字 (角色)`)。插件只补缝里没有的三样:**具名成员、成员投递、共享任务列表**。
|
|
55
|
+
- **投递权威永远是 leader 的**:`followup()` 只认直接父级,leader 正是每个队友的直接父级,所以 peer↔peer 消息也是"由 leader 权威执行、消息源写明真实发送者"的一次投递;`relation` 只决定谁可以要求投递,从不决定谁来执行。消息源(`team-message`,带 `senderSessionId` / `chainId` / `hop`)随日志持久化。
|
|
56
|
+
- **会话预算防横向循环**:`team_send` 把消息变成对方的下一个 turn,peer 互相回复能无限转下去,所以投递带机械约束——链深度(`maxChainHops`,默认 4)、同一有序对来回数(`maxChainRoundTrips`,默认 2)、一字不差的重发直接拒;这些只管队友→队友,发给 leader 从不拒绝。`hop` 随消息源持久化,协作室气泡可见。
|
|
57
|
+
- **两个虚拟工作区**:共享黑板 + 每人一块私有便笺,落 `ctx.storageDomain`,先落盘、跨重启、不占任何人的 turn——留笔记不花会话预算,也是防死循环的正向出口。
|
|
58
|
+
- **leader 不在场,团队不丢**:投递随 live leader 一起停,但拒绝语分得清 `LEADER_AWAY` / `NO_TEAM`;队友席位组装时就捕获,工作区照常可读写,leader 一回来即恢复。
|
|
59
|
+
- **只折叠一次**:团队持久事实都骑在 harness 已认识的词汇上(团队工具 `tool/result` 的 meta、`user/message` 的 `team-message` 源),`src/fold.ts` 是唯一折叠实现,`src/projection.ts` 注册成 `team` projection,宿主算一次、框架推给浏览器。
|
|
60
|
+
- **工具作用域**:leader 的 6 个工具在 `agent/created` 时注册进该 agent 自己的 ctx;队友侧在 `registerContinuableSetup` 的未发布组装窗口里注册 `team_send` / `team_list` 与身份提示段落。
|
|
90
61
|
|
|
91
62
|
## 模型看到的工具
|
|
92
63
|
|
|
@@ -147,35 +118,6 @@ rc.6 的 `Session.append` 无法把事件标成 `ignorable`,因此**仓库外
|
|
|
147
118
|
|
|
148
119
|
导航进队友会话时页签不会消失:跟随器认得"当前会话是这支团队的成员",只把"你在这儿"的标记挪过去,同时改订 **leader 的 `team` 投影**——被读的那个队友自己折不出团队,只有盯着 leader,房间才既是活的、又能在团队解散的那一刻关掉。leader 本身没加载时,房间保留它最后看到的样子。
|
|
149
120
|
|
|
150
|
-
## 安装
|
|
151
|
-
|
|
152
|
-
克隆、构建,然后挂进 web profile:
|
|
153
|
-
|
|
154
|
-
```sh
|
|
155
|
-
git clone https://github.com/huxint/dsh-team.git
|
|
156
|
-
cd dsh-team
|
|
157
|
-
pnpm install
|
|
158
|
-
pnpm run build
|
|
159
|
-
dsh plugin --profile web add link:$PWD
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
包自带 `cordis.patch.yml`(`package.json` 里的 `dsh.bundle.patch` 指向它),`plugin add` 装进去即生效。web profile 的 base bundle(`@deepseek-ai/dsh-base`)已经带齐所需的 continuable subagent provider、session projection 与持久化;虚拟工作区还需要挂载 storage-domain(`@deepseek-ai/dsh-web-app` 已组合),没有它团队其余能力照常,只是 `team_note` / `team_board` 不会注册。
|
|
163
|
-
|
|
164
|
-
验证装配与启动:
|
|
165
|
-
|
|
166
|
-
```sh
|
|
167
|
-
dsh --profile web --dump-config | grep 'id: team'
|
|
168
|
-
dsh --profile web
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
在会话里让主会话调用 `team_spawn` 派生第一名队友,视图环里就会出现 `Agent 团队` 页签。
|
|
172
|
-
|
|
173
|
-
改完源码重跑 `pnpm run build`:宿主行要重启 dsh,客户端 bundle 刷新页面即可。卸载:
|
|
174
|
-
|
|
175
|
-
```sh
|
|
176
|
-
dsh plugin --profile web remove dsh-team
|
|
177
|
-
```
|
|
178
|
-
|
|
179
121
|
## 配置(`cordis.patch.yml` 可覆写)
|
|
180
122
|
|
|
181
123
|
| 键 | 默认 | 含义 |
|
|
@@ -202,13 +144,17 @@ dsh plugin --profile web remove dsh-team
|
|
|
202
144
|
|
|
203
145
|
## 开发
|
|
204
146
|
|
|
147
|
+
改完源码重跑 `pnpm run build`:宿主行要重启 dsh,客户端 bundle 刷新页面即可。
|
|
148
|
+
|
|
205
149
|
```sh
|
|
206
150
|
pnpm run typecheck # 源码 + 测试
|
|
207
151
|
pnpm run test # 折叠 / 投影 / 服务授权矩阵 / 工具契约 / 队友组装 / 会话预算 / 虚拟工作区 / 房间几何与走路 / 客户端跟随与页签 / 协作室与抽屉
|
|
208
|
-
pnpm run build # 宿主 ESM + 浏览器闭包工厂(构建期强制客户端 bundle
|
|
152
|
+
pnpm run build # 宿主 ESM + 浏览器闭包工厂(构建期强制客户端 bundle 纯净性),产物进 dist/
|
|
209
153
|
pnpm run check # 三件一起
|
|
210
154
|
```
|
|
211
155
|
|
|
156
|
+
构建产物(`dist/`)与 `dsh-manifest.json` 是提交进仓库的:仓库本身即插件规范要求的「元数据声明 + 预构建产物」形态,改完源码记得把新的 `dist/` 一起提交。
|
|
157
|
+
|
|
212
158
|
构建与类型针对 npm 上的 `@deepseek-ai/dsh@0.1.0-rc.6`。遵循 harness 的插件纪律:注册即 effect、能力缝三角色、事件全 JSON 整值、模型可见即落日志、配置无硬编码。
|
|
213
159
|
|
|
214
160
|
## License
|
package/{lib → dist}/client.js
RENAMED
|
@@ -1041,331 +1041,331 @@ window.__ModuleLoader__.load({
|
|
|
1041
1041
|
document.head.appendChild(tag);
|
|
1042
1042
|
}
|
|
1043
1043
|
var TeamStage_module_css_default = {
|
|
1044
|
-
"
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"
|
|
1049
|
-
"
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1053
|
-
"composerAway": "nesYQG_composerAway",
|
|
1054
|
-
"crewCuff": "nesYQG_crewCuff",
|
|
1055
|
-
"propLampIdle": "nesYQG_propLampIdle",
|
|
1056
|
-
"propLampLive": "nesYQG_propLampLive",
|
|
1057
|
-
"coolerBubble": "nesYQG_coolerBubble",
|
|
1058
|
-
"deskPlant": "nesYQG_deskPlant",
|
|
1059
|
-
"crewEye": "nesYQG_crewEye",
|
|
1060
|
-
"coolerCabinetEdge": "nesYQG_coolerCabinetEdge",
|
|
1061
|
-
"crewCansCup": "nesYQG_crewCansCup",
|
|
1062
|
-
"coolerDripWell": "nesYQG_coolerDripWell",
|
|
1063
|
-
"chair": "nesYQG_chair",
|
|
1064
|
-
"chairCasters": "nesYQG_chairCasters",
|
|
1065
|
-
"propSeam": "nesYQG_propSeam",
|
|
1066
|
-
"barHint": "nesYQG_barHint",
|
|
1067
|
-
"chairSpokes": "nesYQG_chairSpokes",
|
|
1068
|
-
"team-bubble": "nesYQG_team-bubble",
|
|
1069
|
-
"crewSleeve": "nesYQG_crewSleeve",
|
|
1070
|
-
"team-stage-in": "nesYQG_team-stage-in",
|
|
1071
|
-
"column": "nesYQG_column",
|
|
1072
|
-
"floraPot": "nesYQG_floraPot",
|
|
1073
|
-
"feedTitle": "nesYQG_feedTitle",
|
|
1074
|
-
"crewMelon": "nesYQG_crewMelon",
|
|
1075
|
-
"listening": "nesYQG_listening",
|
|
1076
|
-
"crown": "nesYQG_crown",
|
|
1077
|
-
"cameo": "nesYQG_cameo",
|
|
1078
|
-
"catTail": "nesYQG_catTail",
|
|
1079
|
-
"crew": "nesYQG_crew",
|
|
1080
|
-
"team-screen": "nesYQG_team-screen",
|
|
1081
|
-
"floraPotShade": "nesYQG_floraPotShade",
|
|
1044
|
+
"screenApp": "nesYQG_screenApp",
|
|
1045
|
+
"books": "nesYQG_books",
|
|
1046
|
+
"crewCansBand": "nesYQG_crewCansBand",
|
|
1047
|
+
"floraGlaze": "nesYQG_floraGlaze",
|
|
1048
|
+
"boardPens": "nesYQG_boardPens",
|
|
1049
|
+
"blankHint": "nesYQG_blankHint",
|
|
1050
|
+
"crewLimbFront": "nesYQG_crewLimbFront",
|
|
1051
|
+
"coolerSvg": "nesYQG_coolerSvg",
|
|
1052
|
+
"crewJacket": "nesYQG_crewJacket",
|
|
1082
1053
|
"wallBack": "nesYQG_wallBack",
|
|
1083
|
-
"
|
|
1084
|
-
"
|
|
1085
|
-
"
|
|
1054
|
+
"wallLeft": "nesYQG_wallLeft",
|
|
1055
|
+
"floraShade": "nesYQG_floraShade",
|
|
1056
|
+
"team-screen": "nesYQG_team-screen",
|
|
1057
|
+
"crewSpout": "nesYQG_crewSpout",
|
|
1058
|
+
"mug": "nesYQG_mug",
|
|
1059
|
+
"crewBadge": "nesYQG_crewBadge",
|
|
1060
|
+
"team-say-in": "nesYQG_team-say-in",
|
|
1061
|
+
"stage": "nesYQG_stage",
|
|
1062
|
+
"person": "nesYQG_person",
|
|
1063
|
+
"chairLift": "nesYQG_chairLift",
|
|
1064
|
+
"team-doze": "nesYQG_team-doze",
|
|
1065
|
+
"floraSoil": "nesYQG_floraSoil",
|
|
1066
|
+
"neck": "nesYQG_neck",
|
|
1067
|
+
"crewVest": "nesYQG_crewVest",
|
|
1068
|
+
"shelfPlant": "nesYQG_shelfPlant",
|
|
1069
|
+
"team-drawer-in": "nesYQG_team-drawer-in",
|
|
1070
|
+
"crewPackTrim": "nesYQG_crewPackTrim",
|
|
1071
|
+
"logRow": "nesYQG_logRow",
|
|
1072
|
+
"chairSpine": "nesYQG_chairSpine",
|
|
1073
|
+
"logKind": "nesYQG_logKind",
|
|
1086
1074
|
"floraRimLip": "nesYQG_floraRimLip",
|
|
1087
|
-
"
|
|
1088
|
-
"
|
|
1089
|
-
"
|
|
1090
|
-
"
|
|
1091
|
-
"
|
|
1092
|
-
"
|
|
1093
|
-
"
|
|
1094
|
-
"
|
|
1095
|
-
"
|
|
1096
|
-
"
|
|
1097
|
-
"
|
|
1098
|
-
"floraBloomHeart": "nesYQG_floraBloomHeart",
|
|
1099
|
-
"dockCount": "nesYQG_dockCount",
|
|
1100
|
-
"glare": "nesYQG_glare",
|
|
1101
|
-
"propPaper": "nesYQG_propPaper",
|
|
1102
|
-
"crewHoodSheen": "nesYQG_crewHoodSheen",
|
|
1103
|
-
"load": "nesYQG_load",
|
|
1104
|
-
"propTop": "nesYQG_propTop",
|
|
1105
|
-
"pendantGlow": "nesYQG_pendantGlow",
|
|
1075
|
+
"papers": "nesYQG_papers",
|
|
1076
|
+
"plank": "nesYQG_plank",
|
|
1077
|
+
"floraPot": "nesYQG_floraPot",
|
|
1078
|
+
"propHandle": "nesYQG_propHandle",
|
|
1079
|
+
"team-halo": "nesYQG_team-halo",
|
|
1080
|
+
"monitor": "nesYQG_monitor",
|
|
1081
|
+
"crewBelt": "nesYQG_crewBelt",
|
|
1082
|
+
"crewScarf": "nesYQG_crewScarf",
|
|
1083
|
+
"crewHair": "nesYQG_crewHair",
|
|
1084
|
+
"deskApron": "nesYQG_deskApron",
|
|
1085
|
+
"crewHoodShade": "nesYQG_crewHoodShade",
|
|
1106
1086
|
"catSvg": "nesYQG_catSvg",
|
|
1107
|
-
"crewLimbBack": "nesYQG_crewLimbBack",
|
|
1108
|
-
"crewBadge": "nesYQG_crewBadge",
|
|
1109
|
-
"roomPane": "nesYQG_roomPane",
|
|
1110
|
-
"propTray": "nesYQG_propTray",
|
|
1111
|
-
"floraGlaze": "nesYQG_floraGlaze",
|
|
1112
|
-
"floor": "nesYQG_floor",
|
|
1113
|
-
"chairHub": "nesYQG_chairHub",
|
|
1114
|
-
"poster": "nesYQG_poster",
|
|
1115
|
-
"team-drift": "nesYQG_team-drift",
|
|
1116
1087
|
"boardEraser": "nesYQG_boardEraser",
|
|
1088
|
+
"coolerWater": "nesYQG_coolerWater",
|
|
1089
|
+
"noteTime": "nesYQG_noteTime",
|
|
1090
|
+
"crewShoe": "nesYQG_crewShoe",
|
|
1091
|
+
"drawer": "nesYQG_drawer",
|
|
1092
|
+
"floraBladeLit": "nesYQG_floraBladeLit",
|
|
1093
|
+
"crewHoodSheen": "nesYQG_crewHoodSheen",
|
|
1117
1094
|
"crewGlasses": "nesYQG_crewGlasses",
|
|
1118
|
-
"
|
|
1119
|
-
"
|
|
1120
|
-
"
|
|
1121
|
-
"
|
|
1122
|
-
"
|
|
1123
|
-
"
|
|
1124
|
-
"
|
|
1125
|
-
"
|
|
1126
|
-
"
|
|
1127
|
-
"
|
|
1128
|
-
"
|
|
1095
|
+
"barTitle": "nesYQG_barTitle",
|
|
1096
|
+
"skirting": "nesYQG_skirting",
|
|
1097
|
+
"propTop": "nesYQG_propTop",
|
|
1098
|
+
"plankTop": "nesYQG_plankTop",
|
|
1099
|
+
"catEar": "nesYQG_catEar",
|
|
1100
|
+
"propFolder": "nesYQG_propFolder",
|
|
1101
|
+
"cameoDot": "nesYQG_cameoDot",
|
|
1102
|
+
"body": "nesYQG_body",
|
|
1103
|
+
"chairRide": "nesYQG_chairRide",
|
|
1104
|
+
"coolerHandleWarm": "nesYQG_coolerHandleWarm",
|
|
1105
|
+
"crewPack": "nesYQG_crewPack",
|
|
1106
|
+
"shelf": "nesYQG_shelf",
|
|
1107
|
+
"trophy": "nesYQG_trophy",
|
|
1129
1108
|
"floraVein": "nesYQG_floraVein",
|
|
1130
|
-
"
|
|
1131
|
-
"
|
|
1132
|
-
"
|
|
1133
|
-
"
|
|
1134
|
-
"
|
|
1135
|
-
"
|
|
1136
|
-
"
|
|
1137
|
-
"
|
|
1109
|
+
"dockCount": "nesYQG_dockCount",
|
|
1110
|
+
"doze": "nesYQG_doze",
|
|
1111
|
+
"crewList": "nesYQG_crewList",
|
|
1112
|
+
"logTail": "nesYQG_logTail",
|
|
1113
|
+
"paneTitle": "nesYQG_paneTitle",
|
|
1114
|
+
"cardTitle": "nesYQG_cardTitle",
|
|
1115
|
+
"propGlass": "nesYQG_propGlass",
|
|
1116
|
+
"coolerCap": "nesYQG_coolerCap",
|
|
1117
|
+
"deskSurface": "nesYQG_deskSurface",
|
|
1138
1118
|
"statLive": "nesYQG_statLive",
|
|
1139
|
-
"
|
|
1140
|
-
"
|
|
1141
|
-
"
|
|
1142
|
-
"
|
|
1143
|
-
"cameoCrew": "nesYQG_cameoCrew",
|
|
1144
|
-
"chairShell": "nesYQG_chairShell",
|
|
1145
|
-
"propFolder": "nesYQG_propFolder",
|
|
1146
|
-
"crewVest": "nesYQG_crewVest",
|
|
1147
|
-
"plateMeta": "nesYQG_plateMeta",
|
|
1119
|
+
"coolerShine": "nesYQG_coolerShine",
|
|
1120
|
+
"floraCrumb": "nesYQG_floraCrumb",
|
|
1121
|
+
"deskModesty": "nesYQG_deskModesty",
|
|
1122
|
+
"crewNeckBand": "nesYQG_crewNeckBand",
|
|
1148
1123
|
"coolerTap": "nesYQG_coolerTap",
|
|
1149
|
-
"
|
|
1150
|
-
"
|
|
1151
|
-
"
|
|
1152
|
-
"
|
|
1153
|
-
"
|
|
1154
|
-
"
|
|
1155
|
-
"
|
|
1156
|
-
"
|
|
1124
|
+
"composerAway": "nesYQG_composerAway",
|
|
1125
|
+
"team-stage-in": "nesYQG_team-stage-in",
|
|
1126
|
+
"barStats": "nesYQG_barStats",
|
|
1127
|
+
"ceiling": "nesYQG_ceiling",
|
|
1128
|
+
"catStripe": "nesYQG_catStripe",
|
|
1129
|
+
"propBrew": "nesYQG_propBrew",
|
|
1130
|
+
"flora": "nesYQG_flora",
|
|
1131
|
+
"chairCasters": "nesYQG_chairCasters",
|
|
1132
|
+
"crewStripes": "nesYQG_crewStripes",
|
|
1133
|
+
"floorPlane": "nesYQG_floorPlane",
|
|
1134
|
+
"team-blink": "nesYQG_team-blink",
|
|
1135
|
+
"crown": "nesYQG_crown",
|
|
1157
1136
|
"feed": "nesYQG_feed",
|
|
1158
|
-
"
|
|
1159
|
-
"crewShirt": "nesYQG_crewShirt",
|
|
1160
|
-
"noteTime": "nesYQG_noteTime",
|
|
1161
|
-
"cardWho": "nesYQG_cardWho",
|
|
1162
|
-
"team-prowl": "nesYQG_team-prowl",
|
|
1163
|
-
"crewShoeTrim": "nesYQG_crewShoeTrim",
|
|
1164
|
-
"rug": "nesYQG_rug",
|
|
1165
|
-
"coolerCap": "nesYQG_coolerCap",
|
|
1166
|
-
"crewDraw": "nesYQG_crewDraw",
|
|
1167
|
-
"emptyHint": "nesYQG_emptyHint",
|
|
1168
|
-
"trophy": "nesYQG_trophy",
|
|
1169
|
-
"team-person-in": "nesYQG_team-person-in",
|
|
1170
|
-
"barTitle": "nesYQG_barTitle",
|
|
1171
|
-
"body": "nesYQG_body",
|
|
1172
|
-
"crewHood": "nesYQG_crewHood",
|
|
1173
|
-
"crewHoodShade": "nesYQG_crewHoodShade",
|
|
1174
|
-
"clockTicks": "nesYQG_clockTicks",
|
|
1175
|
-
"deskTop": "nesYQG_deskTop",
|
|
1176
|
-
"cardFoot": "nesYQG_cardFoot",
|
|
1177
|
-
"crewRow": "nesYQG_crewRow",
|
|
1178
|
-
"propLabel": "nesYQG_propLabel",
|
|
1179
|
-
"screen": "nesYQG_screen",
|
|
1180
|
-
"figure": "nesYQG_figure",
|
|
1181
|
-
"reveal": "nesYQG_reveal",
|
|
1182
|
-
"crewStitch": "nesYQG_crewStitch",
|
|
1183
|
-
"crewState": "nesYQG_crewState",
|
|
1184
|
-
"chairShellEdge": "nesYQG_chairShellEdge",
|
|
1185
|
-
"cardNote": "nesYQG_cardNote",
|
|
1186
|
-
"team-person-sit": "nesYQG_team-person-sit",
|
|
1187
|
-
"crewHand": "nesYQG_crewHand",
|
|
1188
|
-
"plank": "nesYQG_plank",
|
|
1137
|
+
"pendantBulb": "nesYQG_pendantBulb",
|
|
1189
1138
|
"utility": "nesYQG_utility",
|
|
1190
|
-
"crewTusk": "nesYQG_crewTusk",
|
|
1191
|
-
"dock": "nesYQG_dock",
|
|
1192
|
-
"team-sway": "nesYQG_team-sway",
|
|
1193
|
-
"chairSpine": "nesYQG_chairSpine",
|
|
1194
|
-
"crewSpout": "nesYQG_crewSpout",
|
|
1195
|
-
"bar": "nesYQG_bar",
|
|
1196
|
-
"team-glow": "nesYQG_team-glow",
|
|
1197
|
-
"propShade": "nesYQG_propShade",
|
|
1198
1139
|
"screenText": "nesYQG_screenText",
|
|
1199
|
-
"
|
|
1200
|
-
"
|
|
1201
|
-
"
|
|
1202
|
-
"
|
|
1203
|
-
"
|
|
1204
|
-
"
|
|
1205
|
-
"
|
|
1206
|
-
"
|
|
1207
|
-
"
|
|
1208
|
-
"
|
|
1209
|
-
"
|
|
1210
|
-
"
|
|
1211
|
-
"noteFoot": "nesYQG_noteFoot",
|
|
1212
|
-
"noteAuthor": "nesYQG_noteAuthor",
|
|
1213
|
-
"logHop": "nesYQG_logHop",
|
|
1214
|
-
"floraSoil": "nesYQG_floraSoil",
|
|
1215
|
-
"crewBrow": "nesYQG_crewBrow",
|
|
1216
|
-
"catBody": "nesYQG_catBody",
|
|
1217
|
-
"crewCansBand": "nesYQG_crewCansBand",
|
|
1218
|
-
"crewEyeGlint": "nesYQG_crewEyeGlint",
|
|
1219
|
-
"boardGhost": "nesYQG_boardGhost",
|
|
1220
|
-
"crewTrouser": "nesYQG_crewTrouser",
|
|
1221
|
-
"lounge": "nesYQG_lounge",
|
|
1222
|
-
"propCup": "nesYQG_propCup",
|
|
1223
|
-
"crewName": "nesYQG_crewName",
|
|
1224
|
-
"catEar": "nesYQG_catEar",
|
|
1225
|
-
"crewOpen": "nesYQG_crewOpen",
|
|
1226
|
-
"deskLegs": "nesYQG_deskLegs",
|
|
1140
|
+
"note": "nesYQG_note",
|
|
1141
|
+
"column": "nesYQG_column",
|
|
1142
|
+
"cardWho": "nesYQG_cardWho",
|
|
1143
|
+
"team-sway": "nesYQG_team-sway",
|
|
1144
|
+
"coolerCabinetEdge": "nesYQG_coolerCabinetEdge",
|
|
1145
|
+
"dock": "nesYQG_dock",
|
|
1146
|
+
"logHead": "nesYQG_logHead",
|
|
1147
|
+
"chairShellEdge": "nesYQG_chairShellEdge",
|
|
1148
|
+
"listening": "nesYQG_listening",
|
|
1149
|
+
"floraSpine": "nesYQG_floraSpine",
|
|
1150
|
+
"floraSaucer": "nesYQG_floraSaucer",
|
|
1151
|
+
"crewNeck": "nesYQG_crewNeck",
|
|
1227
1152
|
"sillTop": "nesYQG_sillTop",
|
|
1228
|
-
"
|
|
1229
|
-
"
|
|
1230
|
-
"
|
|
1231
|
-
"crewShoe": "nesYQG_crewShoe",
|
|
1232
|
-
"boardPens": "nesYQG_boardPens",
|
|
1233
|
-
"crewPackTrim": "nesYQG_crewPackTrim",
|
|
1234
|
-
"empty": "nesYQG_empty",
|
|
1235
|
-
"wallRight": "nesYQG_wallRight",
|
|
1236
|
-
"crewStrap": "nesYQG_crewStrap",
|
|
1237
|
-
"team-swing": "nesYQG_team-swing",
|
|
1238
|
-
"posterArt": "nesYQG_posterArt",
|
|
1239
|
-
"coolerDoorSeam": "nesYQG_coolerDoorSeam",
|
|
1240
|
-
"calendarGrid": "nesYQG_calendarGrid",
|
|
1241
|
-
"hanger": "nesYQG_hanger",
|
|
1242
|
-
"coolerNeck": "nesYQG_coolerNeck",
|
|
1243
|
-
"crewCans": "nesYQG_crewCans",
|
|
1244
|
-
"crewPlacket": "nesYQG_crewPlacket",
|
|
1245
|
-
"columnTitle": "nesYQG_columnTitle",
|
|
1246
|
-
"propGlass": "nesYQG_propGlass",
|
|
1247
|
-
"shelf": "nesYQG_shelf",
|
|
1248
|
-
"wallLeft": "nesYQG_wallLeft",
|
|
1249
|
-
"shelfPlant": "nesYQG_shelfPlant",
|
|
1250
|
-
"pendant": "nesYQG_pendant",
|
|
1251
|
-
"propHandle": "nesYQG_propHandle",
|
|
1252
|
-
"chairPanTop": "nesYQG_chairPanTop",
|
|
1253
|
-
"plate": "nesYQG_plate",
|
|
1254
|
-
"logTail": "nesYQG_logTail",
|
|
1255
|
-
"plankTop": "nesYQG_plankTop",
|
|
1256
|
-
"crewHairShine": "nesYQG_crewHairShine",
|
|
1257
|
-
"coolerSvg": "nesYQG_coolerSvg",
|
|
1258
|
-
"pendantMouth": "nesYQG_pendantMouth",
|
|
1259
|
-
"plateName": "nesYQG_plateName",
|
|
1260
|
-
"chairLumbar": "nesYQG_chairLumbar",
|
|
1261
|
-
"shell": "nesYQG_shell",
|
|
1262
|
-
"chairMeshLine": "nesYQG_chairMeshLine",
|
|
1263
|
-
"crewPack": "nesYQG_crewPack",
|
|
1264
|
-
"cameoDot": "nesYQG_cameoDot",
|
|
1153
|
+
"stat": "nesYQG_stat",
|
|
1154
|
+
"chairHub": "nesYQG_chairHub",
|
|
1155
|
+
"desk": "nesYQG_desk",
|
|
1265
1156
|
"propSpout": "nesYQG_propSpout",
|
|
1266
|
-
"
|
|
1267
|
-
"
|
|
1268
|
-
"
|
|
1269
|
-
"
|
|
1270
|
-
"crewBelly": "nesYQG_crewBelly",
|
|
1271
|
-
"team-chair-rise": "nesYQG_team-chair-rise",
|
|
1272
|
-
"note": "nesYQG_note",
|
|
1273
|
-
"catLeg": "nesYQG_catLeg",
|
|
1274
|
-
"bookLeaning": "nesYQG_bookLeaning",
|
|
1275
|
-
"discGlyph": "nesYQG_discGlyph",
|
|
1276
|
-
"papers": "nesYQG_papers",
|
|
1277
|
-
"crewMouth": "nesYQG_crewMouth",
|
|
1278
|
-
"pendantShade": "nesYQG_pendantShade",
|
|
1279
|
-
"clockProp": "nesYQG_clockProp",
|
|
1280
|
-
"crewArmFront": "nesYQG_crewArmFront",
|
|
1281
|
-
"deskModesty": "nesYQG_deskModesty",
|
|
1282
|
-
"speech": "nesYQG_speech",
|
|
1283
|
-
"logKind": "nesYQG_logKind",
|
|
1157
|
+
"cat": "nesYQG_cat",
|
|
1158
|
+
"table": "nesYQG_table",
|
|
1159
|
+
"clockTicks": "nesYQG_clockTicks",
|
|
1160
|
+
"coolerDripWell": "nesYQG_coolerDripWell",
|
|
1284
1161
|
"floraBlade": "nesYQG_floraBlade",
|
|
1285
|
-
"
|
|
1162
|
+
"team-listen": "nesYQG_team-listen",
|
|
1163
|
+
"pendantMouth": "nesYQG_pendantMouth",
|
|
1164
|
+
"cameoCrew": "nesYQG_cameoCrew",
|
|
1165
|
+
"pendantFlex": "nesYQG_pendantFlex",
|
|
1166
|
+
"feedTitle": "nesYQG_feedTitle",
|
|
1167
|
+
"deskTop": "nesYQG_deskTop",
|
|
1168
|
+
"chairMeshLine": "nesYQG_chairMeshLine",
|
|
1169
|
+
"lounge": "nesYQG_lounge",
|
|
1170
|
+
"noteAuthor": "nesYQG_noteAuthor",
|
|
1171
|
+
"calendar": "nesYQG_calendar",
|
|
1172
|
+
"chair": "nesYQG_chair",
|
|
1286
1173
|
"sea": "nesYQG_sea",
|
|
1287
|
-
"
|
|
1288
|
-
"
|
|
1289
|
-
"
|
|
1290
|
-
"
|
|
1291
|
-
"
|
|
1292
|
-
"
|
|
1293
|
-
"
|
|
1294
|
-
"
|
|
1295
|
-
"
|
|
1296
|
-
"
|
|
1297
|
-
"
|
|
1174
|
+
"crew": "nesYQG_crew",
|
|
1175
|
+
"crewShirt": "nesYQG_crewShirt",
|
|
1176
|
+
"roomPane": "nesYQG_roomPane",
|
|
1177
|
+
"blankTitle": "nesYQG_blankTitle",
|
|
1178
|
+
"whiteboard": "nesYQG_whiteboard",
|
|
1179
|
+
"coolerNeck": "nesYQG_coolerNeck",
|
|
1180
|
+
"barHint": "nesYQG_barHint",
|
|
1181
|
+
"boardTrayTop": "nesYQG_boardTrayTop",
|
|
1182
|
+
"cloud": "nesYQG_cloud",
|
|
1183
|
+
"team-chair-rise": "nesYQG_team-chair-rise",
|
|
1184
|
+
"cardFoot": "nesYQG_cardFoot",
|
|
1185
|
+
"screen": "nesYQG_screen",
|
|
1186
|
+
"crewCuff": "nesYQG_crewCuff",
|
|
1187
|
+
"chairShell": "nesYQG_chairShell",
|
|
1298
1188
|
"coolerHandleCool": "nesYQG_coolerHandleCool",
|
|
1189
|
+
"catTail": "nesYQG_catTail",
|
|
1190
|
+
"crewOpen": "nesYQG_crewOpen",
|
|
1191
|
+
"crewTusk": "nesYQG_crewTusk",
|
|
1192
|
+
"coolerDrip": "nesYQG_coolerDrip",
|
|
1193
|
+
"crewDraw": "nesYQG_crewDraw",
|
|
1194
|
+
"crewShoeTrim": "nesYQG_crewShoeTrim",
|
|
1299
1195
|
"propSvg": "nesYQG_propSvg",
|
|
1196
|
+
"hanger": "nesYQG_hanger",
|
|
1197
|
+
"coolerBubble": "nesYQG_coolerBubble",
|
|
1198
|
+
"logArrow": "nesYQG_logArrow",
|
|
1199
|
+
"crewBelly": "nesYQG_crewBelly",
|
|
1200
|
+
"deskFlank": "nesYQG_deskFlank",
|
|
1201
|
+
"hangerPlant": "nesYQG_hangerPlant",
|
|
1202
|
+
"team-bob": "nesYQG_team-bob",
|
|
1203
|
+
"drawerHead": "nesYQG_drawerHead",
|
|
1204
|
+
"emptyHint": "nesYQG_emptyHint",
|
|
1205
|
+
"noteFoot": "nesYQG_noteFoot",
|
|
1206
|
+
"crewEye": "nesYQG_crewEye",
|
|
1207
|
+
"crewKnob": "nesYQG_crewKnob",
|
|
1300
1208
|
"propInset": "nesYQG_propInset",
|
|
1209
|
+
"pendant": "nesYQG_pendant",
|
|
1210
|
+
"crewSeam": "nesYQG_crewSeam",
|
|
1211
|
+
"crewPocket": "nesYQG_crewPocket",
|
|
1212
|
+
"chairSvg": "nesYQG_chairSvg",
|
|
1213
|
+
"coolerPanel": "nesYQG_coolerPanel",
|
|
1301
1214
|
"sky": "nesYQG_sky",
|
|
1302
|
-
"
|
|
1303
|
-
"
|
|
1304
|
-
"
|
|
1305
|
-
"
|
|
1306
|
-
"
|
|
1307
|
-
"
|
|
1308
|
-
"
|
|
1309
|
-
"
|
|
1310
|
-
"
|
|
1311
|
-
"notes": "nesYQG_notes",
|
|
1312
|
-
"desk": "nesYQG_desk",
|
|
1313
|
-
"lamp": "nesYQG_lamp",
|
|
1314
|
-
"propBoxTop": "nesYQG_propBoxTop",
|
|
1315
|
-
"team-halo": "nesYQG_team-halo",
|
|
1316
|
-
"beam": "nesYQG_beam",
|
|
1317
|
-
"mug": "nesYQG_mug",
|
|
1318
|
-
"neck": "nesYQG_neck",
|
|
1215
|
+
"chairLumbar": "nesYQG_chairLumbar",
|
|
1216
|
+
"pane": "nesYQG_pane",
|
|
1217
|
+
"boardGhost": "nesYQG_boardGhost",
|
|
1218
|
+
"team-person-sit": "nesYQG_team-person-sit",
|
|
1219
|
+
"crewLimbBack": "nesYQG_crewLimbBack",
|
|
1220
|
+
"crewCollar": "nesYQG_crewCollar",
|
|
1221
|
+
"shell": "nesYQG_shell",
|
|
1222
|
+
"paneNote": "nesYQG_paneNote",
|
|
1223
|
+
"drawerClose": "nesYQG_drawerClose",
|
|
1319
1224
|
"coolerBottle": "nesYQG_coolerBottle",
|
|
1320
|
-
"
|
|
1321
|
-
"
|
|
1322
|
-
"
|
|
1323
|
-
"
|
|
1324
|
-
"
|
|
1325
|
-
"
|
|
1225
|
+
"notePreview": "nesYQG_notePreview",
|
|
1226
|
+
"logHop": "nesYQG_logHop",
|
|
1227
|
+
"crewCansCup": "nesYQG_crewCansCup",
|
|
1228
|
+
"logAvatar": "nesYQG_logAvatar",
|
|
1229
|
+
"team-glow": "nesYQG_team-glow",
|
|
1230
|
+
"drawerBody": "nesYQG_drawerBody",
|
|
1326
1231
|
"crewLine": "nesYQG_crewLine",
|
|
1327
|
-
"
|
|
1328
|
-
"
|
|
1329
|
-
"
|
|
1330
|
-
"
|
|
1331
|
-
"
|
|
1332
|
-
"state": "nesYQG_state",
|
|
1333
|
-
"logTo": "nesYQG_logTo",
|
|
1334
|
-
"stage": "nesYQG_stage",
|
|
1232
|
+
"barIcon": "nesYQG_barIcon",
|
|
1233
|
+
"posterArt": "nesYQG_posterArt",
|
|
1234
|
+
"window": "nesYQG_window",
|
|
1235
|
+
"lamp": "nesYQG_lamp",
|
|
1236
|
+
"boardTray": "nesYQG_boardTray",
|
|
1335
1237
|
"catWhisker": "nesYQG_catWhisker",
|
|
1336
|
-
"utilityPrinter": "nesYQG_utilityPrinter",
|
|
1337
|
-
"notePreview": "nesYQG_notePreview",
|
|
1338
|
-
"table": "nesYQG_table",
|
|
1339
|
-
"crewSeam": "nesYQG_crewSeam",
|
|
1340
|
-
"crewJacket": "nesYQG_crewJacket",
|
|
1341
|
-
"card": "nesYQG_card",
|
|
1342
|
-
"deskSurface": "nesYQG_deskSurface",
|
|
1343
|
-
"sofa": "nesYQG_sofa",
|
|
1344
|
-
"chairRide": "nesYQG_chairRide",
|
|
1345
1238
|
"coolerCabinet": "nesYQG_coolerCabinet",
|
|
1239
|
+
"plateName": "nesYQG_plateName",
|
|
1240
|
+
"clockPin": "nesYQG_clockPin",
|
|
1241
|
+
"team-person-in": "nesYQG_team-person-in",
|
|
1242
|
+
"hangerBracket": "nesYQG_hangerBracket",
|
|
1243
|
+
"propBoxTop": "nesYQG_propBoxTop",
|
|
1244
|
+
"sofa": "nesYQG_sofa",
|
|
1245
|
+
"propTray": "nesYQG_propTray",
|
|
1246
|
+
"deskGrain": "nesYQG_deskGrain",
|
|
1247
|
+
"deskPlant": "nesYQG_deskPlant",
|
|
1248
|
+
"floraPotShade": "nesYQG_floraPotShade",
|
|
1346
1249
|
"crewSmile": "nesYQG_crewSmile",
|
|
1347
|
-
"
|
|
1348
|
-
"
|
|
1349
|
-
"
|
|
1350
|
-
"
|
|
1351
|
-
"
|
|
1250
|
+
"crewStrap": "nesYQG_crewStrap",
|
|
1251
|
+
"card": "nesYQG_card",
|
|
1252
|
+
"load": "nesYQG_load",
|
|
1253
|
+
"boardInk": "nesYQG_boardInk",
|
|
1254
|
+
"logAuthor": "nesYQG_logAuthor",
|
|
1255
|
+
"utilityCabinet": "nesYQG_utilityCabinet",
|
|
1256
|
+
"crewMelon": "nesYQG_crewMelon",
|
|
1257
|
+
"cameo": "nesYQG_cameo",
|
|
1258
|
+
"calendarHead": "nesYQG_calendarHead",
|
|
1259
|
+
"crewPupil": "nesYQG_crewPupil",
|
|
1352
1260
|
"crewButton": "nesYQG_crewButton",
|
|
1353
|
-
"hangerBracket": "nesYQG_hangerBracket",
|
|
1354
|
-
"blankTitle": "nesYQG_blankTitle",
|
|
1355
|
-
"log": "nesYQG_log",
|
|
1356
1261
|
"columnCount": "nesYQG_columnCount",
|
|
1357
|
-
"
|
|
1262
|
+
"logBody": "nesYQG_logBody",
|
|
1263
|
+
"speech": "nesYQG_speech",
|
|
1264
|
+
"deskLegs": "nesYQG_deskLegs",
|
|
1265
|
+
"floraStem": "nesYQG_floraStem",
|
|
1266
|
+
"propLampIdle": "nesYQG_propLampIdle",
|
|
1267
|
+
"rug": "nesYQG_rug",
|
|
1268
|
+
"coolerDoorSeam": "nesYQG_coolerDoorSeam",
|
|
1269
|
+
"glare": "nesYQG_glare",
|
|
1270
|
+
"logTime": "nesYQG_logTime",
|
|
1271
|
+
"logText": "nesYQG_logText",
|
|
1272
|
+
"cardNote": "nesYQG_cardNote",
|
|
1273
|
+
"propLabel": "nesYQG_propLabel",
|
|
1274
|
+
"pendantGlow": "nesYQG_pendantGlow",
|
|
1275
|
+
"chairMechanism": "nesYQG_chairMechanism",
|
|
1276
|
+
"crewArmFront": "nesYQG_crewArmFront",
|
|
1277
|
+
"noteKey": "nesYQG_noteKey",
|
|
1278
|
+
"propShade": "nesYQG_propShade",
|
|
1279
|
+
"floraBloom": "nesYQG_floraBloom",
|
|
1280
|
+
"utilityCoffee": "nesYQG_utilityCoffee",
|
|
1281
|
+
"crewPatch": "nesYQG_crewPatch",
|
|
1282
|
+
"crewFace": "nesYQG_crewFace",
|
|
1283
|
+
"propFront": "nesYQG_propFront",
|
|
1284
|
+
"crewArmBack": "nesYQG_crewArmBack",
|
|
1285
|
+
"plate": "nesYQG_plate",
|
|
1286
|
+
"state": "nesYQG_state",
|
|
1287
|
+
"boardNote": "nesYQG_boardNote",
|
|
1288
|
+
"wall": "nesYQG_wall",
|
|
1289
|
+
"clockHand": "nesYQG_clockHand",
|
|
1290
|
+
"propBox": "nesYQG_propBox",
|
|
1291
|
+
"crewGill": "nesYQG_crewGill",
|
|
1292
|
+
"chairMesh": "nesYQG_chairMesh",
|
|
1293
|
+
"discGlyph": "nesYQG_discGlyph",
|
|
1294
|
+
"catBody": "nesYQG_catBody",
|
|
1295
|
+
"team-sail": "nesYQG_team-sail",
|
|
1296
|
+
"crewEar": "nesYQG_crewEar",
|
|
1297
|
+
"crewTrouser": "nesYQG_crewTrouser",
|
|
1298
|
+
"floor": "nesYQG_floor",
|
|
1299
|
+
"bookLeaning": "nesYQG_bookLeaning",
|
|
1300
|
+
"plateMeta": "nesYQG_plateMeta",
|
|
1301
|
+
"crewStitch": "nesYQG_crewStitch",
|
|
1358
1302
|
"crewBib": "nesYQG_crewBib",
|
|
1303
|
+
"floraBloomHeart": "nesYQG_floraBloomHeart",
|
|
1304
|
+
"dockButton": "nesYQG_dockButton",
|
|
1305
|
+
"propSide": "nesYQG_propSide",
|
|
1306
|
+
"team-caret": "nesYQG_team-caret",
|
|
1307
|
+
"catLeg": "nesYQG_catLeg",
|
|
1308
|
+
"poster": "nesYQG_poster",
|
|
1309
|
+
"chairPanTop": "nesYQG_chairPanTop",
|
|
1310
|
+
"clockProp": "nesYQG_clockProp",
|
|
1359
1311
|
"crewHoodFabric": "nesYQG_crewHoodFabric",
|
|
1360
|
-
"
|
|
1361
|
-
"
|
|
1362
|
-
"
|
|
1363
|
-
"
|
|
1312
|
+
"crewCord": "nesYQG_crewCord",
|
|
1313
|
+
"team-drift": "nesYQG_team-drift",
|
|
1314
|
+
"catEye": "nesYQG_catEye",
|
|
1315
|
+
"plant": "nesYQG_plant",
|
|
1316
|
+
"propCup": "nesYQG_propCup",
|
|
1317
|
+
"floraRim": "nesYQG_floraRim",
|
|
1318
|
+
"chairSpokes": "nesYQG_chairSpokes",
|
|
1319
|
+
"floraLeaf": "nesYQG_floraLeaf",
|
|
1320
|
+
"crewHood": "nesYQG_crewHood",
|
|
1321
|
+
"wallRight": "nesYQG_wallRight",
|
|
1322
|
+
"crewBadgeLine": "nesYQG_crewBadgeLine",
|
|
1323
|
+
"crewHairShine": "nesYQG_crewHairShine",
|
|
1324
|
+
"team-swing": "nesYQG_team-swing",
|
|
1325
|
+
"team-bubble": "nesYQG_team-bubble",
|
|
1326
|
+
"pendantSvg": "nesYQG_pendantSvg",
|
|
1327
|
+
"propLampLive": "nesYQG_propLampLive",
|
|
1328
|
+
"keyboard": "nesYQG_keyboard",
|
|
1329
|
+
"propSeam": "nesYQG_propSeam",
|
|
1330
|
+
"figure": "nesYQG_figure",
|
|
1331
|
+
"crewState": "nesYQG_crewState",
|
|
1332
|
+
"sill": "nesYQG_sill",
|
|
1333
|
+
"beam": "nesYQG_beam",
|
|
1364
1334
|
"scene": "nesYQG_scene",
|
|
1365
|
-
"
|
|
1366
|
-
"
|
|
1367
|
-
"
|
|
1368
|
-
"
|
|
1335
|
+
"base": "nesYQG_base",
|
|
1336
|
+
"utilityPrinter": "nesYQG_utilityPrinter",
|
|
1337
|
+
"crewPlacket": "nesYQG_crewPlacket",
|
|
1338
|
+
"crewName": "nesYQG_crewName",
|
|
1339
|
+
"calendarGrid": "nesYQG_calendarGrid",
|
|
1340
|
+
"mullion": "nesYQG_mullion",
|
|
1341
|
+
"crewHand": "nesYQG_crewHand",
|
|
1342
|
+
"team-row-in": "nesYQG_team-row-in",
|
|
1343
|
+
"columns": "nesYQG_columns",
|
|
1344
|
+
"team-type": "nesYQG_team-type",
|
|
1345
|
+
"crewSleeve": "nesYQG_crewSleeve",
|
|
1346
|
+
"chairPan": "nesYQG_chairPan",
|
|
1347
|
+
"team-chair-stretch": "nesYQG_team-chair-stretch",
|
|
1348
|
+
"crewRow": "nesYQG_crewRow",
|
|
1349
|
+
"cooler": "nesYQG_cooler",
|
|
1350
|
+
"reveal": "nesYQG_reveal",
|
|
1351
|
+
"crewMouth": "nesYQG_crewMouth",
|
|
1352
|
+
"team-prowl": "nesYQG_team-prowl",
|
|
1353
|
+
"sail": "nesYQG_sail",
|
|
1354
|
+
"team-tick": "nesYQG_team-tick",
|
|
1355
|
+
"empty": "nesYQG_empty",
|
|
1356
|
+
"logTo": "nesYQG_logTo",
|
|
1357
|
+
"notes": "nesYQG_notes",
|
|
1358
|
+
"log": "nesYQG_log",
|
|
1359
|
+
"pendantShade": "nesYQG_pendantShade",
|
|
1360
|
+
"plankBracket": "nesYQG_plankBracket",
|
|
1361
|
+
"crewBrow": "nesYQG_crewBrow",
|
|
1362
|
+
"crewBlush": "nesYQG_crewBlush",
|
|
1363
|
+
"crewRib": "nesYQG_crewRib",
|
|
1364
|
+
"bar": "nesYQG_bar",
|
|
1365
|
+
"propPaper": "nesYQG_propPaper",
|
|
1366
|
+
"crewCans": "nesYQG_crewCans",
|
|
1367
|
+
"crewEyeGlint": "nesYQG_crewEyeGlint",
|
|
1368
|
+
"columnTitle": "nesYQG_columnTitle"
|
|
1369
1369
|
};
|
|
1370
1370
|
//#endregion
|
|
1371
1371
|
//#region src/client/crew.tsx
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.ts","names":[],"sources":["../src/contract.d.ts","../src/client/TeamStage.d.ts","../src/client/locales.d.ts","../src/client/index.d.ts"],"sourcesContent":["/**\n * The team vocabulary shared by the host half and the browser half: the\n * durable projection value, the mailbox message source, and the relationship\n * model. Types only — the browser bundle imports this module type-only, so it\n * must never grow a runtime import of a host package.\n *\n * @module dsh-team/contract\n */\n/** The two relationship levels between the leader and a teammate. */\nexport type TeamRelation = 'managed' | 'peer';\n/** Lifecycle of one shared task. */\nexport type TeamTaskStatus = 'pending' | 'active' | 'done';\n/** What kind of traffic one mailbox row records. */\nexport type TeamMessageKind = \n/** Content one member addressed to another through `team_send`. */\n'message'\n/** A teammate's own result, delivered through the harness `report` tool. */\n | 'report'\n/** The runtime's account of a teammate's activation ending. */\n | 'settled';\n/** One teammate as the leader's log records it. */\nexport interface TeamMemberView {\n /** The teammate's session id; the address every team tool takes. */\n readonly memberId: string;\n readonly name: string;\n readonly role?: string;\n readonly relation: TeamRelation;\n /** Model route recorded at spawn, when the leader overrode its own. */\n readonly model?: string;\n /** Provider-owned reasoning effort recorded at spawn, when one was requested. */\n readonly effort?: string;\n /** Epoch ms of the spawn that added this member. */\n readonly joinedAt: number;\n}\n/** One shared task. */\nexport interface TeamTaskView {\n readonly taskId: string;\n readonly title: string;\n /** Assigned teammate; absent means unassigned (leader-held). */\n readonly assigneeId?: string;\n readonly status: TeamTaskStatus;\n /** Closing note recorded by whoever moved the task to `done`. */\n readonly note?: string;\n}\n/**\n * One mailbox row. `from`/`to` absent means the leader — the projection is\n * served per session, so the owning session needs no id of its own.\n */\nexport interface TeamMessageView {\n readonly messageId: string;\n readonly from?: string;\n readonly to?: string;\n readonly kind: TeamMessageKind;\n readonly text: string;\n readonly time: number;\n /**\n * Depth of this delivery in its conversation chain: 0 is a message the\n * leader started, and every teammate-to-teammate relay adds one. A row\n * without it was written before the plugin recorded chains.\n */\n readonly hop?: number;\n}\n/**\n * One entry of the team's shared workspace, as the leader's log last recorded\n * it. Only the shared area is ever projected: a member's private pad stays\n * private, including from this panel.\n */\nexport interface TeamBoardEntryView {\n readonly key: string;\n /** Session id of the member that wrote it last. */\n readonly authorId: string;\n readonly authorName: string;\n readonly updatedAt: number;\n /** First non-empty line, bounded — the projection never carries note bodies. */\n readonly preview: string;\n}\n/** The durable team state folded from one leader session's log. */\nexport interface TeamView {\n /** True once a spawn settled and the team was not ended afterwards. */\n readonly active: boolean;\n readonly members: readonly TeamMemberView[];\n readonly tasks: readonly TeamTaskView[];\n /** Bounded newest-last mailbox feed of leader-visible traffic. */\n readonly messages: readonly TeamMessageView[];\n /**\n * The shared workspace as of the last time the leader read or wrote it.\n * Teammates write straight to the durable workspace, which no session log\n * records, so this index is a snapshot rather than a live view.\n */\n readonly board: readonly TeamBoardEntryView[];\n /** When that snapshot was taken; absent while the leader has never looked. */\n readonly boardAt?: number;\n}\n/** The empty value every session without a team folds to. */\nexport declare const EMPTY_TEAM_VIEW: TeamView;\n/**\n * One delivery's place in a conversation chain. A chain begins whenever the\n * leader addresses a teammate and grows by one hop with every relay a teammate\n * makes off the message it is working from; escalation to the leader always\n * ends it. The pair is what bounds a peer conversation mechanically instead of\n * by prompt — see `src/service.ts`.\n */\nexport interface TeamChain {\n /** Identity of the conversation this delivery belongs to (per leader, per process). */\n readonly chainId: string;\n /** Relays between the chain's first delivery and this one. */\n readonly hop: number;\n}\n/**\n * Durable attribution for one team mailbox delivery, carried by the recipient's\n * own `user/message` event so the sender survives persistence on both sides.\n */\nexport interface TeamMessageSource extends TeamChain {\n readonly kind: 'team-message';\n /** A message another agent addressed to this one (`relay` context form). */\n readonly form: 'relay';\n /** Session id of the sending member, or of the leader. */\n readonly senderSessionId: string;\n /** Display name of the sender at delivery time. */\n readonly senderName: string;\n}\n/** The projection key this plugin owns. */\nexport declare const TEAM_PROJECTION_KEY = \"team\";\n","import type { PropsLocale, PropsRuntime, SnapshotSelectorHook } from '@deepseek-ai/dsh-client-ui-slots';\nimport type { TeamBoardEntryView, TeamMemberView, TeamMessageView, TeamTaskView } from '../contract.ts';\n/** What the plugin's session follower publishes to this entry. */\nexport interface TeamPanelState {\n /** The session whose log owns the team; absent while no team is in view. */\n readonly leaderId?: string;\n /** The session currently open, so the stage can mark the one you are reading. */\n readonly currentId?: string;\n readonly members: readonly TeamMemberView[];\n readonly tasks: readonly TeamTaskView[];\n readonly messages: readonly TeamMessageView[];\n /** The shared workspace as the leader's log last recorded it. */\n readonly board: readonly TeamBoardEntryView[];\n /** When that snapshot was taken; absent while the leader has never looked. */\n readonly boardAt?: number;\n}\n/** Navigation and chrome the plugin body owns (it holds the client services). */\nexport interface TeamInjected {\n /** Open one teammate's transcript through its durable parent address. */\n readonly openMember: (leaderId: string, memberId: string) => void;\n /** Return to the leader's own conversation. */\n readonly openLeader: (leaderId: string) => void;\n /**\n * Take the composer seat for as long as the room is on screen; the returned\n * disposer hands it back. The room is a picture, not a place you type into,\n * and the tab is worth more than the strip of window the input card takes.\n */\n readonly holdComposer?: () => () => void;\n}\n/** Complete view-tab props: the root kit, the locale, and the inject face. */\nexport type TeamStageProps = PropsRuntime<'conversation.view'> & PropsLocale<'team'> & TeamInjected & {\n readonly useTeam: SnapshotSelectorHook<TeamPanelState>;\n};\n/**\n * The team stage. Rendered as one conversation view tab, so it exists only\n * while the surrounding session has a team — an ordinary conversation never\n * grows a tab it cannot fill.\n */\nexport declare function TeamStage(props: TeamStageProps): import(\"react\").JSX.Element;\n","/** Locale copy for the agent-team stage view. Product copy is Chinese. */\nexport declare const NS = \"team\";\nexport declare const zh: {\n readonly 'view.title': \"Agent 团队\";\n readonly 'stage.title': \"团队协作室\";\n readonly 'stage.room': \"协作室\";\n readonly 'stage.feed': \"消息流\";\n readonly 'stage.board': \"任务板\";\n readonly 'stage.workspace': \"共享工作区\";\n readonly 'stage.members': \"{count} 名成员\";\n readonly 'stage.running': \"{count} 名工作中\";\n readonly 'stage.idle': \"全部空闲\";\n readonly 'stage.tasks': \"{open}/{total} 项任务\";\n readonly 'stage.noTeam': \"这个会话还没有组建团队\";\n readonly 'stage.noTeamHint': \"让主会话调用 team_spawn 派生第一名队友。\";\n readonly 'stage.noMessages': \"还没有消息往来\";\n readonly 'stage.noTasks': \"还没有任务\";\n readonly 'stage.noNotes': \"共享工作区还是空的\";\n readonly 'stage.noNotesHint': \"成员用 team_note 把结论写在这里,不必互相发消息。\";\n readonly 'stage.boardAt': \"{time} 的快照\";\n readonly 'stage.boardStale': \"队友的写入直接进持久工作区,不经过主会话的日志——这里是主会话最后一次读写时的样子\";\n readonly 'stage.peerRing': \"同级成员可以直接走过去找对方;受管成员只找主会话\";\n readonly 'stage.roomHint': \"每个成员都有自己的工位;要说话就走过去说\";\n readonly 'stage.dock': \"协作面板\";\n readonly 'drawer.close': \"收起面板\";\n readonly 'feed.crew': \"成员状态\";\n readonly 'feed.log': \"往来记录\";\n readonly 'feed.open': \"在手 {count}\";\n readonly 'feed.quiet': \"还没有往来\";\n readonly 'screen.working': \"工作中…\";\n readonly 'member.leader': \"主会话\";\n readonly 'member.open': \"打开 {name} 的会话\";\n readonly 'member.openLeader': \"回到主会话\";\n readonly 'member.here': \"你正在看这个会话\";\n readonly 'relation.managed': \"受管\";\n readonly 'relation.peer': \"同级\";\n readonly 'status.running': \"工作中\";\n readonly 'status.idle': \"空闲\";\n readonly 'task.pending': \"待办\";\n readonly 'task.active': \"进行中\";\n readonly 'task.done': \"已完成\";\n readonly 'task.unassigned': \"未指派\";\n readonly 'message.report': \"汇报\";\n readonly 'message.settled': \"已收工\";\n readonly 'message.hop': \"第 {hop} 跳\";\n readonly 'message.hopHint': \"这条消息在一次队友间对话里的转发深度;深度用完只能回到主会话\";\n};\n/** The namespace's dictionary key union (literal keys, locale-typed seats). */\nexport type TeamKey = keyof typeof zh;\nexport declare const en: Record<TeamKey, string>;\n","/**\n * Browser half of dsh-team: follow the current session's `team` projection and\n * contribute the team stage as one conversation view tab.\n *\n * There is no client-side fold. The host computes the team value once and the\n * framework pushes it here (history tail baseline + `session/projection`\n * frames), so this module only tracks WHICH session's value is on screen — and\n * whether that session has a team at all, because the tab exists exactly while\n * it does: an ordinary conversation never grows a view it cannot fill.\n */\nimport type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';\nimport { type TeamPanelState } from './TeamStage.tsx';\nimport { type TeamKey } from './locales.ts';\ndeclare module '@deepseek-ai/dsh-client-ui-slots' {\n interface LocaleNamespaceMap {\n /** Agent-team stage copy. */\n team: TeamKey;\n }\n}\n/** Required services: the slot registry, the session domain, and locale. */\nexport declare const inject: string[];\n/**\n * Register the locale dictionary and the view tab, and keep the stage store\n * pointed at the right session.\n * @param ctx - client root context.\n */\nexport declare function apply(ctx: ClientContext): void;\nexport type { TeamPanelState };\n"],"mappings":";;;;;;AAAA,IAAW,CAAC,gBAAgB;CAAC;OAAU,CAAC;CAAG,CAAC;AAAC;AAC7C,IAAW,CAAC,kBAAkB;CAAC;OAAU,CAAC;CAAG,CAAC;AAAC;AAC/C,IAAW,CAAC,mBAAmB;CAAC;OAAU,CAAC;CAAG,CAAC;AAAC;AAChD,IAAW,CAAC,kBAAkB;CAAC;OAAU,CAAC,YAAY;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;AACzF,IAAW,CAAC,gBAAgB;CAAC;OAAU,CAAC,cAAc;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;AACjF,IAAW,CAAC,mBAAmB;CAAC;OAAU,CAAC,eAAe;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;AAC7F,IAAW,CAAC,sBAAsB;CAAC;OAAU,CAAC;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;;;;ACJrE,IAAW,CAAC,kBAAkB;CAAC;OAAS;EAAC;EAAgB;EAAc;EAAiB;CAAkB;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;;;;ACDzJ,IAAW,CAAC,MAAM;CAAC;OAAS,CAAC;CAAG;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;AAAC;AAC5M,IAAW,CAAC,WAAW;CAAC;OAAS,CAAC,EAAE;CAAG,CAAC,EAAE;AAAC;;;;ACC3C,IAAI,CAAC,MAAM;CAAC;OAAS,CAAC,OAAO;CAAG;EAAC;EAAI;EAAI;CAAE;CAAG,WAAW,EAAE;AAAC;AAC5D,IAAW,CAAC,UAAU;CAAC;OAAS,CAAC;CAAG,CAAC;AAAC;AACtC,IAAW,CAAC,SAAS;CAAC;OAAS,CAAC,aAAa;CAAG,CAAC,IAAI,EAAE;AAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-team",
|
|
3
|
+
"version": "0.2.3",
|
|
4
|
+
"description": "Agent teams for DeepSeek Harness: named long-lived teammates over ctx.subagents, a shared task list, a member-to-member mailbox, virtual workspaces, and a live team room in the conversation view",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "huxint",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/huxint/dsh-team.git"
|
|
10
|
+
},
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "dist/index.js",
|
|
13
|
+
"types": "dist/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./client": "./dist/client.js",
|
|
20
|
+
"./package.json": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/",
|
|
24
|
+
"cordis.patch.yml",
|
|
25
|
+
"dsh-manifest.json"
|
|
26
|
+
],
|
|
27
|
+
"dsh": {
|
|
28
|
+
"bundle": {
|
|
29
|
+
"patch": "./cordis.patch.yml"
|
|
30
|
+
},
|
|
31
|
+
"client": {
|
|
32
|
+
"inject": [
|
|
33
|
+
"@deepseek-ai/dsh-client-locale",
|
|
34
|
+
"@deepseek-ai/dsh-client-runtime",
|
|
35
|
+
"@deepseek-ai/dsh-client-ui-conversation"
|
|
36
|
+
],
|
|
37
|
+
"platform": "web"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
package/package.json
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-team",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Agent teams for DeepSeek Harness: named long-lived teammates over ctx.subagents, a shared task list, a member-to-member mailbox, virtual workspaces, and a live team room in the conversation view",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "
|
|
7
|
-
"types": "
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"types": "./
|
|
11
|
-
"default": "./
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
-
"./client": "./
|
|
13
|
+
"./client": "./dist/client.js",
|
|
14
14
|
"./package.json": "./package.json"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"lib/client.js.map",
|
|
21
|
-
"cordis.patch.yml"
|
|
17
|
+
"dist/",
|
|
18
|
+
"cordis.patch.yml",
|
|
19
|
+
"dsh-manifest.json"
|
|
22
20
|
],
|
|
23
21
|
"license": "MIT",
|
|
24
22
|
"dsh": {
|
|
File without changes
|
/package/{lib → dist}/index.d.ts
RENAMED
|
File without changes
|
/package/{lib → dist}/index.js
RENAMED
|
File without changes
|