@deepseek-ai/dsh-experimental-client-ui-agent-team 0.1.5-rc.2 → 0.1.6-alpha.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.
package/README.i18n.yaml CHANGED
@@ -3,4 +3,4 @@
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/experimental/client-ui-agent-team/README.md
5
5
  README.md: ab40e2de09406991c55160005f2f16cf6931e195
6
- README.zh.md: d0947e94f768d338f011ea25afc00d17880bf781
6
+ README.zh.md: 2913ff65930f260d53a0bee3b3ed6cb9634fcd5a
package/README.zh.md CHANGED
@@ -29,7 +29,7 @@ kind: "package-reference"
29
29
 
30
30
  ### 检查并导航 roster
31
31
 
32
- 打开 panel 会调用 `agentTeams/view`。Roster row 展示持久 name、运行时 status、model 与 diagnostics。选择健康 teammate 时,系统刷新既有直接 child catalog,并打开普通的 `{ parentSessionId, childSessionId, mode: 'continuable' }` address。History 与后续人类 prompt 继续使用稳定 addressed-subagent 会话路径;本包不会添加 Team 专用 address 字段。
32
+ 打开 panel 会调用 `agentTeams/view`。Roster row 展示持久 name、运行时 status、model 与 diagnostics。选择健康 teammate 时,系统刷新既有直接 child catalog,并打开普通的 `{ parentSessionId, childSessionId, mode: 'continuable' }` address。History 与后续人类提示词继续使用稳定 addressed-subagent 会话路径;本包不会添加 Team 专用 address 字段。
33
33
 
34
34
  ### 管理任务板
35
35
 
@@ -43,13 +43,13 @@ kind: "package-reference"
43
43
  <details>
44
44
  <summary>实现细节——点击展开</summary>
45
45
 
46
- Client export 挂载来自 [`@deepseek-ai/dsh-experimental-agent-team/remote`](../agent-team/README.zh.md) 的生成式 `ctx.remote.agentTeams` contribution,然后通过 Cordis effect 注册 locale dictionary 与一个 conversation-header slot。Dispose plugin fiber 会移除这两项 registration。
46
+ Client export 挂载来自 [`@deepseek-ai/dsh-experimental-agent-team/remote`](../agent-team/README.zh.md) 的生成的 `ctx.remote.agentTeams` contribution,然后通过 Cordis effect 注册 locale dictionary 与一个 conversation-header slot。Dispose plugin fiber 会移除这两项 registration。
47
47
 
48
- 开始 create 或 update 会让更早的 refresh 失效。成功后会重新读取完整 Team view,使每个 task 的派生字段保持最新。`team-task-conflict` 结果仅在重新读取成功后显示状态陈旧提示;如果重新读取失败,则保留该错误。由于 Team service 把任务文本或 scope 编辑与 dependency 修改公开为独立 action,两者使用两个连续的 compare-and-set mutation。
48
+ 开始 create 或 update 会让更早的 refresh 失效。成功后会重新读取完整 Team view,使每个 task 的派生字段保持最新。`team-task-conflict` 结果仅在重新读取成功后显示状态陈旧提示;如果重新读取失败,则改为显示重新读取错误。由于 Team 服务把任务文本或 scope 编辑与 dependency 修改公开为独立 action,两者使用两个连续的 compare-and-set mutation。
49
49
 
50
50
  | 文件 | 职责 |
51
51
  |---|---|
52
- | [`src/client/mount.ts`](src/client/mount.ts) | 生成式 Remote、locale、导航与 slot registration |
52
+ | [`src/client/mount.ts`](src/client/mount.ts) | 生成的 Remote、locale、导航与 slot registration |
53
53
  | [`src/client/TeamAction.tsx`](src/client/TeamAction.tsx) | Roster 与任务板交互状态 |
54
54
  | [`src/client/locales.ts`](src/client/locales.ts) | 中英文 panel 文案 |
55
55
  | [`src/index.ts`](src/index.ts) | 不执行行为的 Host entry |
@@ -81,8 +81,8 @@ Client export 挂载来自 [`@deepseek-ai/dsh-experimental-agent-team/remote`](.
81
81
 
82
82
  <a id="known-limitations-and-deferred-work"></a>
83
83
 
84
- - **Snapshot refresh**——panel 会在打开、显式 refresh 与 mutation 后刷新;它没有实时 event subscription 或 mailbox timeline。
85
- - **普通 child continuation**——导航后发送的人类消息使用稳定 addressed-subagent prompt 路径,而不是 Team peer mailbox。
84
+ - **Snapshot refresh**——panel 会在打开、显式 refresh 与 mutation 后刷新;它没有实时事件订阅或 mailbox timeline。
85
+ - **普通 child continuation**——导航后发送的人类消息使用稳定 addressed-subagent 提示词路径,而不是 Team peer mailbox。
86
86
  - **没有 lifecycle 或 workspace control**——panel 不能 spawn、rename、delete 或 interrupt teammate,write scope 仍只是提示性 metadata。
87
87
 
88
88
  <a id="dev-note"></a>
package/lib/client.js CHANGED
@@ -4046,14 +4046,17 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4046
4046
  }
