dsh-team 0.2.1 → 0.2.2

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 (3) hide show
  1. package/README.md +40 -96
  2. package/lib/client.js +295 -295
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -6,87 +6,58 @@
6
6
 
7
7
  整个能力是**一个包、一行装配**:宿主半边(`dsh-team`)与浏览器半边(`dsh-team/client`)从同一个 `package.json` 构建。
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
- 工具是 `team_note`(写/删,`private: true` 走自己的便笺)和 `team_board`(不带 key 读索引,带 key 读全文),leader 和队友都有。
11
+ npm 预构建包,一行装配:
60
12
 
61
- **为什么不落在会话日志里**:队友的工具调用只落在**它自己**的日志里,leader 的折叠永远读不到——这正是"任务列表只能 leader 写"这条限制的根源。所以工作区落在 `ctx.storageDomain`(`@deepseek-ai/dsh-storage-domain`):写入先落盘再更新内存,跨重启存活,**队友可以直接写**,而且不占任何人的一个 turn。
13
+ ```sh
14
+ dsh plugin --profile web add dsh-team
15
+ ```
62
16
 
63
- **这也是防死循环的正向出口**:留一条笔记不花 turn、不花会话预算;给同级发消息两样都花。提示里明确这么讲。
17
+ 也可以克隆源码构建后挂 link:
64
18
 
65
- **面板看到的是快照**:durable 工作区不在任何会话日志里,所以协作室里的"共享工作区"是**主会话最后一次读或写时**的样子——`team_note` / `team_board` 的结果 meta 带着整份共享索引(只有索引与首行预览,不带正文;私有便笺从不进投影)。面板上写着快照时间,不假装自己是实时的。
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
- 工作区随团队走:解散整队清掉这支团队的全部区域,解雇一名队友清掉它的私有便笺(`team/changed` 带上 `ended` / `removedMember`)。没有 storage-domain 的部署照常用团队,只是这两个工具**根本不会注册**——没人会看到一个写不下去的工具。
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
- ### leader 不在场时,队友不失联
29
+ 验证装配与启动:
70
30
 
71
- 主会话被卸载(用户关掉、进程重启、residency 回收)而队友还在跑,是常态而不是异常。**投递确实停了**——每次投递都跑在 leader 的父级权威上,没有 live 的 leader 就没有权威——但"投递停了"不等于"你没有团队":
31
+ ```sh
32
+ dsh --profile web --dump-config | grep 'id: team'
33
+ dsh --profile web
34
+ ```
72
35
 
73
- - **拒绝语分得清两件事**:`LEADER_AWAY`("团队还在,只是主会话没加载,把结果写进 `team_note`,leader 回来会读到")与 `NO_TEAM`("这里还没有团队,用 `team_spawn` 开一支")。
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
- rc.6 的 `Session.append` 无法把事件标成 `ignorable`,因此**仓库外插件不能新增会话事件类型**(否则卸载插件后旧日志会拒绝加载)。所以团队的每条持久事实都骑在 harness 已认识的词汇上:
42
+ ## 能力一览
80
43
 
81
- - 团队工具自己 `tool/result` 的 `meta`(`presentationMeta` 带**整个实体**,不是增量);
82
- - `user/message` 的消息源(`team-message` / 内置的 `subagent-report` / `subagent-settled`)。
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
- `src/fold.ts` 是唯一的折叠实现,`src/projection.ts` 把它注册成 `team` session projection:宿主算一次,框架负责推给浏览器(历史尾巴基线 + `session/projection` 帧),客户端只决定"现在显示哪个会话的值"。
50
+ ## 设计
85
51
 
86
- ### 工具作用域
52
+ 实现完全走 dsh 的能力缝,不造新运行时:
87
53
 
