@wowyuarm/dsh-agent-team 0.1.6 → 0.1.7
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 +11 -5
- package/README.zh.md +11 -5
- package/package.json +44 -42
- package/packages/agent-team/README.md +2 -0
- package/packages/agent-team/README.zh.md +2 -0
- package/packages/agent-team/lib/index.js +82 -204
- package/packages/agent-team/lib/ledger.js +301 -13
- package/packages/agent-team/lib/member-context.js +5 -1
- package/packages/agent-team/lib/member-runtime.js +229 -0
- package/packages/agent-team/lib/preset-roster.js +1 -0
- package/packages/agent-team/lib/spec.js +30 -1
- package/packages/agent-team/lib/typert.host.js +253 -74
- package/packages/agent-team/lib/typert.remote-client.d.ts +5 -1
- package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
- package/packages/agent-team/lib/typert.remote-client.js +172 -43
- package/packages/agent-team/lib/types/entities.js +1 -0
- package/packages/agent-team/lib/types/index.d.ts +20 -44
- package/packages/agent-team/lib/types/index.d.ts.map +1 -1
- package/packages/agent-team/lib/types/ledger.d.ts +34 -1
- package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-context.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-runtime.d.ts +108 -0
- package/packages/agent-team/lib/types/member-runtime.d.ts.map +1 -0
- package/packages/agent-team/lib/types/operations.js +1 -0
- package/packages/agent-team/lib/types/preset-roster.d.ts.map +1 -1
- package/packages/agent-team/lib/types/requests-results.js +1 -0
- package/packages/agent-team/lib/types/spec.d.ts.map +1 -1
- package/packages/agent-team/lib/types/types/entities.d.ts +339 -0
- package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types/operations.d.ts +303 -0
- package/packages/agent-team/lib/types/types/operations.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types/requests-results.d.ts +527 -0
- package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types.d.ts +10 -1070
- package/packages/agent-team/lib/types/types.d.ts.map +1 -1
- package/packages/agent-team/preset/team-member/agent.cordis.yml +4 -2
- package/packages/client-agent-team/README.md +3 -1
- package/packages/client-agent-team/README.zh.md +3 -1
- package/packages/client-agent-team/lib/client.js +444 -298
- package/packages/client-agent-team/lib/client.js.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts +3 -2
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +30 -7
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +2 -2
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts +2 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.js +31 -5
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamComposer.js +2 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts +12 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.js +13 -0
- package/packages/client-agent-team/lib/types/client/TeamMessage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamMessage.js +10 -3
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +2 -2
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/index.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/index.js +25 -28
- package/packages/client-agent-team/lib/types/client/locales.d.ts +28 -0
- package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/locales.js +28 -0
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts +1 -3
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/member-session-input.js +18 -6
- package/packages/client-agent-team/lib/types/client/navigation.d.ts +2 -1
- package/packages/client-agent-team/lib/types/client/navigation.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts +3 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts +0 -17
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts.map +0 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.js +0 -135
|
@@ -4125,12 +4125,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4125
4125
|
"state": union([
|
|
4126
4126
|
literal("enabled"),
|
|
4127
4127
|
literal("suspended"),
|
|
4128
|
-
literal("inactive")
|
|
4128
|
+
literal("inactive"),
|
|
4129
|
+
literal("archived")
|
|
4129
4130
|
]).readonly()
|
|
4130
4131
|
}).readonly(),
|
|
4131
4132
|
"availability": union([
|
|
4132
4133
|
literal("suspended"),
|
|
4133
4134
|
literal("inactive"),
|
|
4135
|
+
literal("archived"),
|
|
4134
4136
|
literal("active"),
|
|
4135
4137
|
literal("unavailable")
|
|
4136
4138
|
]).readonly(),
|
|
@@ -4147,6 +4149,91 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4147
4149
|
}))]).readonly().optional()
|
|
4148
4150
|
}).readonly()
|
|
4149
4151
|
});
|
|
4152
|
+
const _wowyuarm_dsh_agent_team_agentTeam_archiveChannel_parameter_0$schema = object({
|
|
4153
|
+
"requestId": intersection(string(), unknown()).readonly(),
|
|
4154
|
+
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
4155
|
+
"channelRef": intersection(string(), unknown()).readonly()
|
|
4156
|
+
});
|
|
4157
|
+
const _wowyuarm_dsh_agent_team_agentTeam_archiveChannel_result$schema = object({
|
|
4158
|
+
"receipt": object({
|
|
4159
|
+
"operationId": intersection(string(), unknown()).readonly(),
|
|
4160
|
+
"requestId": intersection(string(), unknown()).readonly(),
|
|
4161
|
+
"sequence": number().readonly()
|
|
4162
|
+
}).readonly(),
|
|
4163
|
+
"channel": object({
|
|
4164
|
+
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4165
|
+
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
4166
|
+
"name": string().readonly(),
|
|
4167
|
+
"description": string().readonly(),
|
|
4168
|
+
"createdAtSequence": number().readonly(),
|
|
4169
|
+
"state": union([literal("archived"), literal("active")]).readonly()
|
|
4170
|
+
}).readonly(),
|
|
4171
|
+
"releasedClaims": array(object({
|
|
4172
|
+
"claimRef": intersection(string(), unknown()).readonly(),
|
|
4173
|
+
"taskRef": intersection(string(), unknown()).readonly(),
|
|
4174
|
+
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4175
|
+
"owner": intersection(string(), unknown()).readonly(),
|
|
4176
|
+
"direction": string().readonly(),
|
|
4177
|
+
"normalizedDirection": string().readonly(),
|
|
4178
|
+
"state": union([
|
|
4179
|
+
literal("active"),
|
|
4180
|
+
literal("done"),
|
|
4181
|
+
literal("released")
|
|
4182
|
+
]).readonly()
|
|
4183
|
+
})).readonly()
|
|
4184
|
+
});
|
|
4185
|
+
const _wowyuarm_dsh_agent_team_agentTeam_archiveMember_parameter_0$schema = object({
|
|
4186
|
+
"requestId": intersection(string(), unknown()).readonly(),
|
|
4187
|
+
"memberId": intersection(string(), unknown()).readonly()
|
|
4188
|
+
});
|
|
4189
|
+
const _wowyuarm_dsh_agent_team_agentTeam_archiveMember_result$schema = object({
|
|
4190
|
+
"receipt": object({
|
|
4191
|
+
"operationId": intersection(string(), unknown()).readonly(),
|
|
4192
|
+
"requestId": intersection(string(), unknown()).readonly(),
|
|
4193
|
+
"sequence": number().readonly()
|
|
4194
|
+
}).readonly(),
|
|
4195
|
+
"member": object({
|
|
4196
|
+
"memberId": intersection(string(), unknown()).readonly(),
|
|
4197
|
+
"sessionId": intersection(string(), unknown()).readonly(),
|
|
4198
|
+
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
4199
|
+
"handle": string().readonly(),
|
|
4200
|
+
"description": string().readonly(),
|
|
4201
|
+
"presetId": string().readonly(),
|
|
4202
|
+
"model": union([_undefined(), object({
|
|
4203
|
+
"provider": string().readonly(),
|
|
4204
|
+
"model": string().readonly(),
|
|
4205
|
+
"reasoningEffort": intersection(string(), unknown()).readonly().optional()
|
|
4206
|
+
})]).readonly().optional(),
|
|
4207
|
+
"capabilities": union([_undefined(), object({
|
|
4208
|
+
"tools": union([_undefined(), object({ "allow": array(string()).readonly().optional() })]).readonly().optional(),
|
|
4209
|
+
"skills": union([_undefined(), object({ "allow": array(string()).readonly().optional() })]).readonly().optional()
|
|
4210
|
+
})]).readonly().optional(),
|
|
4211
|
+
"privateMemoryPath": string().readonly(),
|
|
4212
|
+
"state": union([
|
|
4213
|
+
literal("enabled"),
|
|
4214
|
+
literal("suspended"),
|
|
4215
|
+
literal("inactive"),
|
|
4216
|
+
literal("archived")
|
|
4217
|
+
]).readonly()
|
|
4218
|
+
}).readonly(),
|
|
4219
|
+
"releasedClaims": array(object({
|
|
4220
|
+
"claimRef": intersection(string(), unknown()).readonly(),
|
|
4221
|
+
"taskRef": intersection(string(), unknown()).readonly(),
|
|
4222
|
+
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4223
|
+
"owner": intersection(string(), unknown()).readonly(),
|
|
4224
|
+
"direction": string().readonly(),
|
|
4225
|
+
"normalizedDirection": string().readonly(),
|
|
4226
|
+
"state": union([
|
|
4227
|
+
literal("active"),
|
|
4228
|
+
literal("done"),
|
|
4229
|
+
literal("released")
|
|
4230
|
+
]).readonly()
|
|
4231
|
+
})).readonly(),
|
|
4232
|
+
"removedAttention": array(object({
|
|
4233
|
+
"memberId": intersection(string(), unknown()).readonly(),
|
|
4234
|
+
"threadRef": intersection(string(), unknown()).readonly()
|
|
4235
|
+
})).readonly()
|
|
4236
|
+
});
|
|
4150
4237
|
const _wowyuarm_dsh_agent_team_agentTeam_changeAttention_parameter_0$schema = object({
|
|
4151
4238
|
"requestId": intersection(string(), unknown()).readonly(),
|
|
4152
4239
|
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
@@ -4165,10 +4252,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4165
4252
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4166
4253
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4167
4254
|
"status": union([
|
|
4255
|
+
literal("done"),
|
|
4168
4256
|
literal("todo"),
|
|
4169
4257
|
literal("in_progress"),
|
|
4170
4258
|
literal("in_review"),
|
|
4171
|
-
literal("done"),
|
|
4172
4259
|
literal("closed")
|
|
4173
4260
|
]).readonly(),
|
|
4174
4261
|
"resolution": union([
|
|
@@ -4246,10 +4333,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4246
4333
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4247
4334
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4248
4335
|
"status": union([
|
|
4336
|
+
literal("done"),
|
|
4249
4337
|
literal("todo"),
|
|
4250
4338
|
literal("in_progress"),
|
|
4251
4339
|
literal("in_review"),
|
|
4252
|
-
literal("done"),
|
|
4253
4340
|
literal("closed")
|
|
4254
4341
|
]).readonly(),
|
|
4255
4342
|
"resolution": union([
|
|
@@ -4325,12 +4412,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4325
4412
|
"state": union([
|
|
4326
4413
|
literal("enabled"),
|
|
4327
4414
|
literal("suspended"),
|
|
4328
|
-
literal("inactive")
|
|
4415
|
+
literal("inactive"),
|
|
4416
|
+
literal("archived")
|
|
4329
4417
|
]).readonly()
|
|
4330
4418
|
}).readonly(),
|
|
4331
4419
|
"availability": union([
|
|
4332
4420
|
literal("suspended"),
|
|
4333
4421
|
literal("inactive"),
|
|
4422
|
+
literal("archived"),
|
|
4334
4423
|
literal("active"),
|
|
4335
4424
|
literal("unavailable")
|
|
4336
4425
|
]).readonly(),
|
|
@@ -4365,7 +4454,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4365
4454
|
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
4366
4455
|
"name": string().readonly(),
|
|
4367
4456
|
"description": string().readonly(),
|
|
4368
|
-
"createdAtSequence": number().readonly()
|
|
4457
|
+
"createdAtSequence": number().readonly(),
|
|
4458
|
+
"state": union([literal("archived"), literal("active")]).readonly()
|
|
4369
4459
|
}).readonly(),
|
|
4370
4460
|
"memberIds": array(intersection(string(), unknown())).readonly()
|
|
4371
4461
|
});
|
|
@@ -4388,10 +4478,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4388
4478
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4389
4479
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4390
4480
|
"status": union([
|
|
4481
|
+
literal("done"),
|
|
4391
4482
|
literal("todo"),
|
|
4392
4483
|
literal("in_progress"),
|
|
4393
4484
|
literal("in_review"),
|
|
4394
|
-
literal("done"),
|
|
4395
4485
|
literal("closed")
|
|
4396
4486
|
]).readonly(),
|
|
4397
4487
|
"resolution": union([
|
|
@@ -4454,12 +4544,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4454
4544
|
"state": union([
|
|
4455
4545
|
literal("enabled"),
|
|
4456
4546
|
literal("suspended"),
|
|
4457
|
-
literal("inactive")
|
|
4547
|
+
literal("inactive"),
|
|
4548
|
+
literal("archived")
|
|
4458
4549
|
]).readonly()
|
|
4459
4550
|
}).readonly(),
|
|
4460
4551
|
"availability": union([
|
|
4461
4552
|
literal("suspended"),
|
|
4462
4553
|
literal("inactive"),
|
|
4554
|
+
literal("archived"),
|
|
4463
4555
|
literal("active"),
|
|
4464
4556
|
literal("unavailable")
|
|
4465
4557
|
]).readonly(),
|
|
@@ -4524,10 +4616,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4524
4616
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4525
4617
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4526
4618
|
"status": union([
|
|
4619
|
+
literal("done"),
|
|
4527
4620
|
literal("todo"),
|
|
4528
4621
|
literal("in_progress"),
|
|
4529
4622
|
literal("in_review"),
|
|
4530
|
-
literal("done"),
|
|
4531
4623
|
literal("closed")
|
|
4532
4624
|
]).readonly(),
|
|
4533
4625
|
"resolution": union([
|
|
@@ -4574,10 +4666,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4574
4666
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4575
4667
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4576
4668
|
"status": union([
|
|
4669
|
+
literal("done"),
|
|
4577
4670
|
literal("todo"),
|
|
4578
4671
|
literal("in_progress"),
|
|
4579
4672
|
literal("in_review"),
|
|
4580
|
-
literal("done"),
|
|
4581
4673
|
literal("closed")
|
|
4582
4674
|
]).readonly(),
|
|
4583
4675
|
"resolution": union([
|
|
@@ -4731,12 +4823,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4731
4823
|
"state": union([
|
|
4732
4824
|
literal("enabled"),
|
|
4733
4825
|
literal("suspended"),
|
|
4734
|
-
literal("inactive")
|
|
4826
|
+
literal("inactive"),
|
|
4827
|
+
literal("archived")
|
|
4735
4828
|
]).readonly()
|
|
4736
4829
|
}).readonly(),
|
|
4737
4830
|
"availability": union([
|
|
4738
4831
|
literal("suspended"),
|
|
4739
4832
|
literal("inactive"),
|
|
4833
|
+
literal("archived"),
|
|
4740
4834
|
literal("active"),
|
|
4741
4835
|
literal("unavailable")
|
|
4742
4836
|
]).readonly(),
|
|
@@ -4860,10 +4954,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4860
4954
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4861
4955
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4862
4956
|
"status": union([
|
|
4957
|
+
literal("done"),
|
|
4863
4958
|
literal("todo"),
|
|
4864
4959
|
literal("in_progress"),
|
|
4865
4960
|
literal("in_review"),
|
|
4866
|
-
literal("done"),
|
|
4867
4961
|
literal("closed")
|
|
4868
4962
|
]).readonly(),
|
|
4869
4963
|
"resolution": union([
|
|
@@ -4942,10 +5036,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4942
5036
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
4943
5037
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
4944
5038
|
"status": union([
|
|
5039
|
+
literal("done"),
|
|
4945
5040
|
literal("todo"),
|
|
4946
5041
|
literal("in_progress"),
|
|
4947
5042
|
literal("in_review"),
|
|
4948
|
-
literal("done"),
|
|
4949
5043
|
literal("closed")
|
|
4950
5044
|
]).readonly(),
|
|
4951
5045
|
"resolution": union([
|
|
@@ -5005,10 +5099,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5005
5099
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
5006
5100
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
5007
5101
|
"status": union([
|
|
5102
|
+
literal("done"),
|
|
5008
5103
|
literal("todo"),
|
|
5009
5104
|
literal("in_progress"),
|
|
5010
5105
|
literal("in_review"),
|
|
5011
|
-
literal("done"),
|
|
5012
5106
|
literal("closed")
|
|
5013
5107
|
]).readonly(),
|
|
5014
5108
|
"resolution": union([
|
|
@@ -5151,7 +5245,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5151
5245
|
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
5152
5246
|
"name": string().readonly(),
|
|
5153
5247
|
"description": string().readonly(),
|
|
5154
|
-
"createdAtSequence": number().readonly()
|
|
5248
|
+
"createdAtSequence": number().readonly(),
|
|
5249
|
+
"state": union([literal("archived"), literal("active")]).readonly()
|
|
5155
5250
|
}).readonly()
|
|
5156
5251
|
});
|
|
5157
5252
|
const _wowyuarm_dsh_agent_team_agentTeam_updateMember_parameter_0$schema = object({
|
|
@@ -5196,12 +5291,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5196
5291
|
"state": union([
|
|
5197
5292
|
literal("enabled"),
|
|
5198
5293
|
literal("suspended"),
|
|
5199
|
-
literal("inactive")
|
|
5294
|
+
literal("inactive"),
|
|
5295
|
+
literal("archived")
|
|
5200
5296
|
]).readonly()
|
|
5201
5297
|
}).readonly(),
|
|
5202
5298
|
"availability": union([
|
|
5203
5299
|
literal("suspended"),
|
|
5204
5300
|
literal("inactive"),
|
|
5301
|
+
literal("archived"),
|
|
5205
5302
|
literal("active"),
|
|
5206
5303
|
literal("unavailable")
|
|
5207
5304
|
]).readonly(),
|
|
@@ -5235,7 +5332,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5235
5332
|
"workspaceId": intersection(string(), unknown()).readonly(),
|
|
5236
5333
|
"name": string().readonly(),
|
|
5237
5334
|
"description": string().readonly(),
|
|
5238
|
-
"createdAtSequence": number().readonly()
|
|
5335
|
+
"createdAtSequence": number().readonly(),
|
|
5336
|
+
"state": union([literal("archived"), literal("active")]).readonly()
|
|
5239
5337
|
})).readonly(),
|
|
5240
5338
|
"members": array(object({
|
|
5241
5339
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
@@ -5246,10 +5344,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5246
5344
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
5247
5345
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
5248
5346
|
"status": union([
|
|
5347
|
+
literal("done"),
|
|
5249
5348
|
literal("todo"),
|
|
5250
5349
|
literal("in_progress"),
|
|
5251
5350
|
literal("in_review"),
|
|
5252
|
-
literal("done"),
|
|
5253
5351
|
literal("closed")
|
|
5254
5352
|
]).readonly(),
|
|
5255
5353
|
"resolution": union([
|
|
@@ -5291,10 +5389,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5291
5389
|
"channelRef": intersection(string(), unknown()).readonly(),
|
|
5292
5390
|
"threadRef": intersection(string(), unknown()).readonly(),
|
|
5293
5391
|
"status": union([
|
|
5392
|
+
literal("done"),
|
|
5294
5393
|
literal("todo"),
|
|
5295
5394
|
literal("in_progress"),
|
|
5296
5395
|
literal("in_review"),
|
|
5297
|
-
literal("done"),
|
|
5298
5396
|
literal("closed")
|
|
5299
5397
|
]).readonly(),
|
|
5300
5398
|
"resolution": union([
|
|
@@ -5392,7 +5490,61 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5392
5490
|
},
|
|
5393
5491
|
sourceLocation: {
|
|
5394
5492
|
"file": "packages/agent-team/src/index.ts",
|
|
5395
|
-
"line":
|
|
5493
|
+
"line": 438,
|
|
5494
|
+
"column": 9
|
|
5495
|
+
}
|
|
5496
|
+
},
|
|
5497
|
+
{
|
|
5498
|
+
id: "@wowyuarm/dsh-agent-team#agentTeam/archiveChannel",
|
|
5499
|
+
service: "agentTeam",
|
|
5500
|
+
namespace: "agentTeam",
|
|
5501
|
+
method: "archiveChannel",
|
|
5502
|
+
invocation: { kind: "direct" },
|
|
5503
|
+
parameters: [{
|
|
5504
|
+
name: "request",
|
|
5505
|
+
wire: "request",
|
|
5506
|
+
source: "json",
|
|
5507
|
+
codec: {
|
|
5508
|
+
mode: "strict",
|
|
5509
|
+
typeSymbol: "@wowyuarm/dsh-agent-team/types#AgentTeamArchiveChannelRequest",
|
|
5510
|
+
schema: _wowyuarm_dsh_agent_team_agentTeam_archiveChannel_parameter_0$schema
|
|
5511
|
+
}
|
|
5512
|
+
}],
|
|
5513
|
+
result: {
|
|
5514
|
+
mode: "strict",
|
|
5515
|
+
typeSymbol: "@wowyuarm/dsh-agent-team/types#AgentTeamArchiveChannelResult",
|
|
5516
|
+
schema: _wowyuarm_dsh_agent_team_agentTeam_archiveChannel_result$schema
|
|
5517
|
+
},
|
|
5518
|
+
sourceLocation: {
|
|
5519
|
+
"file": "packages/agent-team/src/index.ts",
|
|
5520
|
+
"line": 428,
|
|
5521
|
+
"column": 9
|
|
5522
|
+
}
|
|
5523
|
+
},
|
|
5524
|
+
{
|
|
5525
|
+
id: "@wowyuarm/dsh-agent-team#agentTeam/archiveMember",
|
|
5526
|
+
service: "agentTeam",
|
|
5527
|
+
namespace: "agentTeam",
|
|
5528
|
+
method: "archiveMember",
|
|
5529
|
+
invocation: { kind: "direct" },
|
|
5530
|
+
parameters: [{
|
|
5531
|
+
name: "request",
|
|
5532
|
+
wire: "request",
|
|
5533
|
+
source: "json",
|
|
5534
|
+
codec: {
|
|
5535
|
+
mode: "strict",
|
|
5536
|
+
typeSymbol: "@wowyuarm/dsh-agent-team/types#AgentTeamArchiveMemberRequest",
|
|
5537
|
+
schema: _wowyuarm_dsh_agent_team_agentTeam_archiveMember_parameter_0$schema
|
|
5538
|
+
}
|
|
5539
|
+
}],
|
|
5540
|
+
result: {
|
|
5541
|
+
mode: "strict",
|
|
5542
|
+
typeSymbol: "@wowyuarm/dsh-agent-team/types#AgentTeamArchiveMemberResult",
|
|
5543
|
+
schema: _wowyuarm_dsh_agent_team_agentTeam_archiveMember_result$schema
|
|
5544
|
+
},
|
|
5545
|
+
sourceLocation: {
|
|
5546
|
+
"file": "packages/agent-team/src/index.ts",
|
|
5547
|
+
"line": 701,
|
|
5396
5548
|
"column": 9
|
|
5397
5549
|
}
|
|
5398
5550
|
},
|
|
@@ -5419,7 +5571,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5419
5571
|
},
|
|
5420
5572
|
sourceLocation: {
|
|
5421
5573
|
"file": "packages/agent-team/src/index.ts",
|
|
5422
|
-
"line":
|
|
5574
|
+
"line": 823,
|
|
5423
5575
|
"column": 9
|
|
5424
5576
|
}
|
|
5425
5577
|
},
|
|
@@ -5447,7 +5599,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5447
5599
|
},
|
|
5448
5600
|
sourceLocation: {
|
|
5449
5601
|
"file": "packages/agent-team/src/index.ts",
|
|
5450
|
-
"line":
|
|
5602
|
+
"line": 360,
|
|
5451
5603
|
"column": 9
|
|
5452
5604
|
}
|
|
5453
5605
|
},
|
|
@@ -5474,7 +5626,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5474
5626
|
},
|
|
5475
5627
|
sourceLocation: {
|
|
5476
5628
|
"file": "packages/agent-team/src/index.ts",
|
|
5477
|
-
"line":
|
|
5629
|
+
"line": 713,
|
|
5478
5630
|
"column": 9
|
|
5479
5631
|
}
|
|
5480
5632
|
},
|
|
@@ -5501,7 +5653,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5501
5653
|
},
|
|
5502
5654
|
sourceLocation: {
|
|
5503
5655
|
"file": "packages/agent-team/src/index.ts",
|
|
5504
|
-
"line":
|
|
5656
|
+
"line": 531,
|
|
5505
5657
|
"column": 9
|
|
5506
5658
|
}
|
|
5507
5659
|
},
|
|
@@ -5528,7 +5680,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5528
5680
|
},
|
|
5529
5681
|
sourceLocation: {
|
|
5530
5682
|
"file": "packages/agent-team/src/index.ts",
|
|
5531
|
-
"line":
|
|
5683
|
+
"line": 401,
|
|
5532
5684
|
"column": 9
|
|
5533
5685
|
}
|
|
5534
5686
|
},
|
|
@@ -5555,7 +5707,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5555
5707
|
},
|
|
5556
5708
|
sourceLocation: {
|
|
5557
5709
|
"file": "packages/agent-team/src/index.ts",
|
|
5558
|
-
"line":
|
|
5710
|
+
"line": 809,
|
|
5559
5711
|
"column": 9
|
|
5560
5712
|
}
|
|
5561
5713
|
},
|
|
@@ -5582,7 +5734,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5582
5734
|
},
|
|
5583
5735
|
sourceLocation: {
|
|
5584
5736
|
"file": "packages/agent-team/src/index.ts",
|
|
5585
|
-
"line":
|
|
5737
|
+
"line": 832,
|
|
5586
5738
|
"column": 3
|
|
5587
5739
|
}
|
|
5588
5740
|
},
|
|
@@ -5609,7 +5761,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5609
5761
|
},
|
|
5610
5762
|
sourceLocation: {
|
|
5611
5763
|
"file": "packages/agent-team/src/index.ts",
|
|
5612
|
-
"line":
|
|
5764
|
+
"line": 733,
|
|
5613
5765
|
"column": 9
|
|
5614
5766
|
}
|
|
5615
5767
|
},
|
|
@@ -5637,7 +5789,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5637
5789
|
},
|
|
5638
5790
|
sourceLocation: {
|
|
5639
5791
|
"file": "packages/agent-team/src/index.ts",
|
|
5640
|
-
"line":
|
|
5792
|
+
"line": 351,
|
|
5641
5793
|
"column": 3
|
|
5642
5794
|
}
|
|
5643
5795
|
},
|
|
@@ -5664,7 +5816,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5664
5816
|
},
|
|
5665
5817
|
sourceLocation: {
|
|
5666
5818
|
"file": "packages/agent-team/src/index.ts",
|
|
5667
|
-
"line":
|
|
5819
|
+
"line": 723,
|
|
5668
5820
|
"column": 9
|
|
5669
5821
|
}
|
|
5670
5822
|
},
|
|
@@ -5691,7 +5843,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5691
5843
|
},
|
|
5692
5844
|
sourceLocation: {
|
|
5693
5845
|
"file": "packages/agent-team/src/index.ts",
|
|
5694
|
-
"line":
|
|
5846
|
+
"line": 796,
|
|
5695
5847
|
"column": 9
|
|
5696
5848
|
}
|
|
5697
5849
|
},
|
|
@@ -5718,7 +5870,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5718
5870
|
},
|
|
5719
5871
|
sourceLocation: {
|
|
5720
5872
|
"file": "packages/agent-team/src/index.ts",
|
|
5721
|
-
"line":
|
|
5873
|
+
"line": 839,
|
|
5722
5874
|
"column": 9
|
|
5723
5875
|
}
|
|
5724
5876
|
},
|
|
@@ -5745,7 +5897,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5745
5897
|
},
|
|
5746
5898
|
sourceLocation: {
|
|
5747
5899
|
"file": "packages/agent-team/src/index.ts",
|
|
5748
|
-
"line":
|
|
5900
|
+
"line": 492,
|
|
5749
5901
|
"column": 9
|
|
5750
5902
|
}
|
|
5751
5903
|
},
|
|
@@ -5772,7 +5924,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5772
5924
|
},
|
|
5773
5925
|
sourceLocation: {
|
|
5774
5926
|
"file": "packages/agent-team/src/index.ts",
|
|
5775
|
-
"line":
|
|
5927
|
+
"line": 744,
|
|
5776
5928
|
"column": 9
|
|
5777
5929
|
}
|
|
5778
5930
|
},
|
|
@@ -5799,7 +5951,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5799
5951
|
},
|
|
5800
5952
|
sourceLocation: {
|
|
5801
5953
|
"file": "packages/agent-team/src/index.ts",
|
|
5802
|
-
"line":
|
|
5954
|
+
"line": 817,
|
|
5803
5955
|
"column": 9
|
|
5804
5956
|
}
|
|
5805
5957
|
},
|
|
@@ -5826,7 +5978,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5826
5978
|
},
|
|
5827
5979
|
sourceLocation: {
|
|
5828
5980
|
"file": "packages/agent-team/src/index.ts",
|
|
5829
|
-
"line":
|
|
5981
|
+
"line": 338,
|
|
5830
5982
|
"column": 3
|
|
5831
5983
|
}
|
|
5832
5984
|
},
|
|
@@ -5853,7 +6005,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5853
6005
|
},
|
|
5854
6006
|
sourceLocation: {
|
|
5855
6007
|
"file": "packages/agent-team/src/index.ts",
|
|
5856
|
-
"line":
|
|
6008
|
+
"line": 753,
|
|
5857
6009
|
"column": 9
|
|
5858
6010
|
}
|
|
5859
6011
|
},
|
|
@@ -5880,7 +6032,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5880
6032
|
},
|
|
5881
6033
|
sourceLocation: {
|
|
5882
6034
|
"file": "packages/agent-team/src/index.ts",
|
|
5883
|
-
"line":
|
|
6035
|
+
"line": 855,
|
|
5884
6036
|
"column": 3
|
|
5885
6037
|
}
|
|
5886
6038
|
},
|
|
@@ -5907,7 +6059,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5907
6059
|
},
|
|
5908
6060
|
sourceLocation: {
|
|
5909
6061
|
"file": "packages/agent-team/src/index.ts",
|
|
5910
|
-
"line":
|
|
6062
|
+
"line": 848,
|
|
5911
6063
|
"column": 3
|
|
5912
6064
|
}
|
|
5913
6065
|
},
|
|
@@ -5934,7 +6086,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5934
6086
|
},
|
|
5935
6087
|
sourceLocation: {
|
|
5936
6088
|
"file": "packages/agent-team/src/index.ts",
|
|
5937
|
-
"line":
|
|
6089
|
+
"line": 413,
|
|
5938
6090
|
"column": 9
|
|
5939
6091
|
}
|
|
5940
6092
|
},
|
|
@@ -5961,7 +6113,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5961
6113
|
},
|
|
5962
6114
|
sourceLocation: {
|
|
5963
6115
|
"file": "packages/agent-team/src/index.ts",
|
|
5964
|
-
"line":
|
|
6116
|
+
"line": 641,
|
|
5965
6117
|
"column": 9
|
|
5966
6118
|
}
|
|
5967
6119
|
},
|
|
@@ -5988,7 +6140,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
5988
6140
|
},
|
|
5989
6141
|
sourceLocation: {
|
|
5990
6142
|
"file": "packages/agent-team/src/index.ts",
|
|
5991
|
-
"line":
|
|
6143
|
+
"line": 862,
|
|
5992
6144
|
"column": 3
|
|
5993
6145
|
}
|
|
5994
6146
|
}
|
|
@@ -6608,7 +6760,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6608
6760
|
const mintRequestId = () => crypto.randomUUID();
|
|
6609
6761
|
//#endregion
|
|
6610
6762
|
//#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/composer.module.css.mjs
|
|
6611
|
-
const css$5 = ".x9jGQq_root{padding:0 var(--dsh-composer-side-clearance,16px) 8px;flex-direction:column;align-items:center;display:flex}.x9jGQq_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width,780px);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));box-shadow:var(--dsw-shadow-lv2);border-radius:22px;flex-direction:column;gap:6px;padding:10px 0 0;display:flex;position:relative}.x9jGQq_inputArea{min-height:28px;position:relative}.x9jGQq_inputArea textarea{box-sizing:border-box;resize:none;width:100%;min-height:28px;max-height:336px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;outline:0;padding:4px 12px 0 16px;font-size:15px;line-height:24px;display:block;overflow-y:auto}.x9jGQq_inputArea textarea::placeholder{color:var(--dsw-alias-label-caption,var(--dsw-alias-label-tertiary))}.x9jGQq_memberSessionRoot{padding:0 var(--dsh-composer-side-clearance) 8px}.x9jGQq_memberSessionCard{font-family:var(--dsw-font-family);gap:6px;padding-top:10px;font-size:16px;line-height:24px}.x9jGQq_memberSessionInputArea textarea{min-height:28px;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;padding:4px 12px 0 16px}.x9jGQq_memberSessionStatus{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-error-primary);border-radius:8px;margin:0 0 6px;padding:4px 8px;font-size:12px;line-height:18px}.x9jGQq_memberSessionToolbar{min-width:0;padding:2px 8px 6px}.x9jGQq_memberSessionPrimary{background:var(--dsw-alias-button-info-fill);border-radius:999px;place-items:center;display:grid;transform:translateY(-2px)}.x9jGQq_memberSessionPrimary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.x9jGQq_memberSessionPrimary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_memberSessionPrimary:disabled{cursor:default;opacity:.4}.x9jGQq_inputArea textarea:disabled{cursor:not-allowed;opacity:.55}.x9jGQq_mentionMenu{z-index:10;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);max-height:min(320px,40vh);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;padding:4px;position:absolute;bottom:calc(100% + 12px);left:0;right:0;overflow-y:auto}.x9jGQq_mentionOption{width:100%;min-height:40px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:16px minmax(0,auto) minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:grid}.x9jGQq_mentionOption:hover,.x9jGQq_mentionOption[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}.x9jGQq_mentionName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_mentionAllDot{background:var(--dsw-alias-label-primary);border-radius:50%;justify-self:center;width:8px;height:8px}.x9jGQq_mentionDescription{min-width:0;color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_toolbar{justify-content:flex-end;align-items:center;gap:6px;min-height:34px;padding:2px 8px 6px;display:flex}.x9jGQq_asTaskOn[aria-pressed=true],.x9jGQq_asTaskOn[aria-pressed=true]:hover:not(:disabled){background:var(--dsw-alias-button-primary-fill);border-color:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.x9jGQq_attachButton{background:var(--dsw-specific-selector);color:var(--dsw-alias-label-primary);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;margin-right:auto;display:grid}.x9jGQq_attachButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.x9jGQq_attachButton:disabled{cursor:default;opacity:.5}.x9jGQq_attachButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,var(--dsw-specific-selector));outline-offset:1px}.x9jGQq_fileInput{display:none}.x9jGQq_fileChips{flex-wrap:wrap;gap:4px;margin:0;padding:4px 8px 0;list-style:none;display:flex}.x9jGQq_fileChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;display:inline-flex}.x9jGQq_fileChipSize{color:var(--dsw-alias-label-tertiary);margin-left:6px}.x9jGQq_imageChip{align-items:center;display:flex}.x9jGQq_imageChipPreview{border:1px solid var(--dsw-alias-border-l2);object-fit:cover;border-radius:4px;width:56px;height:40px}.x9jGQq_fileChipName{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;line-height:16px;overflow:hidden}.x9jGQq_fileChipRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:12px;display:inline-flex}.x9jGQq_fileChipRemove:hover,.x9jGQq_fileChipRemove:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.x9jGQq_sendButton{background:var(--dsw-alias-button-info-fill,var(--dsw-alias-button-primary-fill));color:#fff;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background-color .1s,opacity .1s;display:inline-flex}.x9jGQq_sendButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover,var(--dsw-alias-button-primary-hover))}.x9jGQq_sendButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_sendButton:disabled{cursor:not-allowed;opacity:.4}.x9jGQq_confirmation{color:var(--dsw-alias-label-tertiary);align-self:stretch;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_notifyRow{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));overflow-wrap:anywhere;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_error{color:var(--dsw-alias-state-error-primary);align-self:stretch;margin:0;padding:0 4px 2px;font-size:12px;line-height:18px}@media (width<=600px){.x9jGQq_mentionOption{grid-template-columns:16px minmax(0,1fr);min-height:36px;padding-block:6px}.x9jGQq_mentionDescription{display:none}}@media (prefers-reduced-motion:reduce){.x9jGQq_sendButton{transition:none}}";
|
|
6763
|
+
const css$5 = ".x9jGQq_root{padding:0 var(--dsh-composer-side-clearance,16px) 8px;flex-direction:column;align-items:center;display:flex}.x9jGQq_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width,780px);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));box-shadow:var(--dsw-shadow-lv2);border-radius:22px;flex-direction:column;gap:6px;padding:10px 0 0;display:flex;position:relative}.x9jGQq_inputArea{min-height:28px;position:relative}.x9jGQq_inputArea textarea{box-sizing:border-box;resize:none;width:100%;min-height:28px;max-height:336px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;outline:0;padding:4px 12px 0 16px;font-size:15px;line-height:24px;display:block;overflow-y:auto}.x9jGQq_inputArea textarea::placeholder{color:var(--dsw-alias-label-caption,var(--dsw-alias-label-tertiary))}.x9jGQq_memberSessionRoot{padding:0 var(--dsh-composer-side-clearance) 8px}.x9jGQq_memberSessionCard{font-family:var(--dsw-font-family);gap:6px;padding-top:10px;font-size:16px;line-height:24px}.x9jGQq_memberSessionInputArea textarea{min-height:28px;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;padding:4px 12px 0 16px}.x9jGQq_memberSessionStatus{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-error-primary);border-radius:8px;margin:0 0 6px;padding:4px 8px;font-size:12px;line-height:18px}.x9jGQq_memberSessionToolbar{min-width:0;padding:2px 8px 6px}.x9jGQq_memberSessionPrimary{background:var(--dsw-alias-button-info-fill);border-radius:999px;place-items:center;display:grid;transform:translateY(-2px)}.x9jGQq_memberSessionPrimary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.x9jGQq_memberSessionPrimary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_memberSessionPrimary:disabled{cursor:default;opacity:.4}.x9jGQq_inputArea textarea:disabled{cursor:not-allowed;opacity:.55}.x9jGQq_mentionMenu{z-index:10;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);max-height:min(320px,40vh);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;padding:4px;position:absolute;bottom:calc(100% + 12px);left:0;right:0;overflow-y:auto}.x9jGQq_mentionOption{width:100%;min-height:40px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:16px minmax(0,auto) minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:grid}.x9jGQq_mentionOption:hover,.x9jGQq_mentionOption[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}.x9jGQq_mentionName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_mentionAllDot{background:var(--dsw-alias-label-primary);border-radius:50%;justify-self:center;width:8px;height:8px}.x9jGQq_mentionDescription{min-width:0;color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_toolbar{justify-content:flex-end;align-items:center;gap:6px;min-height:34px;padding:2px 8px 6px;display:flex}.x9jGQq_asTaskOn[aria-pressed=true],.x9jGQq_asTaskOn[aria-pressed=true]:hover:not(:disabled){background:var(--dsw-alias-button-primary-fill);border-color:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.x9jGQq_attachButton{background:var(--dsw-specific-selector);color:var(--dsw-alias-label-primary);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;margin-right:auto;display:grid}.x9jGQq_attachButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.x9jGQq_attachButton:disabled{cursor:default;opacity:.5}.x9jGQq_attachButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,var(--dsw-specific-selector));outline-offset:1px}.x9jGQq_fileInput{display:none}.x9jGQq_fileChips{flex-wrap:wrap;gap:4px;margin:0;padding:4px 8px 0;list-style:none;display:flex}.x9jGQq_fileChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;display:inline-flex}.x9jGQq_fileChipSize{color:var(--dsw-alias-label-tertiary);margin-left:6px}.x9jGQq_imageChip{align-items:center;display:flex}.x9jGQq_imageChipPreview{border:1px solid var(--dsw-alias-border-l2);object-fit:cover;border-radius:4px;width:56px;height:40px}.x9jGQq_fileChipName{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;line-height:16px;overflow:hidden}.x9jGQq_fileChipRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:12px;display:inline-flex}.x9jGQq_fileChipRemove:hover,.x9jGQq_fileChipRemove:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.x9jGQq_sendButton{background:var(--dsw-alias-button-info-fill,var(--dsw-alias-button-primary-fill));color:#fff;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background-color .1s,opacity .1s;display:inline-flex}.x9jGQq_sendButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover,var(--dsw-alias-button-primary-hover))}.x9jGQq_sendButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_sendButton:disabled{cursor:not-allowed;opacity:.4}.x9jGQq_confirmation{color:var(--dsw-alias-label-tertiary);align-self:stretch;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_notifyRow{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));overflow-wrap:anywhere;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_error{color:var(--dsw-alias-state-error-primary);align-self:stretch;margin:0;padding:0 4px 2px;font-size:12px;line-height:18px}@media (width<=600px){.x9jGQq_mentionOption{grid-template-columns:16px minmax(0,1fr);min-height:36px;padding-block:6px}.x9jGQq_mentionDescription{display:none}}@media (prefers-reduced-motion:reduce){.x9jGQq_sendButton{transition:none}}.x9jGQq_memberSessionDock{flex-direction:column;gap:4px;padding:4px 2px 0;display:flex}.x9jGQq_memberSessionHint{color:var(--dsw-alias-text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.4;overflow:hidden}";
|
|
6612
6764
|
const tagId$5 = "@wowyuarm/dsh-agent-team/composer.module.css";
|
|
6613
6765
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
|
|
6614
6766
|
const tag = document.createElement("style");
|
|
@@ -6633,6 +6785,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6633
6785
|
"imageChipPreview": "x9jGQq_imageChipPreview",
|
|
6634
6786
|
"inputArea": "x9jGQq_inputArea",
|
|
6635
6787
|
"memberSessionCard": "x9jGQq_memberSessionCard",
|
|
6788
|
+
"memberSessionDock": "x9jGQq_memberSessionDock",
|
|
6789
|
+
"memberSessionHint": "x9jGQq_memberSessionHint",
|
|
6636
6790
|
"memberSessionInputArea": "x9jGQq_memberSessionInputArea",
|
|
6637
6791
|
"memberSessionPrimary": "x9jGQq_memberSessionPrimary",
|
|
6638
6792
|
"memberSessionRoot": "x9jGQq_memberSessionRoot",
|
|
@@ -6672,11 +6826,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6672
6826
|
}
|
|
6673
6827
|
function mentionCandidates(members, query) {
|
|
6674
6828
|
const normalized = query.toLocaleLowerCase();
|
|
6675
|
-
return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive" && status.member.handle.toLocaleLowerCase().startsWith(normalized));
|
|
6829
|
+
return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive" && status.member.state !== "archived" && status.member.handle.toLocaleLowerCase().startsWith(normalized));
|
|
6676
6830
|
}
|
|
6677
6831
|
/** Every member a manual handle pick could reach: the @all expansion snapshot. */
|
|
6678
6832
|
function allMentionMembers(members) {
|
|
6679
|
-
return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive");
|
|
6833
|
+
return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive" && status.member.state !== "archived");
|
|
6680
6834
|
}
|
|
6681
6835
|
function containsAllMention(draft) {
|
|
6682
6836
|
return /(?:^|[^\p{L}\p{N}_])@all(?=$|[^\p{L}\p{N}_])/u.test(draft);
|
|
@@ -7425,6 +7579,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7425
7579
|
]);
|
|
7426
7580
|
const taskLabel = (0, react.useCallback)((taskNumber) => t?.("taskLabel", { number: taskNumber }) ?? `Task #${taskNumber}`, [t]);
|
|
7427
7581
|
const refLabel = (0, react.useCallback)((ref) => ref.startsWith("thread:") ? t?.("threadLabel") ?? "Thread" : ref.startsWith("channel:") ? t?.("channels") ?? "Channels" : ref, [t]);
|
|
7582
|
+
const markdownLabels = (0, react.useMemo)(() => ({
|
|
7583
|
+
code: {
|
|
7584
|
+
copyLabel: t?.("copyCode") ?? "Copy",
|
|
7585
|
+
copiedLabel: t?.("copiedCode") ?? "Copied"
|
|
7586
|
+
},
|
|
7587
|
+
footnotes: t?.("markdownFootnotes") ?? "Footnotes"
|
|
7588
|
+
}), [t]);
|
|
7428
7589
|
const [expanded, setExpanded] = (0, react.useState)(false);
|
|
7429
7590
|
const clampable = shouldClampMessage(displayBody);
|
|
7430
7591
|
const clamped = clampable && !expanded;
|
|
@@ -7480,7 +7641,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7480
7641
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
7481
7642
|
ref: markdownRef,
|
|
7482
7643
|
className: conversation_module_css_default.messageMarkdown,
|
|
7483
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
|
|
7644
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
|
|
7645
|
+
text: displayBody,
|
|
7646
|
+
labels: markdownLabels
|
|
7647
|
+
}, `${displayBody}:${onOpenRef === void 0 ? "literal" : "refs"}`)
|
|
7484
7648
|
});
|
|
7485
7649
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("article", {
|
|
7486
7650
|
className: conversation_module_css_default.messageRow,
|
|
@@ -7671,6 +7835,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7671
7835
|
open: true,
|
|
7672
7836
|
...conversation_module_css_default.attachmentModal === void 0 ? {} : { className: conversation_module_css_default.attachmentModal },
|
|
7673
7837
|
title: zoomed.name,
|
|
7838
|
+
closeLabel: t?.("close") ?? "Close",
|
|
7674
7839
|
onClose: () => {
|
|
7675
7840
|
setZoomed(void 0);
|
|
7676
7841
|
},
|
|
@@ -8039,7 +8204,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8039
8204
|
const timeline = useTimelineScroll(`${view?.items.length ?? 0}:${channelLastItem?.message.messageRef ?? ""}`);
|
|
8040
8205
|
const channel = view?.channels.find((item) => item.channelRef === channelRef);
|
|
8041
8206
|
const channelMemberIds = new Set(view?.members.filter((item) => item.channelRef === channelRef).map((item) => item.memberId) ?? []);
|
|
8042
|
-
const channelMembers = members.filter((status) => channelMemberIds.has(status.member.memberId) && status.member.state !== "inactive");
|
|
8207
|
+
const channelMembers = members.filter((status) => channelMemberIds.has(status.member.memberId) && status.member.state !== "inactive" && status.member.state !== "archived");
|
|
8043
8208
|
const onlineCount = channelMembers.filter((status) => status.presence === "available" || status.presence === "working").length;
|
|
8044
8209
|
const messageSender = (item) => item.message.sender;
|
|
8045
8210
|
const mentionHandlesMap = new Map(members.map((status) => [status.member.memberId, status.member.handle.replace(/^@/, "")]));
|
|
@@ -8268,7 +8433,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8268
8433
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8269
8434
|
ref: memberListRef,
|
|
8270
8435
|
className: channel_module_css_default.memberList,
|
|
8271
|
-
children: members.filter((status) => status.member.state !== "inactive").map((status) => {
|
|
8436
|
+
children: members.filter((status) => status.member.state !== "inactive" && status.member.state !== "archived").map((status) => {
|
|
8272
8437
|
const joined = channelMemberIds.has(status.member.memberId);
|
|
8273
8438
|
const rowPending = membership.pending.has(status.member.memberId);
|
|
8274
8439
|
const disabled = rowPending || !joined && status.presence === "unavailable";
|
|
@@ -10287,7 +10452,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10287
10452
|
}
|
|
10288
10453
|
//#endregion
|
|
10289
10454
|
//#region src/client/TeamAgentsPanel.tsx
|
|
10290
|
-
function TeamAgentsPanel({ workspaceId, loadMembers, subscribeChanges, addMember, updateMember, recoverMember, clearMemberContext, loadModels, memberSessionId, openMemberSession, onCreatingChange, t }) {
|
|
10455
|
+
function TeamAgentsPanel({ workspaceId, loadMembers, subscribeChanges, addMember, updateMember, recoverMember, clearMemberContext, archiveMember, loadModels, memberSessionId, openMemberSession, onCreatingChange, t }) {
|
|
10291
10456
|
const [members, setMembers] = (0, react.useState)([]);
|
|
10292
10457
|
const [loading, setLoading] = (0, react.useState)(true);
|
|
10293
10458
|
const [error, setError] = (0, react.useState)();
|
|
@@ -10315,7 +10480,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10315
10480
|
setLoading(true);
|
|
10316
10481
|
const result = await loadMembers({ workspaceId });
|
|
10317
10482
|
if (result.ok) {
|
|
10318
|
-
setMembers(result.value);
|
|
10483
|
+
setMembers(result.value.filter((status) => status.member.state !== "inactive" && status.member.state !== "archived"));
|
|
10319
10484
|
setError(void 0);
|
|
10320
10485
|
} else setError(result.error.message);
|
|
10321
10486
|
setLoading(false);
|
|
@@ -10353,7 +10518,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10353
10518
|
const result = await addMember(request);
|
|
10354
10519
|
if (result.ok) {
|
|
10355
10520
|
setMembers((current) => {
|
|
10356
|
-
|
|
10521
|
+
const retained = current.filter((status) => status.member.memberId !== result.value.status.member.memberId);
|
|
10522
|
+
return result.value.status.member.state === "inactive" || result.value.status.member.state === "archived" ? retained : [...retained, result.value.status];
|
|
10357
10523
|
});
|
|
10358
10524
|
setHandle("");
|
|
10359
10525
|
setDescription("");
|
|
@@ -10501,6 +10667,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10501
10667
|
updateMember,
|
|
10502
10668
|
recoverMember,
|
|
10503
10669
|
clearMemberContext,
|
|
10670
|
+
archiveMember,
|
|
10504
10671
|
loadModels,
|
|
10505
10672
|
openMemberSession,
|
|
10506
10673
|
onUpdated: () => {
|
|
@@ -10533,10 +10700,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10533
10700
|
* conversation page, the avatar carries identity plus the presence badge, and
|
|
10534
10701
|
* the row menu opens the editor.
|
|
10535
10702
|
*/
|
|
10536
|
-
function AgentRow({ status, current, updateMember, recoverMember, clearMemberContext, loadModels, openMemberSession, onUpdated, t }) {
|
|
10703
|
+
function AgentRow({ status, current, updateMember, recoverMember, clearMemberContext, archiveMember, loadModels, openMemberSession, onUpdated, t }) {
|
|
10537
10704
|
const [menuOpen, setMenuOpen] = (0, react.useState)(false);
|
|
10538
10705
|
const [editing, setEditing] = (0, react.useState)(false);
|
|
10539
10706
|
const [clearing, setClearing] = (0, react.useState)(false);
|
|
10707
|
+
const [archiving, setArchiving] = (0, react.useState)(false);
|
|
10540
10708
|
const [rowAlert, setRowAlert] = (0, react.useState)();
|
|
10541
10709
|
const recover = async () => {
|
|
10542
10710
|
try {
|
|
@@ -10579,6 +10747,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10579
10747
|
}
|
|
10580
10748
|
};
|
|
10581
10749
|
const contextClearable = status.presence === "available" || status.presence === "error";
|
|
10750
|
+
const archive = async () => {
|
|
10751
|
+
try {
|
|
10752
|
+
const result = await archiveMember({
|
|
10753
|
+
requestId: mintRequestId(),
|
|
10754
|
+
memberId: status.member.memberId
|
|
10755
|
+
});
|
|
10756
|
+
await onUpdated();
|
|
10757
|
+
if (!result.ok) setRowAlert(t("archiveAgentFailed", { message: result.error.message }));
|
|
10758
|
+
} catch (cause) {
|
|
10759
|
+
setRowAlert(t("archiveAgentFailed", { message: cause instanceof Error ? cause.message : String(cause) }));
|
|
10760
|
+
}
|
|
10761
|
+
};
|
|
10582
10762
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
10583
10763
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10584
10764
|
className: sidebar_module_css_default.agentRow,
|
|
@@ -10630,11 +10810,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10630
10810
|
type: "label",
|
|
10631
10811
|
id: "clear-context-reason",
|
|
10632
10812
|
text: status.presence === "working" ? t("clearContextWorkingReason") : t("clearContextUnavailableReason")
|
|
10633
|
-
}] : []
|
|
10813
|
+
}] : [],
|
|
10814
|
+
{
|
|
10815
|
+
id: "archive",
|
|
10816
|
+
label: t("archiveAgent"),
|
|
10817
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutline20, { size: 16 }),
|
|
10818
|
+
danger: true
|
|
10819
|
+
}
|
|
10634
10820
|
],
|
|
10635
10821
|
onSelect: (id) => {
|
|
10636
10822
|
if (id === "edit") setEditing(true);
|
|
10637
10823
|
else if (id === "clear-context") setClearing(true);
|
|
10824
|
+
else if (id === "archive") setArchiving(true);
|
|
10638
10825
|
else recover();
|
|
10639
10826
|
},
|
|
10640
10827
|
onOpenChange: setMenuOpen
|
|
@@ -10673,6 +10860,33 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10673
10860
|
children: t("clearContextNotice", { name: status.member.handle })
|
|
10674
10861
|
})
|
|
10675
10862
|
}),
|
|
10863
|
+
archiving && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
|
|
10864
|
+
open: true,
|
|
10865
|
+
onClose: () => {
|
|
10866
|
+
setArchiving(false);
|
|
10867
|
+
},
|
|
10868
|
+
title: t("archiveAgentTitle", { name: status.member.handle }),
|
|
10869
|
+
closeLabel: t("close"),
|
|
10870
|
+
contentClassName: create_module_css_default.dialogContent,
|
|
10871
|
+
footer: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
10872
|
+
variant: "outline",
|
|
10873
|
+
onClick: () => {
|
|
10874
|
+
setArchiving(false);
|
|
10875
|
+
},
|
|
10876
|
+
children: t("cancel")
|
|
10877
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
10878
|
+
variant: "primary",
|
|
10879
|
+
onClick: () => {
|
|
10880
|
+
setArchiving(false);
|
|
10881
|
+
archive();
|
|
10882
|
+
},
|
|
10883
|
+
children: t("archiveAgentConfirm")
|
|
10884
|
+
})] }),
|
|
10885
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
10886
|
+
className: create_module_css_default.error,
|
|
10887
|
+
children: t("archiveAgentNotice", { name: status.member.handle })
|
|
10888
|
+
})
|
|
10889
|
+
}),
|
|
10676
10890
|
editing && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AgentEditorDialog, {
|
|
10677
10891
|
status,
|
|
10678
10892
|
updateMember,
|
|
@@ -10785,7 +10999,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10785
10999
|
}), loadMembers({ workspaceId })]);
|
|
10786
11000
|
if (channelResult.ok && memberResult.ok) {
|
|
10787
11001
|
setView(channelResult.value);
|
|
10788
|
-
const visibleMembers = memberResult.value.filter((status) => status.member.state !== "inactive");
|
|
11002
|
+
const visibleMembers = memberResult.value.filter((status) => status.member.state !== "inactive" && status.member.state !== "archived");
|
|
10789
11003
|
setMembers(visibleMembers);
|
|
10790
11004
|
const selectable = new Set(visibleMembers.filter((status) => status.presence !== "unavailable").map((status) => status.member.memberId));
|
|
10791
11005
|
setSelected((current) => new Set([...current].filter((memberId) => selectable.has(memberId))));
|
|
@@ -11010,6 +11224,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11010
11224
|
joinedIds: joined,
|
|
11011
11225
|
selected: selectedChannelRef === channel.channelRef,
|
|
11012
11226
|
updateChannel,
|
|
11227
|
+
archiveChannel: props.archiveChannel,
|
|
11013
11228
|
joinChannel: props.joinChannel,
|
|
11014
11229
|
removeChannelMember: props.removeChannelMember,
|
|
11015
11230
|
onCommitted: () => {
|
|
@@ -11035,52 +11250,108 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11035
11250
|
* One sidebar Channel row: the select button keeps the `#` identity while the
|
|
11036
11251
|
* row menu carries the entry point; editing covers display facts and membership.
|
|
11037
11252
|
*/
|
|
11038
|
-
function ChannelRow({ channel, members, joinedIds, selected, updateChannel, joinChannel, removeChannelMember, onCommitted, selectChannel, t }) {
|
|
11253
|
+
function ChannelRow({ channel, members, joinedIds, selected, updateChannel, archiveChannel, joinChannel, removeChannelMember, onCommitted, selectChannel, t }) {
|
|
11039
11254
|
const [menuOpen, setMenuOpen] = (0, react.useState)(false);
|
|
11040
11255
|
const [editing, setEditing] = (0, react.useState)(false);
|
|
11041
|
-
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
|
|
11045
|
-
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
|
|
11049
|
-
|
|
11050
|
-
|
|
11256
|
+
const [archiving, setArchiving] = (0, react.useState)(false);
|
|
11257
|
+
const [rowAlert, setRowAlert] = (0, react.useState)();
|
|
11258
|
+
const archive = async () => {
|
|
11259
|
+
try {
|
|
11260
|
+
const result = await archiveChannel({
|
|
11261
|
+
requestId: mintRequestId(),
|
|
11262
|
+
workspaceId: channel.workspaceId,
|
|
11263
|
+
channelRef: channel.channelRef
|
|
11264
|
+
});
|
|
11265
|
+
await onCommitted();
|
|
11266
|
+
if (!result.ok) setRowAlert(t("archiveChannelFailed", { message: result.error.message }));
|
|
11267
|
+
} catch (cause) {
|
|
11268
|
+
setRowAlert(t("archiveChannelFailed", { message: cause instanceof Error ? cause.message : String(cause) }));
|
|
11269
|
+
}
|
|
11270
|
+
};
|
|
11271
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
11272
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("article", {
|
|
11273
|
+
className: sidebar_module_css_default.channelRow,
|
|
11274
|
+
"data-menu-open": menuOpen || void 0,
|
|
11275
|
+
"aria-current": selected ? "page" : void 0,
|
|
11276
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11277
|
+
type: "button",
|
|
11278
|
+
className: sidebar_module_css_default.channelSelect,
|
|
11279
|
+
"aria-label": `# ${channel.name}`,
|
|
11280
|
+
onClick: () => {
|
|
11281
|
+
selectChannel(channel.channelRef);
|
|
11282
|
+
},
|
|
11283
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("strong", {
|
|
11284
|
+
className: sidebar_module_css_default.channelName,
|
|
11285
|
+
children: ["# ", channel.name]
|
|
11286
|
+
})
|
|
11287
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
11288
|
+
className: sidebar_module_css_default.rowMenu,
|
|
11289
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamRowMenu, {
|
|
11290
|
+
label: t("actionsChannel", { name: channel.name }),
|
|
11291
|
+
items: [{
|
|
11292
|
+
id: "edit",
|
|
11293
|
+
label: t("editChannel"),
|
|
11294
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, {})
|
|
11295
|
+
}, {
|
|
11296
|
+
id: "archive",
|
|
11297
|
+
label: t("archiveChannel"),
|
|
11298
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutline20, { size: 16 }),
|
|
11299
|
+
danger: true
|
|
11300
|
+
}],
|
|
11301
|
+
onSelect: (id) => {
|
|
11302
|
+
if (id === "edit") setEditing(true);
|
|
11303
|
+
else setArchiving(true);
|
|
11304
|
+
},
|
|
11305
|
+
onOpenChange: setMenuOpen
|
|
11306
|
+
})
|
|
11307
|
+
})]
|
|
11308
|
+
}),
|
|
11309
|
+
rowAlert !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11310
|
+
className: sidebar_module_css_default.rowAlert,
|
|
11311
|
+
role: "alert",
|
|
11312
|
+
children: rowAlert
|
|
11313
|
+
}),
|
|
11314
|
+
archiving && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
|
|
11315
|
+
open: true,
|
|
11316
|
+
onClose: () => {
|
|
11317
|
+
setArchiving(false);
|
|
11051
11318
|
},
|
|
11052
|
-
|
|
11053
|
-
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
label: t("actionsChannel", { name: channel.name }),
|
|
11060
|
-
items: [{
|
|
11061
|
-
id: "edit",
|
|
11062
|
-
label: t("editChannel"),
|
|
11063
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutline16, {})
|
|
11064
|
-
}],
|
|
11065
|
-
onSelect: () => {
|
|
11066
|
-
setEditing(true);
|
|
11319
|
+
title: t("archiveChannelTitle", { name: channel.name }),
|
|
11320
|
+
closeLabel: t("close"),
|
|
11321
|
+
contentClassName: create_module_css_default.dialogContent,
|
|
11322
|
+
footer: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
11323
|
+
variant: "outline",
|
|
11324
|
+
onClick: () => {
|
|
11325
|
+
setArchiving(false);
|
|
11067
11326
|
},
|
|
11068
|
-
|
|
11327
|
+
children: t("cancel")
|
|
11328
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
11329
|
+
variant: "primary",
|
|
11330
|
+
onClick: () => {
|
|
11331
|
+
setArchiving(false);
|
|
11332
|
+
archive();
|
|
11333
|
+
},
|
|
11334
|
+
children: t("archiveChannelConfirm")
|
|
11335
|
+
})] }),
|
|
11336
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11337
|
+
className: create_module_css_default.error,
|
|
11338
|
+
children: t("archiveChannelNotice", { name: channel.name })
|
|
11069
11339
|
})
|
|
11070
|
-
})
|
|
11071
|
-
|
|
11072
|
-
|
|
11073
|
-
|
|
11074
|
-
|
|
11075
|
-
|
|
11076
|
-
|
|
11077
|
-
|
|
11078
|
-
|
|
11079
|
-
|
|
11080
|
-
|
|
11081
|
-
|
|
11082
|
-
|
|
11083
|
-
|
|
11340
|
+
}),
|
|
11341
|
+
editing && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelEditorDialog, {
|
|
11342
|
+
channel,
|
|
11343
|
+
members,
|
|
11344
|
+
joinedIds,
|
|
11345
|
+
updateChannel,
|
|
11346
|
+
joinChannel,
|
|
11347
|
+
removeChannelMember,
|
|
11348
|
+
onCommitted,
|
|
11349
|
+
onClose: () => {
|
|
11350
|
+
setEditing(false);
|
|
11351
|
+
},
|
|
11352
|
+
t
|
|
11353
|
+
})
|
|
11354
|
+
] });
|
|
11084
11355
|
}
|
|
11085
11356
|
/**
|
|
11086
11357
|
* Channel editor: name and description commit through one durable update;
|
|
@@ -11232,7 +11503,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11232
11503
|
}
|
|
11233
11504
|
//#endregion
|
|
11234
11505
|
//#region src/client/TeamWorkspaceBrowser.tsx
|
|
11235
|
-
function TeamWorkspaceBrowser({ wide, expandSidebar, navigation, selectWorkspace, selectChannel, t, useWorkspaces, loadMembers, subscribeChanges, addMember, loadChannels, createChannel, updateChannel, updateMember, recoverMember, clearMemberContext, joinChannel, removeChannelMember, loadModels, openMemberSession }) {
|
|
11506
|
+
function TeamWorkspaceBrowser({ wide, expandSidebar, navigation, selectWorkspace, selectChannel, t, useWorkspaces, loadMembers, subscribeChanges, addMember, loadChannels, createChannel, updateChannel, archiveChannel, updateMember, recoverMember, clearMemberContext, archiveMember, joinChannel, removeChannelMember, loadModels, openMemberSession }) {
|
|
11236
11507
|
const navigationState = (0, react.useSyncExternalStore)(navigation.subscribe, navigation.getSnapshot, navigation.getSnapshot);
|
|
11237
11508
|
const workspaces = useWorkspaces((state) => state.items);
|
|
11238
11509
|
const selected = navigationState.workspaceId;
|
|
@@ -11324,6 +11595,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11324
11595
|
subscribeChanges,
|
|
11325
11596
|
createChannel,
|
|
11326
11597
|
updateChannel,
|
|
11598
|
+
archiveChannel,
|
|
11327
11599
|
joinChannel,
|
|
11328
11600
|
removeChannelMember,
|
|
11329
11601
|
creatingAgents: creatingAgents.filter((request) => request.workspaceId === selectedId),
|
|
@@ -11341,6 +11613,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11341
11613
|
updateMember,
|
|
11342
11614
|
recoverMember,
|
|
11343
11615
|
clearMemberContext,
|
|
11616
|
+
archiveMember,
|
|
11344
11617
|
loadModels,
|
|
11345
11618
|
...navigationState.memberSessionId === void 0 ? {} : { memberSessionId: navigationState.memberSessionId },
|
|
11346
11619
|
openMemberSession,
|
|
@@ -11354,6 +11627,30 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11354
11627
|
});
|
|
11355
11628
|
}
|
|
11356
11629
|
//#endregion
|
|
11630
|
+
//#region src/client/TeamMemberDock.tsx
|
|
11631
|
+
/**
|
|
11632
|
+
* Team-owned strip above the shipped composer while a Member Session is
|
|
11633
|
+
* embedded. The shipped InputBar keeps the whole input surface (draft,
|
|
11634
|
+
* trigger menus, submit); this dock only carries what the shipped bar cannot
|
|
11635
|
+
* know — the Member-Session vocabulary hint and the Member turn's prompt
|
|
11636
|
+
* error, read through the standard useSession hook.
|
|
11637
|
+
*/
|
|
11638
|
+
function TeamMemberDock({ t, useSession }) {
|
|
11639
|
+
const promptError = useSession((state) => state.promptError ?? null);
|
|
11640
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11641
|
+
className: composer_module_css_default.memberSessionDock,
|
|
11642
|
+
"data-team-member-dock": "true",
|
|
11643
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
11644
|
+
className: composer_module_css_default.memberSessionHint,
|
|
11645
|
+
children: t("memberSessionHint")
|
|
11646
|
+
}), promptError !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11647
|
+
className: composer_module_css_default.memberSessionStatus,
|
|
11648
|
+
role: "alert",
|
|
11649
|
+
children: promptError.error.message
|
|
11650
|
+
})]
|
|
11651
|
+
});
|
|
11652
|
+
}
|
|
11653
|
+
//#endregion
|
|
11357
11654
|
//#region src/client/member-session-input.ts
|
|
11358
11655
|
const TEAM_COMMAND_SOURCE = "agent-team-command";
|
|
11359
11656
|
const TEAM_MEMBER_SOURCE = "agent-team-member";
|
|
@@ -11392,6 +11689,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11392
11689
|
token: "/compact",
|
|
11393
11690
|
submit: async () => options.executeCompact(session.sessionId)
|
|
11394
11691
|
} };
|
|
11692
|
+
},
|
|
11693
|
+
async matchEnter(session, line) {
|
|
11694
|
+
if (!options.isEmbeddedMemberSession(session.sessionId)) return void 0;
|
|
11695
|
+
if (line.trim() !== "/compact") return void 0;
|
|
11696
|
+
return { claim: {
|
|
11697
|
+
token: "/compact",
|
|
11698
|
+
submit: async () => options.executeCompact(session.sessionId)
|
|
11699
|
+
} };
|
|
11395
11700
|
}
|
|
11396
11701
|
}, {
|
|
11397
11702
|
trigger: "@",
|
|
@@ -11402,7 +11707,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11402
11707
|
const normalized = query.toLocaleLowerCase();
|
|
11403
11708
|
const members = await options.members();
|
|
11404
11709
|
if (signal.aborted) return [];
|
|
11405
|
-
return members.filter((status) => status.member.sessionId !== session.sessionId && status.member.state !== "inactive").filter((status) => status.member.handle.toLocaleLowerCase().startsWith(normalized)).map((status) => {
|
|
11710
|
+
return members.filter((status) => status.member.sessionId !== session.sessionId && status.member.state !== "inactive" && status.member.state !== "archived").filter((status) => status.member.handle.toLocaleLowerCase().startsWith(normalized)).map((status) => {
|
|
11406
11711
|
labels.set(status.member.memberId, `@${status.member.handle}`);
|
|
11407
11712
|
return {
|
|
11408
11713
|
name: `@${status.member.handle}`,
|
|
@@ -11433,10 +11738,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11433
11738
|
}
|
|
11434
11739
|
}];
|
|
11435
11740
|
}
|
|
11436
|
-
/** Unknown leading slash must never fall into the shipped global palette. */
|
|
11437
|
-
function allowsMemberSessionSubmit(draft, claimToken) {
|
|
11438
|
-
return !draft.trimStart().startsWith("/") || claimToken === "/compact";
|
|
11439
|
-
}
|
|
11440
11741
|
function escapeText(value) {
|
|
11441
11742
|
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">");
|
|
11442
11743
|
}
|
|
@@ -11444,181 +11745,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11444
11745
|
return escapeText(value).replaceAll("\"", """).replaceAll("'", "'");
|
|
11445
11746
|
}
|
|
11446
11747
|
//#endregion
|
|
11447
|
-
//#region src/client/TeamMemberSessionComposer.tsx
|
|
11448
|
-
/**
|
|
11449
|
-
* Narrow, Team-owned member-session composer. It deliberately uses the public
|
|
11450
|
-
* input state/actions and trigger controller rather than the shipped InputBar;
|
|
11451
|
-
* owner-provided overlay remains inside the card so the shared menu renders.
|
|
11452
|
-
*/
|
|
11453
|
-
function TeamMemberSessionComposer({ controller, inputActions, overlay, placeholder, disabled, blocked, stop, submitInput, useInput, useSession }) {
|
|
11454
|
-
const input = useInput((state) => state);
|
|
11455
|
-
const session = useSession((state) => state);
|
|
11456
|
-
const textarea = (0, react.useRef)(null);
|
|
11457
|
-
const editedByHuman = (0, react.useRef)(void 0);
|
|
11458
|
-
const compactWasSubmitting = (0, react.useRef)(false);
|
|
11459
|
-
const composing = (0, react.useRef)(false);
|
|
11460
|
-
const [submissionNotice, setSubmissionNotice] = (0, react.useState)();
|
|
11461
|
-
const draft = input?.draft ?? "";
|
|
11462
|
-
const isLocked = disabled === true || blocked !== void 0 || inputActions === void 0 || input === void 0;
|
|
11463
|
-
(0, react.useEffect)(() => {
|
|
11464
|
-
if (isLocked) return;
|
|
11465
|
-
const active = document.activeElement;
|
|
11466
|
-
if (active !== document.body && active?.closest("[aria-current=\"page\"]") === null) return;
|
|
11467
|
-
textarea.current?.focus({ preventScroll: true });
|
|
11468
|
-
}, [isLocked]);
|
|
11469
|
-
(0, react.useLayoutEffect)(() => {
|
|
11470
|
-
const element = textarea.current;
|
|
11471
|
-
if (element === null) return;
|
|
11472
|
-
element.style.height = "auto";
|
|
11473
|
-
element.style.height = `${Math.min(element.scrollHeight, 336)}px`;
|
|
11474
|
-
}, [draft]);
|
|
11475
|
-
(0, react.useEffect)(() => {
|
|
11476
|
-
if (input === void 0) return;
|
|
11477
|
-
if (input.phase === "submitting" && input.claim?.token === "/compact") {
|
|
11478
|
-
compactWasSubmitting.current = true;
|
|
11479
|
-
return;
|
|
11480
|
-
}
|
|
11481
|
-
if (input.phase === "claimed" && input.claim?.token === "/compact" && compactWasSubmitting.current) {
|
|
11482
|
-
compactWasSubmitting.current = false;
|
|
11483
|
-
setSubmissionNotice("Compact 未执行,请重试。");
|
|
11484
|
-
return;
|
|
11485
|
-
}
|
|
11486
|
-
if (input.phase === "plain") {
|
|
11487
|
-
if (compactWasSubmitting.current) setSubmissionNotice(void 0);
|
|
11488
|
-
compactWasSubmitting.current = false;
|
|
11489
|
-
}
|
|
11490
|
-
}, [input?.claim?.token, input?.phase]);
|
|
11491
|
-
(0, react.useEffect)(() => {
|
|
11492
|
-
if (input === void 0) return;
|
|
11493
|
-
const edit = editedByHuman.current;
|
|
11494
|
-
if (edit === void 0 || edit.draft !== input.draft) return;
|
|
11495
|
-
editedByHuman.current = void 0;
|
|
11496
|
-
const hit = triggerHit(input.draft, edit.caret, input.draftRev);
|
|
11497
|
-
controller.dismiss();
|
|
11498
|
-
if (hit !== void 0) controller.toggleSource(hit.trigger === "/" ? TEAM_COMMAND_SOURCE : TEAM_MEMBER_SOURCE, hit);
|
|
11499
|
-
}, [
|
|
11500
|
-
controller,
|
|
11501
|
-
input?.draft,
|
|
11502
|
-
input?.draftRev
|
|
11503
|
-
]);
|
|
11504
|
-
const onChange = (event) => {
|
|
11505
|
-
const caret = event.currentTarget.selectionStart;
|
|
11506
|
-
editedByHuman.current = {
|
|
11507
|
-
draft: event.currentTarget.value,
|
|
11508
|
-
caret
|
|
11509
|
-
};
|
|
11510
|
-
setSubmissionNotice(void 0);
|
|
11511
|
-
inputActions?.setDraft(event.currentTarget.value);
|
|
11512
|
-
};
|
|
11513
|
-
const submit = () => {
|
|
11514
|
-
if (input === void 0 || inputActions === void 0) return;
|
|
11515
|
-
if (!allowsMemberSessionSubmit(input.draft, input.claim?.token)) {
|
|
11516
|
-
setSubmissionNotice("此 Member Session 仅支持 /compact 命令。");
|
|
11517
|
-
return;
|
|
11518
|
-
}
|
|
11519
|
-
setSubmissionNotice(void 0);
|
|
11520
|
-
submitInput(running ? "steer" : "queue");
|
|
11521
|
-
};
|
|
11522
|
-
const onKeyDown = (event) => {
|
|
11523
|
-
if (event.key === "Enter" && event.shiftKey) return;
|
|
11524
|
-
if (event.repeat || composing.current || event.nativeEvent.isComposing || event.nativeEvent.keyCode === 229) return;
|
|
11525
|
-
if (event.key === "Tab" && !event.shiftKey) {
|
|
11526
|
-
const highlight = controller.menu.getSnapshot().highlight;
|
|
11527
|
-
if (highlight !== null) {
|
|
11528
|
-
event.preventDefault();
|
|
11529
|
-
controller.pick(highlight.source, highlight.index);
|
|
11530
|
-
}
|
|
11531
|
-
return;
|
|
11532
|
-
}
|
|
11533
|
-
const key = event.key === "ArrowUp" ? "up" : event.key === "ArrowDown" ? "down" : event.key === "Escape" ? "escape" : event.key === "Enter" ? "enter" : void 0;
|
|
11534
|
-
if (key !== void 0) {
|
|
11535
|
-
if (controller.arbitrate(key, false) !== "pass") {
|
|
11536
|
-
event.preventDefault();
|
|
11537
|
-
return;
|
|
11538
|
-
}
|
|
11539
|
-
}
|
|
11540
|
-
if (event.key === "Enter") {
|
|
11541
|
-
event.preventDefault();
|
|
11542
|
-
submit();
|
|
11543
|
-
}
|
|
11544
|
-
};
|
|
11545
|
-
const running = session?.running ?? false;
|
|
11546
|
-
const promptError = session?.promptError;
|
|
11547
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11548
|
-
className: `${composer_module_css_default.root} ${composer_module_css_default.memberSessionRoot}`,
|
|
11549
|
-
"data-team-member-composer": "true",
|
|
11550
|
-
children: [(submissionNotice !== void 0 || promptError !== null && promptError !== void 0) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
11551
|
-
className: composer_module_css_default.memberSessionStatus,
|
|
11552
|
-
role: "alert",
|
|
11553
|
-
children: submissionNotice ?? promptError?.error.message
|
|
11554
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11555
|
-
className: `${composer_module_css_default.card} ${composer_module_css_default.memberSessionCard}`,
|
|
11556
|
-
"data-composer-card": "true",
|
|
11557
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
11558
|
-
className: `${composer_module_css_default.inputArea} ${composer_module_css_default.memberSessionInputArea}`,
|
|
11559
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
11560
|
-
ref: textarea,
|
|
11561
|
-
value: draft,
|
|
11562
|
-
disabled: isLocked,
|
|
11563
|
-
placeholder: blocked?.reason ?? placeholder ?? "给成员发送直接消息",
|
|
11564
|
-
onChange,
|
|
11565
|
-
onKeyDown,
|
|
11566
|
-
onCompositionStart: () => {
|
|
11567
|
-
composing.current = true;
|
|
11568
|
-
},
|
|
11569
|
-
onCompositionEnd: () => {
|
|
11570
|
-
composing.current = false;
|
|
11571
|
-
}
|
|
11572
|
-
}), overlay]
|
|
11573
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11574
|
-
className: `${composer_module_css_default.toolbar} ${composer_module_css_default.memberSessionToolbar}`,
|
|
11575
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
11576
|
-
className: `${composer_module_css_default.sendButton} ${composer_module_css_default.memberSessionPrimary}`,
|
|
11577
|
-
type: "button",
|
|
11578
|
-
"aria-label": running ? "停止生成" : "发送消息",
|
|
11579
|
-
disabled: isLocked || !running && draft.trim() === "",
|
|
11580
|
-
onClick: () => {
|
|
11581
|
-
if (running) stop?.();
|
|
11582
|
-
else submit();
|
|
11583
|
-
},
|
|
11584
|
-
children: running ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconStopFill16, { size: 16 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSendOutline16, { size: 16 })
|
|
11585
|
-
})
|
|
11586
|
-
})]
|
|
11587
|
-
})]
|
|
11588
|
-
});
|
|
11589
|
-
}
|
|
11590
|
-
function triggerHit(draft, caret, draftRev) {
|
|
11591
|
-
const before = draft.slice(0, caret);
|
|
11592
|
-
const leading = before.match(/^\s*\/([^\s]*)$/u);
|
|
11593
|
-
if (leading !== null) {
|
|
11594
|
-
const start = before.indexOf("/");
|
|
11595
|
-
return {
|
|
11596
|
-
trigger: "/",
|
|
11597
|
-
query: leading[1],
|
|
11598
|
-
quoted: false,
|
|
11599
|
-
position: "leading",
|
|
11600
|
-
span: {
|
|
11601
|
-
start,
|
|
11602
|
-
end: caret,
|
|
11603
|
-
draftRev
|
|
11604
|
-
}
|
|
11605
|
-
};
|
|
11606
|
-
}
|
|
11607
|
-
const at = before.lastIndexOf("@");
|
|
11608
|
-
if (at < 0 || /[\p{L}\p{N}_]/u.test(before[at - 1] ?? "") || /\s/u.test(before.slice(at + 1))) return void 0;
|
|
11609
|
-
return {
|
|
11610
|
-
trigger: "@",
|
|
11611
|
-
query: before.slice(at + 1),
|
|
11612
|
-
quoted: false,
|
|
11613
|
-
position: "inline",
|
|
11614
|
-
span: {
|
|
11615
|
-
start: at,
|
|
11616
|
-
end: caret,
|
|
11617
|
-
draftRev
|
|
11618
|
-
}
|
|
11619
|
-
};
|
|
11620
|
-
}
|
|
11621
|
-
//#endregion
|
|
11622
11748
|
//#region src/client/locales.ts
|
|
11623
11749
|
const zh = {
|
|
11624
11750
|
team: "团队",
|
|
@@ -11634,6 +11760,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11634
11760
|
addAgent: "添加 Agent",
|
|
11635
11761
|
cancel: "取消",
|
|
11636
11762
|
close: "关闭",
|
|
11763
|
+
memberSessionHint: "成员会话:/compact 压缩上下文 · @成员 引用;普通消息直接发给该成员。",
|
|
11764
|
+
copyCode: "复制",
|
|
11765
|
+
copiedCode: "已复制",
|
|
11766
|
+
markdownFootnotes: "脚注",
|
|
11637
11767
|
retry: "重试",
|
|
11638
11768
|
agentName: "名称",
|
|
11639
11769
|
agentDescription: "说明",
|
|
@@ -11667,6 +11797,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11667
11797
|
clearContextNotice: "将结束 {name} 当前的会话上下文并从空白开始:旧对话会归档保留在会话记录中。{name} 的身份、私有记忆与 notes、频道和会话绑定都保持不变,后续协作从新上下文继续累积。",
|
|
11668
11798
|
clearContextConfirm: "开始全新上下文",
|
|
11669
11799
|
clearContextFailed: "清空上下文失败:{message}",
|
|
11800
|
+
archiveAgent: "归档",
|
|
11801
|
+
archiveAgentTitle: "归档 Agent:{name}",
|
|
11802
|
+
archiveAgentNotice: "将把 {name} 从所有列表收起:会话与私有记忆保留在磁盘上、活跃 Claim 会释放,但暂无恢复入口。",
|
|
11803
|
+
archiveAgentConfirm: "归档",
|
|
11804
|
+
archiveAgentFailed: "归档失败:{message}",
|
|
11805
|
+
archiveChannel: "归档频道",
|
|
11806
|
+
archiveChannelTitle: "归档频道:{name}",
|
|
11807
|
+
archiveChannelNotice: "将把 {name} 及其全部讨论从所有列表收起:数据保留、所有成员在此频道的活跃 Claim 会释放,但暂无恢复入口。",
|
|
11808
|
+
archiveChannelConfirm: "归档频道",
|
|
11809
|
+
archiveChannelFailed: "归档频道失败:{message}",
|
|
11670
11810
|
optionalSuffix: "(可选)",
|
|
11671
11811
|
agentDescriptionPlaceholder: "留空则暂无描述",
|
|
11672
11812
|
membersPickerEmpty: "选择初始成员",
|
|
@@ -11776,6 +11916,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11776
11916
|
addAgent: "Add Agent",
|
|
11777
11917
|
cancel: "Cancel",
|
|
11778
11918
|
close: "Close",
|
|
11919
|
+
memberSessionHint: "Member session: /compact compresses context · @member inserts a reference; plain messages go straight to the member.",
|
|
11920
|
+
copyCode: "Copy",
|
|
11921
|
+
copiedCode: "Copied",
|
|
11922
|
+
markdownFootnotes: "Footnotes",
|
|
11779
11923
|
retry: "Retry",
|
|
11780
11924
|
agentName: "Name",
|
|
11781
11925
|
agentDescription: "Description",
|
|
@@ -11809,6 +11953,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11809
11953
|
clearContextNotice: "This ends {name}'s current session context and starts blank: the previous conversation is archived and stays in the session history. {name}'s identity, private memory and notes, channel and session bindings are untouched, and future collaboration accumulates from the new context.",
|
|
11810
11954
|
clearContextConfirm: "Start from new context",
|
|
11811
11955
|
clearContextFailed: "Failed to clear context: {message}",
|
|
11956
|
+
archiveAgent: "Archive",
|
|
11957
|
+
archiveAgentTitle: "Archive Agent: {name}",
|
|
11958
|
+
archiveAgentNotice: "This hides {name} from every list: the session log and private memory stay on disk and active Claims release, but there is no restore entry point yet.",
|
|
11959
|
+
archiveAgentConfirm: "Archive",
|
|
11960
|
+
archiveAgentFailed: "Failed to archive: {message}",
|
|
11961
|
+
archiveChannel: "Archive Channel",
|
|
11962
|
+
archiveChannelTitle: "Archive Channel: {name}",
|
|
11963
|
+
archiveChannelNotice: "This hides {name} and all of its discussions from every list: the data stays, every Member's active Claims in this Channel release, but there is no restore entry point yet.",
|
|
11964
|
+
archiveChannelConfirm: "Archive Channel",
|
|
11965
|
+
archiveChannelFailed: "Failed to archive Channel: {message}",
|
|
11812
11966
|
optionalSuffix: " (optional)",
|
|
11813
11967
|
agentDescriptionPlaceholder: "Leave empty if not needed",
|
|
11814
11968
|
membersPickerEmpty: "Choose initial members",
|
|
@@ -11912,6 +12066,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11912
12066
|
"workspaces",
|
|
11913
12067
|
"locale",
|
|
11914
12068
|
"remote",
|
|
12069
|
+
"remote.session",
|
|
11915
12070
|
"sessions",
|
|
11916
12071
|
"connection",
|
|
11917
12072
|
"conversation",
|
|
@@ -11934,12 +12089,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11934
12089
|
joinChannel: (request) => ctx.remote.agentTeam.joinChannel(request),
|
|
11935
12090
|
removeChannelMember: (request) => ctx.remote.agentTeam.removeChannelMember(request),
|
|
11936
12091
|
updateChannel: (request) => ctx.remote.agentTeam.updateChannel(request),
|
|
12092
|
+
archiveChannel: (request) => ctx.remote.agentTeam.archiveChannel(request),
|
|
11937
12093
|
updateMember: (request) => ctx.remote.agentTeam.updateMember(request),
|
|
11938
12094
|
recoverMember: (request) => ctx.remote.agentTeam.recoverMember(request),
|
|
11939
12095
|
clearMemberContext: (request) => ctx.remote.agentTeam.clearMemberContext(request),
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
},
|
|
12096
|
+
archiveMember: (request) => ctx.remote.agentTeam.archiveMember(request),
|
|
12097
|
+
loadModels: () => ctx.remote.session.modelCatalog(),
|
|
11943
12098
|
openMemberSession: openMemberSessionImpl
|
|
11944
12099
|
};
|
|
11945
12100
|
ctx.slots.inject(name, () => {
|
|
@@ -11987,8 +12142,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
11987
12142
|
};
|
|
11988
12143
|
});
|
|
11989
12144
|
}
|
|
11990
|
-
function
|
|
11991
|
-
ctx.slots.inject("conversation.
|
|
12145
|
+
function registerMemberSessionDock(ctx, navigation) {
|
|
12146
|
+
ctx.slots.inject("conversation.input.dock", () => {
|
|
11992
12147
|
let dispose;
|
|
11993
12148
|
let registeredSessionId;
|
|
11994
12149
|
const reconcile = () => {
|
|
@@ -12001,23 +12156,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12001
12156
|
}
|
|
12002
12157
|
if (active && dispose === void 0) {
|
|
12003
12158
|
registeredSessionId = memberSessionId;
|
|
12159
|
+
const sessions = ctx.sessions;
|
|
12004
12160
|
dispose = ctx.slots.register({
|
|
12005
|
-
name: "conversation.
|
|
12006
|
-
|
|
12007
|
-
|
|
12008
|
-
|
|
12009
|
-
|
|
12010
|
-
if (actx === void 0) throw new Error(`agent-team: Member session ${String(sessionId)} has no client scope`);
|
|
12011
|
-
const sessions = ctx.sessions;
|
|
12012
|
-
return {
|
|
12013
|
-
controller: ctx.get("inputTriggers").sessionOf(actx),
|
|
12014
|
-
stop: () => {
|
|
12015
|
-
sessions.sessionOf(actx)?.cancel();
|
|
12016
|
-
},
|
|
12017
|
-
submitInput: (mode) => ctx.conversation.input.for(actx).submit(mode)
|
|
12018
|
-
};
|
|
12019
|
-
}
|
|
12020
|
-
}, TeamMemberSessionComposer);
|
|
12161
|
+
name: "conversation.input.dock",
|
|
12162
|
+
id: "agent-team-member",
|
|
12163
|
+
locale: NS,
|
|
12164
|
+
select: () => sessions.list.getSnapshot().current === memberSessionId ? {} : null
|
|
12165
|
+
}, TeamMemberDock);
|
|
12021
12166
|
}
|
|
12022
12167
|
};
|
|
12023
12168
|
const offNavigation = navigation.subscribe(reconcile);
|
|
@@ -12076,10 +12221,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12076
12221
|
return (await Promise.all(workspaces.map(async (workspace) => {
|
|
12077
12222
|
const result = await ctx.remote.agentTeam.members({ workspaceId: workspace.workspaceId });
|
|
12078
12223
|
if (!result.ok) throw new Error(result.error.message);
|
|
12224
|
+
const members = result.value.filter((status) => status.member.state !== "inactive" && status.member.state !== "archived");
|
|
12079
12225
|
return {
|
|
12080
12226
|
workspaceId: workspace.workspaceId,
|
|
12081
12227
|
workspaceTitle: workspace.title,
|
|
12082
|
-
members
|
|
12228
|
+
members
|
|
12083
12229
|
};
|
|
12084
12230
|
}))).filter((group) => group.members.length > 0);
|
|
12085
12231
|
};
|
|
@@ -12107,7 +12253,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
12107
12253
|
}, TeamFooterAction));
|
|
12108
12254
|
registerModeShadow(ctx, navigation, changes, drafts, "sidebar.workspaces", TeamWorkspaceBrowser);
|
|
12109
12255
|
registerModeShadow(ctx, navigation, changes, drafts, "conversation", TeamConversation);
|
|
12110
|
-
|
|
12256
|
+
registerMemberSessionDock(ctx, navigation);
|
|
12111
12257
|
registerModeShadow(ctx, navigation, changes, drafts, "sidebar.settings", TeamSettings, () => ({ loadMemberGroups }));
|
|
12112
12258
|
}
|
|
12113
12259
|
async function apply(ctx) {
|