4047
4047
  //#endregion
4048
4048
  //#region ../agent-team/lib/typert.remote-client.js
4049
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema = intersection(string(), unknown());
4050
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema = object({
4049
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema$value;
4050
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema$value ??= intersection(string(), unknown());
4051
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema$value;
4052
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema$value ??= object({
4051
4053
  "subject": string().readonly(),
4052
4054
  "description": string().readonly(),
4053
4055
  "blockedBy": array(intersection(string(), unknown())).readonly().optional(),
4054
4056
  "writeScopes": array(string()).readonly().optional()
4055
4057
  });
4056
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema = union([object({
4058
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema$value;
4059
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema$value ??= union([object({
4057
4060
  "ok": literal(true).readonly(),
4058
4061
  "value": object({
4059
4062
  "id": intersection(string(), unknown()).readonly(),
@@ -4079,8 +4082,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4079
4082
  "message": string().readonly()
4080
4083
  }).readonly()
4081
4084
  })]);
4082
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema = intersection(string(), unknown());
4083
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema = object({
4085
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema$value;
4086
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema$value ??= intersection(string(), unknown());
4087
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema$value;
4088
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema$value ??= object({
4084
4089
  "taskId": intersection(string(), unknown()).readonly(),
4085
4090
  "expectedRevision": number().readonly(),
4086
4091
  "action": union([
@@ -4099,7 +4104,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4099
4104
  "writeScopes": array(string()).readonly().optional(),
4100
4105
  "owner": string().readonly().optional()
4101
4106
  });
4102
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema = union([object({
4107
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema$value;
4108
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema$value ??= union([object({
4103
4109
  "ok": literal(true).readonly(),
4104
4110
  "value": object({
4105
4111
  "id": intersection(string(), unknown()).readonly(),
@@ -4125,8 +4131,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4125
4131
  "message": string().readonly()
4126
4132
  }).readonly()
4127
4133
  })]);
4128
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema = intersection(string(), unknown());
4129
- const _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema = object({
4134
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema$value;
4135
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema$value ??= intersection(string(), unknown());
4136
+ let _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema$value;
4137
+ const _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema = () => _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema$value ??= object({
4130
4138
  "members": array(object({
4131
4139
  "id": intersection(string(), unknown()).readonly(),
4132
4140
  "name": string().readonly(),
@@ -4184,7 +4192,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4184
4192
  codec: {
4185
4193
  mode: "strict",
4186
4194
  typeSymbol: "@deepseek-ai/dsh-session/types#SessionId",
4187
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema
4195
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_0$schema
4188
4196
  }
4189
4197
  }, {
4190
4198
  name: "request",
@@ -4193,13 +4201,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4193
4201
  codec: {
4194
4202
  mode: "strict",
4195
4203
  typeSymbol: "@deepseek-ai/dsh-experimental-agent-team/client#CreateTeamTaskRequest",
4196
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema
4204
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_parameter_1$schema
4197
4205
  }
4198
4206
  }],
4199
4207
  result: {
4200
4208
  mode: "strict",
4201
4209
  typeSymbol: "@deepseek-ai/dsh-experimental-agent-team/client#TeamTaskMutationResult",
4202
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema
4210
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_createTask_result$schema
4203
4211
  },
4204
4212
  sourceLocation: {
4205
4213
  "file": "packages/experimental/agent-team/src/index.ts",
@@ -4226,7 +4234,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4226
4234
  codec: {
4227
4235
  mode: "strict",
4228
4236
  typeSymbol: "@deepseek-ai/dsh-session/types#SessionId",
4229
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema
4237
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_0$schema
4230
4238
  }
4231
4239
  }, {
4232
4240
  name: "request",
@@ -4235,13 +4243,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4235
4243
  codec: {
4236
4244
  mode: "strict",
4237
4245
  typeSymbol: "@deepseek-ai/dsh-experimental-agent-team/client#UpdateTeamTaskRequest",
4238
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema
4246
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_parameter_1$schema
4239
4247
  }
4240
4248
  }],
4241
4249
  result: {
4242
4250
  mode: "strict",
4243
4251
  typeSymbol: "@deepseek-ai/dsh-experimental-agent-team/client#TeamTaskMutationResult",
4244
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema
4252
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_updateTask_result$schema
4245
4253
  },
4246
4254
  sourceLocation: {
4247
4255
  "file": "packages/experimental/agent-team/src/index.ts",
@@ -4268,13 +4276,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4268
4276
  codec: {
4269
4277
  mode: "strict",
4270
4278
  typeSymbol: "@deepseek-ai/dsh-session/types#SessionId",
4271
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema
4279
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_parameter_0$schema
4272
4280
  }
4273
4281
  }],
4274
4282
  result: {
4275
4283
  mode: "strict",
4276
4284
  typeSymbol: "@deepseek-ai/dsh-experimental-agent-team/client#TeamView",
4277
- schema: _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema
4285
+ create: _deepseek_ai_dsh_experimental_agent_team_agentTeams_view_result$schema
4278
4286
  },
4279
4287
  sourceLocation: {
4280
4288
  "file": "packages/experimental/agent-team/src/index.ts",
@@ -4879,6 +4887,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4879
4887
  /** Required browser services for RPC, navigation, slots, and localized copy. */
4880
4888
  const inject = [
4881
4889
  "sessions",
4890
+ "uiWorkspace",
4882
4891
  "remote",
4883
4892
  "slots",
4884
4893
  "locale"
@@ -4910,8 +4919,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4910
4919
  if (member.role !== "teammate") return;
4911
4920
  const parentSessionId = leadSessionId(sessionId);
4912
4921
  await sessions.refreshSubagents(parentSessionId);
4913
- if (sessions.list.getSnapshot().current !== sessionId) return;
4914
- sessions.openSubagent({
4922
+ if ((sessions.retainInfo(sessionId).getSnapshot().retainedBy.mainView ?? 0) === 0) return;
4923
+ ctx.uiWorkspace.openSession({
4915
4924
  parentSessionId,
4916
4925
  childSessionId: member.id,
4917
4926
  mode: "continuable"
@@ -4936,6 +4945,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4936
4945
  const disposeRemote = await ctx.remote.$mount(contribution);
4937
4946
  const ui = ctx.inject([
4938
4947
  "sessions",
4948
+ "uiWorkspace",
4939
4949
  "remote.agentTeams",
4940
4950
  "slots",
4941
4951
  "locale"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-experimental-client-ui-agent-team",
3
3
  "description": "Web Agent Teams roster, task board, and teammate navigation",
4
- "version": "0.1.5-rc.2",
4
+ "version": "0.1.6-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -32,46 +32,47 @@
32
32
  "@deepseek-ai/dsh-api-session-controller",
33
33
  "@deepseek-ai/dsh-client-locale",
34
34
  "@deepseek-ai/dsh-client-ui-conversation",
35
- "@deepseek-ai/dsh-client-ui-primitives"
35
+ "@deepseek-ai/dsh-client-ui-primitives",
36
+ "@deepseek-ai/dsh-client-ui-workspace"
36
37
  ],
37
38
  "platform": "web"
38
39
  }
39
40
  },
40
41
  "license": "MIT",
41
- "dependencies": {
42
- "react": "^18.2.0"
43
- },
44
42
  "peerDependencies": {
45
- "@deepseek-ai/dsh-api-remotes": "^0.1.5-rc.2",
46
- "@deepseek-ai/dsh-api-session-controller": "^0.1.5-rc.2",
47
- "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
48
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-rc.2",
49
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2",
50
- "@deepseek-ai/dsh-client-ui-session": "^0.1.5-rc.2",
51
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2",
52
- "@deepseek-ai/dsh-experimental-agent-team": "^0.1.5-rc.2",
53
- "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
54
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-rc.2",
55
- "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
43
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.6-alpha.2",
44
+ "@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.2",
45
+ "@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.2",
46
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.2",
47
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.2",
48
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.6-alpha.2",
49
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
50
+ "@deepseek-ai/dsh-client-ui-workspace": "^0.1.6-alpha.2",
51
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
52
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.6-alpha.2",
53
+ "@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.2",
54
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.2",
56
55
  "@deepseek-ai/cordis": "^4.0.2"
57
56
  },
58
57
  "devDependencies": {
59
58
  "@testing-library/react": "^16.1.0",
60
59
  "@types/react": "~18.3.1",
60
+ "react": "^18.2.0",
61
61
  "react-dom": "^18.2.0",
62
- "@deepseek-ai/dsh-api-session-controller": "^0.1.5-rc.2",
63
- "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
64
- "@deepseek-ai/dsh-api-remotes": "^0.1.5-rc.2",
65
- "@deepseek-ai/dsh-client-test-runtime": "^0.1.5-rc.2",
66
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-rc.2",
67
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2",
68
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-rc.2",
69
- "@deepseek-ai/dsh-client-ui-session": "^0.1.5-rc.2",
70
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2",
71
- "@deepseek-ai/dsh-session": "^0.1.5-rc.2",
72
- "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
73
- "@deepseek-ai/cordis": "^4.0.2",
74
- "@deepseek-ai/dsh-experimental-agent-team": "^0.1.5-rc.2"
62
+ "@deepseek-ai/dsh-api-remotes": "^0.1.6-alpha.2",
63
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.6-alpha.2",
64
+ "@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.2",
65
+ "@deepseek-ai/dsh-client-test-runtime": "^0.1.6-alpha.2",
66
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.6-alpha.2",
67
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.2",
68
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.6-alpha.2",
69
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.2",
70
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
71
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
72
+ "@deepseek-ai/dsh-experimental-agent-team": "^0.1.6-alpha.2",
73
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.2",
74
+ "@deepseek-ai/dsh-client-ui-workspace": "^0.1.6-alpha.2",
75
+ "@deepseek-ai/cordis": "^4.0.2"
75
76
  },
76
77
  "files": [
77
78
  "lib/index.js",