88
- - leader 侧:`agent/created` 时把 6 个工具注册进**该 agent 自己的 ctx**(普通 subagent 继承全局注册表,但不继承别人的 agent scope,所以看不到)。
89
- - 队友侧:`registerContinuableSetup` 在子代**未发布的组装窗口**里注册 `team_send`、`team_list`、身份提示段落与(可选的)思考强度;不属于任何团队的子代拿到的是空的 disposer。
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,6 +144,8 @@ 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 # 折叠 / 投影 / 服务授权矩阵 / 工具契约 / 队友组装 / 会话预算 / 虚拟工作区 / 房间几何与走路 / 客户端跟随与页签 / 协作室与抽屉
package/lib/client.js CHANGED
@@ -1041,331 +1041,331 @@ window.__ModuleLoader__.load({
1041
1041
  document.head.appendChild(tag);
1042
1042
  }
1043
1043
  var TeamStage_module_css_default = {
1044
+ "team-say-in": "nesYQG_team-say-in",
1045
+ "chair": "nesYQG_chair",
1046
+ "lounge": "nesYQG_lounge",
1047
+ "crewHand": "nesYQG_crewHand",
1048
+ "crewCord": "nesYQG_crewCord",
1049
+ "pane": "nesYQG_pane",
1050
+ "team-tick": "nesYQG_team-tick",
1051
+ "crewSpout": "nesYQG_crewSpout",
1052
+ "crewBadge": "nesYQG_crewBadge",
1053
+ "team-bubble": "nesYQG_team-bubble",
1054
+ "catStripe": "nesYQG_catStripe",
1055
+ "team-halo": "nesYQG_team-halo",
1044
1056
  "utilityCoffee": "nesYQG_utilityCoffee",
1045
- "chairLift": "nesYQG_chairLift",
1046
- "coolerWater": "nesYQG_coolerWater",
1047
- "crewGill": "nesYQG_crewGill",
1048
- "pendantBulb": "nesYQG_pendantBulb",
1049
- "team-blink": "nesYQG_team-blink",
1050
- "crewBlush": "nesYQG_crewBlush",
1051
- "coolerShine": "nesYQG_coolerShine",
1052
- "crewEar": "nesYQG_crewEar",
1057
+ "team-chair-rise": "nesYQG_team-chair-rise",
1058
+ "team-chair-stretch": "nesYQG_team-chair-stretch",
1059
+ "floraCrumb": "nesYQG_floraCrumb",
1060
+ "person": "nesYQG_person",
1061
+ "crewOpen": "nesYQG_crewOpen",
1062
+ "team-row-in": "nesYQG_team-row-in",
1063
+ "wallRight": "nesYQG_wallRight",
1064
+ "floraGlaze": "nesYQG_floraGlaze",
1053
1065
  "composerAway": "nesYQG_composerAway",
1054
- "crewCuff": "nesYQG_crewCuff",
1055
- "propLampIdle": "nesYQG_propLampIdle",
1056
- "propLampLive": "nesYQG_propLampLive",
1057
- "coolerBubble": "nesYQG_coolerBubble",
1058
- "deskPlant": "nesYQG_deskPlant",
1066
+ "floraBloom": "nesYQG_floraBloom",
1059
1067
  "crewEye": "nesYQG_crewEye",
1068
+ "catBody": "nesYQG_catBody",
1069
+ "coolerCabinet": "nesYQG_coolerCabinet",
1070
+ "crewEar": "nesYQG_crewEar",
1071
+ "crewBadgeLine": "nesYQG_crewBadgeLine",
1072
+ "hanger": "nesYQG_hanger",
1073
+ "logRow": "nesYQG_logRow",
1074
+ "logAvatar": "nesYQG_logAvatar",
1075
+ "sky": "nesYQG_sky",
1076
+ "coolerBottle": "nesYQG_coolerBottle",
1077
+ "logHead": "nesYQG_logHead",
1078
+ "shell": "nesYQG_shell",
1079
+ "boardTrayTop": "nesYQG_boardTrayTop",
1080
+ "bookLeaning": "nesYQG_bookLeaning",
1081
+ "drawerClose": "nesYQG_drawerClose",
1082
+ "reveal": "nesYQG_reveal",
1083
+ "calendar": "nesYQG_calendar",
1060
1084
  "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",
1085
+ "chairLumbar": "nesYQG_chairLumbar",
1086
+ "crewMouth": "nesYQG_crewMouth",
1087
+ "crewStitch": "nesYQG_crewStitch",
1088
+ "crewPack": "nesYQG_crewPack",
1089
+ "plateName": "nesYQG_plateName",
1079
1090
  "crew": "nesYQG_crew",
1080
- "team-screen": "nesYQG_team-screen",
1081
- "floraPotShade": "nesYQG_floraPotShade",
1082
- "wallBack": "nesYQG_wallBack",
1083
- "team-sail": "nesYQG_team-sail",
1091
+ "lamp": "nesYQG_lamp",
1092
+ "chairSvg": "nesYQG_chairSvg",
1093
+ "crewKnob": "nesYQG_crewKnob",
1094
+ "team-swing": "nesYQG_team-swing",
1084
1095
  "barStats": "nesYQG_barStats",
1085
- "drawerClose": "nesYQG_drawerClose",
1086
- "floraRimLip": "nesYQG_floraRimLip",
1087
- "ceiling": "nesYQG_ceiling",
1088
- "pane": "nesYQG_pane",
1089
- "cloud": "nesYQG_cloud",
1090
- "clockPin": "nesYQG_clockPin",
1091
- "floraBladeLit": "nesYQG_floraBladeLit",
1092
- "boardNote": "nesYQG_boardNote",
1093
- "crewPupil": "nesYQG_crewPupil",
1094
- "noteKey": "nesYQG_noteKey",
1095
- "barIcon": "nesYQG_barIcon",
1096
- "utilityCabinet": "nesYQG_utilityCabinet",
1097
- "cardTitle": "nesYQG_cardTitle",
1098
- "floraBloomHeart": "nesYQG_floraBloomHeart",
1096
+ "logText": "nesYQG_logText",
1097
+ "plate": "nesYQG_plate",
1098
+ "logHop": "nesYQG_logHop",
1099
+ "emptyHint": "nesYQG_emptyHint",
1100
+ "floorPlane": "nesYQG_floorPlane",
1101
+ "bar": "nesYQG_bar",
1102
+ "wall": "nesYQG_wall",
1103
+ "crewBelly": "nesYQG_crewBelly",
1104
+ "logBody": "nesYQG_logBody",
1099
1105
  "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",
1106
+ "chairMesh": "nesYQG_chairMesh",
1107
+ "boardNote": "nesYQG_boardNote",
1108
+ "mug": "nesYQG_mug",
1109
+ "coolerCap": "nesYQG_coolerCap",
1110
+ "rug": "nesYQG_rug",
1111
+ "sea": "nesYQG_sea",
1112
+ "clockProp": "nesYQG_clockProp",
1113
+ "utilityPrinter": "nesYQG_utilityPrinter",
1114
+ "chairPanTop": "nesYQG_chairPanTop",
1115
+ "team-prowl": "nesYQG_team-prowl",
1116
+ "cloud": "nesYQG_cloud",
1106
1117
  "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",
1118
+ "crewPackTrim": "nesYQG_crewPackTrim",
1119
+ "pendantBulb": "nesYQG_pendantBulb",
1120
+ "propShade": "nesYQG_propShade",
1121
+ "skirting": "nesYQG_skirting",
1122
+ "drawerHead": "nesYQG_drawerHead",
1123
+ "propInset": "nesYQG_propInset",
1124
+ "propSpout": "nesYQG_propSpout",
1125
+ "floraLeaf": "nesYQG_floraLeaf",
1126
+ "coolerDripWell": "nesYQG_coolerDripWell",
1127
+ "calendarGrid": "nesYQG_calendarGrid",
1128
+ "floraRim": "nesYQG_floraRim",
1129
+ "propBrew": "nesYQG_propBrew",
1130
+ "empty": "nesYQG_empty",
1131
+ "beam": "nesYQG_beam",
1132
+ "crewHair": "nesYQG_crewHair",
1133
+ "crewCansCup": "nesYQG_crewCansCup",
1134
+ "crewArmBack": "nesYQG_crewArmBack",
1135
+ "wallLeft": "nesYQG_wallLeft",
1136
+ "state": "nesYQG_state",
1137
+ "pendantShade": "nesYQG_pendantShade",
1138
+ "trophy": "nesYQG_trophy",
1139
+ "team-listen": "nesYQG_team-listen",
1140
+ "crewShoeTrim": "nesYQG_crewShoeTrim",
1141
+ "floraSoil": "nesYQG_floraSoil",
1142
+ "deskFlank": "nesYQG_deskFlank",
1143
+ "figure": "nesYQG_figure",
1144
+ "chairSpokes": "nesYQG_chairSpokes",
1145
+ "logArrow": "nesYQG_logArrow",
1146
+ "columnCount": "nesYQG_columnCount",
1113
1147
  "chairHub": "nesYQG_chairHub",
1114
- "poster": "nesYQG_poster",
1115
- "team-drift": "nesYQG_team-drift",
1116
- "boardEraser": "nesYQG_boardEraser",
1117
- "crewGlasses": "nesYQG_crewGlasses",
1118
- "paneNote": "nesYQG_paneNote",
1119
- "dockButton": "nesYQG_dockButton",
1120
- "sail": "nesYQG_sail",
1121
- "team-row-in": "nesYQG_team-row-in",
1148
+ "team-stage-in": "nesYQG_team-stage-in",
1122
1149
  "screenApp": "nesYQG_screenApp",
1123
- "chairMesh": "nesYQG_chairMesh",
1124
- "floraSpine": "nesYQG_floraSpine",
1125
- "team-chair-stretch": "nesYQG_team-chair-stretch",
1126
- "team-tick": "nesYQG_team-tick",
1127
- "propFront": "nesYQG_propFront",
1128
- "boardInk": "nesYQG_boardInk",
1150
+ "crewCollar": "nesYQG_crewCollar",
1151
+ "crewTrouser": "nesYQG_crewTrouser",
1129
1152
  "floraVein": "nesYQG_floraVein",
1130
- "crewArmBack": "nesYQG_crewArmBack",
1131
- "floorPlane": "nesYQG_floorPlane",
1132
- "chairMechanism": "nesYQG_chairMechanism",
1133
- "team-type": "nesYQG_team-type",
1134
- "drawerBody": "nesYQG_drawerBody",
1135
- "deskFlank": "nesYQG_deskFlank",
1136
- "hangerPlant": "nesYQG_hangerPlant",
1153
+ "monitor": "nesYQG_monitor",
1154
+ "catEye": "nesYQG_catEye",
1155
+ "books": "nesYQG_books",
1156
+ "pendantFlex": "nesYQG_pendantFlex",
1157
+ "propHandle": "nesYQG_propHandle",
1158
+ "crewTusk": "nesYQG_crewTusk",
1159
+ "dock": "nesYQG_dock",
1160
+ "coolerHandleWarm": "nesYQG_coolerHandleWarm",
1161
+ "discGlyph": "nesYQG_discGlyph",
1162
+ "crewSleeve": "nesYQG_crewSleeve",
1163
+ "floraShade": "nesYQG_floraShade",
1164
+ "cameoDot": "nesYQG_cameoDot",
1165
+ "boardEraser": "nesYQG_boardEraser",
1137
1166
  "deskApron": "nesYQG_deskApron",
1138
- "statLive": "nesYQG_statLive",
1139
- "calendarHead": "nesYQG_calendarHead",
1140
- "keyboard": "nesYQG_keyboard",
1141
- "floraSaucer": "nesYQG_floraSaucer",
1142
- "deskGrain": "nesYQG_deskGrain",
1143
- "cameoCrew": "nesYQG_cameoCrew",
1144
- "chairShell": "nesYQG_chairShell",
1145
- "propFolder": "nesYQG_propFolder",
1146
- "crewVest": "nesYQG_crewVest",
1147
- "plateMeta": "nesYQG_plateMeta",
1167
+ "chairMeshLine": "nesYQG_chairMeshLine",
1168
+ "crewLimbFront": "nesYQG_crewLimbFront",
1169
+ "team-drift": "nesYQG_team-drift",
1170
+ "chairShellEdge": "nesYQG_chairShellEdge",
1171
+ "noteFoot": "nesYQG_noteFoot",
1172
+ "boardTray": "nesYQG_boardTray",
1173
+ "propSeam": "nesYQG_propSeam",
1174
+ "crewCuff": "nesYQG_crewCuff",
1175
+ "noteKey": "nesYQG_noteKey",
1176
+ "shelfPlant": "nesYQG_shelfPlant",
1177
+ "logKind": "nesYQG_logKind",
1178
+ "screen": "nesYQG_screen",
1179
+ "body": "nesYQG_body",
1180
+ "crewStripes": "nesYQG_crewStripes",
1148
1181
  "coolerTap": "nesYQG_coolerTap",
1149
- "plankBracket": "nesYQG_plankBracket",
1150
- "boardTrayTop": "nesYQG_boardTrayTop",
1151
- "drawerHead": "nesYQG_drawerHead",
1152
- "clockHand": "nesYQG_clockHand",
1153
- "catEye": "nesYQG_catEye",
1182
+ "floraBloomHeart": "nesYQG_floraBloomHeart",
1154
1183
  "coolerPanel": "nesYQG_coolerPanel",
1155
- "floraStem": "nesYQG_floraStem",
1156
- "person": "nesYQG_person",
1157
- "feed": "nesYQG_feed",
1158
- "logRow": "nesYQG_logRow",
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",
1184
+ "window": "nesYQG_window",
1185
+ "deskLegs": "nesYQG_deskLegs",
1173
1186
  "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",
1189
- "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
- "screenText": "nesYQG_screenText",
1199
- "cooler": "nesYQG_cooler",
1200
- "logAuthor": "nesYQG_logAuthor",
1201
- "calendar": "nesYQG_calendar",
1202
- "crewFace": "nesYQG_crewFace",
1203
- "mullion": "nesYQG_mullion",
1187
+ "crewShirt": "nesYQG_crewShirt",
1204
1188
  "drawer": "nesYQG_drawer",
1205
- "team-say-in": "nesYQG_team-say-in",
1206
- "crewBadgeLine": "nesYQG_crewBadgeLine",
1207
- "crewCollar": "nesYQG_crewCollar",
1208
- "floraRim": "nesYQG_floraRim",
1209
- "skirting": "nesYQG_skirting",
1210
- "logTime": "nesYQG_logTime",
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",
1227
- "sillTop": "nesYQG_sillTop",
1228
- "cat": "nesYQG_cat",
1229
- "logBody": "nesYQG_logBody",
1230
- "blankHint": "nesYQG_blankHint",
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",
1189
+ "clockPin": "nesYQG_clockPin",
1190
+ "listening": "nesYQG_listening",
1191
+ "mullion": "nesYQG_mullion",
1192
+ "coolerHandleCool": "nesYQG_coolerHandleCool",
1242
1193
  "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",
1194
+ "stat": "nesYQG_stat",
1195
+ "chairMechanism": "nesYQG_chairMechanism",
1196
+ "crewGill": "nesYQG_crewGill",
1254
1197
  "logTail": "nesYQG_logTail",
1255
- "plankTop": "nesYQG_plankTop",
1256
- "crewHairShine": "nesYQG_crewHairShine",
1257
- "coolerSvg": "nesYQG_coolerSvg",
1198
+ "sillTop": "nesYQG_sillTop",
1199
+ "glare": "nesYQG_glare",
1200
+ "hangerBracket": "nesYQG_hangerBracket",
1201
+ "table": "nesYQG_table",
1202
+ "crewLimbBack": "nesYQG_crewLimbBack",
1203
+ "logTo": "nesYQG_logTo",
1204
+ "feedTitle": "nesYQG_feedTitle",
1205
+ "team-caret": "nesYQG_team-caret",
1206
+ "team-drawer-in": "nesYQG_team-drawer-in",
1207
+ "floraBlade": "nesYQG_floraBlade",
1208
+ "utilityCabinet": "nesYQG_utilityCabinet",
1209
+ "clockHand": "nesYQG_clockHand",
1258
1210
  "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",
1265
- "propSpout": "nesYQG_propSpout",
1266
- "crewPatch": "nesYQG_crewPatch",
1267
- "chairPan": "nesYQG_chairPan",
1268
- "paneTitle": "nesYQG_paneTitle",
1269
- "logAvatar": "nesYQG_logAvatar",
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",
1211
+ "coolerBubble": "nesYQG_coolerBubble",
1212
+ "deskGrain": "nesYQG_deskGrain",
1213
+ "plant": "nesYQG_plant",
1214
+ "crewPocket": "nesYQG_crewPocket",
1215
+ "cardTitle": "nesYQG_cardTitle",
1216
+ "columns": "nesYQG_columns",
1217
+ "propFront": "nesYQG_propFront",
1218
+ "crewSmile": "nesYQG_crewSmile",
1276
1219
  "papers": "nesYQG_papers",
1277
- "crewMouth": "nesYQG_crewMouth",
1278
- "pendantShade": "nesYQG_pendantShade",
1279
- "clockProp": "nesYQG_clockProp",
1280
- "crewArmFront": "nesYQG_crewArmFront",
1220
+ "pendantGlow": "nesYQG_pendantGlow",
1221
+ "neck": "nesYQG_neck",
1222
+ "barHint": "nesYQG_barHint",
1281
1223
  "deskModesty": "nesYQG_deskModesty",
1282
- "speech": "nesYQG_speech",
1283
- "logKind": "nesYQG_logKind",
1284
- "floraBlade": "nesYQG_floraBlade",
1285
- "columns": "nesYQG_columns",
1286
- "sea": "nesYQG_sea",
1287
- "coolerHandleWarm": "nesYQG_coolerHandleWarm",
1288
- "coolerDrip": "nesYQG_coolerDrip",
1289
- "crewRib": "nesYQG_crewRib",
1290
- "crewBelt": "nesYQG_crewBelt",
1291
- "crewLimbFront": "nesYQG_crewLimbFront",
1292
- "chairSvg": "nesYQG_chairSvg",
1224
+ "crewNeck": "nesYQG_crewNeck",
1225
+ "crewHoodSheen": "nesYQG_crewHoodSheen",
1226
+ "barTitle": "nesYQG_barTitle",
1227
+ "propLabel": "nesYQG_propLabel",
1228
+ "boardPens": "nesYQG_boardPens",
1229
+ "plankBracket": "nesYQG_plankBracket",
1230
+ "team-glow": "nesYQG_team-glow",
1231
+ "team-person-sit": "nesYQG_team-person-sit",
1232
+ "crewGlasses": "nesYQG_crewGlasses",
1293
1233
  "crewScarf": "nesYQG_crewScarf",
1294
- "sill": "nesYQG_sill",
1295
- "propSide": "nesYQG_propSide",
1296
- "floraShade": "nesYQG_floraShade",
1297
- "crewStripes": "nesYQG_crewStripes",
1298
- "coolerHandleCool": "nesYQG_coolerHandleCool",
1299
- "propSvg": "nesYQG_propSvg",
1300
- "propInset": "nesYQG_propInset",
1301
- "sky": "nesYQG_sky",
1302
- "floraBloom": "nesYQG_floraBloom",
1303
- "logHead": "nesYQG_logHead",
1304
- "pendantSvg": "nesYQG_pendantSvg",
1305
- "catStripe": "nesYQG_catStripe",
1306
- "plant": "nesYQG_plant",
1307
- "pendantFlex": "nesYQG_pendantFlex",
1308
- "floraLeaf": "nesYQG_floraLeaf",
1309
- "monitor": "nesYQG_monitor",
1310
- "logArrow": "nesYQG_logArrow",
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",
1319
- "coolerBottle": "nesYQG_coolerBottle",
1320
- "propBox": "nesYQG_propBox",
1321
- "crewPocket": "nesYQG_crewPocket",
1322
- "logText": "nesYQG_logText",
1323
- "stat": "nesYQG_stat",
1324
- "crewList": "nesYQG_crewList",
1325
- "window": "nesYQG_window",
1326
- "crewLine": "nesYQG_crewLine",
1327
1234
  "flora": "nesYQG_flora",
1328
- "base": "nesYQG_base",
1329
- "wall": "nesYQG_wall",
1330
- "propBrew": "nesYQG_propBrew",
1331
- "crewHair": "nesYQG_crewHair",
1332
- "state": "nesYQG_state",
1333
- "logTo": "nesYQG_logTo",
1334
- "stage": "nesYQG_stage",
1335
- "catWhisker": "nesYQG_catWhisker",
1336
- "utilityPrinter": "nesYQG_utilityPrinter",
1235
+ "crewName": "nesYQG_crewName",
1236
+ "cameo": "nesYQG_cameo",
1237
+ "calendarHead": "nesYQG_calendarHead",
1238
+ "note": "nesYQG_note",
1239
+ "propFolder": "nesYQG_propFolder",
1240
+ "posterArt": "nesYQG_posterArt",
1241
+ "propLampLive": "nesYQG_propLampLive",
1242
+ "clockTicks": "nesYQG_clockTicks",
1243
+ "propBoxTop": "nesYQG_propBoxTop",
1337
1244
  "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
- "coolerCabinet": "nesYQG_coolerCabinet",
1346
- "crewSmile": "nesYQG_crewSmile",
1347
- "crewKnob": "nesYQG_crewKnob",
1348
- "crewCord": "nesYQG_crewCord",
1349
- "team-bob": "nesYQG_team-bob",
1350
- "doze": "nesYQG_doze",
1245
+ "team-screen": "nesYQG_team-screen",
1246
+ "deskPlant": "nesYQG_deskPlant",
1247
+ "noteAuthor": "nesYQG_noteAuthor",
1351
1248
  "whiteboard": "nesYQG_whiteboard",
1249
+ "card": "nesYQG_card",
1250
+ "feed": "nesYQG_feed",
1251
+ "crewBrow": "nesYQG_crewBrow",
1252
+ "log": "nesYQG_log",
1253
+ "cameoCrew": "nesYQG_cameoCrew",
1254
+ "chairSpine": "nesYQG_chairSpine",
1255
+ "propSide": "nesYQG_propSide",
1256
+ "catTail": "nesYQG_catTail",
1257
+ "crewPatch": "nesYQG_crewPatch",
1258
+ "crewBelt": "nesYQG_crewBelt",
1259
+ "plankTop": "nesYQG_plankTop",
1260
+ "crewHairShine": "nesYQG_crewHairShine",
1261
+ "noteTime": "nesYQG_noteTime",
1262
+ "desk": "nesYQG_desk",
1263
+ "crewSeam": "nesYQG_crewSeam",
1352
1264
  "crewButton": "nesYQG_crewButton",
1353
- "hangerBracket": "nesYQG_hangerBracket",
1265
+ "load": "nesYQG_load",
1266
+ "sofa": "nesYQG_sofa",
1354
1267
  "blankTitle": "nesYQG_blankTitle",
1355
- "log": "nesYQG_log",
1356
- "columnCount": "nesYQG_columnCount",
1357
- "crewNeckBand": "nesYQG_crewNeckBand",
1268
+ "notes": "nesYQG_notes",
1269
+ "deskSurface": "nesYQG_deskSurface",
1270
+ "paneTitle": "nesYQG_paneTitle",
1271
+ "cardNote": "nesYQG_cardNote",
1272
+ "speech": "nesYQG_speech",
1273
+ "columnTitle": "nesYQG_columnTitle",
1274
+ "coolerDrip": "nesYQG_coolerDrip",
1275
+ "pendantSvg": "nesYQG_pendantSvg",
1276
+ "screenText": "nesYQG_screenText",
1277
+ "crewShoe": "nesYQG_crewShoe",
1278
+ "utility": "nesYQG_utility",
1279
+ "logTime": "nesYQG_logTime",
1280
+ "propBox": "nesYQG_propBox",
1281
+ "crewHood": "nesYQG_crewHood",
1282
+ "crewCans": "nesYQG_crewCans",
1283
+ "team-bob": "nesYQG_team-bob",
1284
+ "crown": "nesYQG_crown",
1285
+ "plank": "nesYQG_plank",
1358
1286
  "crewBib": "nesYQG_crewBib",
1287
+ "crewEyeGlint": "nesYQG_crewEyeGlint",
1288
+ "shelf": "nesYQG_shelf",
1289
+ "crewFace": "nesYQG_crewFace",
1290
+ "floraBladeLit": "nesYQG_floraBladeLit",
1291
+ "floraSpine": "nesYQG_floraSpine",
1292
+ "team-sway": "nesYQG_team-sway",
1293
+ "crewNeckBand": "nesYQG_crewNeckBand",
1294
+ "team-type": "nesYQG_team-type",
1295
+ "column": "nesYQG_column",
1296
+ "coolerDoorSeam": "nesYQG_coolerDoorSeam",
1297
+ "floraRimLip": "nesYQG_floraRimLip",
1298
+ "crewJacket": "nesYQG_crewJacket",
1299
+ "floraPot": "nesYQG_floraPot",
1300
+ "catWhisker": "nesYQG_catWhisker",
1301
+ "cardWho": "nesYQG_cardWho",
1302
+ "barIcon": "nesYQG_barIcon",
1303
+ "team-blink": "nesYQG_team-blink",
1304
+ "crewRib": "nesYQG_crewRib",
1305
+ "hangerPlant": "nesYQG_hangerPlant",
1306
+ "coolerWater": "nesYQG_coolerWater",
1307
+ "sill": "nesYQG_sill",
1308
+ "crewStrap": "nesYQG_crewStrap",
1309
+ "chairPan": "nesYQG_chairPan",
1310
+ "sail": "nesYQG_sail",
1311
+ "crewLine": "nesYQG_crewLine",
1312
+ "catEar": "nesYQG_catEar",
1313
+ "propGlass": "nesYQG_propGlass",
1314
+ "poster": "nesYQG_poster",
1315
+ "floraSaucer": "nesYQG_floraSaucer",
1316
+ "roomPane": "nesYQG_roomPane",
1317
+ "crewRow": "nesYQG_crewRow",
1318
+ "keyboard": "nesYQG_keyboard",
1319
+ "crewMelon": "nesYQG_crewMelon",
1320
+ "floor": "nesYQG_floor",
1321
+ "deskTop": "nesYQG_deskTop",
1322
+ "crewArmFront": "nesYQG_crewArmFront",
1323
+ "crewVest": "nesYQG_crewVest",
1324
+ "boardGhost": "nesYQG_boardGhost",
1325
+ "crewPlacket": "nesYQG_crewPlacket",
1326
+ "floraPotShade": "nesYQG_floraPotShade",
1327
+ "propTop": "nesYQG_propTop",
1328
+ "crewDraw": "nesYQG_crewDraw",
1329
+ "doze": "nesYQG_doze",
1330
+ "catLeg": "nesYQG_catLeg",
1331
+ "crewState": "nesYQG_crewState",
1332
+ "team-sail": "nesYQG_team-sail",
1333
+ "paneNote": "nesYQG_paneNote",
1334
+ "ceiling": "nesYQG_ceiling",
1335
+ "coolerSvg": "nesYQG_coolerSvg",
1336
+ "stage": "nesYQG_stage",
1337
+ "propTray": "nesYQG_propTray",
1338
+ "logAuthor": "nesYQG_logAuthor",
1339
+ "cooler": "nesYQG_cooler",
1340
+ "crewList": "nesYQG_crewList",
1341
+ "cardFoot": "nesYQG_cardFoot",
1342
+ "boardInk": "nesYQG_boardInk",
1359
1343
  "crewHoodFabric": "nesYQG_crewHoodFabric",
1360
- "floraCrumb": "nesYQG_floraCrumb",
1361
- "boardTray": "nesYQG_boardTray",
1362
- "crewNeck": "nesYQG_crewNeck",
1363
- "team-doze": "nesYQG_team-doze",
1344
+ "propPaper": "nesYQG_propPaper",
1345
+ "crewBlush": "nesYQG_crewBlush",
1346
+ "plateMeta": "nesYQG_plateMeta",
1347
+ "coolerShine": "nesYQG_coolerShine",
1348
+ "crewPupil": "nesYQG_crewPupil",
1364
1349
  "scene": "nesYQG_scene",
1365
- "team-drawer-in": "nesYQG_team-drawer-in",
1366
- "team-listen": "nesYQG_team-listen",
1367
- "books": "nesYQG_books",
1368
- "team-caret": "nesYQG_team-caret"
1350
+ "chairRide": "nesYQG_chairRide",
1351
+ "wallBack": "nesYQG_wallBack",
1352
+ "team-doze": "nesYQG_team-doze",
1353
+ "statLive": "nesYQG_statLive",
1354
+ "cat": "nesYQG_cat",
1355
+ "chairCasters": "nesYQG_chairCasters",
1356
+ "team-person-in": "nesYQG_team-person-in",
1357
+ "propSvg": "nesYQG_propSvg",
1358
+ "pendant": "nesYQG_pendant",
1359
+ "crewCansBand": "nesYQG_crewCansBand",
1360
+ "blankHint": "nesYQG_blankHint",
1361
+ "base": "nesYQG_base",
1362
+ "dockButton": "nesYQG_dockButton",
1363
+ "propLampIdle": "nesYQG_propLampIdle",
1364
+ "propCup": "nesYQG_propCup",
1365
+ "floraStem": "nesYQG_floraStem",
1366
+ "drawerBody": "nesYQG_drawerBody",
1367
+ "chairLift": "nesYQG_chairLift",
1368
+ "chairShell": "nesYQG_chairShell"
1369
1369
  };
1370
1370
  //#endregion
1371
1371
  //#region src/client/crew.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-team",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
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
6
  "main": "lib/index.js",