@awiki/dsh-plugin 0.3.5 → 0.3.7-dsh-test.20260831.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +45 -32
  2. package/README.zh.md +33 -28
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/cordis.patch.yml +3 -1
  5. package/lib/client.js +1348 -637
  6. package/lib/client.js.map +1 -1
  7. package/lib/index.js +989 -393
  8. package/lib/provider.js +57 -16
  9. package/lib/{sdk-adapter-CDLTgHJA.mjs → sdk-adapter-FGaOi8It.mjs} +167 -50
  10. package/lib/typert.host.js +411 -128
  11. package/lib/typert.remote-client.d.ts +19 -5
  12. package/lib/typert.remote-client.d.ts.map +1 -1
  13. package/lib/typert.remote-client.js +411 -128
  14. package/lib/types/client/AwikiDevices.d.ts +28 -0
  15. package/lib/types/client/AwikiDevices.d.ts.map +1 -0
  16. package/lib/types/client/AwikiDevices.js +85 -0
  17. package/lib/types/client/AwikiDevices.js.map +1 -0
  18. package/lib/types/client/AwikiIdentityAccess.d.ts +6 -5
  19. package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
  20. package/lib/types/client/AwikiIdentityAccess.js +88 -27
  21. package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
  22. package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
  23. package/lib/types/client/AwikiOverlay.js +5 -12
  24. package/lib/types/client/AwikiOverlay.js.map +1 -1
  25. package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
  26. package/lib/types/client/AwikiRecoveryForm.js +1 -1
  27. package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
  28. package/lib/types/client/controller.d.ts +20 -28
  29. package/lib/types/client/controller.d.ts.map +1 -1
  30. package/lib/types/client/controller.js +41 -162
  31. package/lib/types/client/controller.js.map +1 -1
  32. package/lib/types/client/index.d.ts.map +1 -1
  33. package/lib/types/client/index.js +8 -2
  34. package/lib/types/client/index.js.map +1 -1
  35. package/lib/types/client/slots.d.ts +10 -6
  36. package/lib/types/client/slots.d.ts.map +1 -1
  37. package/lib/types/conversation-preferences.d.ts.map +1 -1
  38. package/lib/types/conversation-preferences.js +0 -17
  39. package/lib/types/conversation-preferences.js.map +1 -1
  40. package/lib/types/index.d.ts +54 -13
  41. package/lib/types/index.d.ts.map +1 -1
  42. package/lib/types/index.js +739 -221
  43. package/lib/types/index.js.map +1 -1
  44. package/lib/types/listener-state.d.ts +5 -3
  45. package/lib/types/listener-state.d.ts.map +1 -1
  46. package/lib/types/listener-state.js +28 -13
  47. package/lib/types/listener-state.js.map +1 -1
  48. package/lib/types/listener.d.ts +9 -32
  49. package/lib/types/listener.d.ts.map +1 -1
  50. package/lib/types/listener.js +11 -127
  51. package/lib/types/listener.js.map +1 -1
  52. package/lib/types/provider-api.d.ts +99 -7
  53. package/lib/types/provider-api.d.ts.map +1 -1
  54. package/lib/types/provider.d.ts +7 -1
  55. package/lib/types/provider.d.ts.map +1 -1
  56. package/lib/types/provider.js +58 -15
  57. package/lib/types/provider.js.map +1 -1
  58. package/lib/types/realtime-supervisor.d.ts +54 -0
  59. package/lib/types/realtime-supervisor.d.ts.map +1 -0
  60. package/lib/types/realtime-supervisor.js +242 -0
  61. package/lib/types/realtime-supervisor.js.map +1 -0
  62. package/lib/types/sdk-adapter.d.ts +31 -5
  63. package/lib/types/sdk-adapter.d.ts.map +1 -1
  64. package/lib/types/sdk-adapter.js +162 -59
  65. package/lib/types/sdk-adapter.js.map +1 -1
  66. package/lib/types/types.d.ts +76 -27
  67. package/lib/types/types.d.ts.map +1 -1
  68. package/lib/types/types.js.map +1 -1
  69. package/package.json +5 -2
  70. package/lib/types/profile-state.d.ts +0 -11
  71. package/lib/types/profile-state.d.ts.map +0 -1
  72. package/lib/types/profile-state.js +0 -48
  73. package/lib/types/profile-state.js.map +0 -1
package/lib/client.js CHANGED
@@ -4112,7 +4112,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4112
4112
  literal("forbidden"),
4113
4113
  literal("identity-recovery-required"),
4114
4114
  literal("conflict"),
4115
- literal("state-in-use"),
4116
4115
  literal("rate-limited"),
4117
4116
  literal("group-membership-required"),
4118
4117
  literal("group-identity-stale"),
@@ -4147,14 +4146,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4147
4146
  "failureCode": string().readonly().optional(),
4148
4147
  "retryable": boolean().readonly(),
4149
4148
  "localOrdinaryDataWillMigrate": boolean().readonly(),
4150
- "otherDevicesMustRejoin": boolean().readonly(),
4151
- "unsupportedE2eeGroupCount": number().readonly(),
4152
- "unsupportedDidOnlyGroupCount": number().readonly()
4149
+ "otherDevicesMustRejoin": boolean().readonly()
4153
4150
  }).readonly()
4154
4151
  })]);
4155
4152
  const _awiki_dsh_plugin_awiki_addGroupMember_parameter_0$schema = object({
4156
4153
  "member": string().readonly(),
4157
- "role": union([literal("admin"), literal("member")]).readonly().optional(),
4154
+ "role": union([literal("member"), literal("admin")]).readonly().optional(),
4158
4155
  "groupDid": intersection(string(), unknown()).readonly()
4159
4156
  });
4160
4157
  const _awiki_dsh_plugin_awiki_addGroupMember_result$schema = union([object({
@@ -4172,7 +4169,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4172
4169
  literal("forbidden"),
4173
4170
  literal("identity-recovery-required"),
4174
4171
  literal("conflict"),
4175
- literal("state-in-use"),
4176
4172
  literal("rate-limited"),
4177
4173
  literal("group-membership-required"),
4178
4174
  literal("group-identity-stale"),
@@ -4195,6 +4191,139 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4195
4191
  "handle": intersection(string(), unknown()).readonly().optional()
4196
4192
  }).readonly()
4197
4193
  })]);
4194
+ const _awiki_dsh_plugin_awiki_approveDeviceJoin_parameter_0$schema = object({
4195
+ "enteredSas": string().readonly(),
4196
+ "confirmation": string().readonly(),
4197
+ "requestRef": string().readonly()
4198
+ });
4199
+ const _awiki_dsh_plugin_awiki_approveDeviceJoin_result$schema = union([object({
4200
+ "ok": literal(false).readonly(),
4201
+ "error": object({
4202
+ "code": union([
4203
+ literal("not-registered"),
4204
+ literal("signed-out"),
4205
+ literal("already-registered"),
4206
+ literal("invalid-request"),
4207
+ literal("invalid-otp"),
4208
+ literal("challenge-expired"),
4209
+ literal("handle-unavailable"),
4210
+ literal("not-found"),
4211
+ literal("forbidden"),
4212
+ literal("identity-recovery-required"),
4213
+ literal("conflict"),
4214
+ literal("rate-limited"),
4215
+ literal("group-membership-required"),
4216
+ literal("group-identity-stale"),
4217
+ literal("attachment-too-large"),
4218
+ literal("summary-unavailable"),
4219
+ literal("summary-timeout"),
4220
+ literal("summary-cancelled"),
4221
+ literal("summary-invalid-output"),
4222
+ literal("summary-failed"),
4223
+ literal("delivery-unknown"),
4224
+ literal("network"),
4225
+ literal("remote")
4226
+ ]).readonly(),
4227
+ "message": string().readonly()
4228
+ }).readonly()
4229
+ }), object({
4230
+ "ok": literal(true).readonly(),
4231
+ "value": object({
4232
+ "requestRef": string().readonly(),
4233
+ "phase": union([
4234
+ literal("pending"),
4235
+ literal("verifying"),
4236
+ literal("sas-ready"),
4237
+ literal("authorized"),
4238
+ literal("cancelled"),
4239
+ literal("rejected"),
4240
+ literal("expired")
4241
+ ]).readonly(),
4242
+ "expiresAt": string().readonly(),
4243
+ "sas": string().readonly().optional()
4244
+ }).readonly()
4245
+ })]);
4246
+ const _awiki_dsh_plugin_awiki_beginDeviceJoin_result$schema = union([object({
4247
+ "ok": literal(false).readonly(),
4248
+ "error": object({
4249
+ "code": union([
4250
+ literal("not-registered"),
4251
+ literal("signed-out"),
4252
+ literal("already-registered"),
4253
+ literal("invalid-request"),
4254
+ literal("invalid-otp"),
4255
+ literal("challenge-expired"),
4256
+ literal("handle-unavailable"),
4257
+ literal("not-found"),
4258
+ literal("forbidden"),
4259
+ literal("identity-recovery-required"),
4260
+ literal("conflict"),
4261
+ literal("rate-limited"),
4262
+ literal("group-membership-required"),
4263
+ literal("group-identity-stale"),
4264
+ literal("attachment-too-large"),
4265
+ literal("summary-unavailable"),
4266
+ literal("summary-timeout"),
4267
+ literal("summary-cancelled"),
4268
+ literal("summary-invalid-output"),
4269
+ literal("summary-failed"),
4270
+ literal("delivery-unknown"),
4271
+ literal("network"),
4272
+ literal("remote")
4273
+ ]).readonly(),
4274
+ "message": string().readonly()
4275
+ }).readonly()
4276
+ }), object({
4277
+ "ok": literal(true).readonly(),
4278
+ "value": object({
4279
+ "phase": union([
4280
+ literal("pending"),
4281
+ literal("verifying"),
4282
+ literal("sas-ready"),
4283
+ literal("authorized"),
4284
+ literal("cancelled"),
4285
+ literal("rejected"),
4286
+ literal("expired")
4287
+ ]).readonly(),
4288
+ "expiresAt": string().readonly(),
4289
+ "sas": string().readonly().optional(),
4290
+ "completed": boolean().readonly()
4291
+ }).readonly()
4292
+ })]);
4293
+ const _awiki_dsh_plugin_awiki_cancelDeviceJoin_result$schema = union([object({
4294
+ "ok": literal(false).readonly(),
4295
+ "error": object({
4296
+ "code": union([
4297
+ literal("not-registered"),
4298
+ literal("signed-out"),
4299
+ literal("already-registered"),
4300
+ literal("invalid-request"),
4301
+ literal("invalid-otp"),
4302
+ literal("challenge-expired"),
4303
+ literal("handle-unavailable"),
4304
+ literal("not-found"),
4305
+ literal("forbidden"),
4306
+ literal("identity-recovery-required"),
4307
+ literal("conflict"),
4308
+ literal("rate-limited"),
4309
+ literal("group-membership-required"),
4310
+ literal("group-identity-stale"),
4311
+ literal("attachment-too-large"),
4312
+ literal("summary-unavailable"),
4313
+ literal("summary-timeout"),
4314
+ literal("summary-cancelled"),
4315
+ literal("summary-invalid-output"),
4316
+ literal("summary-failed"),
4317
+ literal("delivery-unknown"),
4318
+ literal("network"),
4319
+ literal("remote")
4320
+ ]).readonly(),
4321
+ "message": string().readonly()
4322
+ }).readonly()
4323
+ }), object({
4324
+ "ok": literal(true).readonly(),
4325
+ "value": object({ "completed": literal(true).readonly() }).readonly()
4326
+ })]);
4198
4327
  const _awiki_dsh_plugin_awiki_clearLocalData_parameter_0$schema = object({ "confirmation": string().readonly() });
4199
4328
  const _awiki_dsh_plugin_awiki_clearLocalData_result$schema = union([object({
4200
4329
  "ok": literal(false).readonly(),
@@ -4211,7 +4340,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4211
4340
  literal("forbidden"),
4212
4341
  literal("identity-recovery-required"),
4213
4342
  literal("conflict"),
4214
- literal("state-in-use"),
4215
4343
  literal("rate-limited"),
4216
4344
  literal("group-membership-required"),
4217
4345
  literal("group-identity-stale"),
@@ -4250,7 +4378,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4250
4378
  literal("forbidden"),
4251
4379
  literal("identity-recovery-required"),
4252
4380
  literal("conflict"),
4253
- literal("state-in-use"),
4254
4381
  literal("rate-limited"),
4255
4382
  literal("group-membership-required"),
4256
4383
  literal("group-identity-stale"),
@@ -4297,7 +4424,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4297
4424
  literal("forbidden"),
4298
4425
  literal("identity-recovery-required"),
4299
4426
  literal("conflict"),
4300
- literal("state-in-use"),
4301
4427
  literal("rate-limited"),
4302
4428
  literal("group-membership-required"),
4303
4429
  literal("group-identity-stale"),
@@ -4332,7 +4458,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4332
4458
  literal("forbidden"),
4333
4459
  literal("identity-recovery-required"),
4334
4460
  literal("conflict"),
4335
- literal("state-in-use"),
4336
4461
  literal("rate-limited"),
4337
4462
  literal("group-membership-required"),
4338
4463
  literal("group-identity-stale"),
@@ -4371,7 +4496,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4371
4496
  literal("forbidden"),
4372
4497
  literal("identity-recovery-required"),
4373
4498
  literal("conflict"),
4374
- literal("state-in-use"),
4375
4499
  literal("rate-limited"),
4376
4500
  literal("group-membership-required"),
4377
4501
  literal("group-identity-stale"),
@@ -4415,7 +4539,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4415
4539
  literal("forbidden"),
4416
4540
  literal("identity-recovery-required"),
4417
4541
  literal("conflict"),
4418
- literal("state-in-use"),
4419
4542
  literal("rate-limited"),
4420
4543
  literal("group-membership-required"),
4421
4544
  literal("group-identity-stale"),
@@ -4436,8 +4559,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4436
4559
  "value": object({
4437
4560
  "pollIntervalMs": number().readonly(),
4438
4561
  "attachmentMaxBytes": number().readonly(),
4439
- "profileName": string().readonly().optional(),
4440
- "legacySharedStateDetected": boolean().readonly().optional()
4562
+ "handleRecoveryPhoneEnabled": boolean().readonly()
4441
4563
  }).readonly()
4442
4564
  })]);
4443
4565
  const _awiki_dsh_plugin_awiki_getConversationPreferences_result$schema = union([object({
@@ -4455,7 +4577,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4455
4577
  literal("forbidden"),
4456
4578
  literal("identity-recovery-required"),
4457
4579
  literal("conflict"),
4458
- literal("state-in-use"),
4459
4580
  literal("rate-limited"),
4460
4581
  literal("group-membership-required"),
4461
4582
  literal("group-identity-stale"),
@@ -4473,31 +4594,75 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4473
4594
  }).readonly()
4474
4595
  }), object({
4475
4596
  "ok": literal(true).readonly(),
4476
- "value": object({
4477
- "hiddenConversations": array(object({
4478
- "conversation": union([object({
4479
- "kind": literal("group").readonly(),
4480
- "id": intersection(string(), unknown()).readonly(),
4481
- "groupDid": intersection(string(), unknown()).readonly(),
4482
- "title": string().readonly(),
4483
- "unreadCount": number().readonly().optional(),
4484
- "lastMessageAt": number().readonly().optional(),
4485
- "lastMessagePreview": string().readonly().optional()
4486
- }), object({
4487
- "kind": literal("direct").readonly(),
4488
- "id": intersection(string(), unknown()).readonly(),
4489
- "peerDid": intersection(string(), unknown()).readonly(),
4490
- "peerHandle": intersection(string(), unknown()).readonly().optional(),
4491
- "displayName": string().readonly().optional(),
4492
- "title": string().readonly(),
4493
- "unreadCount": number().readonly().optional(),
4494
- "lastMessageAt": number().readonly().optional(),
4495
- "lastMessagePreview": string().readonly().optional()
4496
- })]).readonly(),
4497
- "hiddenAt": number().readonly()
4498
- })).readonly(),
4499
- "dismissedGroupRecoverySignature": string().readonly().optional()
4597
+ "value": object({ "hiddenConversations": array(object({
4598
+ "conversation": union([object({
4599
+ "kind": literal("group").readonly(),
4600
+ "id": intersection(string(), unknown()).readonly(),
4601
+ "groupDid": intersection(string(), unknown()).readonly(),
4602
+ "title": string().readonly(),
4603
+ "unreadCount": number().readonly().optional(),
4604
+ "lastMessageAt": number().readonly().optional(),
4605
+ "lastMessagePreview": string().readonly().optional()
4606
+ }), object({
4607
+ "kind": literal("direct").readonly(),
4608
+ "id": intersection(string(), unknown()).readonly(),
4609
+ "peerDid": intersection(string(), unknown()).readonly(),
4610
+ "peerHandle": intersection(string(), unknown()).readonly().optional(),
4611
+ "displayName": string().readonly().optional(),
4612
+ "title": string().readonly(),
4613
+ "unreadCount": number().readonly().optional(),
4614
+ "lastMessageAt": number().readonly().optional(),
4615
+ "lastMessagePreview": string().readonly().optional()
4616
+ })]).readonly(),
4617
+ "hiddenAt": number().readonly()
4618
+ })).readonly() }).readonly()
4619
+ })]);
4620
+ const _awiki_dsh_plugin_awiki_getDeviceJoinStatus_result$schema = union([object({
4621
+ "ok": literal(false).readonly(),
4622
+ "error": object({
4623
+ "code": union([
4624
+ literal("not-registered"),
4625
+ literal("signed-out"),
4626
+ literal("already-registered"),
4627
+ literal("invalid-request"),
4628
+ literal("invalid-otp"),
4629
+ literal("challenge-expired"),
4630
+ literal("handle-unavailable"),
4631
+ literal("not-found"),
4632
+ literal("forbidden"),
4633
+ literal("identity-recovery-required"),
4634
+ literal("conflict"),
4635
+ literal("rate-limited"),
4636
+ literal("group-membership-required"),
4637
+ literal("group-identity-stale"),
4638
+ literal("attachment-too-large"),
4639
+ literal("summary-unavailable"),
4640
+ literal("summary-timeout"),
4641
+ literal("summary-cancelled"),
4642
+ literal("summary-invalid-output"),
4643
+ literal("summary-failed"),
4644
+ literal("delivery-unknown"),
4645
+ literal("network"),
4646
+ literal("remote")
4647
+ ]).readonly(),
4648
+ "message": string().readonly()
4500
4649
  }).readonly()
4650
+ }), object({
4651
+ "ok": literal(true).readonly(),
4652
+ "value": union([literal(null), object({
4653
+ "phase": union([
4654
+ literal("pending"),
4655
+ literal("verifying"),
4656
+ literal("sas-ready"),
4657
+ literal("authorized"),
4658
+ literal("cancelled"),
4659
+ literal("rejected"),
4660
+ literal("expired")
4661
+ ]).readonly(),
4662
+ "expiresAt": string().readonly(),
4663
+ "sas": string().readonly().optional(),
4664
+ "completed": boolean().readonly()
4665
+ })]).readonly()
4501
4666
  })]);
4502
4667
  const _awiki_dsh_plugin_awiki_getGroup_parameter_0$schema = object({ "groupDid": intersection(string(), unknown()).readonly() });
4503
4668
  const _awiki_dsh_plugin_awiki_getGroup_result$schema = union([object({
@@ -4515,7 +4680,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4515
4680
  literal("forbidden"),
4516
4681
  literal("identity-recovery-required"),
4517
4682
  literal("conflict"),
4518
- literal("state-in-use"),
4519
4683
  literal("rate-limited"),
4520
4684
  literal("group-membership-required"),
4521
4685
  literal("group-identity-stale"),
@@ -4563,7 +4727,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4563
4727
  literal("forbidden"),
4564
4728
  literal("identity-recovery-required"),
4565
4729
  literal("conflict"),
4566
- literal("state-in-use"),
4567
4730
  literal("rate-limited"),
4568
4731
  literal("group-membership-required"),
4569
4732
  literal("group-identity-stale"),
@@ -4632,7 +4795,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4632
4795
  literal("forbidden"),
4633
4796
  literal("identity-recovery-required"),
4634
4797
  literal("conflict"),
4635
- literal("state-in-use"),
4636
4798
  literal("rate-limited"),
4637
4799
  literal("group-membership-required"),
4638
4800
  literal("group-identity-stale"),
@@ -4677,7 +4839,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4677
4839
  literal("forbidden"),
4678
4840
  literal("identity-recovery-required"),
4679
4841
  literal("conflict"),
4680
- literal("state-in-use"),
4681
4842
  literal("rate-limited"),
4682
4843
  literal("group-membership-required"),
4683
4844
  literal("group-identity-stale"),
@@ -4746,7 +4907,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4746
4907
  literal("forbidden"),
4747
4908
  literal("identity-recovery-required"),
4748
4909
  literal("conflict"),
4749
- literal("state-in-use"),
4750
4910
  literal("rate-limited"),
4751
4911
  literal("group-membership-required"),
4752
4912
  literal("group-identity-stale"),
@@ -4785,7 +4945,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4785
4945
  literal("forbidden"),
4786
4946
  literal("identity-recovery-required"),
4787
4947
  literal("conflict"),
4788
- literal("state-in-use"),
4789
4948
  literal("rate-limited"),
4790
4949
  literal("group-membership-required"),
4791
4950
  literal("group-identity-stale"),
@@ -4828,7 +4987,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4828
4987
  literal("forbidden"),
4829
4988
  literal("identity-recovery-required"),
4830
4989
  literal("conflict"),
4831
- literal("state-in-use"),
4832
4990
  literal("rate-limited"),
4833
4991
  literal("group-membership-required"),
4834
4992
  literal("group-identity-stale"),
@@ -4863,9 +5021,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4863
5021
  "failureCode": string().readonly().optional(),
4864
5022
  "retryable": boolean().readonly(),
4865
5023
  "localOrdinaryDataWillMigrate": boolean().readonly(),
4866
- "otherDevicesMustRejoin": boolean().readonly(),
4867
- "unsupportedE2eeGroupCount": number().readonly(),
4868
- "unsupportedDidOnlyGroupCount": number().readonly()
5024
+ "otherDevicesMustRejoin": boolean().readonly()
4869
5025
  }).readonly()
4870
5026
  })]);
4871
5027
  const _awiki_dsh_plugin_awiki_getSession_result$schema = union([object({
@@ -4883,7 +5039,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4883
5039
  literal("forbidden"),
4884
5040
  literal("identity-recovery-required"),
4885
5041
  literal("conflict"),
4886
- literal("state-in-use"),
4887
5042
  literal("rate-limited"),
4888
5043
  literal("group-membership-required"),
4889
5044
  literal("group-identity-stale"),
@@ -4931,7 +5086,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4931
5086
  literal("forbidden"),
4932
5087
  literal("identity-recovery-required"),
4933
5088
  literal("conflict"),
4934
- literal("state-in-use"),
4935
5089
  literal("rate-limited"),
4936
5090
  literal("group-membership-required"),
4937
5091
  literal("group-identity-stale"),
@@ -4970,7 +5124,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4970
5124
  literal("forbidden"),
4971
5125
  literal("identity-recovery-required"),
4972
5126
  literal("conflict"),
4973
- literal("state-in-use"),
4974
5127
  literal("rate-limited"),
4975
5128
  literal("group-membership-required"),
4976
5129
  literal("group-identity-stale"),
@@ -5014,7 +5167,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5014
5167
  literal("forbidden"),
5015
5168
  literal("identity-recovery-required"),
5016
5169
  literal("conflict"),
5017
- literal("state-in-use"),
5018
5170
  literal("rate-limited"),
5019
5171
  literal("group-membership-required"),
5020
5172
  literal("group-identity-stale"),
@@ -5053,7 +5205,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5053
5205
  literal("forbidden"),
5054
5206
  literal("identity-recovery-required"),
5055
5207
  literal("conflict"),
5056
- literal("state-in-use"),
5057
5208
  literal("rate-limited"),
5058
5209
  literal("group-membership-required"),
5059
5210
  literal("group-identity-stale"),
@@ -5115,7 +5266,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5115
5266
  literal("forbidden"),
5116
5267
  literal("identity-recovery-required"),
5117
5268
  literal("conflict"),
5118
- literal("state-in-use"),
5119
5269
  literal("rate-limited"),
5120
5270
  literal("group-membership-required"),
5121
5271
  literal("group-identity-stale"),
@@ -5175,7 +5325,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5175
5325
  literal("forbidden"),
5176
5326
  literal("identity-recovery-required"),
5177
5327
  literal("conflict"),
5178
- literal("state-in-use"),
5179
5328
  literal("rate-limited"),
5180
5329
  literal("group-membership-required"),
5181
5330
  literal("group-identity-stale"),
@@ -5229,7 +5378,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5229
5378
  literal("forbidden"),
5230
5379
  literal("identity-recovery-required"),
5231
5380
  literal("conflict"),
5232
- literal("state-in-use"),
5233
5381
  literal("rate-limited"),
5234
5382
  literal("group-membership-required"),
5235
5383
  literal("group-identity-stale"),
@@ -5277,7 +5425,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5277
5425
  literal("forbidden"),
5278
5426
  literal("identity-recovery-required"),
5279
5427
  literal("conflict"),
5280
- literal("state-in-use"),
5281
5428
  literal("rate-limited"),
5282
5429
  literal("group-membership-required"),
5283
5430
  literal("group-identity-stale"),
@@ -5325,7 +5472,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5325
5472
  literal("forbidden"),
5326
5473
  literal("identity-recovery-required"),
5327
5474
  literal("conflict"),
5328
- literal("state-in-use"),
5329
5475
  literal("rate-limited"),
5330
5476
  literal("group-membership-required"),
5331
5477
  literal("group-identity-stale"),
@@ -5361,7 +5507,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5361
5507
  literal("forbidden"),
5362
5508
  literal("identity-recovery-required"),
5363
5509
  literal("conflict"),
5364
- literal("state-in-use"),
5365
5510
  literal("rate-limited"),
5366
5511
  literal("group-membership-required"),
5367
5512
  literal("group-identity-stale"),
@@ -5401,7 +5546,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5401
5546
  literal("forbidden"),
5402
5547
  literal("identity-recovery-required"),
5403
5548
  literal("conflict"),
5404
- literal("state-in-use"),
5405
5549
  literal("rate-limited"),
5406
5550
  literal("group-membership-required"),
5407
5551
  literal("group-identity-stale"),
@@ -5436,9 +5580,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5436
5580
  "failureCode": string().readonly().optional(),
5437
5581
  "retryable": boolean().readonly(),
5438
5582
  "localOrdinaryDataWillMigrate": boolean().readonly(),
5439
- "otherDevicesMustRejoin": boolean().readonly(),
5440
- "unsupportedE2eeGroupCount": number().readonly(),
5441
- "unsupportedDidOnlyGroupCount": number().readonly()
5583
+ "otherDevicesMustRejoin": boolean().readonly()
5442
5584
  }).readonly()
5443
5585
  })]);
5444
5586
  const _awiki_dsh_plugin_awiki_readMail_parameter_0$schema = object({ "messageId": intersection(string(), unknown()).readonly() });
@@ -5457,7 +5599,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5457
5599
  literal("forbidden"),
5458
5600
  literal("identity-recovery-required"),
5459
5601
  literal("conflict"),
5460
- literal("state-in-use"),
5461
5602
  literal("rate-limited"),
5462
5603
  literal("group-membership-required"),
5463
5604
  literal("group-identity-stale"),
@@ -5503,6 +5644,74 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5503
5644
  })).readonly()
5504
5645
  }).readonly()
5505
5646
  })]);
5647
+ const _awiki_dsh_plugin_awiki_refreshDeviceManagement_result$schema = union([object({
5648
+ "ok": literal(false).readonly(),
5649
+ "error": object({
5650
+ "code": union([
5651
+ literal("not-registered"),
5652
+ literal("signed-out"),
5653
+ literal("already-registered"),
5654
+ literal("invalid-request"),
5655
+ literal("invalid-otp"),
5656
+ literal("challenge-expired"),
5657
+ literal("handle-unavailable"),
5658
+ literal("not-found"),
5659
+ literal("forbidden"),
5660
+ literal("identity-recovery-required"),
5661
+ literal("conflict"),
5662
+ literal("rate-limited"),
5663
+ literal("group-membership-required"),
5664
+ literal("group-identity-stale"),
5665
+ literal("attachment-too-large"),
5666
+ literal("summary-unavailable"),
5667
+ literal("summary-timeout"),
5668
+ literal("summary-cancelled"),
5669
+ literal("summary-invalid-output"),
5670
+ literal("summary-failed"),
5671
+ literal("delivery-unknown"),
5672
+ literal("network"),
5673
+ literal("remote")
5674
+ ]).readonly(),
5675
+ "message": string().readonly()
5676
+ }).readonly()
5677
+ }), object({
5678
+ "ok": literal(true).readonly(),
5679
+ "value": object({
5680
+ "canManage": boolean().readonly(),
5681
+ "role": union([literal("member"), literal("admin")]).readonly().optional(),
5682
+ "readiness": union([
5683
+ literal("legacy"),
5684
+ literal("member_ready"),
5685
+ literal("admin_awaiting_root"),
5686
+ literal("admin_ready"),
5687
+ literal("blocked")
5688
+ ]).readonly(),
5689
+ "devices": array(object({
5690
+ "deviceRef": string().readonly(),
5691
+ "status": union([literal("active"), literal("revoked")]).readonly(),
5692
+ "role": union([literal("member"), literal("admin")]).readonly(),
5693
+ "managementReady": boolean().readonly(),
5694
+ "isCurrent": boolean().readonly()
5695
+ })).readonly(),
5696
+ "requests": array(object({
5697
+ "requestRef": string().readonly(),
5698
+ "candidateKeyFingerprint": string().readonly(),
5699
+ "issuedAt": string().readonly(),
5700
+ "expiresAt": string().readonly(),
5701
+ "state": union([
5702
+ literal("pending"),
5703
+ literal("verifying"),
5704
+ literal("sas-ready"),
5705
+ literal("authorized"),
5706
+ literal("cancelled"),
5707
+ literal("rejected"),
5708
+ literal("expired")
5709
+ ]).readonly(),
5710
+ "claimedByCurrentDevice": boolean().readonly(),
5711
+ "canStartVerification": boolean().readonly()
5712
+ })).readonly()
5713
+ }).readonly()
5714
+ })]);
5506
5715
  const _awiki_dsh_plugin_awiki_registerIdentity_parameter_0$schema = object({
5507
5716
  "handle": string().readonly(),
5508
5717
  "phone": string().readonly(),
@@ -5523,7 +5732,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5523
5732
  literal("forbidden"),
5524
5733
  literal("identity-recovery-required"),
5525
5734
  literal("conflict"),
5526
- literal("state-in-use"),
5527
5735
  literal("rate-limited"),
5528
5736
  literal("group-membership-required"),
5529
5737
  literal("group-identity-stale"),
@@ -5541,18 +5749,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5541
5749
  }).readonly()
5542
5750
  }), object({
5543
5751
  "ok": literal(true).readonly(),
5544
- "value": object({
5545
- "handle": intersection(string(), unknown()).readonly(),
5546
- "did": intersection(string(), unknown()).readonly(),
5547
- "displayName": string().readonly().optional(),
5548
- "registeredAt": number().readonly()
5549
- }).readonly()
5752
+ "value": union([object({
5753
+ "status": literal("registered").readonly(),
5754
+ "identity": object({
5755
+ "handle": intersection(string(), unknown()).readonly(),
5756
+ "did": intersection(string(), unknown()).readonly(),
5757
+ "displayName": string().readonly().optional(),
5758
+ "registeredAt": number().readonly()
5759
+ }).readonly()
5760
+ }), object({
5761
+ "status": literal("join-required").readonly(),
5762
+ "fullHandle": intersection(string(), unknown()).readonly(),
5763
+ "mode": union([literal("ordinary"), literal("handle-recovery-rebind")]).readonly(),
5764
+ "requiresUserPresence": boolean().readonly()
5765
+ })]).readonly()
5550
5766
  })]);
5551
- const _awiki_dsh_plugin_awiki_removeGroupMember_parameter_0$schema = object({
5552
- "member": string().readonly(),
5553
- "groupDid": intersection(string(), unknown()).readonly()
5767
+ const _awiki_dsh_plugin_awiki_rejectDeviceJoin_parameter_0$schema = object({
5768
+ "reason": union([literal("user_rejected"), literal("sas_mismatch")]).readonly(),
5769
+ "requestRef": string().readonly()
5554
5770
  });
5555
- const _awiki_dsh_plugin_awiki_removeGroupMember_result$schema = union([object({
5771
+ const _awiki_dsh_plugin_awiki_rejectDeviceJoin_result$schema = union([object({
5556
5772
  "ok": literal(false).readonly(),
5557
5773
  "error": object({
5558
5774
  "code": union([
@@ -5567,7 +5783,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5567
5783
  literal("forbidden"),
5568
5784
  literal("identity-recovery-required"),
5569
5785
  literal("conflict"),
5570
- literal("state-in-use"),
5571
5786
  literal("rate-limited"),
5572
5787
  literal("group-membership-required"),
5573
5788
  literal("group-identity-stale"),
@@ -5586,12 +5801,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5586
5801
  }), object({
5587
5802
  "ok": literal(true).readonly(),
5588
5803
  "value": object({
5589
- "did": intersection(string(), unknown()).readonly(),
5590
- "handle": intersection(string(), unknown()).readonly().optional()
5804
+ "requestRef": string().readonly(),
5805
+ "phase": union([
5806
+ literal("pending"),
5807
+ literal("verifying"),
5808
+ literal("sas-ready"),
5809
+ literal("authorized"),
5810
+ literal("cancelled"),
5811
+ literal("rejected"),
5812
+ literal("expired")
5813
+ ]).readonly(),
5814
+ "expiresAt": string().readonly(),
5815
+ "sas": string().readonly().optional()
5591
5816
  }).readonly()
5592
5817
  })]);
5593
- const _awiki_dsh_plugin_awiki_resolvePeer_parameter_0$schema = object({ "peer": string().readonly() });
5594
- const _awiki_dsh_plugin_awiki_resolvePeer_result$schema = union([object({
5818
+ const _awiki_dsh_plugin_awiki_removeGroupMember_parameter_0$schema = object({
5819
+ "member": string().readonly(),
5820
+ "groupDid": intersection(string(), unknown()).readonly()
5821
+ });
5822
+ const _awiki_dsh_plugin_awiki_removeGroupMember_result$schema = union([object({
5595
5823
  "ok": literal(false).readonly(),
5596
5824
  "error": object({
5597
5825
  "code": union([
@@ -5606,7 +5834,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5606
5834
  literal("forbidden"),
5607
5835
  literal("identity-recovery-required"),
5608
5836
  literal("conflict"),
5609
- literal("state-in-use"),
5610
5837
  literal("rate-limited"),
5611
5838
  literal("group-membership-required"),
5612
5839
  literal("group-identity-stale"),
@@ -5626,12 +5853,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5626
5853
  "ok": literal(true).readonly(),
5627
5854
  "value": object({
5628
5855
  "did": intersection(string(), unknown()).readonly(),
5629
- "handle": intersection(string(), unknown()).readonly().optional(),
5630
- "displayName": string().readonly().optional(),
5631
- "conversationId": intersection(string(), unknown()).readonly()
5856
+ "handle": intersection(string(), unknown()).readonly().optional()
5632
5857
  }).readonly()
5633
5858
  })]);
5634
- const _awiki_dsh_plugin_awiki_resumeGroupRebindRecovery_result$schema = union([object({
5859
+ const _awiki_dsh_plugin_awiki_resolvePeer_parameter_0$schema = object({ "peer": string().readonly() });
5860
+ const _awiki_dsh_plugin_awiki_resolvePeer_result$schema = union([object({
5635
5861
  "ok": literal(false).readonly(),
5636
5862
  "error": object({
5637
5863
  "code": union([
@@ -5646,7 +5872,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5646
5872
  literal("forbidden"),
5647
5873
  literal("identity-recovery-required"),
5648
5874
  literal("conflict"),
5649
- literal("state-in-use"),
5650
5875
  literal("rate-limited"),
5651
5876
  literal("group-membership-required"),
5652
5877
  literal("group-identity-stale"),
@@ -5665,14 +5890,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5665
5890
  }), object({
5666
5891
  "ok": literal(true).readonly(),
5667
5892
  "value": object({
5668
- "processed": number().readonly(),
5669
- "completed": number().readonly(),
5670
- "pending": number().readonly(),
5671
- "blocked": number().readonly(),
5672
- "items": array(object({
5673
- "groupDid": intersection(string(), unknown()).readonly(),
5674
- "status": union([literal("pending"), literal("blocked")]).readonly()
5675
- })).readonly()
5893
+ "did": intersection(string(), unknown()).readonly(),
5894
+ "handle": intersection(string(), unknown()).readonly().optional(),
5895
+ "displayName": string().readonly().optional(),
5896
+ "conversationId": intersection(string(), unknown()).readonly()
5676
5897
  }).readonly()
5677
5898
  })]);
5678
5899
  const _awiki_dsh_plugin_awiki_resumeRecovery_parameter_0$schema = object({ "operationId": string().readonly() });
@@ -5691,7 +5912,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5691
5912
  literal("forbidden"),
5692
5913
  literal("identity-recovery-required"),
5693
5914
  literal("conflict"),
5694
- literal("state-in-use"),
5695
5915
  literal("rate-limited"),
5696
5916
  literal("group-membership-required"),
5697
5917
  literal("group-identity-stale"),
@@ -5726,9 +5946,79 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5726
5946
  "failureCode": string().readonly().optional(),
5727
5947
  "retryable": boolean().readonly(),
5728
5948
  "localOrdinaryDataWillMigrate": boolean().readonly(),
5729
- "otherDevicesMustRejoin": boolean().readonly(),
5730
- "unsupportedE2eeGroupCount": number().readonly(),
5731
- "unsupportedDidOnlyGroupCount": number().readonly()
5949
+ "otherDevicesMustRejoin": boolean().readonly()
5950
+ }).readonly()
5951
+ })]);
5952
+ const _awiki_dsh_plugin_awiki_revokeDevice_parameter_0$schema = object({
5953
+ "deviceRef": string().readonly(),
5954
+ "confirmation": string().readonly()
5955
+ });
5956
+ const _awiki_dsh_plugin_awiki_revokeDevice_result$schema = union([object({
5957
+ "ok": literal(false).readonly(),
5958
+ "error": object({
5959
+ "code": union([
5960
+ literal("not-registered"),
5961
+ literal("signed-out"),
5962
+ literal("already-registered"),
5963
+ literal("invalid-request"),
5964
+ literal("invalid-otp"),
5965
+ literal("challenge-expired"),
5966
+ literal("handle-unavailable"),
5967
+ literal("not-found"),
5968
+ literal("forbidden"),
5969
+ literal("identity-recovery-required"),
5970
+ literal("conflict"),
5971
+ literal("rate-limited"),
5972
+ literal("group-membership-required"),
5973
+ literal("group-identity-stale"),
5974
+ literal("attachment-too-large"),
5975
+ literal("summary-unavailable"),
5976
+ literal("summary-timeout"),
5977
+ literal("summary-cancelled"),
5978
+ literal("summary-invalid-output"),
5979
+ literal("summary-failed"),
5980
+ literal("delivery-unknown"),
5981
+ literal("network"),
5982
+ literal("remote")
5983
+ ]).readonly(),
5984
+ "message": string().readonly()
5985
+ }).readonly()
5986
+ }), object({
5987
+ "ok": literal(true).readonly(),
5988
+ "value": object({
5989
+ "canManage": boolean().readonly(),
5990
+ "role": union([literal("member"), literal("admin")]).readonly().optional(),
5991
+ "readiness": union([
5992
+ literal("legacy"),
5993
+ literal("member_ready"),
5994
+ literal("admin_awaiting_root"),
5995
+ literal("admin_ready"),
5996
+ literal("blocked")
5997
+ ]).readonly(),
5998
+ "devices": array(object({
5999
+ "deviceRef": string().readonly(),
6000
+ "status": union([literal("active"), literal("revoked")]).readonly(),
6001
+ "role": union([literal("member"), literal("admin")]).readonly(),
6002
+ "managementReady": boolean().readonly(),
6003
+ "isCurrent": boolean().readonly()
6004
+ })).readonly(),
6005
+ "requests": array(object({
6006
+ "requestRef": string().readonly(),
6007
+ "candidateKeyFingerprint": string().readonly(),
6008
+ "issuedAt": string().readonly(),
6009
+ "expiresAt": string().readonly(),
6010
+ "state": union([
6011
+ literal("pending"),
6012
+ literal("verifying"),
6013
+ literal("sas-ready"),
6014
+ literal("authorized"),
6015
+ literal("cancelled"),
6016
+ literal("rejected"),
6017
+ literal("expired")
6018
+ ]).readonly(),
6019
+ "claimedByCurrentDevice": boolean().readonly(),
6020
+ "canStartVerification": boolean().readonly()
6021
+ })).readonly()
5732
6022
  }).readonly()
5733
6023
  })]);
5734
6024
  const _awiki_dsh_plugin_awiki_sendAttachment_parameter_0$schema = object({
@@ -5760,7 +6050,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5760
6050
  literal("forbidden"),
5761
6051
  literal("identity-recovery-required"),
5762
6052
  literal("conflict"),
5763
- literal("state-in-use"),
5764
6053
  literal("rate-limited"),
5765
6054
  literal("group-membership-required"),
5766
6055
  literal("group-identity-stale"),
@@ -5831,7 +6120,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5831
6120
  literal("forbidden"),
5832
6121
  literal("identity-recovery-required"),
5833
6122
  literal("conflict"),
5834
- literal("state-in-use"),
5835
6123
  literal("rate-limited"),
5836
6124
  literal("group-membership-required"),
5837
6125
  literal("group-identity-stale"),
@@ -5874,7 +6162,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5874
6162
  literal("forbidden"),
5875
6163
  literal("identity-recovery-required"),
5876
6164
  literal("conflict"),
5877
- literal("state-in-use"),
5878
6165
  literal("rate-limited"),
5879
6166
  literal("group-membership-required"),
5880
6167
  literal("group-identity-stale"),
@@ -5918,7 +6205,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5918
6205
  literal("forbidden"),
5919
6206
  literal("identity-recovery-required"),
5920
6207
  literal("conflict"),
5921
- literal("state-in-use"),
5922
6208
  literal("rate-limited"),
5923
6209
  literal("group-membership-required"),
5924
6210
  literal("group-identity-stale"),
@@ -5974,7 +6260,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5974
6260
  literal("forbidden"),
5975
6261
  literal("identity-recovery-required"),
5976
6262
  literal("conflict"),
5977
- literal("state-in-use"),
5978
6263
  literal("rate-limited"),
5979
6264
  literal("group-membership-required"),
5980
6265
  literal("group-identity-stale"),
@@ -6024,6 +6309,54 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6024
6309
  })]).readonly()
6025
6310
  }).readonly()
6026
6311
  })]);
6312
+ const _awiki_dsh_plugin_awiki_startDeviceJoinVerification_parameter_0$schema = object({ "requestRef": string().readonly() });
6313
+ const _awiki_dsh_plugin_awiki_startDeviceJoinVerification_result$schema = union([object({
6314
+ "ok": literal(false).readonly(),
6315
+ "error": object({
6316
+ "code": union([
6317
+ literal("not-registered"),
6318
+ literal("signed-out"),
6319
+ literal("already-registered"),
6320
+ literal("invalid-request"),
6321
+ literal("invalid-otp"),
6322
+ literal("challenge-expired"),
6323
+ literal("handle-unavailable"),
6324
+ literal("not-found"),
6325
+ literal("forbidden"),
6326
+ literal("identity-recovery-required"),
6327
+ literal("conflict"),
6328
+ literal("rate-limited"),
6329
+ literal("group-membership-required"),
6330
+ literal("group-identity-stale"),
6331
+ literal("attachment-too-large"),
6332
+ literal("summary-unavailable"),
6333
+ literal("summary-timeout"),
6334
+ literal("summary-cancelled"),
6335
+ literal("summary-invalid-output"),
6336
+ literal("summary-failed"),
6337
+ literal("delivery-unknown"),
6338
+ literal("network"),
6339
+ literal("remote")
6340
+ ]).readonly(),
6341
+ "message": string().readonly()
6342
+ }).readonly()
6343
+ }), object({
6344
+ "ok": literal(true).readonly(),
6345
+ "value": object({
6346
+ "requestRef": string().readonly(),
6347
+ "phase": union([
6348
+ literal("pending"),
6349
+ literal("verifying"),
6350
+ literal("sas-ready"),
6351
+ literal("authorized"),
6352
+ literal("cancelled"),
6353
+ literal("rejected"),
6354
+ literal("expired")
6355
+ ]).readonly(),
6356
+ "expiresAt": string().readonly(),
6357
+ "sas": string().readonly().optional()
6358
+ }).readonly()
6359
+ })]);
6027
6360
  const _awiki_dsh_plugin_awiki_summarizeConversation_parameter_0$schema = object({
6028
6361
  "conversationId": intersection(string(), unknown()).readonly(),
6029
6362
  "unreadCountAtOpen": number().readonly().optional()
@@ -6043,7 +6376,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6043
6376
  literal("forbidden"),
6044
6377
  literal("identity-recovery-required"),
6045
6378
  literal("conflict"),
6046
- literal("state-in-use"),
6047
6379
  literal("rate-limited"),
6048
6380
  literal("group-membership-required"),
6049
6381
  literal("group-identity-stale"),
@@ -6079,38 +6411,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6079
6411
  })).readonly()
6080
6412
  }).readonly()
6081
6413
  })]);
6082
- const _awiki_dsh_plugin_awiki_updateConversationPreference_parameter_0$schema = union([
6083
- object({
6084
- "action": literal("hide").readonly(),
6085
- "conversation": union([object({
6086
- "kind": literal("group").readonly(),
6087
- "id": intersection(string(), unknown()).readonly(),
6088
- "groupDid": intersection(string(), unknown()).readonly(),
6089
- "title": string().readonly(),
6090
- "unreadCount": number().readonly().optional(),
6091
- "lastMessageAt": number().readonly().optional(),
6092
- "lastMessagePreview": string().readonly().optional()
6093
- }), object({
6094
- "kind": literal("direct").readonly(),
6095
- "id": intersection(string(), unknown()).readonly(),
6096
- "peerDid": intersection(string(), unknown()).readonly(),
6097
- "peerHandle": intersection(string(), unknown()).readonly().optional(),
6098
- "displayName": string().readonly().optional(),
6099
- "title": string().readonly(),
6100
- "unreadCount": number().readonly().optional(),
6101
- "lastMessageAt": number().readonly().optional(),
6102
- "lastMessagePreview": string().readonly().optional()
6103
- })]).readonly()
6104
- }),
6105
- object({
6106
- "action": literal("restore").readonly(),
6107
- "conversationId": intersection(string(), unknown()).readonly()
6108
- }),
6109
- object({
6110
- "action": literal("dismiss-group-recovery").readonly(),
6111
- "signature": string().readonly()
6112
- })
6113
- ]);
6414
+ const _awiki_dsh_plugin_awiki_updateConversationPreference_parameter_0$schema = union([object({
6415
+ "action": literal("hide").readonly(),
6416
+ "conversation": union([object({
6417
+ "kind": literal("group").readonly(),
6418
+ "id": intersection(string(), unknown()).readonly(),
6419
+ "groupDid": intersection(string(), unknown()).readonly(),
6420
+ "title": string().readonly(),
6421
+ "unreadCount": number().readonly().optional(),
6422
+ "lastMessageAt": number().readonly().optional(),
6423
+ "lastMessagePreview": string().readonly().optional()
6424
+ }), object({
6425
+ "kind": literal("direct").readonly(),
6426
+ "id": intersection(string(), unknown()).readonly(),
6427
+ "peerDid": intersection(string(), unknown()).readonly(),
6428
+ "peerHandle": intersection(string(), unknown()).readonly().optional(),
6429
+ "displayName": string().readonly().optional(),
6430
+ "title": string().readonly(),
6431
+ "unreadCount": number().readonly().optional(),
6432
+ "lastMessageAt": number().readonly().optional(),
6433
+ "lastMessagePreview": string().readonly().optional()
6434
+ })]).readonly()
6435
+ }), object({
6436
+ "action": literal("restore").readonly(),
6437
+ "conversationId": intersection(string(), unknown()).readonly()
6438
+ })]);
6114
6439
  const _awiki_dsh_plugin_awiki_updateConversationPreference_result$schema = union([object({
6115
6440
  "ok": literal(false).readonly(),
6116
6441
  "error": object({
@@ -6126,7 +6451,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6126
6451
  literal("forbidden"),
6127
6452
  literal("identity-recovery-required"),
6128
6453
  literal("conflict"),
6129
- literal("state-in-use"),
6130
6454
  literal("rate-limited"),
6131
6455
  literal("group-membership-required"),
6132
6456
  literal("group-identity-stale"),
@@ -6144,31 +6468,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6144
6468
  }).readonly()
6145
6469
  }), object({
6146
6470
  "ok": literal(true).readonly(),
6147
- "value": object({
6148
- "hiddenConversations": array(object({
6149
- "conversation": union([object({
6150
- "kind": literal("group").readonly(),
6151
- "id": intersection(string(), unknown()).readonly(),
6152
- "groupDid": intersection(string(), unknown()).readonly(),
6153
- "title": string().readonly(),
6154
- "unreadCount": number().readonly().optional(),
6155
- "lastMessageAt": number().readonly().optional(),
6156
- "lastMessagePreview": string().readonly().optional()
6157
- }), object({
6158
- "kind": literal("direct").readonly(),
6159
- "id": intersection(string(), unknown()).readonly(),
6160
- "peerDid": intersection(string(), unknown()).readonly(),
6161
- "peerHandle": intersection(string(), unknown()).readonly().optional(),
6162
- "displayName": string().readonly().optional(),
6163
- "title": string().readonly(),
6164
- "unreadCount": number().readonly().optional(),
6165
- "lastMessageAt": number().readonly().optional(),
6166
- "lastMessagePreview": string().readonly().optional()
6167
- })]).readonly(),
6168
- "hiddenAt": number().readonly()
6169
- })).readonly(),
6170
- "dismissedGroupRecoverySignature": string().readonly().optional()
6171
- }).readonly()
6471
+ "value": object({ "hiddenConversations": array(object({
6472
+ "conversation": union([object({
6473
+ "kind": literal("group").readonly(),
6474
+ "id": intersection(string(), unknown()).readonly(),
6475
+ "groupDid": intersection(string(), unknown()).readonly(),
6476
+ "title": string().readonly(),
6477
+ "unreadCount": number().readonly().optional(),
6478
+ "lastMessageAt": number().readonly().optional(),
6479
+ "lastMessagePreview": string().readonly().optional()
6480
+ }), object({
6481
+ "kind": literal("direct").readonly(),
6482
+ "id": intersection(string(), unknown()).readonly(),
6483
+ "peerDid": intersection(string(), unknown()).readonly(),
6484
+ "peerHandle": intersection(string(), unknown()).readonly().optional(),
6485
+ "displayName": string().readonly().optional(),
6486
+ "title": string().readonly(),
6487
+ "unreadCount": number().readonly().optional(),
6488
+ "lastMessageAt": number().readonly().optional(),
6489
+ "lastMessagePreview": string().readonly().optional()
6490
+ })]).readonly(),
6491
+ "hiddenAt": number().readonly()
6492
+ })).readonly() }).readonly()
6172
6493
  })]);
6173
6494
  const _awiki_dsh_plugin_awiki_updateDisplayName_parameter_0$schema = object({ "displayName": string().readonly() });
6174
6495
  const _awiki_dsh_plugin_awiki_updateDisplayName_result$schema = union([object({
@@ -6186,7 +6507,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6186
6507
  literal("forbidden"),
6187
6508
  literal("identity-recovery-required"),
6188
6509
  literal("conflict"),
6189
- literal("state-in-use"),
6190
6510
  literal("rate-limited"),
6191
6511
  literal("group-membership-required"),
6192
6512
  literal("group-identity-stale"),
@@ -6231,7 +6551,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6231
6551
  literal("forbidden"),
6232
6552
  literal("identity-recovery-required"),
6233
6553
  literal("conflict"),
6234
- literal("state-in-use"),
6235
6554
  literal("rate-limited"),
6236
6555
  literal("group-membership-required"),
6237
6556
  literal("group-identity-stale"),
@@ -6262,57 +6581,120 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6262
6581
  package: "@awiki/dsh-plugin",
6263
6582
  descriptors: [
6264
6583
  {
6265
- id: "@awiki/dsh-plugin#awiki/activateRecovery",
6584
+ id: "@awiki/dsh-plugin#awiki/activateRecovery",
6585
+ service: "awiki",
6586
+ namespace: "awiki",
6587
+ method: "activateRecovery",
6588
+ invocation: { kind: "direct" },
6589
+ parameters: [{
6590
+ name: "request",
6591
+ wire: "request",
6592
+ source: "json",
6593
+ codec: {
6594
+ mode: "strict",
6595
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiRecoveryOperationRequest",
6596
+ schema: _awiki_dsh_plugin_awiki_activateRecovery_parameter_0$schema
6597
+ }
6598
+ }],
6599
+ result: {
6600
+ mode: "strict",
6601
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6602
+ schema: _awiki_dsh_plugin_awiki_activateRecovery_result$schema
6603
+ },
6604
+ sourceLocation: {
6605
+ "file": "packages/dsh-awiki/src/index.ts",
6606
+ "line": 158,
6607
+ "column": 9
6608
+ }
6609
+ },
6610
+ {
6611
+ id: "@awiki/dsh-plugin#awiki/addGroupMember",
6612
+ service: "awiki",
6613
+ namespace: "awiki",
6614
+ method: "addGroupMember",
6615
+ invocation: { kind: "direct" },
6616
+ parameters: [{
6617
+ name: "request",
6618
+ wire: "request",
6619
+ source: "json",
6620
+ codec: {
6621
+ mode: "strict",
6622
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiAddGroupMemberRequest",
6623
+ schema: _awiki_dsh_plugin_awiki_addGroupMember_parameter_0$schema
6624
+ }
6625
+ }],
6626
+ result: {
6627
+ mode: "strict",
6628
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6629
+ schema: _awiki_dsh_plugin_awiki_addGroupMember_result$schema
6630
+ },
6631
+ sourceLocation: {
6632
+ "file": "packages/dsh-awiki/src/index.ts",
6633
+ "line": 188,
6634
+ "column": 3
6635
+ }
6636
+ },
6637
+ {
6638
+ id: "@awiki/dsh-plugin#awiki/approveDeviceJoin",
6639
+ service: "awiki",
6640
+ namespace: "awiki",
6641
+ method: "approveDeviceJoin",
6642
+ invocation: { kind: "direct" },
6643
+ parameters: [{
6644
+ name: "request",
6645
+ wire: "request",
6646
+ source: "json",
6647
+ codec: {
6648
+ mode: "strict",
6649
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiApproveDeviceJoinRequest",
6650
+ schema: _awiki_dsh_plugin_awiki_approveDeviceJoin_parameter_0$schema
6651
+ }
6652
+ }],
6653
+ result: {
6654
+ mode: "strict",
6655
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6656
+ schema: _awiki_dsh_plugin_awiki_approveDeviceJoin_result$schema
6657
+ },
6658
+ sourceLocation: {
6659
+ "file": "packages/dsh-awiki/src/index.ts",
6660
+ "line": 128,
6661
+ "column": 9
6662
+ }
6663
+ },
6664
+ {
6665
+ id: "@awiki/dsh-plugin#awiki/beginDeviceJoin",
6266
6666
  service: "awiki",
6267
6667
  namespace: "awiki",
6268
- method: "activateRecovery",
6668
+ method: "beginDeviceJoin",
6269
6669
  invocation: { kind: "direct" },
6270
- parameters: [{
6271
- name: "request",
6272
- wire: "request",
6273
- source: "json",
6274
- codec: {
6275
- mode: "strict",
6276
- typeSymbol: "@awiki/dsh-plugin/types#AwikiRecoveryOperationRequest",
6277
- schema: _awiki_dsh_plugin_awiki_activateRecovery_parameter_0$schema
6278
- }
6279
- }],
6670
+ parameters: [],
6280
6671
  result: {
6281
6672
  mode: "strict",
6282
6673
  typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6283
- schema: _awiki_dsh_plugin_awiki_activateRecovery_result$schema
6674
+ schema: _awiki_dsh_plugin_awiki_beginDeviceJoin_result$schema
6284
6675
  },
6285
6676
  sourceLocation: {
6286
6677
  "file": "packages/dsh-awiki/src/index.ts",
6287
- "line": 117,
6678
+ "line": 111,
6288
6679
  "column": 9
6289
6680
  }
6290
6681
  },
6291
6682
  {
6292
- id: "@awiki/dsh-plugin#awiki/addGroupMember",
6683
+ id: "@awiki/dsh-plugin#awiki/cancelDeviceJoin",
6293
6684
  service: "awiki",
6294
6685
  namespace: "awiki",
6295
- method: "addGroupMember",
6686
+ method: "cancelDeviceJoin",
6296
6687
  invocation: { kind: "direct" },
6297
- parameters: [{
6298
- name: "request",
6299
- wire: "request",
6300
- source: "json",
6301
- codec: {
6302
- mode: "strict",
6303
- typeSymbol: "@awiki/dsh-plugin/types#AwikiAddGroupMemberRequest",
6304
- schema: _awiki_dsh_plugin_awiki_addGroupMember_parameter_0$schema
6305
- }
6306
- }],
6688
+ parameters: [],
6307
6689
  result: {
6308
6690
  mode: "strict",
6309
6691
  typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6310
- schema: _awiki_dsh_plugin_awiki_addGroupMember_result$schema
6692
+ schema: _awiki_dsh_plugin_awiki_cancelDeviceJoin_result$schema
6311
6693
  },
6312
6694
  sourceLocation: {
6313
6695
  "file": "packages/dsh-awiki/src/index.ts",
6314
- "line": 147,
6315
- "column": 3
6696
+ "line": 117,
6697
+ "column": 9
6316
6698
  }
6317
6699
  },
6318
6700
  {
@@ -6338,7 +6720,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6338
6720
  },
6339
6721
  sourceLocation: {
6340
6722
  "file": "packages/dsh-awiki/src/index.ts",
6341
- "line": 205,
6723
+ "line": 243,
6342
6724
  "column": 3
6343
6725
  }
6344
6726
  },
@@ -6365,7 +6747,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6365
6747
  },
6366
6748
  sourceLocation: {
6367
6749
  "file": "packages/dsh-awiki/src/index.ts",
6368
- "line": 132,
6750
+ "line": 173,
6369
6751
  "column": 9
6370
6752
  }
6371
6753
  },
@@ -6392,7 +6774,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6392
6774
  },
6393
6775
  sourceLocation: {
6394
6776
  "file": "packages/dsh-awiki/src/index.ts",
6395
- "line": 126,
6777
+ "line": 167,
6396
6778
  "column": 9
6397
6779
  }
6398
6780
  },
@@ -6419,7 +6801,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6419
6801
  },
6420
6802
  sourceLocation: {
6421
6803
  "file": "packages/dsh-awiki/src/index.ts",
6422
- "line": 187,
6804
+ "line": 225,
6423
6805
  "column": 9
6424
6806
  }
6425
6807
  },
@@ -6437,8 +6819,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6437
6819
  },
6438
6820
  sourceLocation: {
6439
6821
  "file": "packages/dsh-awiki/src/index.ts",
6440
- "line": 76,
6441
- "column": 3
6822
+ "line": 85,
6823
+ "column": 9
6442
6824
  }
6443
6825
  },
6444
6826
  {
@@ -6455,10 +6837,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6455
6837
  },
6456
6838
  sourceLocation: {
6457
6839
  "file": "packages/dsh-awiki/src/index.ts",
6458
- "line": 156,
6840
+ "line": 194,
6459
6841
  "column": 3
6460
6842
  }
6461
6843
  },
6844
+ {
6845
+ id: "@awiki/dsh-plugin#awiki/getDeviceJoinStatus",
6846
+ service: "awiki",
6847
+ namespace: "awiki",
6848
+ method: "getDeviceJoinStatus",
6849
+ invocation: { kind: "direct" },
6850
+ parameters: [],
6851
+ result: {
6852
+ mode: "strict",
6853
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
6854
+ schema: _awiki_dsh_plugin_awiki_getDeviceJoinStatus_result$schema
6855
+ },
6856
+ sourceLocation: {
6857
+ "file": "packages/dsh-awiki/src/index.ts",
6858
+ "line": 114,
6859
+ "column": 9
6860
+ }
6861
+ },
6462
6862
  {
6463
6863
  id: "@awiki/dsh-plugin#awiki/getGroup",
6464
6864
  service: "awiki",
@@ -6482,7 +6882,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6482
6882
  },
6483
6883
  sourceLocation: {
6484
6884
  "file": "packages/dsh-awiki/src/index.ts",
6485
- "line": 135,
6885
+ "line": 176,
6486
6886
  "column": 3
6487
6887
  }
6488
6888
  },
@@ -6509,7 +6909,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6509
6909
  },
6510
6910
  sourceLocation: {
6511
6911
  "file": "packages/dsh-awiki/src/index.ts",
6512
- "line": 167,
6912
+ "line": 205,
6513
6913
  "column": 3
6514
6914
  }
6515
6915
  },
@@ -6527,7 +6927,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6527
6927
  },
6528
6928
  sourceLocation: {
6529
6929
  "file": "packages/dsh-awiki/src/index.ts",
6530
- "line": 79,
6930
+ "line": 88,
6531
6931
  "column": 9
6532
6932
  }
6533
6933
  },
@@ -6554,7 +6954,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6554
6954
  },
6555
6955
  sourceLocation: {
6556
6956
  "file": "packages/dsh-awiki/src/index.ts",
6557
- "line": 170,
6957
+ "line": 208,
6558
6958
  "column": 3
6559
6959
  }
6560
6960
  },
@@ -6572,7 +6972,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6572
6972
  },
6573
6973
  sourceLocation: {
6574
6974
  "file": "packages/dsh-awiki/src/index.ts",
6575
- "line": 190,
6975
+ "line": 228,
6576
6976
  "column": 3
6577
6977
  }
6578
6978
  },
@@ -6590,7 +6990,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6590
6990
  },
6591
6991
  sourceLocation: {
6592
6992
  "file": "packages/dsh-awiki/src/index.ts",
6593
- "line": 105,
6993
+ "line": 146,
6594
6994
  "column": 3
6595
6995
  }
6596
6996
  },
@@ -6617,7 +7017,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6617
7017
  },
6618
7018
  sourceLocation: {
6619
7019
  "file": "packages/dsh-awiki/src/index.ts",
6620
- "line": 120,
7020
+ "line": 161,
6621
7021
  "column": 9
6622
7022
  }
6623
7023
  },
@@ -6635,7 +7035,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6635
7035
  },
6636
7036
  sourceLocation: {
6637
7037
  "file": "packages/dsh-awiki/src/index.ts",
6638
- "line": 82,
7038
+ "line": 91,
6639
7039
  "column": 9
6640
7040
  }
6641
7041
  },
@@ -6662,7 +7062,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6662
7062
  },
6663
7063
  sourceLocation: {
6664
7064
  "file": "packages/dsh-awiki/src/index.ts",
6665
- "line": 91,
7065
+ "line": 100,
6666
7066
  "column": 9
6667
7067
  }
6668
7068
  },
@@ -6689,7 +7089,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6689
7089
  },
6690
7090
  sourceLocation: {
6691
7091
  "file": "packages/dsh-awiki/src/index.ts",
6692
- "line": 138,
7092
+ "line": 179,
6693
7093
  "column": 3
6694
7094
  }
6695
7095
  },
@@ -6716,7 +7116,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6716
7116
  },
6717
7117
  sourceLocation: {
6718
7118
  "file": "packages/dsh-awiki/src/index.ts",
6719
- "line": 141,
7119
+ "line": 182,
6720
7120
  "column": 9
6721
7121
  }
6722
7122
  },
@@ -6744,7 +7144,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6744
7144
  },
6745
7145
  sourceLocation: {
6746
7146
  "file": "packages/dsh-awiki/src/index.ts",
6747
- "line": 164,
7147
+ "line": 202,
6748
7148
  "column": 3
6749
7149
  }
6750
7150
  },
@@ -6771,7 +7171,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6771
7171
  },
6772
7172
  sourceLocation: {
6773
7173
  "file": "packages/dsh-awiki/src/index.ts",
6774
- "line": 144,
7174
+ "line": 185,
6775
7175
  "column": 3
6776
7176
  }
6777
7177
  },
@@ -6799,7 +7199,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6799
7199
  },
6800
7200
  sourceLocation: {
6801
7201
  "file": "packages/dsh-awiki/src/index.ts",
6802
- "line": 193,
7202
+ "line": 231,
6803
7203
  "column": 9
6804
7204
  }
6805
7205
  },
@@ -6817,7 +7217,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6817
7217
  },
6818
7218
  sourceLocation: {
6819
7219
  "file": "packages/dsh-awiki/src/index.ts",
6820
- "line": 88,
7220
+ "line": 97,
6821
7221
  "column": 3
6822
7222
  }
6823
7223
  },
@@ -6844,7 +7244,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6844
7244
  },
6845
7245
  sourceLocation: {
6846
7246
  "file": "packages/dsh-awiki/src/index.ts",
6847
- "line": 85,
7247
+ "line": 94,
6848
7248
  "column": 3
6849
7249
  }
6850
7250
  },
@@ -6871,7 +7271,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6871
7271
  },
6872
7272
  sourceLocation: {
6873
7273
  "file": "packages/dsh-awiki/src/index.ts",
6874
- "line": 178,
7274
+ "line": 216,
6875
7275
  "column": 3
6876
7276
  }
6877
7277
  },
@@ -6898,7 +7298,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6898
7298
  },
6899
7299
  sourceLocation: {
6900
7300
  "file": "packages/dsh-awiki/src/index.ts",
6901
- "line": 199,
7301
+ "line": 237,
6902
7302
  "column": 3
6903
7303
  }
6904
7304
  },
@@ -6925,7 +7325,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6925
7325
  },
6926
7326
  sourceLocation: {
6927
7327
  "file": "packages/dsh-awiki/src/index.ts",
6928
- "line": 114,
7328
+ "line": 155,
6929
7329
  "column": 3
6930
7330
  }
6931
7331
  },
@@ -6952,10 +7352,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6952
7352
  },
6953
7353
  sourceLocation: {
6954
7354
  "file": "packages/dsh-awiki/src/index.ts",
6955
- "line": 196,
7355
+ "line": 234,
6956
7356
  "column": 9
6957
7357
  }
6958
7358
  },
7359
+ {
7360
+ id: "@awiki/dsh-plugin#awiki/refreshDeviceManagement",
7361
+ service: "awiki",
7362
+ namespace: "awiki",
7363
+ method: "refreshDeviceManagement",
7364
+ invocation: { kind: "direct" },
7365
+ parameters: [],
7366
+ result: {
7367
+ mode: "strict",
7368
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
7369
+ schema: _awiki_dsh_plugin_awiki_refreshDeviceManagement_result$schema
7370
+ },
7371
+ sourceLocation: {
7372
+ "file": "packages/dsh-awiki/src/index.ts",
7373
+ "line": 120,
7374
+ "column": 3
7375
+ }
7376
+ },
6959
7377
  {
6960
7378
  id: "@awiki/dsh-plugin#awiki/registerIdentity",
6961
7379
  service: "awiki",
@@ -6979,7 +7397,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6979
7397
  },
6980
7398
  sourceLocation: {
6981
7399
  "file": "packages/dsh-awiki/src/index.ts",
6982
- "line": 99,
7400
+ "line": 108,
7401
+ "column": 9
7402
+ }
7403
+ },
7404
+ {
7405
+ id: "@awiki/dsh-plugin#awiki/rejectDeviceJoin",
7406
+ service: "awiki",
7407
+ namespace: "awiki",
7408
+ method: "rejectDeviceJoin",
7409
+ invocation: { kind: "direct" },
7410
+ parameters: [{
7411
+ name: "request",
7412
+ wire: "request",
7413
+ source: "json",
7414
+ codec: {
7415
+ mode: "strict",
7416
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiRejectDeviceJoinRequest",
7417
+ schema: _awiki_dsh_plugin_awiki_rejectDeviceJoin_parameter_0$schema
7418
+ }
7419
+ }],
7420
+ result: {
7421
+ mode: "strict",
7422
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
7423
+ schema: _awiki_dsh_plugin_awiki_rejectDeviceJoin_result$schema
7424
+ },
7425
+ sourceLocation: {
7426
+ "file": "packages/dsh-awiki/src/index.ts",
7427
+ "line": 133,
6983
7428
  "column": 9
6984
7429
  }
6985
7430
  },
@@ -7006,7 +7451,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7006
7451
  },
7007
7452
  sourceLocation: {
7008
7453
  "file": "packages/dsh-awiki/src/index.ts",
7009
- "line": 150,
7454
+ "line": 191,
7010
7455
  "column": 3
7011
7456
  }
7012
7457
  },
@@ -7033,33 +7478,42 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7033
7478
  },
7034
7479
  sourceLocation: {
7035
7480
  "file": "packages/dsh-awiki/src/index.ts",
7036
- "line": 129,
7481
+ "line": 170,
7037
7482
  "column": 3
7038
7483
  }
7039
7484
  },
7040
7485
  {
7041
- id: "@awiki/dsh-plugin#awiki/resumeGroupRebindRecovery",
7486
+ id: "@awiki/dsh-plugin#awiki/resumeRecovery",
7042
7487
  service: "awiki",
7043
7488
  namespace: "awiki",
7044
- method: "resumeGroupRebindRecovery",
7489
+ method: "resumeRecovery",
7045
7490
  invocation: { kind: "direct" },
7046
- parameters: [],
7491
+ parameters: [{
7492
+ name: "request",
7493
+ wire: "request",
7494
+ source: "json",
7495
+ codec: {
7496
+ mode: "strict",
7497
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiRecoveryOperationRequest",
7498
+ schema: _awiki_dsh_plugin_awiki_resumeRecovery_parameter_0$schema
7499
+ }
7500
+ }],
7047
7501
  result: {
7048
7502
  mode: "strict",
7049
7503
  typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
7050
- schema: _awiki_dsh_plugin_awiki_resumeGroupRebindRecovery_result$schema
7504
+ schema: _awiki_dsh_plugin_awiki_resumeRecovery_result$schema
7051
7505
  },
7052
7506
  sourceLocation: {
7053
7507
  "file": "packages/dsh-awiki/src/index.ts",
7054
- "line": 153,
7508
+ "line": 164,
7055
7509
  "column": 9
7056
7510
  }
7057
7511
  },
7058
7512
  {
7059
- id: "@awiki/dsh-plugin#awiki/resumeRecovery",
7513
+ id: "@awiki/dsh-plugin#awiki/revokeDevice",
7060
7514
  service: "awiki",
7061
7515
  namespace: "awiki",
7062
- method: "resumeRecovery",
7516
+ method: "revokeDevice",
7063
7517
  invocation: { kind: "direct" },
7064
7518
  parameters: [{
7065
7519
  name: "request",
@@ -7067,18 +7521,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7067
7521
  source: "json",
7068
7522
  codec: {
7069
7523
  mode: "strict",
7070
- typeSymbol: "@awiki/dsh-plugin/types#AwikiRecoveryOperationRequest",
7071
- schema: _awiki_dsh_plugin_awiki_resumeRecovery_parameter_0$schema
7524
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiRevokeDeviceRequest",
7525
+ schema: _awiki_dsh_plugin_awiki_revokeDevice_parameter_0$schema
7072
7526
  }
7073
7527
  }],
7074
7528
  result: {
7075
7529
  mode: "strict",
7076
7530
  typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
7077
- schema: _awiki_dsh_plugin_awiki_resumeRecovery_result$schema
7531
+ schema: _awiki_dsh_plugin_awiki_revokeDevice_result$schema
7078
7532
  },
7079
7533
  sourceLocation: {
7080
7534
  "file": "packages/dsh-awiki/src/index.ts",
7081
- "line": 123,
7535
+ "line": 138,
7082
7536
  "column": 9
7083
7537
  }
7084
7538
  },
@@ -7105,7 +7559,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7105
7559
  },
7106
7560
  sourceLocation: {
7107
7561
  "file": "packages/dsh-awiki/src/index.ts",
7108
- "line": 184,
7562
+ "line": 222,
7109
7563
  "column": 9
7110
7564
  }
7111
7565
  },
@@ -7132,7 +7586,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7132
7586
  },
7133
7587
  sourceLocation: {
7134
7588
  "file": "packages/dsh-awiki/src/index.ts",
7135
- "line": 202,
7589
+ "line": 240,
7136
7590
  "column": 9
7137
7591
  }
7138
7592
  },
@@ -7159,7 +7613,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7159
7613
  },
7160
7614
  sourceLocation: {
7161
7615
  "file": "packages/dsh-awiki/src/index.ts",
7162
- "line": 111,
7616
+ "line": 152,
7163
7617
  "column": 3
7164
7618
  }
7165
7619
  },
@@ -7186,8 +7640,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7186
7640
  },
7187
7641
  sourceLocation: {
7188
7642
  "file": "packages/dsh-awiki/src/index.ts",
7189
- "line": 96,
7190
- "column": 3
7643
+ "line": 105,
7644
+ "column": 9
7191
7645
  }
7192
7646
  },
7193
7647
  {
@@ -7213,10 +7667,37 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7213
7667
  },
7214
7668
  sourceLocation: {
7215
7669
  "file": "packages/dsh-awiki/src/index.ts",
7216
- "line": 181,
7670
+ "line": 219,
7217
7671
  "column": 3
7218
7672
  }
7219
7673
  },
7674
+ {
7675
+ id: "@awiki/dsh-plugin#awiki/startDeviceJoinVerification",
7676
+ service: "awiki",
7677
+ namespace: "awiki",
7678
+ method: "startDeviceJoinVerification",
7679
+ invocation: { kind: "direct" },
7680
+ parameters: [{
7681
+ name: "request",
7682
+ wire: "request",
7683
+ source: "json",
7684
+ codec: {
7685
+ mode: "strict",
7686
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiRequestRefInput",
7687
+ schema: _awiki_dsh_plugin_awiki_startDeviceJoinVerification_parameter_0$schema
7688
+ }
7689
+ }],
7690
+ result: {
7691
+ mode: "strict",
7692
+ typeSymbol: "@awiki/dsh-plugin/types#AwikiResult",
7693
+ schema: _awiki_dsh_plugin_awiki_startDeviceJoinVerification_result$schema
7694
+ },
7695
+ sourceLocation: {
7696
+ "file": "packages/dsh-awiki/src/index.ts",
7697
+ "line": 123,
7698
+ "column": 9
7699
+ }
7700
+ },
7220
7701
  {
7221
7702
  id: "@awiki/dsh-plugin#awiki/summarizeConversation",
7222
7703
  service: "awiki",
@@ -7240,7 +7721,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7240
7721
  },
7241
7722
  sourceLocation: {
7242
7723
  "file": "packages/dsh-awiki/src/index.ts",
7243
- "line": 173,
7724
+ "line": 211,
7244
7725
  "column": 9
7245
7726
  }
7246
7727
  },
@@ -7267,7 +7748,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7267
7748
  },
7268
7749
  sourceLocation: {
7269
7750
  "file": "packages/dsh-awiki/src/index.ts",
7270
- "line": 159,
7751
+ "line": 197,
7271
7752
  "column": 3
7272
7753
  }
7273
7754
  },
@@ -7294,7 +7775,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7294
7775
  },
7295
7776
  sourceLocation: {
7296
7777
  "file": "packages/dsh-awiki/src/index.ts",
7297
- "line": 102,
7778
+ "line": 143,
7298
7779
  "column": 9
7299
7780
  }
7300
7781
  },
@@ -7321,7 +7802,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7321
7802
  },
7322
7803
  sourceLocation: {
7323
7804
  "file": "packages/dsh-awiki/src/index.ts",
7324
- "line": 108,
7805
+ "line": 149,
7325
7806
  "column": 3
7326
7807
  }
7327
7808
  }
@@ -7350,13 +7831,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7350
7831
  const AWIKI_CLEAR_LOCAL_DATA_CONFIRMATION = "clear-awiki-local-data";
7351
7832
  //#endregion
7352
7833
  //#region \0dsh-awiki-css:AwikiIdentityPage.module.css.mjs
7353
- const css$4 = "._0dbJua_page{width:100%;height:100%;min-height:0;color:var(--dsw-alias-label-secondary);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}._0dbJua_navigation{box-sizing:border-box;align-items:center;min-height:44px;padding:8px 16px 0;display:flex}._0dbJua_backButton{min-height:36px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 8px;font-size:12px;line-height:18px;display:inline-flex}._0dbJua_backButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._0dbJua_backButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}._0dbJua_backButton:disabled{cursor:default;opacity:.5}._0dbJua_viewport{min-height:0;overflow:auto}._0dbJua_content{box-sizing:border-box;align-content:center;width:min(400px,100%);min-height:100%;margin:0 auto;padding:28px 32px;display:grid}@media (height<=560px){._0dbJua_navigation{min-height:36px;padding:4px 8px 0}._0dbJua_backButton{min-height:32px}._0dbJua_content{align-content:start;padding:12px 16px}}@media (prefers-reduced-motion:reduce){._0dbJua_backButton{transition-duration:.001ms!important}}";
7354
- const tagId$4 = "@awiki/dsh-plugin/AwikiIdentityPage.module.css";
7355
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
7834
+ const css$5 = "._0dbJua_page{width:100%;height:100%;min-height:0;color:var(--dsw-alias-label-secondary);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}._0dbJua_navigation{box-sizing:border-box;align-items:center;min-height:44px;padding:8px 16px 0;display:flex}._0dbJua_backButton{min-height:36px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 8px;font-size:12px;line-height:18px;display:inline-flex}._0dbJua_backButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._0dbJua_backButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}._0dbJua_backButton:disabled{cursor:default;opacity:.5}._0dbJua_viewport{min-height:0;overflow:auto}._0dbJua_content{box-sizing:border-box;align-content:center;width:min(400px,100%);min-height:100%;margin:0 auto;padding:28px 32px;display:grid}@media (height<=560px){._0dbJua_navigation{min-height:36px;padding:4px 8px 0}._0dbJua_backButton{min-height:32px}._0dbJua_content{align-content:start;padding:12px 16px}}@media (prefers-reduced-motion:reduce){._0dbJua_backButton{transition-duration:.001ms!important}}";
7835
+ const tagId$5 = "@awiki/dsh-plugin/AwikiIdentityPage.module.css";
7836
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
7356
7837
  const tag = document.createElement("style");
7357
7838
  tag.dataset.plugin = "@awiki/dsh-plugin";
7358
- tag.dataset.pluginCss = tagId$4;
7359
- tag.textContent = css$4;
7839
+ tag.dataset.pluginCss = tagId$5;
7840
+ tag.textContent = css$5;
7360
7841
  document.head.appendChild(tag);
7361
7842
  }
7362
7843
  var _dsh_awiki_css_AwikiIdentityPage_module_css_default = {
@@ -7394,13 +7875,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7394
7875
  }
7395
7876
  //#endregion
7396
7877
  //#region \0dsh-awiki-css:AwikiOverlay.module.css.mjs
7397
- const css$3 = ".EtEeYG_trigger{z-index:2;border:1px solid var(--dsw-alias-border-l2);width:48px;height:48px;color:var(--dsw-alias-brand-primary);box-shadow:var(--dsw-shadow-lv2);cursor:grab;font:inherit;touch-action:none;user-select:none;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;overflow:visible}.EtEeYG_trigger:hover{box-shadow:var(--dsw-shadow-lv3);background:#fff}.EtEeYG_trigger:active,.EtEeYG_trigger[data-dragging]{cursor:grabbing}.EtEeYG_launcherIcon{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.EtEeYG_unreadBadge{border:2px solid var(--dsw-alias-bg-base);background:var(--dsw-alias-state-error-primary);color:#fff;box-sizing:border-box;pointer-events:none;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:600;line-height:16px;display:grid;position:absolute;top:-5px;right:-5px}.EtEeYG_trigger:focus-visible,.EtEeYG_drawer button:focus-visible,.EtEeYG_drawer input:focus-visible,.EtEeYG_drawer textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_drawer{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);z-index:1;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(720px,100vw - 80px);min-width:min(360px,100vw - 80px);height:min(720px,100vh - 16px);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);border-radius:16px;flex-direction:column;transition:width .16s;display:flex;position:fixed;overflow:hidden}.EtEeYG_drawer[data-mode=mail]{width:min(1040px,100vw - 80px)}.EtEeYG_drawer[data-resizing]{user-select:none;transition:none}.EtEeYG_resizeHandle{z-index:5;touch-action:none;user-select:none;position:absolute}.EtEeYG_resizeHandle[data-resize-handle=n],.EtEeYG_resizeHandle[data-resize-handle=s]{cursor:ns-resize;height:8px;left:14px;right:14px}.EtEeYG_resizeHandle[data-resize-handle=n]{top:0}.EtEeYG_resizeHandle[data-resize-handle=s]{bottom:0}.EtEeYG_resizeHandle[data-resize-handle=e],.EtEeYG_resizeHandle[data-resize-handle=w]{cursor:ew-resize;width:8px;top:14px;bottom:14px}.EtEeYG_resizeHandle[data-resize-handle=e]{right:0}.EtEeYG_resizeHandle[data-resize-handle=w]{left:0}.EtEeYG_resizeHandle[data-resize-handle=ne],.EtEeYG_resizeHandle[data-resize-handle=se],.EtEeYG_resizeHandle[data-resize-handle=sw],.EtEeYG_resizeHandle[data-resize-handle=nw]{width:14px;height:14px}.EtEeYG_resizeHandle[data-resize-handle=ne]{cursor:nesw-resize;top:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=se]{cursor:nwse-resize;bottom:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=sw]{cursor:nesw-resize;bottom:0;left:0}.EtEeYG_resizeHandle[data-resize-handle=nw]{cursor:nwse-resize;top:0;left:0}.EtEeYG_drawerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;touch-action:none;user-select:none;flex:none;align-items:center;gap:8px;height:58px;padding:0 14px 0 18px;display:flex}.EtEeYG_drawerHeader[data-dragging]{cursor:grabbing}.EtEeYG_drawerHeader>div{flex:1;align-items:center;gap:8px;display:flex}.EtEeYG_drawerHeader h2{margin:0;font-size:16px;line-height:24px}.EtEeYG_drawerHeader button,.EtEeYG_back{cursor:pointer;width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_drawerHeader button:hover,.EtEeYG_back:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_centerState,.EtEeYG_threadEmpty{text-align:center;color:var(--dsw-alias-label-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex}.EtEeYG_centerState p{overflow-wrap:anywhere;max-width:420px;margin:0}.EtEeYG_registrationIcon{background:var(--dsw-alias-interactive-bg-active);width:48px;height:48px;color:var(--dsw-alias-brand-primary);border-radius:50%;justify-self:center;place-items:center;display:grid}.EtEeYG_fileDraft input,.EtEeYG_composeRow textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px}.EtEeYG_primary,.EtEeYG_more,.EtEeYG_fileDraft button{background:var(--dsw-alias-button-primary-fill);min-height:36px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:0 14px}.EtEeYG_primary:hover,.EtEeYG_fileDraft button:hover{background:var(--dsw-alias-button-primary-hover)}.EtEeYG_primary:disabled,.EtEeYG_fileDraft button:disabled{opacity:.5;cursor:default}.EtEeYG_secondary{border:1px solid var(--dsw-alias-border-l2);min-height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:0 14px}.EtEeYG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_composeBackdrop{background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 72%, transparent);place-items:center;padding:24px;display:grid;position:absolute;inset:58px 0 0;overflow:auto}.EtEeYG_composeCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:min(360px,100%);box-shadow:var(--dsw-shadow-lv3);border-radius:14px;gap:12px;padding:20px;display:grid}.EtEeYG_composeCard h3{margin:0;font-size:16px;line-height:24px}.EtEeYG_composeCard p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}.EtEeYG_composeCard label{color:var(--dsw-alias-label-secondary);gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_composeCard input,.EtEeYG_composeCard textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px;padding:9px 12px}.EtEeYG_composeCard input{height:40px;padding-block:0}.EtEeYG_composeCard textarea{resize:vertical;min-height:92px}.EtEeYG_composeActions{justify-content:flex-end;gap:8px;display:flex}.EtEeYG_logoutWarning{color:var(--dsw-alias-label-secondary);gap:8px;font-size:13px;line-height:20px;display:grid}.EtEeYG_logoutWarning p{margin:0}.EtEeYG_logoutConfirm{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.EtEeYG_compactModal.EtEeYG_compactModal{max-height:calc(100vh - 48px)}.EtEeYG_compactModalContent{min-height:0;overflow-y:auto}.EtEeYG_linkButton{color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:0}.EtEeYG_notice{color:var(--dsw-alias-state-success-primary);text-align:center}.EtEeYG_identityAccess{flex:1;min-height:0;overflow:hidden}.EtEeYG_recoveryForm{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.EtEeYG_recoveryForm h3{color:var(--dsw-alias-label-primary);text-align:center;margin:0}.EtEeYG_recoveryForm>p{text-align:center;margin:0;font-size:13px;line-height:20px}.EtEeYG_recoveryForm>label:not(.EtEeYG_recoveryConfirmation){gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_recoveryForm>label>input:not([type=checkbox]){box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;height:40px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 12px}.EtEeYG_recoveryForm input:focus-visible,.EtEeYG_recoveryForm button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_recoveryStatusLine{border-bottom:1px solid var(--dsw-alias-border-l1);gap:3px;min-width:0;padding-bottom:10px;display:grid}.EtEeYG_recoveryStatusLine span{color:var(--dsw-alias-brand-primary);font-size:12px;font-weight:600}.EtEeYG_recoveryIdentitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;min-width:0;padding:12px;font-size:12px;line-height:18px;display:grid}.EtEeYG_recoveryIdentitySummary span{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryIdentitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics{border-top:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-tertiary);padding-top:2px;font-size:11px;line-height:17px}.EtEeYG_recoveryDiagnostics summary{cursor:pointer;width:max-content;color:var(--dsw-alias-label-secondary);user-select:none}.EtEeYG_recoveryDiagnostics summary:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics summary:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_recoveryDiagnostics dl{gap:6px;margin:8px 0 0;display:grid}.EtEeYG_recoveryDiagnostics dl>div{gap:2px;min-width:0;display:grid}.EtEeYG_recoveryDiagnostics dt{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryDiagnostics dd{min-width:0;margin:0}.EtEeYG_recoveryDiagnostics code{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);font-size:10px;line-height:16px;display:block}.EtEeYG_recoveryImpact{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:6px;padding:12px;display:grid}.EtEeYG_recoveryImpact p{align-items:flex-start;gap:7px;margin:0;font-size:12px;line-height:18px;display:flex}.EtEeYG_recoveryImpact svg{flex:none;margin-top:2px}.EtEeYG_recoveryImpact p[data-tone=success] svg{color:var(--dsw-alias-state-success-primary)}.EtEeYG_recoveryImpact p[data-tone=neutral] svg{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryHandle{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);text-align:center;margin:-8px 0 0;font-size:13px;line-height:20px}.EtEeYG_recoveryConfirmationCopy{color:var(--dsw-alias-label-secondary);text-align:left;margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:8px;justify-items:center;gap:10px;min-width:0;padding:16px;display:grid}.EtEeYG_recoveryProgressPanel>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_recoveryProgressPanel p{margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel button{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.EtEeYG_chat{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.EtEeYG_roster{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;min-width:0;display:flex}.EtEeYG_identityCard{background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;gap:2px;margin:14px;padding:12px;display:flex}.EtEeYG_identityNameRow{align-items:center;min-width:0;min-height:24px;display:flex}.EtEeYG_profileAvatar{background:var(--dsw-alias-interactive-bg-active);width:24px;height:24px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;margin-right:7px;display:grid}.EtEeYG_identityNameText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;line-height:22px;overflow:hidden}.EtEeYG_identityName{min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:0;flex:1;padding:0;font-size:16px;font-weight:600;line-height:24px;overflow:hidden}.EtEeYG_identityName:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_identityEdit{width:24px;height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-left:4px;padding:0;transition:opacity .12s;display:grid}.EtEeYG_identityNameRow:hover .EtEeYG_identityEdit,.EtEeYG_identityNameRow:focus-within .EtEeYG_identityEdit{opacity:1}.EtEeYG_identityEdit:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.EtEeYG_identityEditor input{border:1px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;outline:none;flex:1;padding:0 8px;font-size:13px}.EtEeYG_identityEditor button{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_identityEditor button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor button:disabled,.EtEeYG_identityName:disabled{cursor:default;opacity:.5}.EtEeYG_identityEdit:disabled{cursor:default}.EtEeYG_identityHandle{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_identityStatus{color:var(--dsw-alias-state-success-primary);margin-top:4px;font-size:12px;line-height:18px}.EtEeYG_identityError{color:var(--dsw-alias-state-error-primary);margin-top:4px;font-size:11px;line-height:16px}.EtEeYG_identityCard i{background:var(--dsw-alias-state-success-primary);border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.EtEeYG_profileBio{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 2px;font-size:11px;line-height:17px;display:-webkit-box;overflow:hidden}.EtEeYG_profileTags{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.EtEeYG_profileTags>span{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);min-width:0;max-width:100%;min-height:20px;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:7px;align-items:center;gap:3px;padding:0 6px;font-size:10px;line-height:16px;display:inline-flex}.EtEeYG_profileTags>span>button{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.EtEeYG_profileTags>span>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_profileEditor{gap:10px;display:grid}.EtEeYG_profileEditor label{color:var(--dsw-alias-label-secondary);gap:4px;font-size:11px;line-height:16px;display:grid;position:relative}.EtEeYG_profileEditor label>small{color:var(--dsw-alias-label-tertiary);font-size:10px;position:absolute;top:0;right:1px}.EtEeYG_profileEditor input,.EtEeYG_profileEditor textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:7px 8px;font-size:12px}.EtEeYG_profileEditor input{height:32px;padding-block:0}.EtEeYG_profileEditor textarea{resize:vertical}.EtEeYG_profileTagEditor{gap:4px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type{grid-template-columns:minmax(0,1fr) 30px;gap:5px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type button{border:1px solid var(--dsw-alias-border-l2);width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_profileEditorActions{grid-template-columns:1fr 1fr;gap:6px;margin-top:2px;display:grid}.EtEeYG_profileEditorActions button{min-width:0;padding-inline:6px;font-size:12px}.EtEeYG_modePanel{flex:1;min-height:0;display:none}.EtEeYG_modePanel[data-active]{display:flex}.EtEeYG_modeTabs{background:var(--dsw-alias-bg-layer-3);border-radius:9px;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px 12px;padding:3px;display:grid}.EtEeYG_modeTabs button{min-height:30px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_modeTabs button:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_modeTabs button[aria-selected=true]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}.EtEeYG_modeTabs small{min-width:18px;color:var(--dsw-alias-brand-primary);font-size:10px;line-height:14px}.EtEeYG_rosterHeader{justify-content:space-between;align-items:center;min-height:32px;padding:0 8px 8px 16px;display:flex}.EtEeYG_rosterTitle{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.EtEeYG_rosterActions{align-items:center;gap:2px;display:flex}.EtEeYG_rosterAction{width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_rosterAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_rosterActions .EtEeYG_rosterAction{position:relative}.EtEeYG_rosterActions .EtEeYG_rosterAction small{background:var(--dsw-alias-bg-layer-3);min-width:14px;height:14px;color:var(--dsw-alias-label-secondary);box-sizing:border-box;border-radius:7px;place-items:center;padding:0 3px;font-size:9px;line-height:12px;display:grid;position:absolute;top:1px;right:0}.EtEeYG_groupRecoveryNotice{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:8px;align-items:flex-start;gap:8px;margin:0 8px 8px;padding:9px 10px;display:flex}.EtEeYG_groupRecoveryNotice[data-status=blocked]{border-color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupRecoveryNotice>span{flex:1;gap:2px;min-width:0;display:grid}.EtEeYG_groupRecoveryNotice strong{font-size:12px;line-height:18px}.EtEeYG_groupRecoveryNotice small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_groupRecoveryNotice button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupRecoveryNotice button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupRecoveryNotice button:disabled{cursor:default;opacity:.5}.EtEeYG_conversationList{flex:1;min-height:0;padding:0 8px;overflow:auto}.EtEeYG_conversationRow{width:100%;color:inherit;background:0 0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.EtEeYG_conversationRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_conversationRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_conversationSelect{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px;display:flex}.EtEeYG_conversationMenu{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:7px;place-items:center;margin-right:5px;padding:0;display:grid}.EtEeYG_conversationRow:hover .EtEeYG_conversationMenu,.EtEeYG_conversationRow:focus-within .EtEeYG_conversationMenu,.EtEeYG_conversationMenu[aria-expanded=true]{opacity:1}.EtEeYG_conversationMenu:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.EtEeYG_conversationMenu:disabled{cursor:default;opacity:.45}.EtEeYG_avatar{background:var(--dsw-alias-interactive-bg-active);width:34px;height:34px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;font-size:12px;line-height:18px;display:grid;position:relative;overflow:visible}.EtEeYG_conversationUnreadBadge{border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-state-error-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted);box-sizing:border-box;pointer-events:none;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;display:grid;position:absolute;top:-6px;right:-7px}.EtEeYG_conversationText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.EtEeYG_conversationHeader{align-items:center;gap:8px;min-width:0;display:flex}.EtEeYG_conversationHeader strong{flex:1;min-width:0}.EtEeYG_conversationTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;font-weight:400;line-height:16px}.EtEeYG_conversationText strong,.EtEeYG_conversationText small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_conversationText strong{font-size:13px;line-height:20px}.EtEeYG_conversationText small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_more{background:var(--dsw-alias-button-elevated-fill);color:var(--dsw-alias-label-secondary);margin:8px}.EtEeYG_more:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationList{max-height:min(320px,48vh);display:grid;overflow:auto}.EtEeYG_hiddenConversationRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 2px;display:grid}.EtEeYG_hiddenConversationRow:last-child{border-bottom:0}.EtEeYG_hiddenConversationRow .EtEeYG_avatar{width:30px;height:30px}.EtEeYG_hiddenConversationRow>span:nth-child(2){min-width:0;display:grid}.EtEeYG_hiddenConversationRow strong,.EtEeYG_hiddenConversationRow small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_hiddenConversationRow strong{font-size:12px;line-height:18px}.EtEeYG_hiddenConversationRow small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.EtEeYG_hiddenConversationRow>button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;padding:0 9px;font-size:11px}.EtEeYG_hiddenConversationRow>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationRow>button:disabled{cursor:default;opacity:.55}.EtEeYG_conversationPreferenceError{color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:17px}.EtEeYG_thread{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.EtEeYG_threadHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:56px;padding:0 14px;display:flex}.EtEeYG_threadTitle{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_threadTitle strong,.EtEeYG_threadTitle small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_threadHeader small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_threadAction{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_threadAction:hover,.EtEeYG_threadAction[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupAccessNotice{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:8px 10px;padding:11px 14px;display:grid}.EtEeYG_groupAccessNotice[data-status=blocked],.EtEeYG_groupAccessNotice[data-status=not-member]{background:var(--dsw-alias-interactive-bg-hover-danger)}.EtEeYG_groupAccessNotice[data-compact]{grid-template-columns:20px minmax(0,1fr);padding:12px 16px}.EtEeYG_groupAccessIcon{min-height:20px;color:var(--dsw-alias-label-secondary);place-items:center;display:grid}.EtEeYG_groupAccessNotice[data-status=loading] .EtEeYG_groupAccessIcon svg,.EtEeYG_groupAccessNotice[data-status=recovering] .EtEeYG_groupAccessIcon svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupAccessCopy{gap:2px;min-width:0;display:grid}.EtEeYG_groupAccessCopy strong{font-size:12px;line-height:18px}.EtEeYG_groupAccessCopy small{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:11px;line-height:17px}.EtEeYG_groupAccessActions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.EtEeYG_groupAccessNotice[data-compact] .EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupAccessActions button{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:11px;line-height:16px;display:flex}.EtEeYG_groupAccessActions button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_groupAccessActions button:disabled{cursor:default;opacity:.55}.EtEeYG_groupDetails{z-index:4;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(360px,100%);min-width:0;box-shadow:var(--dsw-shadow-lv2);flex-direction:column;display:flex;position:absolute;top:56px;bottom:0;right:0;overflow:hidden}.EtEeYG_groupDetailsHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:12px;min-height:54px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupDetailsHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_groupDetailsHeader strong{font-size:14px;line-height:21px}.EtEeYG_groupDetailsHeader small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupDetailsHeader button,.EtEeYG_groupMemberHeading button,.EtEeYG_groupMemberRemove{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupDetailsHeader button:hover,.EtEeYG_groupMemberHeading button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupDetailsLoading{color:var(--dsw-alias-label-tertiary);margin:auto;font-size:12px}.EtEeYG_groupSummary{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:16px;display:grid}.EtEeYG_groupSummary>strong{font-size:15px;line-height:22px}.EtEeYG_groupSummary>code{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.EtEeYG_groupSummary>p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:12px;line-height:18px}.EtEeYG_groupSummary dl{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;display:grid}.EtEeYG_groupSummary dl>div{gap:1px;display:grid}.EtEeYG_groupSummary dt{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_groupSummary dd{color:var(--dsw-alias-label-primary);margin:0;font-size:12px}.EtEeYG_groupInvite{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:12px 16px;display:grid}.EtEeYG_groupInvite label{color:var(--dsw-alias-label-secondary);font-size:11px}.EtEeYG_groupInvite>div{grid-template-columns:minmax(0,1fr) 32px;gap:6px;display:grid}.EtEeYG_groupInvite input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:0 9px;font-size:12px}.EtEeYG_groupInvite button{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_groupInvite button:disabled{cursor:default;opacity:.7}.EtEeYG_groupInvite button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupInviteStatus{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0;font-size:10px;line-height:16px}.EtEeYG_groupInviteStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupInviteStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberSection{flex-direction:column;flex:1;min-height:0;display:flex}.EtEeYG_groupMemberHeading{flex:none;justify-content:space-between;align-items:center;min-height:40px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupMemberHeading strong{font-size:12px;line-height:18px}.EtEeYG_groupMemberHeading button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupMemberRefreshStatus{overflow-wrap:anywhere;min-height:22px;color:var(--dsw-alias-label-tertiary);flex:none;margin:0;padding:2px 16px 4px;font-size:10px;line-height:16px}.EtEeYG_groupMemberRefreshStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupMemberRefreshStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberList{min-height:0;padding:0 8px;overflow:auto}.EtEeYG_groupMemberRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:30px minmax(0,1fr) auto 28px;align-items:center;gap:8px;min-height:48px;padding:4px 6px;display:grid}.EtEeYG_groupMemberAvatar{background:var(--dsw-alias-interactive-bg-active);width:30px;height:30px;color:var(--dsw-alias-brand-primary);border-radius:50%;place-items:center;font-size:11px;display:grid}.EtEeYG_groupMemberIdentity{flex-direction:column;min-width:0;display:flex}.EtEeYG_groupMemberIdentity strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;line-height:18px;display:flex;overflow:hidden}.EtEeYG_groupMemberIdentity strong small{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:4px;padding:0 4px;font-size:9px}.EtEeYG_groupMemberIdentity>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupMemberRole{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px}.EtEeYG_groupMemberRemove:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupDetailsFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 16px;display:flex}.EtEeYG_groupDetailsFooter small{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_dangerText{color:var(--dsw-alias-state-error-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.EtEeYG_dangerText:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.EtEeYG_groupDetailsError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);flex:none;padding:8px 12px;font-size:11px;line-height:17px}.EtEeYG_summaryTrigger{min-height:30px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryTrigger:disabled{cursor:default;opacity:.7}.EtEeYG_summaryTrigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.EtEeYG_summaryTrigger>svg:first-child{flex:none}.EtEeYG_summaryPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:0;max-height:min(220px,33%);color:var(--dsw-alias-label-primary);border-radius:10px;flex:0 33%;margin:8px 10px 0;overflow:hidden}.EtEeYG_summaryPanel[data-collapsed]{flex-basis:auto;max-height:42px}.EtEeYG_summaryHeader{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:9px;min-height:38px;padding:0 8px 0 12px;display:flex}.EtEeYG_summaryHeader>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;display:flex}.EtEeYG_summaryHeader>span strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryHeader>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_summaryHeader>button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_summaryHeader>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed{width:100%;min-height:40px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 10px 0 12px;display:grid}.EtEeYG_summaryCollapsed:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.EtEeYG_summaryCollapsed>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_summaryCollapsed>em{color:var(--dsw-alias-state-warn-label);white-space:nowrap;font-size:11px;font-style:normal}.EtEeYG_summaryLoading{min-height:88px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_summaryLoading>span{flex-direction:column;gap:2px;display:flex}.EtEeYG_summaryLoading strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryLoading small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_summaryError{min-height:58px;color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryError>span{overflow-wrap:anywhere;min-width:0}.EtEeYG_summaryError button,.EtEeYG_summaryStale button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:flex}.EtEeYG_summaryError button:hover,.EtEeYG_summaryStale button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryStale{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-state-warn-label);justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryBody{gap:10px;max-height:118px;padding:10px 12px;display:grid;overflow:auto}.EtEeYG_summarySection h4{color:var(--dsw-alias-label-primary);align-items:center;gap:6px;margin:0 0 4px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summarySection h4>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_summarySection ul{color:var(--dsw-alias-label-secondary);gap:2px;margin:0;padding-left:18px;font-size:11px;line-height:17px;display:grid}.EtEeYG_summarySection li{overflow-wrap:anywhere;padding-left:1px}.EtEeYG_summarySection p{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}.EtEeYG_summarySection b{color:var(--dsw-alias-label-primary);font-weight:500}.EtEeYG_summaryActions{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px;min-height:34px;padding:0 8px;display:grid}.EtEeYG_summaryActions button{min-height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryActions button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryPrivacy{border-top:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 10px;font-size:10px;line-height:15px;display:flex}.EtEeYG_summaryPrivacy svg{flex:none}.EtEeYG_summaryCopyError{color:var(--dsw-alias-state-error-primary);padding:4px 10px;font-size:10px;line-height:15px}@keyframes EtEeYG_summary-spin{to{transform:rotate(360deg)}}.EtEeYG_back{display:none}.EtEeYG_historyShell{flex:1;min-height:0;position:relative}.EtEeYG_history{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;display:flex;overflow:auto}.EtEeYG_historyLoading{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;margin:auto;font-size:12px;line-height:18px;display:flex}.EtEeYG_historyLoading>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_latestMessages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);min-width:30px;min-height:30px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;font:inherit;border-radius:16px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:11px;line-height:16px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.EtEeYG_latestMessages:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_message{align-self:flex-start;max-width:min(78%,420px)}.EtEeYG_message[data-outgoing]{align-self:flex-end}.EtEeYG_messageMeta{color:var(--dsw-alias-label-tertiary);justify-content:space-between;gap:10px;margin-bottom:3px;font-size:11px;line-height:16px;display:flex}.EtEeYG_message p,.EtEeYG_attachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_message[data-outgoing] p,.EtEeYG_message[data-outgoing] .EtEeYG_attachment{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mention{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:3px;padding:0 2px;font-weight:600}.EtEeYG_pendingMessage{grid-template-columns:auto minmax(0,1fr);align-self:flex-end;align-items:end;gap:7px;max-width:min(78%,420px);display:grid}.EtEeYG_pendingMessageSpinner{color:var(--dsw-alias-label-tertiary);margin-bottom:12px;animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_pendingMessageContent{opacity:.82;min-width:0}.EtEeYG_pendingMessageContent>p,.EtEeYG_pendingAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_pendingAttachment{align-items:center;gap:9px;display:flex}.EtEeYG_pendingAttachment>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_pendingAttachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_pendingAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_pendingAttachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_pendingMessageContent>.EtEeYG_pendingCaption{color:var(--dsw-alias-label-secondary);background:0 0;border:0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_attachment{cursor:pointer;font:inherit;text-align:left;align-items:center;gap:12px;display:flex}.EtEeYG_attachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_attachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_attachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_attachment:disabled{cursor:default}.EtEeYG_imageAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:280px;max-width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;text-align:left;border-radius:12px;margin:0;padding:0;display:block;overflow:hidden}.EtEeYG_imageAttachment img{background:var(--dsw-alias-bg-layer-1);object-fit:contain;width:100%;max-height:280px;display:block}.EtEeYG_imageAttachment span{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;padding:7px 9px;display:grid}.EtEeYG_imageAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_imageAttachment small{color:var(--dsw-alias-label-tertiary);grid-column:1}.EtEeYG_imageAttachment svg{grid-area:1/2/span 2}.EtEeYG_message .EtEeYG_caption{color:var(--dsw-alias-label-secondary);background:0 0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_inlineError{color:var(--dsw-alias-state-error-primary);margin-top:4px;display:block}.EtEeYG_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:auto;padding:20px}.EtEeYG_composer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;padding:10px 14px 14px;display:grid}.EtEeYG_filePicker{border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_filePicker:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_filePicker:disabled{opacity:.45;cursor:default}.EtEeYG_fileInput{display:none}.EtEeYG_composeInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;gap:6px;min-width:0;padding:9px 10px 8px;display:grid;position:relative}.EtEeYG_mentionCandidates{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-height:180px;box-shadow:var(--dsw-shadow-lv2);border-radius:8px;padding:5px;position:absolute;bottom:calc(100% + 7px);left:0;right:0;overflow:auto}.EtEeYG_mentionCandidates button{width:100%;min-height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 7px;display:grid}.EtEeYG_mentionCandidates button:hover,.EtEeYG_mentionCandidates button[aria-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mentionCandidates button>span{background:var(--dsw-alias-bg-layer-3);width:28px;height:28px;color:var(--dsw-alias-brand-primary);border-radius:50%;grid-row:1/span 2;place-items:center;font-size:10px;display:grid}.EtEeYG_mentionCandidates strong,.EtEeYG_mentionCandidates small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.EtEeYG_mentionCandidates strong{align-self:end;font-size:12px;line-height:16px}.EtEeYG_mentionCandidates small{color:var(--dsw-alias-label-tertiary);align-self:start;font-size:10px;line-height:14px}.EtEeYG_composeInput:focus-within{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_composeInput textarea{resize:none;background:0 0;border:0;border-radius:0;outline:0;min-width:0;min-height:42px;padding:0}.EtEeYG_composeInput textarea:focus-visible{outline:0}.EtEeYG_composeActions{justify-content:space-between;align-items:center;min-height:32px;display:flex}.EtEeYG_filePreview{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:10px;align-items:center;gap:8px;width:min(240px,100% - 8px);min-height:36px;padding:5px 28px 5px 8px;display:flex;position:relative}.EtEeYG_filePreview[data-image]{width:72px;height:72px;min-height:0;padding:0}.EtEeYG_filePreview img{object-fit:cover;border-radius:9px;width:72px;height:72px;display:block}.EtEeYG_filePreviewIcon{color:var(--dsw-alias-label-secondary);flex:none;place-items:center;display:grid}.EtEeYG_filePreviewName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.EtEeYG_removeFile{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);width:22px;height:22px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.EtEeYG_removeFile:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_send{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_send:disabled{opacity:.45;cursor:default}.EtEeYG_error{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;flex:none;padding:8px 14px;font-size:12px;line-height:18px}.EtEeYG_pending{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);border-radius:9px;padding:7px 10px;font-size:12px;line-height:18px;position:absolute;bottom:14px;right:14px}@media (width<=620px){.EtEeYG_trigger span{display:none}.EtEeYG_trigger{justify-content:center;width:36px;padding:0}.EtEeYG_drawer{width:calc(100vw - 56px);min-width:0}.EtEeYG_chat{grid-template-columns:1fr}.EtEeYG_thread{display:none}.EtEeYG_thread[data-visible]{display:flex}.EtEeYG_roster[data-hidden]{display:none}.EtEeYG_back{display:grid}.EtEeYG_summaryPanel{max-height:min(190px,33%);margin-left:8px;margin-right:8px}.EtEeYG_summaryTrigger>span{display:none}.EtEeYG_summaryTrigger{justify-content:center;width:30px;padding:0}.EtEeYG_summaryTrigger>svg:last-child{display:none}}@media (height<=420px){.EtEeYG_drawer{border-radius:10px}.EtEeYG_drawerHeader{height:44px;padding:0 8px 0 12px}.EtEeYG_drawerHeader h2{font-size:14px;line-height:20px}.EtEeYG_drawerHeader button,.EtEeYG_back{width:28px;height:28px}.EtEeYG_centerState,.EtEeYG_threadEmpty{justify-content:flex-start;gap:8px;min-height:0;padding:12px;overflow:auto}.EtEeYG_registrationIcon{width:32px;height:32px}.EtEeYG_composeBackdrop{place-items:start center;padding:8px;inset:44px 0 0}.EtEeYG_composeCard{border-radius:10px;gap:8px;padding:12px}.EtEeYG_recoveryForm{gap:8px}.EtEeYG_identityCard{border-radius:8px;margin:6px 8px;padding:7px 9px}.EtEeYG_profileBio,.EtEeYG_profileTags,.EtEeYG_identityStatus{display:none}.EtEeYG_modeTabs{margin:0 8px 4px}.EtEeYG_modeTabs button{min-height:26px}.EtEeYG_rosterHeader{min-height:28px;padding:0 4px 2px 12px}.EtEeYG_conversationSelect{gap:7px;padding:5px 7px}.EtEeYG_avatar{width:28px;height:28px}.EtEeYG_threadHeader{gap:5px;height:44px;padding:0 8px}.EtEeYG_groupAccessNotice{grid-template-columns:18px minmax(0,1fr);gap:6px 8px;padding:8px}.EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupDetails{top:44px;overflow-y:auto}.EtEeYG_groupDetailsHeader{z-index:2;background:var(--dsw-alias-bg-layer-1);min-height:44px;padding-left:12px;position:sticky;top:0}.EtEeYG_groupSummary{gap:2px;padding:8px 12px}.EtEeYG_groupSummary dl{gap:6px;margin-top:3px}.EtEeYG_groupInvite{gap:3px;padding:7px 12px}.EtEeYG_groupMemberSection{flex:none}.EtEeYG_groupMemberHeading{min-height:32px;padding-left:12px}.EtEeYG_groupMemberList{overflow:visible}.EtEeYG_groupMemberRow{min-height:40px}.EtEeYG_groupDetailsFooter{background:var(--dsw-alias-bg-layer-1);min-height:40px;padding:0 12px;position:sticky;bottom:0}.EtEeYG_history{gap:6px;padding:8px}.EtEeYG_composer{gap:4px;padding:5px 8px 7px}.EtEeYG_composeInput{gap:3px;padding:5px 7px 4px}.EtEeYG_composeInput textarea{height:28px;min-height:28px}.EtEeYG_composeActions{min-height:28px}.EtEeYG_filePicker,.EtEeYG_send{width:28px;height:28px}.EtEeYG_mentionCandidates{max-height:72px}.EtEeYG_compactModal.EtEeYG_compactModal{border-radius:12px;gap:10px;max-height:calc(100vh - 48px);padding-bottom:12px}}@media (hover:none){.EtEeYG_conversationMenu{opacity:1}}@media (prefers-reduced-motion:reduce){.EtEeYG_drawer{scroll-behavior:auto;transition:none}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child,.EtEeYG_historyLoading>svg,.EtEeYG_recoveryProgressPanel>svg,.EtEeYG_groupMemberHeading button[data-busy] svg,.EtEeYG_pendingMessageSpinner{animation:none}}";
7398
- const tagId$3 = "@awiki/dsh-plugin/AwikiOverlay.module.css";
7399
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
7878
+ const css$4 = ".EtEeYG_trigger{z-index:2;border:1px solid var(--dsw-alias-border-l2);width:48px;height:48px;color:var(--dsw-alias-brand-primary);box-shadow:var(--dsw-shadow-lv2);cursor:grab;font:inherit;touch-action:none;user-select:none;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;overflow:visible}.EtEeYG_trigger:hover{box-shadow:var(--dsw-shadow-lv3);background:#fff}.EtEeYG_trigger:active,.EtEeYG_trigger[data-dragging]{cursor:grabbing}.EtEeYG_launcherIcon{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.EtEeYG_unreadBadge{border:2px solid var(--dsw-alias-bg-base);background:var(--dsw-alias-state-error-primary);color:#fff;box-sizing:border-box;pointer-events:none;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:600;line-height:16px;display:grid;position:absolute;top:-5px;right:-5px}.EtEeYG_trigger:focus-visible,.EtEeYG_drawer button:focus-visible,.EtEeYG_drawer input:focus-visible,.EtEeYG_drawer textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_drawer{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);z-index:1;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(720px,100vw - 80px);min-width:min(360px,100vw - 80px);height:min(720px,100vh - 16px);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3);border-radius:16px;flex-direction:column;transition:width .16s;display:flex;position:fixed;overflow:hidden}.EtEeYG_drawer[data-mode=mail]{width:min(1040px,100vw - 80px)}.EtEeYG_drawer[data-resizing]{user-select:none;transition:none}.EtEeYG_resizeHandle{z-index:5;touch-action:none;user-select:none;position:absolute}.EtEeYG_resizeHandle[data-resize-handle=n],.EtEeYG_resizeHandle[data-resize-handle=s]{cursor:ns-resize;height:8px;left:14px;right:14px}.EtEeYG_resizeHandle[data-resize-handle=n]{top:0}.EtEeYG_resizeHandle[data-resize-handle=s]{bottom:0}.EtEeYG_resizeHandle[data-resize-handle=e],.EtEeYG_resizeHandle[data-resize-handle=w]{cursor:ew-resize;width:8px;top:14px;bottom:14px}.EtEeYG_resizeHandle[data-resize-handle=e]{right:0}.EtEeYG_resizeHandle[data-resize-handle=w]{left:0}.EtEeYG_resizeHandle[data-resize-handle=ne],.EtEeYG_resizeHandle[data-resize-handle=se],.EtEeYG_resizeHandle[data-resize-handle=sw],.EtEeYG_resizeHandle[data-resize-handle=nw]{width:14px;height:14px}.EtEeYG_resizeHandle[data-resize-handle=ne]{cursor:nesw-resize;top:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=se]{cursor:nwse-resize;bottom:0;right:0}.EtEeYG_resizeHandle[data-resize-handle=sw]{cursor:nesw-resize;bottom:0;left:0}.EtEeYG_resizeHandle[data-resize-handle=nw]{cursor:nwse-resize;top:0;left:0}.EtEeYG_drawerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;touch-action:none;user-select:none;flex:none;align-items:center;gap:8px;height:58px;padding:0 14px 0 18px;display:flex}.EtEeYG_drawerHeader[data-dragging]{cursor:grabbing}.EtEeYG_drawerHeader>div{flex:1;align-items:center;gap:8px;display:flex}.EtEeYG_drawerHeader h2{margin:0;font-size:16px;line-height:24px}.EtEeYG_drawerHeader button,.EtEeYG_back{cursor:pointer;width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_drawerHeader button:hover,.EtEeYG_back:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_centerState,.EtEeYG_threadEmpty{text-align:center;color:var(--dsw-alias-label-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex}.EtEeYG_centerState p{overflow-wrap:anywhere;max-width:420px;margin:0}.EtEeYG_registrationIcon{background:var(--dsw-alias-interactive-bg-active);width:48px;height:48px;color:var(--dsw-alias-brand-primary);border-radius:50%;justify-self:center;place-items:center;display:grid}.EtEeYG_fileDraft input,.EtEeYG_composeRow textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px}.EtEeYG_primary,.EtEeYG_more,.EtEeYG_fileDraft button{background:var(--dsw-alias-button-primary-fill);min-height:36px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:0 14px}.EtEeYG_primary:hover,.EtEeYG_fileDraft button:hover{background:var(--dsw-alias-button-primary-hover)}.EtEeYG_primary:disabled,.EtEeYG_fileDraft button:disabled{opacity:.5;cursor:default}.EtEeYG_secondary{border:1px solid var(--dsw-alias-border-l2);min-height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:0 14px}.EtEeYG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_composeBackdrop{background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 72%, transparent);place-items:center;padding:24px;display:grid;position:absolute;inset:58px 0 0;overflow:auto}.EtEeYG_composeCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:min(360px,100%);box-shadow:var(--dsw-shadow-lv3);border-radius:14px;gap:12px;padding:20px;display:grid}.EtEeYG_composeCard h3{margin:0;font-size:16px;line-height:24px}.EtEeYG_composeCard p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}.EtEeYG_composeCard label{color:var(--dsw-alias-label-secondary);gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_composeCard input,.EtEeYG_composeCard textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:10px;padding:9px 12px}.EtEeYG_composeCard input{height:40px;padding-block:0}.EtEeYG_composeCard textarea{resize:vertical;min-height:92px}.EtEeYG_composeActions{justify-content:flex-end;gap:8px;display:flex}.EtEeYG_logoutWarning{color:var(--dsw-alias-label-secondary);gap:8px;font-size:13px;line-height:20px;display:grid}.EtEeYG_logoutWarning p{margin:0}.EtEeYG_logoutConfirm{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}.EtEeYG_compactModal.EtEeYG_compactModal{max-height:calc(100vh - 48px)}.EtEeYG_compactModalContent{min-height:0;overflow-y:auto}.EtEeYG_linkButton{color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:0}.EtEeYG_notice{color:var(--dsw-alias-state-success-primary);text-align:center}.EtEeYG_identityAccess{flex:1;min-height:0;overflow:hidden}.EtEeYG_recoveryForm{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.EtEeYG_recoveryForm h3{color:var(--dsw-alias-label-primary);text-align:center;margin:0}.EtEeYG_recoveryForm>p{text-align:center;margin:0;font-size:13px;line-height:20px}.EtEeYG_recoveryForm>label:not(.EtEeYG_recoveryConfirmation){gap:6px;font-size:13px;line-height:20px;display:grid}.EtEeYG_recoveryForm>label>input:not([type=checkbox]){box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;height:40px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:0 12px}.EtEeYG_recoveryForm input:focus-visible,.EtEeYG_recoveryForm button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_recoveryStatusLine{border-bottom:1px solid var(--dsw-alias-border-l1);gap:3px;min-width:0;padding-bottom:10px;display:grid}.EtEeYG_recoveryStatusLine span{color:var(--dsw-alias-brand-primary);font-size:12px;font-weight:600}.EtEeYG_recoveryIdentitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;min-width:0;padding:12px;font-size:12px;line-height:18px;display:grid}.EtEeYG_recoveryIdentitySummary span{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryIdentitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics{border-top:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-tertiary);padding-top:2px;font-size:11px;line-height:17px}.EtEeYG_recoveryDiagnostics summary{cursor:pointer;width:max-content;color:var(--dsw-alias-label-secondary);user-select:none}.EtEeYG_recoveryDiagnostics summary:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_recoveryDiagnostics summary:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_recoveryDiagnostics dl{gap:6px;margin:8px 0 0;display:grid}.EtEeYG_recoveryDiagnostics dl>div{gap:2px;min-width:0;display:grid}.EtEeYG_recoveryDiagnostics dt{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryDiagnostics dd{min-width:0;margin:0}.EtEeYG_recoveryDiagnostics code{overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);font-size:10px;line-height:16px;display:block}.EtEeYG_recoveryImpact{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:6px;padding:12px;display:grid}.EtEeYG_recoveryImpact p{align-items:flex-start;gap:7px;margin:0;font-size:12px;line-height:18px;display:flex}.EtEeYG_recoveryImpact svg{flex:none;margin-top:2px}.EtEeYG_recoveryImpact p[data-tone=success] svg{color:var(--dsw-alias-state-success-primary)}.EtEeYG_recoveryImpact p[data-tone=neutral] svg{color:var(--dsw-alias-label-tertiary)}.EtEeYG_recoveryHandle{overflow-wrap:anywhere;color:var(--dsw-alias-label-primary);text-align:center;margin:-8px 0 0;font-size:13px;line-height:20px}.EtEeYG_recoveryConfirmationCopy{color:var(--dsw-alias-label-secondary);text-align:left;margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:8px;justify-items:center;gap:10px;min-width:0;padding:16px;display:grid}.EtEeYG_recoveryProgressPanel>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_recoveryProgressPanel p{margin:0;font-size:12px;line-height:18px}.EtEeYG_recoveryProgressPanel button{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.EtEeYG_chat{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.EtEeYG_roster{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;min-width:0;display:flex}.EtEeYG_identityCard{background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex-direction:column;gap:2px;margin:14px;padding:12px;display:flex}.EtEeYG_identityNameRow{align-items:center;min-width:0;min-height:24px;display:flex}.EtEeYG_profileAvatar{background:var(--dsw-alias-interactive-bg-active);width:24px;height:24px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;margin-right:7px;display:grid}.EtEeYG_identityNameText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;line-height:22px;overflow:hidden}.EtEeYG_identityName{min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:0;flex:1;padding:0;font-size:16px;font-weight:600;line-height:24px;overflow:hidden}.EtEeYG_identityName:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px;border-radius:4px}.EtEeYG_identityEdit{width:24px;height:24px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;margin-left:4px;padding:0;transition:opacity .12s;display:grid}.EtEeYG_identityNameRow:hover .EtEeYG_identityEdit,.EtEeYG_identityNameRow:focus-within .EtEeYG_identityEdit{opacity:1}.EtEeYG_identityEdit:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.EtEeYG_identityEditor input{border:1px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;outline:none;flex:1;padding:0 8px;font-size:13px}.EtEeYG_identityEditor button{width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_identityEditor button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_identityEditor button:disabled,.EtEeYG_identityName:disabled{cursor:default;opacity:.5}.EtEeYG_identityEdit:disabled{cursor:default}.EtEeYG_identityHandle{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_identityStatus{color:var(--dsw-alias-state-success-primary);margin-top:4px;font-size:12px;line-height:18px}.EtEeYG_identityError{color:var(--dsw-alias-state-error-primary);margin-top:4px;font-size:11px;line-height:16px}.EtEeYG_identityCard i{background:var(--dsw-alias-state-success-primary);border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.EtEeYG_profileBio{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 2px;font-size:11px;line-height:17px;display:-webkit-box;overflow:hidden}.EtEeYG_profileTags{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.EtEeYG_profileTags>span{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);min-width:0;max-width:100%;min-height:20px;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;border-radius:7px;align-items:center;gap:3px;padding:0 6px;font-size:10px;line-height:16px;display:inline-flex}.EtEeYG_profileTags>span>button{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.EtEeYG_profileTags>span>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_profileEditor{gap:10px;display:grid}.EtEeYG_profileEditor label{color:var(--dsw-alias-label-secondary);gap:4px;font-size:11px;line-height:16px;display:grid;position:relative}.EtEeYG_profileEditor label>small{color:var(--dsw-alias-label-tertiary);font-size:10px;position:absolute;top:0;right:1px}.EtEeYG_profileEditor input,.EtEeYG_profileEditor textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:7px 8px;font-size:12px}.EtEeYG_profileEditor input{height:32px;padding-block:0}.EtEeYG_profileEditor textarea{resize:vertical}.EtEeYG_profileTagEditor{gap:4px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type{grid-template-columns:minmax(0,1fr) 30px;gap:5px;display:grid}.EtEeYG_profileTagEditor>div:first-of-type button{border:1px solid var(--dsw-alias-border-l2);width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_profileEditorActions{grid-template-columns:1fr 1fr;gap:6px;margin-top:2px;display:grid}.EtEeYG_profileEditorActions button{min-width:0;padding-inline:6px;font-size:12px}.EtEeYG_modePanel{flex:1;min-height:0;display:none}.EtEeYG_modePanel[data-active]{display:flex}.EtEeYG_modeTabs{background:var(--dsw-alias-bg-layer-3);border-radius:9px;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px 12px;padding:3px;display:grid}.EtEeYG_modeTabs button{min-height:30px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_modeTabs button:hover{color:var(--dsw-alias-label-primary)}.EtEeYG_modeTabs button[aria-selected=true]{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1)}.EtEeYG_modeTabs small{min-width:18px;color:var(--dsw-alias-brand-primary);font-size:10px;line-height:14px}.EtEeYG_rosterHeader{justify-content:space-between;align-items:center;min-height:32px;padding:0 8px 8px 16px;display:flex}.EtEeYG_rosterTitle{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.EtEeYG_rosterActions{align-items:center;gap:2px;display:flex}.EtEeYG_rosterAction{width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.EtEeYG_rosterAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_rosterActions .EtEeYG_rosterAction{position:relative}.EtEeYG_rosterActions .EtEeYG_rosterAction small{background:var(--dsw-alias-bg-layer-3);min-width:14px;height:14px;color:var(--dsw-alias-label-secondary);box-sizing:border-box;border-radius:7px;place-items:center;padding:0 3px;font-size:9px;line-height:12px;display:grid;position:absolute;top:1px;right:0}.EtEeYG_conversationList{flex:1;min-height:0;padding:0 8px;overflow:auto}.EtEeYG_conversationRow{width:100%;color:inherit;background:0 0;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.EtEeYG_conversationRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_conversationRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_conversationSelect{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px;display:flex}.EtEeYG_conversationMenu{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:7px;place-items:center;margin-right:5px;padding:0;display:grid}.EtEeYG_conversationRow:hover .EtEeYG_conversationMenu,.EtEeYG_conversationRow:focus-within .EtEeYG_conversationMenu,.EtEeYG_conversationMenu[aria-expanded=true]{opacity:1}.EtEeYG_conversationMenu:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.EtEeYG_conversationMenu:disabled{cursor:default;opacity:.45}.EtEeYG_avatar{background:var(--dsw-alias-interactive-bg-active);width:34px;height:34px;color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;font-size:12px;line-height:18px;display:grid;position:relative;overflow:visible}.EtEeYG_conversationUnreadBadge{border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-state-error-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted);box-sizing:border-box;pointer-events:none;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;line-height:14px;display:grid;position:absolute;top:-6px;right:-7px}.EtEeYG_conversationText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.EtEeYG_conversationHeader{align-items:center;gap:8px;min-width:0;display:flex}.EtEeYG_conversationHeader strong{flex:1;min-width:0}.EtEeYG_conversationTime{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;font-weight:400;line-height:16px}.EtEeYG_conversationText strong,.EtEeYG_conversationText small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_conversationText strong{font-size:13px;line-height:20px}.EtEeYG_conversationText small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_more{background:var(--dsw-alias-button-elevated-fill);color:var(--dsw-alias-label-secondary);margin:8px}.EtEeYG_more:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationList{max-height:min(320px,48vh);display:grid;overflow:auto}.EtEeYG_hiddenConversationRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 2px;display:grid}.EtEeYG_hiddenConversationRow:last-child{border-bottom:0}.EtEeYG_hiddenConversationRow .EtEeYG_avatar{width:30px;height:30px}.EtEeYG_hiddenConversationRow>span:nth-child(2){min-width:0;display:grid}.EtEeYG_hiddenConversationRow strong,.EtEeYG_hiddenConversationRow small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_hiddenConversationRow strong{font-size:12px;line-height:18px}.EtEeYG_hiddenConversationRow small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.EtEeYG_hiddenConversationRow>button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;padding:0 9px;font-size:11px}.EtEeYG_hiddenConversationRow>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_hiddenConversationRow>button:disabled{cursor:default;opacity:.55}.EtEeYG_conversationPreferenceError{color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:17px}.EtEeYG_thread{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.EtEeYG_threadHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:56px;padding:0 14px;display:flex}.EtEeYG_threadTitle{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_threadTitle strong,.EtEeYG_threadTitle small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_threadHeader small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_threadAction{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_threadAction:hover,.EtEeYG_threadAction[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupAccessNotice{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex:none;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:8px 10px;padding:11px 14px;display:grid}.EtEeYG_groupAccessNotice[data-status=blocked],.EtEeYG_groupAccessNotice[data-status=not-member]{background:var(--dsw-alias-interactive-bg-hover-danger)}.EtEeYG_groupAccessNotice[data-compact]{grid-template-columns:20px minmax(0,1fr);padding:12px 16px}.EtEeYG_groupAccessIcon{min-height:20px;color:var(--dsw-alias-label-secondary);place-items:center;display:grid}.EtEeYG_groupAccessNotice[data-status=loading] .EtEeYG_groupAccessIcon svg,.EtEeYG_groupAccessNotice[data-status=recovering] .EtEeYG_groupAccessIcon svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupAccessCopy{gap:2px;min-width:0;display:grid}.EtEeYG_groupAccessCopy strong{font-size:12px;line-height:18px}.EtEeYG_groupAccessCopy small{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:11px;line-height:17px}.EtEeYG_groupAccessActions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.EtEeYG_groupAccessNotice[data-compact] .EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupAccessActions button{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:11px;line-height:16px;display:flex}.EtEeYG_groupAccessActions button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_groupAccessActions button:disabled{cursor:default;opacity:.55}.EtEeYG_groupDetails{z-index:4;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);width:min(360px,100%);min-width:0;box-shadow:var(--dsw-shadow-lv2);flex-direction:column;display:flex;position:absolute;top:56px;bottom:0;right:0;overflow:hidden}.EtEeYG_groupDetailsHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:12px;min-height:54px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupDetailsHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.EtEeYG_groupDetailsHeader strong{font-size:14px;line-height:21px}.EtEeYG_groupDetailsHeader small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupDetailsHeader button,.EtEeYG_groupMemberHeading button,.EtEeYG_groupMemberRemove{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_groupDetailsHeader button:hover,.EtEeYG_groupMemberHeading button:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_groupDetailsLoading{color:var(--dsw-alias-label-tertiary);margin:auto;font-size:12px}.EtEeYG_groupSummary{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:16px;display:grid}.EtEeYG_groupSummary>strong{font-size:15px;line-height:22px}.EtEeYG_groupSummary>code{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.EtEeYG_groupSummary>p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:12px;line-height:18px}.EtEeYG_groupSummary dl{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;display:grid}.EtEeYG_groupSummary dl>div{gap:1px;display:grid}.EtEeYG_groupSummary dt{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_groupSummary dd{color:var(--dsw-alias-label-primary);margin:0;font-size:12px}.EtEeYG_groupInvite{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;gap:5px;padding:12px 16px;display:grid}.EtEeYG_groupInvite label{color:var(--dsw-alias-label-secondary);font-size:11px}.EtEeYG_groupInvite>div{grid-template-columns:minmax(0,1fr) 32px;gap:6px;display:grid}.EtEeYG_groupInvite input{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;border-radius:7px;padding:0 9px;font-size:12px}.EtEeYG_groupInvite button{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.EtEeYG_groupInvite button:disabled{cursor:default;opacity:.7}.EtEeYG_groupInvite button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupInviteStatus{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-tertiary);margin:0;font-size:10px;line-height:16px}.EtEeYG_groupInviteStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupInviteStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberSection{flex-direction:column;flex:1;min-height:0;display:flex}.EtEeYG_groupMemberHeading{flex:none;justify-content:space-between;align-items:center;min-height:40px;padding:0 12px 0 16px;display:flex}.EtEeYG_groupMemberHeading strong{font-size:12px;line-height:18px}.EtEeYG_groupMemberHeading button[data-busy] svg{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_groupMemberRefreshStatus{overflow-wrap:anywhere;min-height:22px;color:var(--dsw-alias-label-tertiary);flex:none;margin:0;padding:2px 16px 4px;font-size:10px;line-height:16px}.EtEeYG_groupMemberRefreshStatus[data-state=success]{color:var(--dsw-alias-state-success-primary)}.EtEeYG_groupMemberRefreshStatus[data-state=error]{color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupMemberList{min-height:0;padding:0 8px;overflow:auto}.EtEeYG_groupMemberRow{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:30px minmax(0,1fr) auto 28px;align-items:center;gap:8px;min-height:48px;padding:4px 6px;display:grid}.EtEeYG_groupMemberAvatar{background:var(--dsw-alias-interactive-bg-active);width:30px;height:30px;color:var(--dsw-alias-brand-primary);border-radius:50%;place-items:center;font-size:11px;display:grid}.EtEeYG_groupMemberIdentity{flex-direction:column;min-width:0;display:flex}.EtEeYG_groupMemberIdentity strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:12px;line-height:18px;display:flex;overflow:hidden}.EtEeYG_groupMemberIdentity strong small{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:4px;padding:0 4px;font-size:9px}.EtEeYG_groupMemberIdentity>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:15px;overflow:hidden}.EtEeYG_groupMemberRole{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:10px}.EtEeYG_groupMemberRemove:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.EtEeYG_groupDetailsFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 16px;display:flex}.EtEeYG_groupDetailsFooter small{color:var(--dsw-alias-label-tertiary);font-size:10px}.EtEeYG_dangerText{color:var(--dsw-alias-state-error-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.EtEeYG_dangerText:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.EtEeYG_groupDetailsError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);flex:none;padding:8px 12px;font-size:11px;line-height:17px}.EtEeYG_summaryTrigger{min-height:30px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryTrigger:disabled{cursor:default;opacity:.7}.EtEeYG_summaryTrigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.EtEeYG_summaryTrigger>svg:first-child{flex:none}.EtEeYG_summaryPanel{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:0;max-height:min(220px,33%);color:var(--dsw-alias-label-primary);border-radius:10px;flex:0 33%;margin:8px 10px 0;overflow:hidden}.EtEeYG_summaryPanel[data-collapsed]{flex-basis:auto;max-height:42px}.EtEeYG_summaryHeader{border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:9px;min-height:38px;padding:0 8px 0 12px;display:flex}.EtEeYG_summaryHeader>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;display:flex}.EtEeYG_summaryHeader>span strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryHeader>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:16px;overflow:hidden}.EtEeYG_summaryHeader>button{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_summaryHeader>button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed{width:100%;min-height:40px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:0 10px 0 12px;display:grid}.EtEeYG_summaryCollapsed:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryCollapsed>span{color:var(--dsw-alias-brand-primary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.EtEeYG_summaryCollapsed>small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_summaryCollapsed>em{color:var(--dsw-alias-state-warn-label);white-space:nowrap;font-size:11px;font-style:normal}.EtEeYG_summaryLoading{min-height:88px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child{animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_summaryLoading>span{flex-direction:column;gap:2px;display:flex}.EtEeYG_summaryLoading strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.EtEeYG_summaryLoading small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.EtEeYG_summaryError{min-height:58px;color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summaryError>span{overflow-wrap:anywhere;min-width:0}.EtEeYG_summaryError button,.EtEeYG_summaryStale button{border:1px solid var(--dsw-alias-border-l2);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:7px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:flex}.EtEeYG_summaryError button:hover,.EtEeYG_summaryStale button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryStale{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-state-warn-label);justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryBody{gap:10px;max-height:118px;padding:10px 12px;display:grid;overflow:auto}.EtEeYG_summarySection h4{color:var(--dsw-alias-label-primary);align-items:center;gap:6px;margin:0 0 4px;font-size:12px;line-height:18px;display:flex}.EtEeYG_summarySection h4>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_summarySection ul{color:var(--dsw-alias-label-secondary);gap:2px;margin:0;padding-left:18px;font-size:11px;line-height:17px;display:grid}.EtEeYG_summarySection li{overflow-wrap:anywhere;padding-left:1px}.EtEeYG_summarySection p{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:17px}.EtEeYG_summarySection b{color:var(--dsw-alias-label-primary);font-weight:500}.EtEeYG_summaryActions{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px;min-height:34px;padding:0 8px;display:grid}.EtEeYG_summaryActions button{min-height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:16px;display:flex}.EtEeYG_summaryActions button:hover{background:var(--dsw-alias-interactive-bg-hover)}.EtEeYG_summaryPrivacy{border-top:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 10px;font-size:10px;line-height:15px;display:flex}.EtEeYG_summaryPrivacy svg{flex:none}.EtEeYG_summaryCopyError{color:var(--dsw-alias-state-error-primary);padding:4px 10px;font-size:10px;line-height:15px}@keyframes EtEeYG_summary-spin{to{transform:rotate(360deg)}}.EtEeYG_back{display:none}.EtEeYG_historyShell{flex:1;min-height:0;position:relative}.EtEeYG_history{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;display:flex;overflow:auto}.EtEeYG_historyLoading{color:var(--dsw-alias-label-tertiary);align-items:center;gap:8px;margin:auto;font-size:12px;line-height:18px;display:flex}.EtEeYG_historyLoading>svg{color:var(--dsw-alias-brand-primary);animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_latestMessages{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);min-width:30px;min-height:30px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;font:inherit;border-radius:16px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:11px;line-height:16px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.EtEeYG_latestMessages:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_message{align-self:flex-start;max-width:min(78%,420px)}.EtEeYG_message[data-outgoing]{align-self:flex-end}.EtEeYG_messageMeta{color:var(--dsw-alias-label-tertiary);justify-content:space-between;gap:10px;margin-bottom:3px;font-size:11px;line-height:16px;display:flex}.EtEeYG_message p,.EtEeYG_attachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_message[data-outgoing] p,.EtEeYG_message[data-outgoing] .EtEeYG_attachment{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mention{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-brand-primary);border-radius:3px;padding:0 2px;font-weight:600}.EtEeYG_pendingMessage{grid-template-columns:auto minmax(0,1fr);align-self:flex-end;align-items:end;gap:7px;max-width:min(78%,420px);display:grid}.EtEeYG_pendingMessageSpinner{color:var(--dsw-alias-label-tertiary);margin-bottom:12px;animation:1s linear infinite EtEeYG_summary-spin}.EtEeYG_pendingMessageContent{opacity:.82;min-width:0}.EtEeYG_pendingMessageContent>p,.EtEeYG_pendingAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:9px 11px;line-height:20px}.EtEeYG_pendingAttachment{align-items:center;gap:9px;display:flex}.EtEeYG_pendingAttachment>svg{color:var(--dsw-alias-label-secondary);flex:none}.EtEeYG_pendingAttachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_pendingAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_pendingAttachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_pendingMessageContent>.EtEeYG_pendingCaption{color:var(--dsw-alias-label-secondary);background:0 0;border:0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_attachment{cursor:pointer;font:inherit;text-align:left;align-items:center;gap:12px;display:flex}.EtEeYG_attachment span{flex-direction:column;min-width:0;display:flex}.EtEeYG_attachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_attachment small{color:var(--dsw-alias-label-tertiary)}.EtEeYG_attachment:disabled{cursor:default}.EtEeYG_imageAttachment{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:280px;max-width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;text-align:left;border-radius:12px;margin:0;padding:0;display:block;overflow:hidden}.EtEeYG_imageAttachment img{background:var(--dsw-alias-bg-layer-1);object-fit:contain;width:100%;max-height:280px;display:block}.EtEeYG_imageAttachment span{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px;padding:7px 9px;display:grid}.EtEeYG_imageAttachment strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.EtEeYG_imageAttachment small{color:var(--dsw-alias-label-tertiary);grid-column:1}.EtEeYG_imageAttachment svg{grid-area:1/2/span 2}.EtEeYG_message .EtEeYG_caption{color:var(--dsw-alias-label-secondary);background:0 0;margin-top:4px;padding:4px 8px;font-size:12px}.EtEeYG_inlineError{color:var(--dsw-alias-state-error-primary);margin-top:4px;display:block}.EtEeYG_empty{color:var(--dsw-alias-label-tertiary);text-align:center;margin:auto;padding:20px}.EtEeYG_composer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;padding:10px 14px 14px;display:grid}.EtEeYG_filePicker{border:1px solid var(--dsw-alias-border-l2);width:32px;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_filePicker:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.EtEeYG_filePicker:disabled{opacity:.45;cursor:default}.EtEeYG_fileInput{display:none}.EtEeYG_composeInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;gap:6px;min-width:0;padding:9px 10px 8px;display:grid;position:relative}.EtEeYG_mentionCandidates{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-height:180px;box-shadow:var(--dsw-shadow-lv2);border-radius:8px;padding:5px;position:absolute;bottom:calc(100% + 7px);left:0;right:0;overflow:auto}.EtEeYG_mentionCandidates button{width:100%;min-height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:8px;padding:4px 7px;display:grid}.EtEeYG_mentionCandidates button:hover,.EtEeYG_mentionCandidates button[aria-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.EtEeYG_mentionCandidates button>span{background:var(--dsw-alias-bg-layer-3);width:28px;height:28px;color:var(--dsw-alias-brand-primary);border-radius:50%;grid-row:1/span 2;place-items:center;font-size:10px;display:grid}.EtEeYG_mentionCandidates strong,.EtEeYG_mentionCandidates small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.EtEeYG_mentionCandidates strong{align-self:end;font-size:12px;line-height:16px}.EtEeYG_mentionCandidates small{color:var(--dsw-alias-label-tertiary);align-self:start;font-size:10px;line-height:14px}.EtEeYG_composeInput:focus-within{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.EtEeYG_composeInput textarea{resize:none;background:0 0;border:0;border-radius:0;outline:0;min-width:0;min-height:42px;padding:0}.EtEeYG_composeInput textarea:focus-visible{outline:0}.EtEeYG_composeActions{justify-content:space-between;align-items:center;min-height:32px;display:flex}.EtEeYG_filePreview{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:10px;align-items:center;gap:8px;width:min(240px,100% - 8px);min-height:36px;padding:5px 28px 5px 8px;display:flex;position:relative}.EtEeYG_filePreview[data-image]{width:72px;height:72px;min-height:0;padding:0}.EtEeYG_filePreview img{object-fit:cover;border-radius:9px;width:72px;height:72px;display:block}.EtEeYG_filePreviewIcon{color:var(--dsw-alias-label-secondary);flex:none;place-items:center;display:grid}.EtEeYG_filePreviewName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.EtEeYG_removeFile{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-button-floating-fill);width:22px;height:22px;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv1);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.EtEeYG_removeFile:hover{background:var(--dsw-alias-button-floating-hover)}.EtEeYG_send{background:var(--dsw-alias-button-primary-fill);width:32px;height:32px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.EtEeYG_send:disabled{opacity:.45;cursor:default}.EtEeYG_error{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;flex:none;padding:8px 14px;font-size:12px;line-height:18px}.EtEeYG_pending{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);border-radius:9px;padding:7px 10px;font-size:12px;line-height:18px;position:absolute;bottom:14px;right:14px}@media (width<=620px){.EtEeYG_trigger span{display:none}.EtEeYG_trigger{justify-content:center;width:36px;padding:0}.EtEeYG_drawer{width:calc(100vw - 56px);min-width:0}.EtEeYG_chat{grid-template-columns:1fr}.EtEeYG_thread{display:none}.EtEeYG_thread[data-visible]{display:flex}.EtEeYG_roster[data-hidden]{display:none}.EtEeYG_back{display:grid}.EtEeYG_summaryPanel{max-height:min(190px,33%);margin-left:8px;margin-right:8px}.EtEeYG_summaryTrigger>span{display:none}.EtEeYG_summaryTrigger{justify-content:center;width:30px;padding:0}.EtEeYG_summaryTrigger>svg:last-child{display:none}}@media (height<=420px){.EtEeYG_drawer{border-radius:10px}.EtEeYG_drawerHeader{height:44px;padding:0 8px 0 12px}.EtEeYG_drawerHeader h2{font-size:14px;line-height:20px}.EtEeYG_drawerHeader button,.EtEeYG_back{width:28px;height:28px}.EtEeYG_centerState,.EtEeYG_threadEmpty{justify-content:flex-start;gap:8px;min-height:0;padding:12px;overflow:auto}.EtEeYG_registrationIcon{width:32px;height:32px}.EtEeYG_composeBackdrop{place-items:start center;padding:8px;inset:44px 0 0}.EtEeYG_composeCard{border-radius:10px;gap:8px;padding:12px}.EtEeYG_recoveryForm{gap:8px}.EtEeYG_identityCard{border-radius:8px;margin:6px 8px;padding:7px 9px}.EtEeYG_profileBio,.EtEeYG_profileTags,.EtEeYG_identityStatus{display:none}.EtEeYG_modeTabs{margin:0 8px 4px}.EtEeYG_modeTabs button{min-height:26px}.EtEeYG_rosterHeader{min-height:28px;padding:0 4px 2px 12px}.EtEeYG_conversationSelect{gap:7px;padding:5px 7px}.EtEeYG_avatar{width:28px;height:28px}.EtEeYG_threadHeader{gap:5px;height:44px;padding:0 8px}.EtEeYG_groupAccessNotice{grid-template-columns:18px minmax(0,1fr);gap:6px 8px;padding:8px}.EtEeYG_groupAccessActions{grid-column:2;justify-content:flex-start}.EtEeYG_groupDetails{top:44px;overflow-y:auto}.EtEeYG_groupDetailsHeader{z-index:2;background:var(--dsw-alias-bg-layer-1);min-height:44px;padding-left:12px;position:sticky;top:0}.EtEeYG_groupSummary{gap:2px;padding:8px 12px}.EtEeYG_groupSummary dl{gap:6px;margin-top:3px}.EtEeYG_groupInvite{gap:3px;padding:7px 12px}.EtEeYG_groupMemberSection{flex:none}.EtEeYG_groupMemberHeading{min-height:32px;padding-left:12px}.EtEeYG_groupMemberList{overflow:visible}.EtEeYG_groupMemberRow{min-height:40px}.EtEeYG_groupDetailsFooter{background:var(--dsw-alias-bg-layer-1);min-height:40px;padding:0 12px;position:sticky;bottom:0}.EtEeYG_history{gap:6px;padding:8px}.EtEeYG_composer{gap:4px;padding:5px 8px 7px}.EtEeYG_composeInput{gap:3px;padding:5px 7px 4px}.EtEeYG_composeInput textarea{height:28px;min-height:28px}.EtEeYG_composeActions{min-height:28px}.EtEeYG_filePicker,.EtEeYG_send{width:28px;height:28px}.EtEeYG_mentionCandidates{max-height:72px}.EtEeYG_compactModal.EtEeYG_compactModal{border-radius:12px;gap:10px;max-height:calc(100vh - 48px);padding-bottom:12px}}@media (hover:none){.EtEeYG_conversationMenu{opacity:1}}@media (prefers-reduced-motion:reduce){.EtEeYG_drawer{scroll-behavior:auto;transition:none}.EtEeYG_summaryLoading>svg,.EtEeYG_summaryTrigger:disabled>svg:first-child,.EtEeYG_historyLoading>svg,.EtEeYG_recoveryProgressPanel>svg,.EtEeYG_groupMemberHeading button[data-busy] svg,.EtEeYG_pendingMessageSpinner{animation:none}}";
7879
+ const tagId$4 = "@awiki/dsh-plugin/AwikiOverlay.module.css";
7880
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
7400
7881
  const tag = document.createElement("style");
7401
7882
  tag.dataset.plugin = "@awiki/dsh-plugin";
7402
- tag.dataset.pluginCss = tagId$3;
7403
- tag.textContent = css$3;
7883
+ tag.dataset.pluginCss = tagId$4;
7884
+ tag.textContent = css$4;
7404
7885
  document.head.appendChild(tag);
7405
7886
  }
7406
7887
  var _dsh_awiki_css_AwikiOverlay_module_css_default = {
@@ -7458,7 +7939,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7458
7939
  "groupMemberRole": "EtEeYG_groupMemberRole",
7459
7940
  "groupMemberRow": "EtEeYG_groupMemberRow",
7460
7941
  "groupMemberSection": "EtEeYG_groupMemberSection",
7461
- "groupRecoveryNotice": "EtEeYG_groupRecoveryNotice",
7462
7942
  "groupSummary": "EtEeYG_groupSummary",
7463
7943
  "hiddenConversationList": "EtEeYG_hiddenConversationList",
7464
7944
  "hiddenConversationRow": "EtEeYG_hiddenConversationRow",
@@ -7807,36 +8287,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7807
8287
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryHandle,
7808
8288
  children: progress.fullHandle
7809
8289
  }),
7810
- (0, react_jsx_runtime.jsxs)("div", {
8290
+ (0, react_jsx_runtime.jsx)("div", {
7811
8291
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryImpact,
7812
- children: [
7813
- (0, react_jsx_runtime.jsxs)("p", {
7814
- "data-tone": progress.localOrdinaryDataWillMigrate ? "success" : "neutral",
7815
- children: [
7816
- progress.localOrdinaryDataWillMigrate ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
7817
- "普通本地会话数据",
7818
- progress.localOrdinaryDataWillMigrate ? "将迁移到恢复后的身份" : "不会迁移"
7819
- ]
7820
- }),
7821
- progress.unsupportedE2eeGroupCount > 0 && (0, react_jsx_runtime.jsxs)("p", {
7822
- "data-tone": "neutral",
7823
- children: [
7824
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
7825
- "有 ",
7826
- progress.unsupportedE2eeGroupCount,
7827
- " 个加密群聊无法自动迁移。"
7828
- ]
7829
- }),
7830
- progress.unsupportedDidOnlyGroupCount > 0 && (0, react_jsx_runtime.jsxs)("p", {
7831
- "data-tone": "neutral",
7832
- children: [
7833
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
7834
- "有 ",
7835
- progress.unsupportedDidOnlyGroupCount,
7836
- " 个仅 DID 群聊需要手动处理。"
7837
- ]
7838
- })
7839
- ]
8292
+ children: (0, react_jsx_runtime.jsxs)("p", {
8293
+ "data-tone": progress.localOrdinaryDataWillMigrate ? "success" : "neutral",
8294
+ children: [
8295
+ progress.localOrdinaryDataWillMigrate ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutline16, { size: 14 }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutline16, { size: 14 }),
8296
+ "普通本地会话数据",
8297
+ progress.localOrdinaryDataWillMigrate ? "将迁移到恢复后的身份" : "不会迁移"
8298
+ ]
8299
+ })
7840
8300
  }),
7841
8301
  preCommit ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("p", {
7842
8302
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.recoveryConfirmationCopy,
@@ -7881,13 +8341,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7881
8341
  }
7882
8342
  //#endregion
7883
8343
  //#region \0dsh-awiki-css:AwikiIdentityAccess.module.css.mjs
7884
- const css$2 = ".r_slHG_accessFlow{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.r_slHG_identityIcon,.r_slHG_progressIcon{width:48px;height:48px;color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-interactive-bg-active);border-radius:50%;place-items:center;margin:0 auto;display:grid}.r_slHG_progressIcon svg{animation:1s linear infinite r_slHG_identity-spin}@keyframes r_slHG_identity-spin{to{transform:rotate(360deg)}}.r_slHG_headingGroup{text-align:center;gap:6px;display:grid}.r_slHG_headingGroup h3,.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{margin:0}.r_slHG_headingGroup h3{color:var(--dsw-alias-label-primary);font-size:18px;line-height:26px}.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{font-size:13px;line-height:20px}.r_slHG_headingGroup strong{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}.r_slHG_identitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;padding:12px 14px;font-size:12px;line-height:18px;display:grid}.r_slHG_identitySummary span{color:var(--dsw-alias-label-tertiary)}.r_slHG_identitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.r_slHG_field{color:var(--dsw-alias-label-secondary);text-align:left;gap:6px;font-size:13px;line-height:20px;display:grid}.r_slHG_field input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:40px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:8px;padding:0 12px}.r_slHG_field input:focus-visible,.r_slHG_primary:focus-visible,.r_slHG_secondary:focus-visible,.r_slHG_linkButton:focus-visible,.r_slHG_dangerLink:focus-visible,.r_slHG_dangerButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.r_slHG_primary,.r_slHG_secondary,.r_slHG_dangerButton{cursor:pointer;min-height:40px;font:inherit;border-radius:8px;padding:0 14px}.r_slHG_primary{color:var(--dsw-alias-label-primary-inverted);background:var(--dsw-alias-button-primary-fill);border:0}.r_slHG_primary:hover{background:var(--dsw-alias-button-primary-hover)}.r_slHG_secondary{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.r_slHG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.r_slHG_primary:disabled,.r_slHG_secondary:disabled,.r_slHG_linkButton:disabled,.r_slHG_dangerLink:disabled,.r_slHG_dangerButton:disabled{cursor:default;opacity:.5}.r_slHG_linkButton,.r_slHG_dangerLink{cursor:pointer;min-height:32px;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.r_slHG_linkButton{color:var(--dsw-alias-brand-primary)}.r_slHG_dangerLink{color:var(--dsw-alias-state-error-primary)}.r_slHG_actionStack{gap:8px;display:grid}.r_slHG_existingNotice,.r_slHG_dangerPanel{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:10px;padding:12px 14px;display:grid}.r_slHG_existingNotice strong{color:var(--dsw-alias-label-primary)}.r_slHG_dangerPanel{border-left-color:var(--dsw-alias-state-error-primary)}.r_slHG_dangerPanel strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.r_slHG_confirmation{color:var(--dsw-alias-label-secondary);align-items:flex-start;gap:8px;font-size:12px;line-height:18px;display:flex}.r_slHG_confirmation input{width:16px;height:16px;accent-color:var(--dsw-alias-state-error-primary);flex:none;margin:1px 0 0}.r_slHG_dangerButton{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary);background:0 0}.r_slHG_dangerButton:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.r_slHG_recoveryHelp{border-top:1px solid var(--dsw-alias-border-l1);gap:10px;padding-top:14px;display:grid}.r_slHG_recoveryHelp p{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}.r_slHG_notice,.r_slHG_error{overflow-wrap:anywhere;font-size:12px;line-height:18px}.r_slHG_notice{color:var(--dsw-alias-label-secondary)}.r_slHG_error{color:var(--dsw-alias-state-error-primary)}@media (height<=560px){.r_slHG_accessFlow{gap:8px}.r_slHG_identityIcon,.r_slHG_progressIcon{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){.r_slHG_primary,.r_slHG_secondary,.r_slHG_linkButton,.r_slHG_dangerLink,.r_slHG_dangerButton{transition-duration:.001ms!important}.r_slHG_progressIcon svg{animation-duration:.001ms!important}}";
7885
- const tagId$2 = "@awiki/dsh-plugin/AwikiIdentityAccess.module.css";
7886
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
8344
+ const css$3 = ".r_slHG_accessFlow{width:100%;min-width:0;color:var(--dsw-alias-label-secondary);gap:14px;display:grid}.r_slHG_identityIcon,.r_slHG_progressIcon{width:48px;height:48px;color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-interactive-bg-active);border-radius:50%;place-items:center;margin:0 auto;display:grid}.r_slHG_progressIcon svg{animation:1s linear infinite r_slHG_identity-spin}@keyframes r_slHG_identity-spin{to{transform:rotate(360deg)}}.r_slHG_headingGroup{text-align:center;gap:6px;display:grid}.r_slHG_headingGroup h3,.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{margin:0}.r_slHG_headingGroup h3{color:var(--dsw-alias-label-primary);font-size:18px;line-height:26px}.r_slHG_headingGroup p,.r_slHG_existingNotice p,.r_slHG_dangerPanel p{font-size:13px;line-height:20px}.r_slHG_headingGroup strong{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}.r_slHG_identitySummary{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;padding:12px 14px;font-size:12px;line-height:18px;display:grid}.r_slHG_identitySummary span{color:var(--dsw-alias-label-tertiary)}.r_slHG_identitySummary strong{overflow-wrap:anywhere;min-width:0;color:var(--dsw-alias-label-primary)}.r_slHG_field{color:var(--dsw-alias-label-secondary);text-align:left;gap:6px;font-size:13px;line-height:20px;display:grid}.r_slHG_field input{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:40px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:8px;padding:0 12px}.r_slHG_field input:focus-visible,.r_slHG_primary:focus-visible,.r_slHG_secondary:focus-visible,.r_slHG_linkButton:focus-visible,.r_slHG_dangerLink:focus-visible,.r_slHG_dangerButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.r_slHG_primary,.r_slHG_secondary,.r_slHG_dangerButton{cursor:pointer;min-height:40px;font:inherit;border-radius:8px;padding:0 14px}.r_slHG_primary{color:var(--dsw-alias-label-primary-inverted);background:var(--dsw-alias-button-primary-fill);border:0}.r_slHG_primary:hover{background:var(--dsw-alias-button-primary-hover)}.r_slHG_secondary{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.r_slHG_secondary:hover{background:var(--dsw-alias-interactive-bg-hover)}.r_slHG_primary:disabled,.r_slHG_secondary:disabled,.r_slHG_linkButton:disabled,.r_slHG_dangerLink:disabled,.r_slHG_dangerButton:disabled{cursor:default;opacity:.5}.r_slHG_linkButton,.r_slHG_dangerLink{cursor:pointer;min-height:32px;font:inherit;background:0 0;border:0;padding:0;font-size:12px}.r_slHG_linkButton{color:var(--dsw-alias-brand-primary)}.r_slHG_dangerLink{color:var(--dsw-alias-state-error-primary)}.r_slHG_actionStack{gap:8px;display:grid}.r_slHG_existingNotice,.r_slHG_dangerPanel{border-left:3px solid var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);gap:10px;padding:12px 14px;display:grid}.r_slHG_existingNotice strong{color:var(--dsw-alias-label-primary)}.r_slHG_dangerPanel{border-left-color:var(--dsw-alias-state-error-primary)}.r_slHG_dangerPanel strong{color:var(--dsw-alias-label-primary);font-size:13px;line-height:20px}.r_slHG_confirmation{color:var(--dsw-alias-label-secondary);align-items:flex-start;gap:8px;font-size:12px;line-height:18px;display:flex}.r_slHG_confirmation input{width:16px;height:16px;accent-color:var(--dsw-alias-state-error-primary);flex:none;margin:1px 0 0}.r_slHG_dangerButton{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary);background:0 0}.r_slHG_dangerButton:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.r_slHG_recoveryHelp{border-top:1px solid var(--dsw-alias-border-l1);gap:10px;padding-top:14px;display:grid}.r_slHG_recoveryHelp p{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}.r_slHG_notice,.r_slHG_error{overflow-wrap:anywhere;font-size:12px;line-height:18px}.r_slHG_notice{color:var(--dsw-alias-label-secondary)}.r_slHG_error{color:var(--dsw-alias-state-error-primary)}.r_slHG_sas{letter-spacing:.2em;text-align:center;font-variant-numeric:tabular-nums;font-size:32px}@media (height<=560px){.r_slHG_accessFlow{gap:8px}.r_slHG_identityIcon,.r_slHG_progressIcon{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){.r_slHG_primary,.r_slHG_secondary,.r_slHG_linkButton,.r_slHG_dangerLink,.r_slHG_dangerButton{transition-duration:.001ms!important}.r_slHG_progressIcon svg{animation-duration:.001ms!important}}";
8345
+ const tagId$3 = "@awiki/dsh-plugin/AwikiIdentityAccess.module.css";
8346
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
7887
8347
  const tag = document.createElement("style");
7888
8348
  tag.dataset.plugin = "@awiki/dsh-plugin";
7889
- tag.dataset.pluginCss = tagId$2;
7890
- tag.textContent = css$2;
8349
+ tag.dataset.pluginCss = tagId$3;
8350
+ tag.textContent = css$3;
7891
8351
  document.head.appendChild(tag);
7892
8352
  }
7893
8353
  var _dsh_awiki_css_AwikiIdentityAccess_module_css_default = {
@@ -7909,6 +8369,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7909
8369
  "primary": "r_slHG_primary",
7910
8370
  "progressIcon": "r_slHG_progressIcon",
7911
8371
  "recoveryHelp": "r_slHG_recoveryHelp",
8372
+ "sas": "r_slHG_sas",
7912
8373
  "secondary": "r_slHG_secondary"
7913
8374
  };
7914
8375
  //#endregion
@@ -7947,6 +8408,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7947
8408
  const [signedOutAlternative, setSignedOutAlternative] = (0, react.useState)("none");
7948
8409
  const [replaceConfirmed, setReplaceConfirmed] = (0, react.useState)(false);
7949
8410
  const [loginFailed, setLoginFailed] = (0, react.useState)(false);
8411
+ const [joinContext, setJoinContext] = (0, react.useState)(null);
8412
+ const [joinProgress, setJoinProgress] = (0, react.useState)(null);
7950
8413
  (0, react.useEffect)(() => {
7951
8414
  if (retryDeadline === null) return;
7952
8415
  const update = () => {
@@ -7991,36 +8454,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7991
8454
  setRetrySeconds(cooldownSeconds);
7992
8455
  setNotice(`注册验证码已发送;${cooldownSeconds} 秒后可重新获取。`);
7993
8456
  };
7994
- const requestIdentityOtp = async () => {
7995
- setError(null);
7996
- setNotice(null);
7997
- const requestedHandle = handle.trim();
7998
- const requestedPhone = phone.trim();
7999
- const inspection = await props.inspectIdentityAccess({ handle: requestedHandle });
8000
- if (!inspection.ok) {
8001
- setError(inspection.error);
8002
- return;
8003
- }
8004
- if (inspection.value.status === "existing") {
8005
- const factorContext = {
8006
- fullHandle: inspection.value.fullHandle,
8007
- phone: requestedPhone
8008
- };
8009
- setRecoveryFactorContext(factorContext);
8010
- const recovery = await props.sendRecoveryOtp(factorContext);
8011
- if (!recovery.ok) {
8012
- setRecoveryFactorContext(null);
8013
- setError(recovery.error);
8014
- return;
8015
- }
8016
- setRecoveryFactorContext({
8017
- fullHandle: recovery.value.fullHandle,
8018
- phone: requestedPhone
8019
- });
8020
- return;
8021
- }
8022
- await requestRegistrationOtp();
8023
- };
8457
+ const requestIdentityOtp = requestRegistrationOtp;
8024
8458
  const completeRegistration = async () => {
8025
8459
  if (!registrationOtpSent) return;
8026
8460
  setError(null);
@@ -8033,10 +8467,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8033
8467
  setError(result.error);
8034
8468
  return;
8035
8469
  }
8470
+ if (result.value.status === "join-required") {
8471
+ setOtp("");
8472
+ setJoinContext({
8473
+ fullHandle: result.value.fullHandle,
8474
+ phone: phone.trim()
8475
+ });
8476
+ return;
8477
+ }
8036
8478
  setPhone("");
8037
8479
  setHandle("");
8038
8480
  resetIdentityEntry();
8039
8481
  };
8482
+ const beginJoin = async () => {
8483
+ setError(null);
8484
+ const result = await props.beginDeviceJoin();
8485
+ if (!result.ok) return setError(result.error);
8486
+ setJoinProgress(result.value);
8487
+ };
8488
+ const cancelJoin = async () => {
8489
+ setError(null);
8490
+ const result = await props.cancelDeviceJoin();
8491
+ if (!result.ok) return setError(result.error);
8492
+ setJoinContext(null);
8493
+ setJoinProgress(null);
8494
+ resetIdentityEntry();
8495
+ };
8496
+ const chooseRecovery = async () => {
8497
+ if (joinContext === null || !props.handleRecoveryPhoneEnabled) return;
8498
+ setError(null);
8499
+ const discarded = await props.cancelDeviceJoin();
8500
+ if (!discarded.ok) return setError(discarded.error);
8501
+ const recovery = await props.sendRecoveryOtp({
8502
+ fullHandle: joinContext.fullHandle,
8503
+ phone: joinContext.phone
8504
+ });
8505
+ if (!recovery.ok) return setError(recovery.error);
8506
+ setRecoveryFactorContext({
8507
+ fullHandle: recovery.value.fullHandle,
8508
+ phone: joinContext.phone
8509
+ });
8510
+ setJoinContext(null);
8511
+ };
8512
+ (0, react.useEffect)(() => {
8513
+ if (props.sessionStatus !== "unregistered" || joinContext !== null || joinProgress !== null || typeof props.getDeviceJoinStatus !== "function") return;
8514
+ let active = true;
8515
+ props.getDeviceJoinStatus().then((result) => {
8516
+ if (!active) return;
8517
+ if (!result.ok) setError(result.error);
8518
+ else if (result.value !== null) setJoinProgress(result.value);
8519
+ });
8520
+ return () => {
8521
+ active = false;
8522
+ };
8523
+ }, [props.sessionStatus]);
8524
+ (0, react.useEffect)(() => {
8525
+ if (joinProgress === null || [
8526
+ "authorized",
8527
+ "cancelled",
8528
+ "rejected",
8529
+ "expired"
8530
+ ].includes(joinProgress.phase)) return;
8531
+ const timer = setInterval(() => {
8532
+ props.getDeviceJoinStatus().then((result) => {
8533
+ if (!result.ok) setError(result.error);
8534
+ else if (result.value !== null) setJoinProgress(result.value);
8535
+ });
8536
+ }, 2e3);
8537
+ return () => {
8538
+ clearInterval(timer);
8539
+ };
8540
+ }, [joinProgress?.phase]);
8040
8541
  const login = async () => {
8041
8542
  setError(null);
8042
8543
  setLoginFailed(false);
@@ -8076,12 +8577,100 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8076
8577
  }
8077
8578
  });
8078
8579
  }
8079
- if (props.sessionStatus === "recovery-required") return (0, react_jsx_runtime.jsx)(Recovery, {
8080
- ...props,
8081
- ...revokedHandle === void 0 ? {} : { fixedHandle: revokedHandle },
8082
- requestTitle: "需要重新恢复身份",
8083
- requestDescription: "这个 Handle 已在另一台设备完成了更新恢复,当前设备的旧凭证因此失效。验证绑定手机号后即可继续使用本机数据。"
8084
- });
8580
+ if (props.sessionStatus === "recovery-required") return (0, react_jsx_runtime.jsx)(Recovery, {
8581
+ ...props,
8582
+ ...revokedHandle === void 0 ? {} : { fixedHandle: revokedHandle },
8583
+ requestTitle: "需要重新恢复身份",
8584
+ requestDescription: "这个 Handle 已在另一台设备完成了更新恢复,当前设备的旧凭证因此失效。验证绑定手机号后即可继续使用本机数据。"
8585
+ });
8586
+ if (props.sessionStatus === "unregistered" && joinProgress !== null) {
8587
+ const terminal = [
8588
+ "cancelled",
8589
+ "rejected",
8590
+ "expired"
8591
+ ].includes(joinProgress.phase);
8592
+ return (0, react_jsx_runtime.jsx)(AwikiIdentityPage, { children: (0, react_jsx_runtime.jsxs)("div", {
8593
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.accessFlow,
8594
+ children: [
8595
+ (0, react_jsx_runtime.jsx)("div", {
8596
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.identityIcon,
8597
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconUserOutline16, { size: 24 })
8598
+ }),
8599
+ (0, react_jsx_runtime.jsxs)("div", {
8600
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
8601
+ children: [(0, react_jsx_runtime.jsx)("h3", { children: joinProgress.phase === "sas-ready" ? "核对安全码" : terminal ? "设备加入已结束" : "正在加入设备" }), (0, react_jsx_runtime.jsx)("p", { children: joinProgress.phase === "sas-ready" ? "请在已有管理设备上核对下面的 6 位安全码;只有两端一致时才批准。" : joinProgress.phase === "rejected" ? "管理设备拒绝了这次加入。" : joinProgress.phase === "expired" ? "这次设备加入已过期,请重新验证手机号。" : joinProgress.phase === "cancelled" ? "这次设备加入已取消。" : "请在已有 AWiki Me 或 CLI 管理设备上处理加入请求。" })]
8602
+ }),
8603
+ joinProgress.phase === "sas-ready" && (0, react_jsx_runtime.jsx)("strong", {
8604
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.sas,
8605
+ children: joinProgress.sas
8606
+ }),
8607
+ !terminal && (0, react_jsx_runtime.jsxs)("small", {
8608
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.notice,
8609
+ role: "status",
8610
+ children: ["有效期至 ", joinProgress.expiresAt]
8611
+ }),
8612
+ (0, react_jsx_runtime.jsx)("button", {
8613
+ type: "button",
8614
+ className: terminal ? _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary : _dsh_awiki_css_AwikiIdentityAccess_module_css_default.secondary,
8615
+ disabled: props.pending,
8616
+ onClick: () => {
8617
+ cancelJoin();
8618
+ },
8619
+ children: terminal ? "返回身份入口" : "取消加入"
8620
+ }),
8621
+ error !== null && (0, react_jsx_runtime.jsx)("small", {
8622
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.error,
8623
+ role: "alert",
8624
+ children: error
8625
+ })
8626
+ ]
8627
+ }) });
8628
+ }
8629
+ if (props.sessionStatus === "unregistered" && joinContext !== null) return (0, react_jsx_runtime.jsx)(AwikiIdentityPage, { children: (0, react_jsx_runtime.jsxs)("div", {
8630
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.accessFlow,
8631
+ children: [
8632
+ (0, react_jsx_runtime.jsx)("div", {
8633
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.identityIcon,
8634
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconUserOutline16, { size: 24 })
8635
+ }),
8636
+ (0, react_jsx_runtime.jsxs)("div", {
8637
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
8638
+ children: [(0, react_jsx_runtime.jsx)("h3", { children: "这个 Handle 已存在" }), (0, react_jsx_runtime.jsx)("p", { children: "推荐把当前 DSH 作为新设备加入,原身份和其他设备会继续有效。" })]
8639
+ }),
8640
+ (0, react_jsx_runtime.jsx)("button", {
8641
+ type: "button",
8642
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary,
8643
+ disabled: props.pending,
8644
+ onClick: () => {
8645
+ beginJoin();
8646
+ },
8647
+ children: "加入新设备(推荐)"
8648
+ }),
8649
+ props.handleRecoveryPhoneEnabled && (0, react_jsx_runtime.jsx)("button", {
8650
+ type: "button",
8651
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.dangerLink,
8652
+ disabled: props.pending,
8653
+ onClick: () => {
8654
+ chooseRecovery();
8655
+ },
8656
+ children: "恢复 Handle(会替换 DID)"
8657
+ }),
8658
+ (0, react_jsx_runtime.jsx)("button", {
8659
+ type: "button",
8660
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.secondary,
8661
+ disabled: props.pending,
8662
+ onClick: () => {
8663
+ cancelJoin();
8664
+ },
8665
+ children: "取消"
8666
+ }),
8667
+ error !== null && (0, react_jsx_runtime.jsx)("small", {
8668
+ className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.error,
8669
+ role: "alert",
8670
+ children: error
8671
+ })
8672
+ ]
8673
+ }) });
8085
8674
  if (props.sessionStatus === "signed-out") {
8086
8675
  if (signedOutAlternative === "recover") return (0, react_jsx_runtime.jsx)(Recovery, {
8087
8676
  ...props,
@@ -8210,16 +8799,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8210
8799
  }),
8211
8800
  (0, react_jsx_runtime.jsxs)("div", {
8212
8801
  className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.headingGroup,
8213
- children: [(0, react_jsx_runtime.jsx)("h3", { children: registrationOtpSent ? "创建新身份" : "进入 AWiki" }), (0, react_jsx_runtime.jsx)("p", { children: registrationOtpSent ? "这个 Handle 尚未注册。输入刚收到的验证码以创建身份。" : "输入 Handle 和手机号。已有 Handle 会恢复身份,新 Handle 会创建身份。" })]
8214
- }),
8215
- props.legacySharedStateDetected === true && props.profileName != null && (0, react_jsx_runtime.jsxs)("div", {
8216
- className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.existingNotice,
8217
- role: "status",
8218
- children: [(0, react_jsx_runtime.jsx)("strong", { children: "已为当前 Profile 隔离 AWiki 数据" }), (0, react_jsx_runtime.jsxs)("p", { children: [
8219
- "检测到旧版共享数据。为避免多个 DSH Profile 同时占用数据库,当前 Profile「",
8220
- props.profileName,
8221
- "」使用独立数据目录;旧数据未删除或复制。请用原 Handle 和手机号恢复到此设备。"
8222
- ] })]
8802
+ children: [(0, react_jsx_runtime.jsx)("h3", { children: registrationOtpSent ? "验证身份" : "进入 AWiki" }), (0, react_jsx_runtime.jsx)("p", { children: registrationOtpSent ? "输入注册验证码。新 Handle 会创建身份,已有 Handle 会进入设备加入选择。" : "输入 Handle 和手机号,统一获取注册验证码。" })]
8223
8803
  }),
8224
8804
  (0, react_jsx_runtime.jsxs)("label", {
8225
8805
  className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.field,
@@ -8262,7 +8842,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8262
8842
  type: "submit",
8263
8843
  className: _dsh_awiki_css_AwikiIdentityAccess_module_css_default.primary,
8264
8844
  disabled: props.pending || handle.trim() === "" || phone.trim() === "" || registrationOtpSent && otp.trim() === "",
8265
- children: registrationOtpSent ? "创建身份" : "获取验证码"
8845
+ children: registrationOtpSent ? "继续" : "获取验证码"
8266
8846
  }),
8267
8847
  registrationOtpSent && (0, react_jsx_runtime.jsx)("button", {
8268
8848
  type: "button",
@@ -8538,7 +9118,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8538
9118
  groupAccess: null,
8539
9119
  groupMembers: Object.freeze([]),
8540
9120
  groupMembersHasMore: false,
8541
- groupRecovery: null,
8542
9121
  messages: Object.freeze([]),
8543
9122
  historyHasMore: false,
8544
9123
  localPending: false,
@@ -8546,8 +9125,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8546
9125
  pending: null,
8547
9126
  error: null,
8548
9127
  attachmentMaxBytes: 0,
8549
- profileName: null,
8550
- legacySharedStateDetected: false,
9128
+ handleRecoveryPhoneEnabled: false,
8551
9129
  summaries: Object.freeze({}),
8552
9130
  recoveryOperationId: null,
8553
9131
  recoveryProgress: null
@@ -8603,48 +9181,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8603
9181
  default: return `${failure.code}:${failure.message}`;
8604
9182
  }
8605
9183
  }
8606
- function groupRecoveryFailureMessage(failure) {
8607
- return failure.code === "network" ? "无法连接 AWiki 服务,暂时不能恢复旧群聊身份。" : "暂时不能检查旧群聊身份,请稍后重试。";
8608
- }
8609
9184
  function conversationPreferenceFailureMessage(_failure) {
8610
9185
  return "无法保存本机会话设置,请稍后重试。";
8611
9186
  }
8612
- function recoveryFingerprint(parts) {
8613
- let hash = 2166136261;
8614
- for (const part of parts) {
8615
- for (let index = 0; index < part.length; index += 1) {
8616
- hash ^= part.charCodeAt(index);
8617
- hash = Math.imul(hash, 16777619);
8618
- }
8619
- hash ^= 0;
8620
- hash = Math.imul(hash, 16777619);
8621
- }
8622
- return (hash >>> 0).toString(16).padStart(8, "0");
8623
- }
8624
- function groupRecoveryProjection(summary, hiddenGroupDids) {
8625
- const hiddenItems = summary.items.filter((item) => hiddenGroupDids.has(item.groupDid));
8626
- const hiddenPending = hiddenItems.filter((item) => item.status === "pending").length;
8627
- const hiddenBlocked = hiddenItems.filter((item) => item.status === "blocked").length;
8628
- const pending = Math.max(0, summary.pending - hiddenPending);
8629
- const blocked = Math.max(0, summary.blocked - hiddenBlocked);
8630
- const signature = `v1:${pending}:${blocked}:${recoveryFingerprint(summary.items.filter((item) => !hiddenGroupDids.has(item.groupDid)).map((item) => `${item.status}:${item.groupDid}`).sort())}`;
8631
- if (blocked > 0) return {
8632
- view: {
8633
- status: "blocked",
8634
- pending,
8635
- blocked
8636
- },
8637
- signature
8638
- };
8639
- return {
8640
- view: pending > 0 ? {
8641
- status: "pending",
8642
- pending,
8643
- blocked: 0
8644
- } : null,
8645
- signature
8646
- };
8647
- }
8648
9187
  function groupReadFailureReason(failure) {
8649
9188
  switch (failure.code) {
8650
9189
  case "group-identity-stale": return "recovering";
@@ -8903,18 +9442,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8903
9442
  directProfiles = /* @__PURE__ */ new Map();
8904
9443
  /** Last trustworthy group title for the active identity, keyed by canonical Group DID. */
8905
9444
  groupTitles = /* @__PURE__ */ new Map();
8906
- /** Current secret-free Core journal state, keyed by canonical Group DID. */
8907
- groupRecoveryItems = /* @__PURE__ */ new Map();
8908
9445
  /** Identity-scoped product overlays. Core conversations and history remain untouched. */
8909
9446
  hiddenConversationPreferences = /* @__PURE__ */ new Map();
8910
- dismissedGroupRecoverySignature;
8911
- lastGroupRecoverySignature;
8912
- lastGroupRecoverySummary;
8913
9447
  /** Verified image payloads retained outside observable state for instant remounts. */
8914
9448
  imageAttachments = /* @__PURE__ */ new Map();
8915
9449
  imageAttachmentCacheBytes = 0;
8916
9450
  presentationCacheOwnerDid = null;
8917
- groupRecoveryOperation;
8918
9451
  /**
8919
9452
  * @param remote - generated Host Remote namespace.
8920
9453
  * @param persistentImageCache - browser-origin verified preview cache.
@@ -8967,8 +9500,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8967
9500
  identity: session.value.status === "active" ? session.value.identity : null,
8968
9501
  error: null,
8969
9502
  attachmentMaxBytes: config.value.attachmentMaxBytes,
8970
- profileName: config.value.profileName ?? null,
8971
- legacySharedStateDetected: config.value.legacySharedStateDetected ?? false,
9503
+ handleRecoveryPhoneEnabled: config.value.handleRecoveryPhoneEnabled,
8972
9504
  recoveryOperationId: storedRecoveryOperation()
8973
9505
  });
8974
9506
  const operationId = storedRecoveryOperation();
@@ -9013,7 +9545,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9013
9545
  if (!loaded.ok) return loaded;
9014
9546
  const generation = this.generation;
9015
9547
  if (this.view.identity !== null) {
9016
- const listed = await this.refreshConversationsAndRecoverGroups(generation);
9548
+ const listed = await this.refreshConversations(generation);
9017
9549
  if (!listed.ok) return listed;
9018
9550
  }
9019
9551
  if (this.current(generation)) this.timer = setInterval(() => {
@@ -9041,7 +9573,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9041
9573
  ...INITIAL_VIEW,
9042
9574
  status: "ready",
9043
9575
  sessionStatus: "signed-out",
9044
- attachmentMaxBytes: this.config?.attachmentMaxBytes ?? 0
9576
+ attachmentMaxBytes: this.config?.attachmentMaxBytes ?? 0,
9577
+ handleRecoveryPhoneEnabled: this.config?.handleRecoveryPhoneEnabled ?? false
9045
9578
  });
9046
9579
  return result;
9047
9580
  }
@@ -9095,16 +9628,50 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9095
9628
  const result = await this.withPending("注册身份", () => call(() => this.remote.registerIdentity(request), registrationFailureMessage));
9096
9629
  if (!result.ok) return result;
9097
9630
  if (!this.current(generation)) return result;
9098
- this.activatePresentationCache(result.value);
9099
- this.publish({
9100
- ...this.view,
9101
- sessionStatus: "active",
9102
- identity: result.value,
9103
- error: null
9104
- });
9105
- await this.refreshConversationsAndRecoverGroups(generation);
9631
+ if (result.value.status === "registered") {
9632
+ this.activatePresentationCache(result.value.identity);
9633
+ this.publish({
9634
+ ...this.view,
9635
+ sessionStatus: "active",
9636
+ identity: result.value.identity,
9637
+ error: null
9638
+ });
9639
+ await this.refreshConversations(generation);
9640
+ }
9641
+ return result;
9642
+ }
9643
+ beginDeviceJoin() {
9644
+ return this.withPending("开始加入设备", () => call(() => this.remote.beginDeviceJoin()));
9645
+ }
9646
+ async getDeviceJoinStatus() {
9647
+ const result = await call(() => this.remote.getDeviceJoinStatus());
9648
+ if (result.ok && result.value?.completed) await this.loadSession();
9106
9649
  return result;
9107
9650
  }
9651
+ cancelDeviceJoin() {
9652
+ return this.withPending("取消加入设备", async () => {
9653
+ const result = await call(() => this.remote.cancelDeviceJoin());
9654
+ return result.ok ? {
9655
+ ok: true,
9656
+ value: void 0
9657
+ } : result;
9658
+ });
9659
+ }
9660
+ refreshDeviceManagement() {
9661
+ return call(() => this.remote.refreshDeviceManagement());
9662
+ }
9663
+ startDeviceJoinVerification(request) {
9664
+ return this.withPending("开始设备验证", () => call(() => this.remote.startDeviceJoinVerification(request)));
9665
+ }
9666
+ approveDeviceJoin(request) {
9667
+ return this.withPending("批准设备", () => call(() => this.remote.approveDeviceJoin(request)));
9668
+ }
9669
+ rejectDeviceJoin(request) {
9670
+ return this.withPending("拒绝设备", () => call(() => this.remote.rejectDeviceJoin(request)));
9671
+ }
9672
+ revokeDevice(request) {
9673
+ return this.withPending("撤销设备", () => call(() => this.remote.revokeDevice(request)));
9674
+ }
9108
9675
  /**
9109
9676
  * Update the deployment identity's public display name.
9110
9677
  * @param displayName - replacement display name selected by the user.
@@ -9313,7 +9880,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9313
9880
  ...this.view,
9314
9881
  conversations: appendUnique(this.view.conversations, conversations.visible, (value) => value.id),
9315
9882
  hiddenConversations: conversations.hidden,
9316
- groupRecovery: this.currentGroupRecoveryView(),
9317
9883
  conversationsHasMore: result.value.hasMore && result.value.nextCursor !== void 0
9318
9884
  });
9319
9885
  return {
@@ -9321,41 +9887,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9321
9887
  value: void 0
9322
9888
  };
9323
9889
  }
9324
- /** Synchronize account projections, then retry Core's durable group-rebind journal. */
9325
- async retryGroupRebindRecovery() {
9326
- const generation = this.generation;
9327
- return this.withPending("恢复群聊身份", async () => {
9328
- const listed = await this.refreshConversations(generation, true);
9329
- if (!listed.ok) return {
9330
- ok: false,
9331
- error: listed.error
9332
- };
9333
- return this.resumeGroupRebindRecovery(generation);
9334
- });
9335
- }
9336
- /** Dismiss only the current recovery-summary revision; Core recovery remains untouched. */
9337
- async dismissGroupRecoveryNotice() {
9338
- const signature = this.lastGroupRecoverySignature;
9339
- if (signature === void 0 || this.view.groupRecovery === null) return {
9340
- ok: true,
9341
- value: void 0
9342
- };
9343
- const result = await call(() => this.remote.updateConversationPreference({
9344
- action: "dismiss-group-recovery",
9345
- signature
9346
- }), conversationPreferenceFailureMessage);
9347
- if (!result.ok) return this.fail(result.error);
9348
- this.applyConversationPreferences(result.value);
9349
- this.publish({
9350
- ...this.view,
9351
- groupRecovery: null,
9352
- error: null
9353
- });
9354
- return {
9355
- ok: true,
9356
- value: void 0
9357
- };
9358
- }
9359
9890
  /** Hide one recent row locally without leaving a group or deleting history. */
9360
9891
  async hideConversation(conversationId) {
9361
9892
  const conversation = this.view.conversations.find((item) => item.id === conversationId);
@@ -9392,7 +9923,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9392
9923
  localPending: false,
9393
9924
  refreshing: false
9394
9925
  } : {},
9395
- groupRecovery: this.currentGroupRecoveryView(),
9396
9926
  error: null
9397
9927
  });
9398
9928
  return {
@@ -9423,7 +9953,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9423
9953
  ...this.view,
9424
9954
  conversations: appendUnique([conversation], this.view.conversations, (item) => item.id),
9425
9955
  hiddenConversations: this.hiddenConversationsView(),
9426
- groupRecovery: this.currentGroupRecoveryView(),
9427
9956
  error: null
9428
9957
  });
9429
9958
  return {
@@ -9571,7 +10100,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9571
10100
  error: null
9572
10101
  });
9573
10102
  const result = await (async () => {
9574
- if (this.view.groupAccess?.status !== "available" && this.view.groupAccess?.status !== "loading") await this.resumeGroupRebindRecovery(this.generation);
9575
10103
  const refreshed = await this.loadGroupState(conversation, true, true);
9576
10104
  return refreshed.ok ? {
9577
10105
  ok: true,
@@ -10160,18 +10688,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10160
10688
  conversation: { ...hidden.conversation },
10161
10689
  hiddenAt: hidden.hiddenAt
10162
10690
  });
10163
- this.dismissedGroupRecoverySignature = preferences.dismissedGroupRecoverySignature;
10164
10691
  }
10165
10692
  hiddenConversationsView() {
10166
10693
  return [...this.hiddenConversationPreferences.values()].sort((left, right) => right.hiddenAt - left.hiddenAt).map((item) => item.conversation);
10167
10694
  }
10168
- currentGroupRecoveryView() {
10169
- const summary = this.lastGroupRecoverySummary;
10170
- if (summary === void 0) return this.view.groupRecovery;
10171
- const projection = groupRecoveryProjection(summary, new Set([...this.hiddenConversationPreferences.values()].map((item) => item.conversation).filter((conversation) => conversation.kind === "group").map((conversation) => conversation.groupDid)));
10172
- this.lastGroupRecoverySignature = projection.signature;
10173
- return projection.signature === this.dismissedGroupRecoverySignature ? null : projection.view;
10174
- }
10175
10695
  async reconcileConversationPage(incoming, generation) {
10176
10696
  const current = [...this.view.conversations, ...this.view.hiddenConversations];
10177
10697
  const conversations = incoming.map((item) => this.cacheConversation(item, current.find((candidate) => candidate.id === item.id)));
@@ -10222,7 +10742,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10222
10742
  ...this.view,
10223
10743
  conversations: firstPage ? refreshed.visible : appendUnique(refreshed.visible, this.view.conversations, (value) => value.id),
10224
10744
  hiddenConversations: refreshed.hidden,
10225
- groupRecovery: this.currentGroupRecoveryView(),
10226
10745
  conversationsHasMore: firstPage ? result.value.hasMore && result.value.nextCursor !== void 0 : this.view.conversationsHasMore,
10227
10746
  error: background ? this.view.error : null
10228
10747
  });
@@ -10255,9 +10774,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10255
10774
  this.groupMembersCursor = void 0;
10256
10775
  this.unreadAtOpen.clear();
10257
10776
  this.summaryBaselines.clear();
10258
- this.groupRecoveryItems.clear();
10259
- this.lastGroupRecoverySignature = void 0;
10260
- this.lastGroupRecoverySummary = void 0;
10261
10777
  this.clearImageAttachments();
10262
10778
  this.publish({
10263
10779
  ...this.view,
@@ -10271,7 +10787,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10271
10787
  groupAccess: null,
10272
10788
  groupMembers: Object.freeze([]),
10273
10789
  groupMembersHasMore: false,
10274
- groupRecovery: null,
10275
10790
  messages: Object.freeze([]),
10276
10791
  historyHasMore: false,
10277
10792
  localPending: false,
@@ -10281,45 +10796,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10281
10796
  summaries: Object.freeze({})
10282
10797
  });
10283
10798
  }
10284
- /** Hydrate account-projected groups before asking Core to resume their durable rebind jobs. */
10285
- async refreshConversationsAndRecoverGroups(generation, background = false) {
10286
- const listed = await this.refreshConversations(generation, background);
10287
- if (!listed.ok || !this.current(generation)) return listed;
10288
- await this.resumeGroupRebindRecovery(generation);
10289
- return listed;
10290
- }
10291
- resumeGroupRebindRecovery(generation) {
10292
- const active = this.groupRecoveryOperation;
10293
- if (active !== void 0 && active.generation === generation) return active.operation;
10294
- let operation;
10295
- operation = call(() => this.remote.resumeGroupRebindRecovery(), groupRecoveryFailureMessage).then((result) => {
10296
- if (!this.current(generation)) return result;
10297
- if (result.ok) {
10298
- this.lastGroupRecoverySummary = result.value;
10299
- this.groupRecoveryItems.clear();
10300
- for (const item of result.value.items) this.groupRecoveryItems.set(item.groupDid, item.status);
10301
- } else {
10302
- this.lastGroupRecoverySummary = void 0;
10303
- this.lastGroupRecoverySignature = "unavailable";
10304
- }
10305
- this.publish({
10306
- ...this.view,
10307
- groupRecovery: result.ok ? this.currentGroupRecoveryView() : this.dismissedGroupRecoverySignature === "unavailable" ? null : {
10308
- status: "unavailable",
10309
- pending: 0,
10310
- blocked: 0
10311
- }
10312
- });
10313
- return result;
10314
- }).finally(() => {
10315
- if (this.groupRecoveryOperation?.operation === operation) this.groupRecoveryOperation = void 0;
10316
- });
10317
- this.groupRecoveryOperation = {
10318
- generation,
10319
- operation
10320
- };
10321
- return operation;
10322
- }
10323
10799
  async loadHistory(older) {
10324
10800
  const conversationId = this.view.selectedConversationId;
10325
10801
  if (conversationId === null) return this.fail("请先选择会话");
@@ -10361,8 +10837,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10361
10837
  if (this.polling || !this.current(generation) || this.view.identity === null) return;
10362
10838
  this.polling = true;
10363
10839
  try {
10364
- const knownGroups = new Set(this.view.conversations.filter((conversation) => conversation.kind === "group").map((conversation) => conversation.groupDid));
10365
- if ((await this.refreshConversations(generation, true)).ok && this.view.conversations.some((conversation) => conversation.kind === "group" && !knownGroups.has(conversation.groupDid))) await this.resumeGroupRebindRecovery(generation);
10840
+ await this.refreshConversations(generation, true);
10366
10841
  const selected = this.view.selectedConversationId;
10367
10842
  if (selected === null || !this.current(generation)) return;
10368
10843
  if (this.selectedConversation()?.kind === "group" && this.view.groupAccess?.status !== "available") return;
@@ -10456,8 +10931,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10456
10931
  return selected === null ? void 0 : this.view.conversations.find((value) => value.id === selected);
10457
10932
  }
10458
10933
  publishGroupAccessFailure(conversation, reason) {
10459
- const journal = this.groupRecoveryItems.get(conversation.groupDid);
10460
- const status = reason === "not-member" ? journal === "blocked" ? "blocked" : journal === "pending" ? "recovering" : "not-member" : reason;
10934
+ const status = reason;
10461
10935
  this.publish({
10462
10936
  ...this.view,
10463
10937
  groupAccess: {
@@ -10473,11 +10947,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10473
10947
  if (ownerDid === this.presentationCacheOwnerDid) return;
10474
10948
  this.directProfiles.clear();
10475
10949
  this.groupTitles.clear();
10476
- this.groupRecoveryItems.clear();
10477
10950
  this.hiddenConversationPreferences.clear();
10478
- this.dismissedGroupRecoverySignature = void 0;
10479
- this.lastGroupRecoverySignature = void 0;
10480
- this.lastGroupRecoverySummary = void 0;
10481
10951
  this.clearImageAttachments();
10482
10952
  this.presentationCacheOwnerDid = ownerDid;
10483
10953
  }
@@ -10485,11 +10955,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10485
10955
  clearPresentationCache() {
10486
10956
  this.directProfiles.clear();
10487
10957
  this.groupTitles.clear();
10488
- this.groupRecoveryItems.clear();
10489
10958
  this.hiddenConversationPreferences.clear();
10490
- this.dismissedGroupRecoverySignature = void 0;
10491
- this.lastGroupRecoverySignature = void 0;
10492
- this.lastGroupRecoverySummary = void 0;
10493
10959
  this.clearImageAttachments();
10494
10960
  this.presentationCacheOwnerDid = null;
10495
10961
  }
@@ -10863,13 +11329,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10863
11329
  }
10864
11330
  //#endregion
10865
11331
  //#region \0dsh-awiki-css:AwikiMail.module.css.mjs
10866
- const css$1 = ".eMUW5a_mail{background:var(--dsw-alias-bg-layer-1);flex:1;grid-template-columns:240px 320px minmax(420px,1fr);min-height:0;display:grid;position:relative}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{min-width:0;min-height:0}.eMUW5a_sidebar{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;display:flex}.eMUW5a_accountCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:10px;gap:3px;margin:0 14px 12px;padding:10px 12px;display:grid}.eMUW5a_accountCard small,.eMUW5a_accountCard span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_accountCard strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_accountCard .eMUW5a_accountStatus{color:var(--dsw-alias-state-success-primary)}.eMUW5a_folderNav{gap:4px;padding:0 10px;display:grid}.eMUW5a_folderNav button{min-height:38px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 10px;display:grid}.eMUW5a_folderNav button:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderNav button[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderNav small{min-width:20px;color:var(--dsw-alias-brand-primary);text-align:right}.eMUW5a_folderRow{color:var(--dsw-alias-label-secondary);border-radius:9px;grid-template-columns:minmax(0,1fr) 38px;display:grid}.eMUW5a_folderRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderRow[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderRow>button{color:inherit;background:0 0;border-radius:0}.eMUW5a_folderRow>button:hover{background:0 0}.eMUW5a_folderRow>.eMUW5a_composeIconButton{border-radius:8px;grid-template-columns:1fr;place-items:center;gap:0;width:38px;padding:0}.eMUW5a_folderRow>.eMUW5a_composeIconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailList{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_listHeader,.eMUW5a_detailHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:9px;min-height:56px;padding:0 12px;display:flex}.eMUW5a_listHeader>div,.eMUW5a_detailHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong,.eMUW5a_listHeader small,.eMUW5a_detailHeader small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong{font-size:13px;line-height:20px}.eMUW5a_listHeader small,.eMUW5a_detailHeader small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_listHeader>button,.eMUW5a_detailBack{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.eMUW5a_listHeader>button:hover,.eMUW5a_detailBack:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.eMUW5a_listHeader>button:disabled{opacity:.5;cursor:default}.eMUW5a_detailBack{display:none}.eMUW5a_listHeader svg,.eMUW5a_loadingState svg{animation:none}.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg{animation:1s linear infinite eMUW5a_mail-spin}@keyframes eMUW5a_mail-spin{to{transform:rotate(360deg)}}.eMUW5a_rows{flex:1;min-height:0;padding:6px;overflow:auto}.eMUW5a_mailRow{width:100%;min-height:82px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:7px minmax(0,1fr) auto;gap:7px;padding:10px 9px;display:grid;position:relative}.eMUW5a_mailRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.eMUW5a_unreadDot{background:0 0;border-radius:50%;align-self:start;width:6px;height:6px;margin-top:7px}.eMUW5a_mailRow[data-unread] .eMUW5a_unreadDot{background:var(--dsw-alias-brand-primary)}.eMUW5a_rowContent{flex-direction:column;gap:2px;min-width:0;display:flex}.eMUW5a_rowTop{align-items:center;gap:8px;display:flex}.eMUW5a_rowTop strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_mailRow[data-unread] .eMUW5a_rowTop strong,.eMUW5a_mailRow[data-unread] .eMUW5a_rowSubject{font-weight:600}.eMUW5a_rowTop time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:15px}.eMUW5a_rowSubject,.eMUW5a_rowPreview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_rowSubject{color:var(--dsw-alias-label-primary);font-size:12px;line-height:18px}.eMUW5a_rowPreview{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_rowAttachment{color:var(--dsw-alias-label-tertiary);align-self:end;align-items:center;gap:2px;display:flex}.eMUW5a_rowAttachment small{font-size:10px}.eMUW5a_inlineError,.eMUW5a_detailError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:11px;line-height:16px;display:flex}.eMUW5a_inlineError button{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:underline}.eMUW5a_loadingState,.eMUW5a_emptyState,.eMUW5a_detailEmpty{color:var(--dsw-alias-label-tertiary);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.eMUW5a_loadingState{pointer-events:none;position:absolute;inset:56px 0 0}.eMUW5a_emptyState{flex-direction:column;min-height:180px}.eMUW5a_emptyState p,.eMUW5a_detailEmpty p{margin:0}.eMUW5a_loadMore{background:var(--dsw-alias-button-elevated-fill);min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border:0;border-radius:9px;margin:7px}.eMUW5a_loadMore:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailDetail{background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_detailEmpty{flex-direction:column;flex:1}.eMUW5a_detailEmpty button{background:var(--dsw-alias-button-primary-fill);min-height:34px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:9px;padding:0 14px}.eMUW5a_markReadButton{border:1px solid var(--dsw-alias-border-l2);min-height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex:none;padding:0 9px;font-size:11px}.eMUW5a_markReadButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_markReadButton:disabled{opacity:.5;cursor:default}.eMUW5a_messageBody{flex:1;min-height:0;padding:22px 24px;overflow:auto}.eMUW5a_messageMeta{border-bottom:1px solid var(--dsw-alias-border-l1);padding-bottom:18px}.eMUW5a_messageMeta h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:18px;line-height:27px}.eMUW5a_messageMeta>time{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_messageMeta dl{gap:3px;margin:14px 0 0;display:grid}.eMUW5a_messageMeta dl>div{grid-template-columns:48px minmax(0,1fr);gap:8px;font-size:11px;line-height:17px;display:grid}.eMUW5a_messageMeta dt{color:var(--dsw-alias-label-tertiary)}.eMUW5a_messageMeta dd{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0}.eMUW5a_untrustedNotice{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:8px;align-items:center;gap:7px;margin:16px 0;padding:8px 10px;font-size:11px;line-height:16px;display:flex}.eMUW5a_plainBody{min-height:120px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:22px}.eMUW5a_truncatedNotice{color:var(--dsw-alias-state-warn-label);margin:14px 0 0;font-size:11px}.eMUW5a_attachments{border-top:1px solid var(--dsw-alias-border-l1);gap:8px;margin-top:22px;padding-top:16px;display:grid}.eMUW5a_attachments h4{margin:0;font-size:12px;line-height:18px}.eMUW5a_attachments>div{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:9px;align-items:center;gap:9px;padding:9px 10px;display:flex}.eMUW5a_attachments>div>span{flex-direction:column;min-width:0;display:flex}.eMUW5a_attachments strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_attachments small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_notice{z-index:6;box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);max-width:min(360px,100% - 32px);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);overflow-wrap:anywhere;pointer-events:none;text-align:center;border-radius:9px;padding:10px 14px;font-size:12px;line-height:18px;animation:2.4s both eMUW5a_mail-notice;position:absolute;top:16px;left:50%;transform:translate(-50%)}@keyframes eMUW5a_mail-notice{0%{opacity:0;transform:translate(-50%,-6px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.eMUW5a_composer{flex-direction:column;flex:1;min-height:0;display:flex}.eMUW5a_composeFields{flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.eMUW5a_composeFields label{color:var(--dsw-alias-label-secondary);grid-template-rows:max-content max-content;gap:5px;font-size:11px;line-height:16px;display:grid}.eMUW5a_composeFields input,.eMUW5a_composeFields textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:9px;padding:8px 10px}.eMUW5a_composeFields input{height:38px}.eMUW5a_composeFields .eMUW5a_bodyField{flex:1;grid-template-rows:max-content minmax(160px,1fr);min-height:160px}.eMUW5a_bodyField textarea{resize:none;min-height:160px}.eMUW5a_composeError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.eMUW5a_composeFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.eMUW5a_cancelButton,.eMUW5a_sendButton{cursor:pointer;min-height:34px;font:inherit;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 13px;display:flex}.eMUW5a_cancelButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.eMUW5a_sendButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);border:0}.eMUW5a_cancelButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_sendButton:hover{background:var(--dsw-alias-button-primary-hover)}.eMUW5a_confirmSummary{color:var(--dsw-alias-label-secondary);gap:6px;display:grid}.eMUW5a_confirmSummary p,.eMUW5a_discardText{overflow-wrap:anywhere;margin:0}@media (width<=1119px){.eMUW5a_mail{grid-template-columns:220px minmax(0,1fr)}.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/2}.eMUW5a_mailDetail,.eMUW5a_mail[data-detail-active] .eMUW5a_mailList{display:none}.eMUW5a_mail[data-detail-active] .eMUW5a_mailDetail{display:flex}.eMUW5a_detailBack{display:grid}}@media (width<=719px){.eMUW5a_mail{grid-template-columns:1fr}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/1}.eMUW5a_mailList,.eMUW5a_mailDetail,.eMUW5a_mail[data-pane=list] .eMUW5a_sidebar,.eMUW5a_mail[data-pane=detail] .eMUW5a_sidebar{display:none}.eMUW5a_mail[data-pane=list] .eMUW5a_mailList,.eMUW5a_mail[data-pane=detail] .eMUW5a_mailDetail{display:flex}.eMUW5a_messageBody{padding:18px}}@media (prefers-reduced-motion:reduce){.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg,.eMUW5a_notice{animation:none}}";
10867
- const tagId$1 = "@awiki/dsh-plugin/AwikiMail.module.css";
10868
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
11332
+ const css$2 = ".eMUW5a_mail{background:var(--dsw-alias-bg-layer-1);flex:1;grid-template-columns:240px 320px minmax(420px,1fr);min-height:0;display:grid;position:relative}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{min-width:0;min-height:0}.eMUW5a_sidebar{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);flex-direction:column;display:flex}.eMUW5a_accountCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:10px;gap:3px;margin:0 14px 12px;padding:10px 12px;display:grid}.eMUW5a_accountCard small,.eMUW5a_accountCard span{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_accountCard strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_accountCard .eMUW5a_accountStatus{color:var(--dsw-alias-state-success-primary)}.eMUW5a_folderNav{gap:4px;padding:0 10px;display:grid}.eMUW5a_folderNav button{min-height:38px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 10px;display:grid}.eMUW5a_folderNav button:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderNav button[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderNav small{min-width:20px;color:var(--dsw-alias-brand-primary);text-align:right}.eMUW5a_folderRow{color:var(--dsw-alias-label-secondary);border-radius:9px;grid-template-columns:minmax(0,1fr) 38px;display:grid}.eMUW5a_folderRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_folderRow[data-active]{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary)}.eMUW5a_folderRow>button{color:inherit;background:0 0;border-radius:0}.eMUW5a_folderRow>button:hover{background:0 0}.eMUW5a_folderRow>.eMUW5a_composeIconButton{border-radius:8px;grid-template-columns:1fr;place-items:center;gap:0;width:38px;padding:0}.eMUW5a_folderRow>.eMUW5a_composeIconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailList{border-right:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_listHeader,.eMUW5a_detailHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:9px;min-height:56px;padding:0 12px;display:flex}.eMUW5a_listHeader>div,.eMUW5a_detailHeader>div{flex-direction:column;flex:1;min-width:0;display:flex}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong,.eMUW5a_listHeader small,.eMUW5a_detailHeader small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_listHeader strong,.eMUW5a_detailHeader strong{font-size:13px;line-height:20px}.eMUW5a_listHeader small,.eMUW5a_detailHeader small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_listHeader>button,.eMUW5a_detailBack{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.eMUW5a_listHeader>button:hover,.eMUW5a_detailBack:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.eMUW5a_listHeader>button:disabled{opacity:.5;cursor:default}.eMUW5a_detailBack{display:none}.eMUW5a_listHeader svg,.eMUW5a_loadingState svg{animation:none}.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg{animation:1s linear infinite eMUW5a_mail-spin}@keyframes eMUW5a_mail-spin{to{transform:rotate(360deg)}}.eMUW5a_rows{flex:1;min-height:0;padding:6px;overflow:auto}.eMUW5a_mailRow{width:100%;min-height:82px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:7px minmax(0,1fr) auto;gap:7px;padding:10px 9px;display:grid;position:relative}.eMUW5a_mailRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailRow[data-active]{background:var(--dsw-alias-interactive-bg-active)}.eMUW5a_unreadDot{background:0 0;border-radius:50%;align-self:start;width:6px;height:6px;margin-top:7px}.eMUW5a_mailRow[data-unread] .eMUW5a_unreadDot{background:var(--dsw-alias-brand-primary)}.eMUW5a_rowContent{flex-direction:column;gap:2px;min-width:0;display:flex}.eMUW5a_rowTop{align-items:center;gap:8px;display:flex}.eMUW5a_rowTop strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.eMUW5a_mailRow[data-unread] .eMUW5a_rowTop strong,.eMUW5a_mailRow[data-unread] .eMUW5a_rowSubject{font-weight:600}.eMUW5a_rowTop time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:15px}.eMUW5a_rowSubject,.eMUW5a_rowPreview{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eMUW5a_rowSubject{color:var(--dsw-alias-label-primary);font-size:12px;line-height:18px}.eMUW5a_rowPreview{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_rowAttachment{color:var(--dsw-alias-label-tertiary);align-self:end;align-items:center;gap:2px;display:flex}.eMUW5a_rowAttachment small{font-size:10px}.eMUW5a_inlineError,.eMUW5a_detailError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:11px;line-height:16px;display:flex}.eMUW5a_inlineError button{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:underline}.eMUW5a_loadingState,.eMUW5a_emptyState,.eMUW5a_detailEmpty{color:var(--dsw-alias-label-tertiary);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.eMUW5a_loadingState{pointer-events:none;position:absolute;inset:56px 0 0}.eMUW5a_emptyState{flex-direction:column;min-height:180px}.eMUW5a_emptyState p,.eMUW5a_detailEmpty p{margin:0}.eMUW5a_loadMore{background:var(--dsw-alias-button-elevated-fill);min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border:0;border-radius:9px;margin:7px}.eMUW5a_loadMore:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_mailDetail{background:var(--dsw-alias-bg-layer-1);flex-direction:column;display:flex;position:relative}.eMUW5a_detailEmpty{flex-direction:column;flex:1}.eMUW5a_detailEmpty button{background:var(--dsw-alias-button-primary-fill);min-height:34px;color:var(--dsw-alias-label-primary-inverted);cursor:pointer;border:0;border-radius:9px;padding:0 14px}.eMUW5a_markReadButton{border:1px solid var(--dsw-alias-border-l2);min-height:30px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex:none;padding:0 9px;font-size:11px}.eMUW5a_markReadButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_markReadButton:disabled{opacity:.5;cursor:default}.eMUW5a_messageBody{flex:1;min-height:0;padding:22px 24px;overflow:auto}.eMUW5a_messageMeta{border-bottom:1px solid var(--dsw-alias-border-l1);padding-bottom:18px}.eMUW5a_messageMeta h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:18px;line-height:27px}.eMUW5a_messageMeta>time{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}.eMUW5a_messageMeta dl{gap:3px;margin:14px 0 0;display:grid}.eMUW5a_messageMeta dl>div{grid-template-columns:48px minmax(0,1fr);gap:8px;font-size:11px;line-height:17px;display:grid}.eMUW5a_messageMeta dt{color:var(--dsw-alias-label-tertiary)}.eMUW5a_messageMeta dd{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0}.eMUW5a_untrustedNotice{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:8px;align-items:center;gap:7px;margin:16px 0;padding:8px 10px;font-size:11px;line-height:16px;display:flex}.eMUW5a_plainBody{min-height:120px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:22px}.eMUW5a_truncatedNotice{color:var(--dsw-alias-state-warn-label);margin:14px 0 0;font-size:11px}.eMUW5a_attachments{border-top:1px solid var(--dsw-alias-border-l1);gap:8px;margin-top:22px;padding-top:16px;display:grid}.eMUW5a_attachments h4{margin:0;font-size:12px;line-height:18px}.eMUW5a_attachments>div{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:9px;align-items:center;gap:9px;padding:9px 10px;display:flex}.eMUW5a_attachments>div>span{flex-direction:column;min-width:0;display:flex}.eMUW5a_attachments strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}.eMUW5a_attachments small{color:var(--dsw-alias-label-tertiary);font-size:10px;line-height:15px}.eMUW5a_notice{z-index:6;box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);max-width:min(360px,100% - 32px);color:var(--dsw-alias-label-primary-inverted);box-shadow:var(--dsw-shadow-lv2);overflow-wrap:anywhere;pointer-events:none;text-align:center;border-radius:9px;padding:10px 14px;font-size:12px;line-height:18px;animation:2.4s both eMUW5a_mail-notice;position:absolute;top:16px;left:50%;transform:translate(-50%)}@keyframes eMUW5a_mail-notice{0%{opacity:0;transform:translate(-50%,-6px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.eMUW5a_composer{flex-direction:column;flex:1;min-height:0;display:flex}.eMUW5a_composeFields{flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.eMUW5a_composeFields label{color:var(--dsw-alias-label-secondary);grid-template-rows:max-content max-content;gap:5px;font-size:11px;line-height:16px;display:grid}.eMUW5a_composeFields input,.eMUW5a_composeFields textarea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:9px;padding:8px 10px}.eMUW5a_composeFields input{height:38px}.eMUW5a_composeFields .eMUW5a_bodyField{flex:1;grid-template-rows:max-content minmax(160px,1fr);min-height:160px}.eMUW5a_bodyField textarea{resize:none;min-height:160px}.eMUW5a_composeError{color:var(--dsw-alias-state-error-primary);margin:0;font-size:11px;line-height:16px}.eMUW5a_composeFooter{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.eMUW5a_cancelButton,.eMUW5a_sendButton{cursor:pointer;min-height:34px;font:inherit;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 13px;display:flex}.eMUW5a_cancelButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:0 0}.eMUW5a_sendButton{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-inverted);border:0}.eMUW5a_cancelButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.eMUW5a_sendButton:hover{background:var(--dsw-alias-button-primary-hover)}.eMUW5a_confirmSummary{color:var(--dsw-alias-label-secondary);gap:6px;display:grid}.eMUW5a_confirmSummary p,.eMUW5a_discardText{overflow-wrap:anywhere;margin:0}@media (width<=1119px){.eMUW5a_mail{grid-template-columns:220px minmax(0,1fr)}.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/2}.eMUW5a_mailDetail,.eMUW5a_mail[data-detail-active] .eMUW5a_mailList{display:none}.eMUW5a_mail[data-detail-active] .eMUW5a_mailDetail{display:flex}.eMUW5a_detailBack{display:grid}}@media (width<=719px){.eMUW5a_mail{grid-template-columns:1fr}.eMUW5a_sidebar,.eMUW5a_mailList,.eMUW5a_mailDetail{grid-area:1/1}.eMUW5a_mailList,.eMUW5a_mailDetail,.eMUW5a_mail[data-pane=list] .eMUW5a_sidebar,.eMUW5a_mail[data-pane=detail] .eMUW5a_sidebar{display:none}.eMUW5a_mail[data-pane=list] .eMUW5a_mailList,.eMUW5a_mail[data-pane=detail] .eMUW5a_mailDetail{display:flex}.eMUW5a_messageBody{padding:18px}}@media (prefers-reduced-motion:reduce){.eMUW5a_listHeader button:disabled svg,.eMUW5a_loadingState svg,.eMUW5a_notice{animation:none}}";
11333
+ const tagId$2 = "@awiki/dsh-plugin/AwikiMail.module.css";
11334
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
10869
11335
  const tag = document.createElement("style");
10870
11336
  tag.dataset.plugin = "@awiki/dsh-plugin";
10871
- tag.dataset.pluginCss = tagId$1;
10872
- tag.textContent = css$1;
11337
+ tag.dataset.pluginCss = tagId$2;
11338
+ tag.textContent = css$2;
10873
11339
  document.head.appendChild(tag);
10874
11340
  }
10875
11341
  var _dsh_awiki_css_AwikiMail_module_css_default = {
@@ -12374,6 +12840,247 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12374
12840
  });
12375
12841
  }
12376
12842
  //#endregion
12843
+ //#region \0dsh-awiki-css:AwikiDevices.module.css.mjs
12844
+ const css$1 = ".xQ4iKW_page{align-content:start;gap:16px;height:100%;padding:16px;display:grid;overflow:auto}.xQ4iKW_heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.xQ4iKW_heading h3,.xQ4iKW_heading p,.xQ4iKW_page h4,.xQ4iKW_page p{margin:0}.xQ4iKW_heading p,.xQ4iKW_card small{color:var(--dsw-alias-label-secondary)}.xQ4iKW_card{border:1px solid var(--dsw-alias-border-l1);border-radius:10px;gap:8px;margin-top:8px;padding:12px;display:grid}.xQ4iKW_actions{flex-wrap:wrap;gap:8px;display:flex}.xQ4iKW_sas{letter-spacing:.2em;text-align:center;font-variant-numeric:tabular-nums;font-size:30px}.xQ4iKW_error{color:var(--dsw-alias-state-error-primary)}";
12845
+ const tagId$1 = "@awiki/dsh-plugin/AwikiDevices.module.css";
12846
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
12847
+ const tag = document.createElement("style");
12848
+ tag.dataset.plugin = "@awiki/dsh-plugin";
12849
+ tag.dataset.pluginCss = tagId$1;
12850
+ tag.textContent = css$1;
12851
+ document.head.appendChild(tag);
12852
+ }
12853
+ var _dsh_awiki_css_AwikiDevices_module_css_default = {
12854
+ "actions": "xQ4iKW_actions",
12855
+ "card": "xQ4iKW_card",
12856
+ "error": "xQ4iKW_error",
12857
+ "heading": "xQ4iKW_heading",
12858
+ "page": "xQ4iKW_page",
12859
+ "sas": "xQ4iKW_sas"
12860
+ };
12861
+ //#endregion
12862
+ //#region lib/types/client/AwikiDevices.js
12863
+ /** Foreground-only ready-admin device management. SAS remains component-local. */
12864
+ function AwikiDevices(props) {
12865
+ const [snapshot, setSnapshot] = (0, react.useState)(null);
12866
+ const [progress, setProgress] = (0, react.useState)(null);
12867
+ const [enteredSas, setEnteredSas] = (0, react.useState)("");
12868
+ const [approval, setApproval] = (0, react.useState)("");
12869
+ const [revokeRef, setRevokeRef] = (0, react.useState)(null);
12870
+ const [revokeConfirmation, setRevokeConfirmation] = (0, react.useState)("");
12871
+ const [error, setError] = (0, react.useState)(null);
12872
+ const refresh = async () => {
12873
+ const result = await props.refreshDeviceManagement();
12874
+ if (!result.ok) return setError(result.error);
12875
+ setSnapshot(result.value);
12876
+ if (progress !== null && ![
12877
+ "authorized",
12878
+ "cancelled",
12879
+ "rejected",
12880
+ "expired"
12881
+ ].includes(progress.phase)) {
12882
+ const advanced = await props.startDeviceJoinVerification({ requestRef: progress.requestRef });
12883
+ if (advanced.ok) setProgress(advanced.value);
12884
+ }
12885
+ setError(null);
12886
+ };
12887
+ (0, react.useEffect)(() => {
12888
+ if (!props.active) return;
12889
+ let alive = true;
12890
+ props.refreshDeviceManagement().then((result) => {
12891
+ if (!alive) return;
12892
+ if (result.ok) setSnapshot(result.value);
12893
+ else setError(result.error);
12894
+ });
12895
+ const timer = setInterval(() => {
12896
+ if (alive) refresh();
12897
+ }, 3e3);
12898
+ return () => {
12899
+ alive = false;
12900
+ clearInterval(timer);
12901
+ };
12902
+ }, [
12903
+ props.active,
12904
+ progress?.phase,
12905
+ progress?.requestRef
12906
+ ]);
12907
+ const start = async (requestRef) => {
12908
+ const result = await props.startDeviceJoinVerification({ requestRef });
12909
+ if (!result.ok) return setError(result.error);
12910
+ setProgress(result.value);
12911
+ setError(null);
12912
+ };
12913
+ const approve = async () => {
12914
+ if (progress === null) return;
12915
+ const result = await props.approveDeviceJoin({
12916
+ requestRef: progress.requestRef,
12917
+ enteredSas,
12918
+ confirmation: approval
12919
+ });
12920
+ if (!result.ok) return setError(result.error);
12921
+ setProgress(null);
12922
+ setEnteredSas("");
12923
+ setApproval("");
12924
+ await refresh();
12925
+ };
12926
+ const reject = async (requestRef) => {
12927
+ const result = await props.rejectDeviceJoin({
12928
+ requestRef,
12929
+ reason: "user_rejected"
12930
+ });
12931
+ if (!result.ok) return setError(result.error);
12932
+ setProgress(null);
12933
+ await refresh();
12934
+ };
12935
+ const revoke = async () => {
12936
+ if (revokeRef === null) return;
12937
+ const result = await props.revokeDevice({
12938
+ deviceRef: revokeRef,
12939
+ confirmation: revokeConfirmation
12940
+ });
12941
+ if (!result.ok) return setError(result.error);
12942
+ setSnapshot(result.value);
12943
+ setRevokeRef(null);
12944
+ setRevokeConfirmation("");
12945
+ setError(null);
12946
+ };
12947
+ return (0, react_jsx_runtime.jsxs)("section", {
12948
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.page,
12949
+ "aria-label": "AWiki 设备管理",
12950
+ children: [
12951
+ props.modeTabs,
12952
+ (0, react_jsx_runtime.jsxs)("header", {
12953
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.heading,
12954
+ children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("h3", { children: "设备" }), (0, react_jsx_runtime.jsx)("p", { children: "只有当前 ready-admin 可以批准或撤销设备。" })] }), (0, react_jsx_runtime.jsx)("button", {
12955
+ type: "button",
12956
+ disabled: props.pending,
12957
+ onClick: () => {
12958
+ refresh();
12959
+ },
12960
+ children: "刷新"
12961
+ })]
12962
+ }),
12963
+ snapshot === null && (0, react_jsx_runtime.jsx)("p", {
12964
+ role: "status",
12965
+ children: "正在读取设备状态…"
12966
+ }),
12967
+ snapshot !== null && !snapshot.canManage && (0, react_jsx_runtime.jsx)("p", { children: "当前设备不是可用的管理设备,不能批准或撤销其他设备。" }),
12968
+ snapshot?.canManage && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
12969
+ (0, react_jsx_runtime.jsxs)("section", { children: [
12970
+ (0, react_jsx_runtime.jsx)("h4", { children: "待加入" }),
12971
+ snapshot.requests.length === 0 && (0, react_jsx_runtime.jsx)("p", { children: "没有待处理请求。" }),
12972
+ snapshot.requests.map((request) => (0, react_jsx_runtime.jsxs)("article", {
12973
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
12974
+ children: [
12975
+ (0, react_jsx_runtime.jsx)("code", { children: request.candidateKeyFingerprint }),
12976
+ (0, react_jsx_runtime.jsxs)("small", { children: [
12977
+ request.state,
12978
+ " · 有效期至 ",
12979
+ request.expiresAt
12980
+ ] }),
12981
+ (0, react_jsx_runtime.jsxs)("div", {
12982
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.actions,
12983
+ children: [(0, react_jsx_runtime.jsx)("button", {
12984
+ type: "button",
12985
+ disabled: props.pending || !request.canStartVerification && !request.claimedByCurrentDevice,
12986
+ onClick: () => {
12987
+ start(request.requestRef);
12988
+ },
12989
+ children: "开始验证"
12990
+ }), (0, react_jsx_runtime.jsx)("button", {
12991
+ type: "button",
12992
+ disabled: props.pending,
12993
+ onClick: () => {
12994
+ reject(request.requestRef);
12995
+ },
12996
+ children: "拒绝"
12997
+ })]
12998
+ })
12999
+ ]
13000
+ }, request.requestRef))
13001
+ ] }),
13002
+ progress?.phase === "sas-ready" && (0, react_jsx_runtime.jsxs)("section", {
13003
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
13004
+ children: [
13005
+ (0, react_jsx_runtime.jsx)("h4", { children: "核对安全码" }),
13006
+ (0, react_jsx_runtime.jsx)("strong", {
13007
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.sas,
13008
+ children: progress.sas
13009
+ }),
13010
+ (0, react_jsx_runtime.jsx)("p", { children: "输入手机显示的 6 位码,并输入 APPROVE。" }),
13011
+ (0, react_jsx_runtime.jsx)("input", {
13012
+ "aria-label": "手机安全码",
13013
+ value: enteredSas,
13014
+ inputMode: "numeric",
13015
+ maxLength: 6,
13016
+ onChange: (event) => {
13017
+ setEnteredSas(event.target.value);
13018
+ }
13019
+ }),
13020
+ (0, react_jsx_runtime.jsx)("input", {
13021
+ "aria-label": "批准确认词",
13022
+ value: approval,
13023
+ autoComplete: "off",
13024
+ onChange: (event) => {
13025
+ setApproval(event.target.value);
13026
+ },
13027
+ placeholder: "APPROVE"
13028
+ }),
13029
+ (0, react_jsx_runtime.jsx)("button", {
13030
+ type: "button",
13031
+ disabled: props.pending || enteredSas.length !== 6 || approval !== "APPROVE",
13032
+ onClick: () => {
13033
+ approve();
13034
+ },
13035
+ children: "批准为 member"
13036
+ })
13037
+ ]
13038
+ }),
13039
+ (0, react_jsx_runtime.jsxs)("section", { children: [(0, react_jsx_runtime.jsx)("h4", { children: "已登记设备" }), snapshot.devices.map((device) => (0, react_jsx_runtime.jsxs)("article", {
13040
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.card,
13041
+ children: [(0, react_jsx_runtime.jsxs)("span", { children: [
13042
+ device.isCurrent ? "当前设备" : "其他设备",
13043
+ " · ",
13044
+ device.role,
13045
+ " · ",
13046
+ device.status
13047
+ ] }), !device.isCurrent && device.status === "active" && (revokeRef === device.deviceRef ? (0, react_jsx_runtime.jsxs)("div", {
13048
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.actions,
13049
+ children: [(0, react_jsx_runtime.jsx)("input", {
13050
+ "aria-label": "撤销确认词",
13051
+ value: revokeConfirmation,
13052
+ onChange: (event) => {
13053
+ setRevokeConfirmation(event.target.value);
13054
+ },
13055
+ placeholder: "REVOKE"
13056
+ }), (0, react_jsx_runtime.jsx)("button", {
13057
+ type: "button",
13058
+ disabled: props.pending || revokeConfirmation !== "REVOKE",
13059
+ onClick: () => {
13060
+ revoke();
13061
+ },
13062
+ children: "确认撤销"
13063
+ })]
13064
+ }) : (0, react_jsx_runtime.jsx)("button", {
13065
+ type: "button",
13066
+ disabled: props.pending,
13067
+ onClick: () => {
13068
+ setRevokeRef(device.deviceRef);
13069
+ setRevokeConfirmation("");
13070
+ },
13071
+ children: "撤销"
13072
+ }))]
13073
+ }, device.deviceRef))] })
13074
+ ] }),
13075
+ error !== null && (0, react_jsx_runtime.jsx)("p", {
13076
+ className: _dsh_awiki_css_AwikiDevices_module_css_default.error,
13077
+ role: "alert",
13078
+ children: error
13079
+ })
13080
+ ]
13081
+ });
13082
+ }
13083
+ //#endregion
12377
13084
  //#region lib/types/client/AwikiProfileCard.js
12378
13085
  const MAX_DISPLAY_NAME = 50;
12379
13086
  const MAX_BIO = 100;
@@ -12842,23 +13549,35 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12842
13549
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.modeTabs,
12843
13550
  role: "tablist",
12844
13551
  "aria-label": "AWiki 功能",
12845
- children: [(0, react_jsx_runtime.jsx)("button", {
12846
- type: "button",
12847
- role: "tab",
12848
- "aria-selected": props.mode === "chat",
12849
- onClick: () => {
12850
- props.onChange("chat");
12851
- },
12852
- children: "会话"
12853
- }), (0, react_jsx_runtime.jsxs)("button", {
12854
- type: "button",
12855
- role: "tab",
12856
- "aria-selected": props.mode === "mail",
12857
- onClick: () => {
12858
- props.onChange("mail");
12859
- },
12860
- children: ["邮件", props.mailUnreadCount > 0 && (0, react_jsx_runtime.jsx)("small", { children: props.mailUnreadCount > 99 ? "99+" : props.mailUnreadCount })]
12861
- })]
13552
+ children: [
13553
+ (0, react_jsx_runtime.jsx)("button", {
13554
+ type: "button",
13555
+ role: "tab",
13556
+ "aria-selected": props.mode === "chat",
13557
+ onClick: () => {
13558
+ props.onChange("chat");
13559
+ },
13560
+ children: "会话"
13561
+ }),
13562
+ (0, react_jsx_runtime.jsxs)("button", {
13563
+ type: "button",
13564
+ role: "tab",
13565
+ "aria-selected": props.mode === "mail",
13566
+ onClick: () => {
13567
+ props.onChange("mail");
13568
+ },
13569
+ children: ["邮件", props.mailUnreadCount > 0 && (0, react_jsx_runtime.jsx)("small", { children: props.mailUnreadCount > 99 ? "99+" : props.mailUnreadCount })]
13570
+ }),
13571
+ (0, react_jsx_runtime.jsx)("button", {
13572
+ type: "button",
13573
+ role: "tab",
13574
+ "aria-selected": props.mode === "devices",
13575
+ onClick: () => {
13576
+ props.onChange("devices");
13577
+ },
13578
+ children: "设备"
13579
+ })
13580
+ ]
12862
13581
  });
12863
13582
  }
12864
13583
  /** Incoming sender label: WNS display name, then Handle, then DID. */
@@ -13557,40 +14276,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13557
14276
  }), props.composeMenu]
13558
14277
  })]
13559
14278
  }),
13560
- view.groupRecovery !== null && (0, react_jsx_runtime.jsxs)("div", {
13561
- className: _dsh_awiki_css_AwikiOverlay_module_css_default.groupRecoveryNotice,
13562
- "data-status": view.groupRecovery.status,
13563
- role: view.groupRecovery.status === "blocked" ? "alert" : "status",
13564
- children: [
13565
- (0, react_jsx_runtime.jsxs)("span", { children: [(0, react_jsx_runtime.jsx)("strong", { children: view.groupRecovery.status === "pending" ? "正在恢复旧群聊身份" : view.groupRecovery.status === "blocked" ? "部分旧群聊需要处理" : "暂时无法检查旧群聊身份" }), (0, react_jsx_runtime.jsx)("small", { children: view.groupRecovery.status === "pending" ? `${view.groupRecovery.pending} 个群聊尚未完成,其他会话不受影响。` : view.groupRecovery.status === "blocked" ? `${view.groupRecovery.blocked} 个群聊未能自动恢复,其他会话不受影响。` : "私聊和新群聊不受影响,可稍后重试。" })] }),
13566
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
13567
- label: "重试群聊身份恢复",
13568
- side: "right",
13569
- children: (0, react_jsx_runtime.jsx)("button", {
13570
- type: "button",
13571
- "aria-label": "重试群聊身份恢复",
13572
- disabled: view.pending !== null,
13573
- onClick: () => {
13574
- props.retryGroupRebindRecovery();
13575
- },
13576
- children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutline14, { size: 14 })
13577
- })
13578
- }),
13579
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
13580
- label: "稍后处理",
13581
- side: "right",
13582
- children: (0, react_jsx_runtime.jsx)("button", {
13583
- type: "button",
13584
- "aria-label": "关闭旧群聊处理提示",
13585
- disabled: view.pending !== null,
13586
- onClick: () => {
13587
- props.dismissGroupRecoveryNotice();
13588
- },
13589
- children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutline16, { size: 14 })
13590
- })
13591
- })
13592
- ]
13593
- }),
13594
14279
  (0, react_jsx_runtime.jsxs)("div", {
13595
14280
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.conversationList,
13596
14281
  children: [view.conversations.map((conversation) => (0, react_jsx_runtime.jsx)(ConversationRow, {
@@ -14572,93 +15257,113 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14572
15257
  recoveryOperationId: view.recoveryOperationId,
14573
15258
  recoveryProgress: view.recoveryProgress,
14574
15259
  pending: view.pending !== null,
14575
- profileName: view.profileName,
14576
- legacySharedStateDetected: view.legacySharedStateDetected
15260
+ handleRecoveryPhoneEnabled: view.handleRecoveryPhoneEnabled
14577
15261
  })
14578
15262
  }),
14579
- view.status === "ready" && view.sessionStatus === "active" && view.identity !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", {
14580
- className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
14581
- "data-active": mode === "chat" || void 0,
14582
- hidden: mode !== "chat",
14583
- children: (0, react_jsx_runtime.jsx)(Chat, {
14584
- ...props,
14585
- selectConversation,
14586
- view: {
14587
- ...view,
14588
- identity: view.identity
14589
- },
14590
- modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
14591
- mode,
14592
- mailUnreadCount,
14593
- onChange: setMode
14594
- }),
14595
- composeMenu: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
14596
- open: menuOpen,
14597
- onClose: () => {
14598
- setMenuOpen(false);
15263
+ view.status === "ready" && view.sessionStatus === "active" && view.identity !== null && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
15264
+ (0, react_jsx_runtime.jsx)("div", {
15265
+ className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
15266
+ "data-active": mode === "chat" || void 0,
15267
+ hidden: mode !== "chat",
15268
+ children: (0, react_jsx_runtime.jsx)(Chat, {
15269
+ ...props,
15270
+ selectConversation,
15271
+ view: {
15272
+ ...view,
15273
+ identity: view.identity
14599
15274
  },
14600
- align: "end",
14601
- portal: true,
14602
- compact: true,
14603
- items: [
14604
- {
14605
- id: "direct",
14606
- label: "发起私聊"
14607
- },
14608
- {
14609
- id: "group",
14610
- label: "发起群聊"
15275
+ modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
15276
+ mode,
15277
+ mailUnreadCount,
15278
+ onChange: setMode
15279
+ }),
15280
+ composeMenu: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
15281
+ open: menuOpen,
15282
+ onClose: () => {
15283
+ setMenuOpen(false);
14611
15284
  },
14612
- {
14613
- id: "join-group",
14614
- label: "加入群聊"
14615
- }
14616
- ],
14617
- onSelect: (id) => {
14618
- setMenuOpen(false);
14619
- if (id === "direct") setComposeDirect(true);
14620
- if (id === "group") setComposeGroup(true);
14621
- if (id === "join-group") setJoinGroupOpen(true);
14622
- },
14623
- anchor: (0, react_jsx_runtime.jsx)("button", {
14624
- type: "button",
14625
- className: _dsh_awiki_css_AwikiOverlay_module_css_default.rosterAction,
14626
- "aria-label": "发起会话",
14627
- "aria-expanded": menuOpen,
14628
- "aria-haspopup": "menu",
14629
- onClick: () => {
14630
- setMenuOpen((value) => !value);
15285
+ align: "end",
15286
+ portal: true,
15287
+ compact: true,
15288
+ items: [
15289
+ {
15290
+ id: "direct",
15291
+ label: "发起私聊"
15292
+ },
15293
+ {
15294
+ id: "group",
15295
+ label: "发起群聊"
15296
+ },
15297
+ {
15298
+ id: "join-group",
15299
+ label: "加入群聊"
15300
+ }
15301
+ ],
15302
+ onSelect: (id) => {
15303
+ setMenuOpen(false);
15304
+ if (id === "direct") setComposeDirect(true);
15305
+ if (id === "group") setComposeGroup(true);
15306
+ if (id === "join-group") setJoinGroupOpen(true);
14631
15307
  },
14632
- children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, {})
15308
+ anchor: (0, react_jsx_runtime.jsx)("button", {
15309
+ type: "button",
15310
+ className: _dsh_awiki_css_AwikiOverlay_module_css_default.rosterAction,
15311
+ "aria-label": "发起会话",
15312
+ "aria-expanded": menuOpen,
15313
+ "aria-haspopup": "menu",
15314
+ onClick: () => {
15315
+ setMenuOpen((value) => !value);
15316
+ },
15317
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, {})
15318
+ })
14633
15319
  })
14634
15320
  })
14635
- })
14636
- }), (0, react_jsx_runtime.jsx)("div", {
14637
- className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
14638
- "data-active": mode === "mail" || void 0,
14639
- hidden: mode !== "mail",
14640
- children: (0, react_jsx_runtime.jsx)(AwikiMail, {
14641
- active: mode === "mail",
14642
- cacheOwner: view.identity.did,
14643
- identityCard: mode === "mail" ? (0, react_jsx_runtime.jsx)(AwikiProfileCard, {
14644
- identity: view.identity,
14645
- profile: view.profile,
15321
+ }),
15322
+ (0, react_jsx_runtime.jsx)("div", {
15323
+ className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
15324
+ "data-active": mode === "mail" || void 0,
15325
+ hidden: mode !== "mail",
15326
+ children: (0, react_jsx_runtime.jsx)(AwikiMail, {
15327
+ active: mode === "mail",
15328
+ cacheOwner: view.identity.did,
15329
+ identityCard: mode === "mail" ? (0, react_jsx_runtime.jsx)(AwikiProfileCard, {
15330
+ identity: view.identity,
15331
+ profile: view.profile,
15332
+ pending: view.pending !== null,
15333
+ updateProfile: props.updateProfile
15334
+ }) : null,
15335
+ modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
15336
+ mode,
15337
+ mailUnreadCount,
15338
+ onChange: setMode
15339
+ }),
15340
+ onUnreadCountChange: setMailUnreadCount,
15341
+ getMailAccount: props.getMailAccount,
15342
+ listMailInbox: props.listMailInbox,
15343
+ readMail: props.readMail,
15344
+ markMailRead: props.markMailRead,
15345
+ sendMail: props.sendMail
15346
+ }, view.identity.did)
15347
+ }),
15348
+ mode === "devices" && (0, react_jsx_runtime.jsx)("div", {
15349
+ className: _dsh_awiki_css_AwikiOverlay_module_css_default.modePanel,
15350
+ "data-active": true,
15351
+ children: (0, react_jsx_runtime.jsx)(AwikiDevices, {
15352
+ active: true,
14646
15353
  pending: view.pending !== null,
14647
- updateProfile: props.updateProfile
14648
- }) : null,
14649
- modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
14650
- mode,
14651
- mailUnreadCount,
14652
- onChange: setMode
14653
- }),
14654
- onUnreadCountChange: setMailUnreadCount,
14655
- getMailAccount: props.getMailAccount,
14656
- listMailInbox: props.listMailInbox,
14657
- readMail: props.readMail,
14658
- markMailRead: props.markMailRead,
14659
- sendMail: props.sendMail
14660
- }, view.identity.did)
14661
- })] }),
15354
+ modeTabs: (0, react_jsx_runtime.jsx)(ModeTabs, {
15355
+ mode,
15356
+ mailUnreadCount,
15357
+ onChange: setMode
15358
+ }),
15359
+ refreshDeviceManagement: props.refreshDeviceManagement,
15360
+ startDeviceJoinVerification: props.startDeviceJoinVerification,
15361
+ approveDeviceJoin: props.approveDeviceJoin,
15362
+ rejectDeviceJoin: props.rejectDeviceJoin,
15363
+ revokeDevice: props.revokeDevice
15364
+ })
15365
+ })
15366
+ ] }),
14662
15367
  composeDirect && (0, react_jsx_runtime.jsx)("div", {
14663
15368
  className: _dsh_awiki_css_AwikiOverlay_module_css_default.composeBackdrop,
14664
15369
  children: (0, react_jsx_runtime.jsxs)("form", {
@@ -15536,6 +16241,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15536
16241
  inspectIdentityAccess: (request) => awiki.inspectIdentityAccess(request),
15537
16242
  sendRegistrationOtp: (request) => awiki.sendRegistrationOtp(request),
15538
16243
  registerIdentity: (request) => awiki.registerIdentity(request),
16244
+ beginDeviceJoin: () => awiki.beginDeviceJoin(),
16245
+ getDeviceJoinStatus: () => awiki.getDeviceJoinStatus(),
16246
+ cancelDeviceJoin: () => awiki.cancelDeviceJoin(),
16247
+ refreshDeviceManagement: () => awiki.refreshDeviceManagement(),
16248
+ startDeviceJoinVerification: (request) => awiki.startDeviceJoinVerification(request),
16249
+ approveDeviceJoin: (request) => awiki.approveDeviceJoin(request),
16250
+ rejectDeviceJoin: (request) => awiki.rejectDeviceJoin(request),
16251
+ revokeDevice: (request) => awiki.revokeDevice(request),
15539
16252
  updateDisplayName: (displayName) => awiki.updateDisplayName(displayName),
15540
16253
  updateProfile: (request) => awiki.updateProfile(request),
15541
16254
  sendRecoveryOtp: (request) => awiki.sendRecoveryOtp(request),
@@ -15545,8 +16258,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15545
16258
  resumeRecovery: () => awiki.resumeRecovery(),
15546
16259
  discardRecovery: () => awiki.discardRecovery(),
15547
16260
  loadMoreConversations: () => awiki.loadMoreConversations(),
15548
- retryGroupRebindRecovery: () => awiki.retryGroupRebindRecovery(),
15549
- dismissGroupRecoveryNotice: () => awiki.dismissGroupRecoveryNotice(),
15550
16261
  hideConversation: (conversationId) => awiki.hideConversation(conversationId),
15551
16262
  restoreConversation: (conversationId) => awiki.restoreConversation(conversationId),
15552
16263
  startDirectChat: (handle) => awiki.startDirectChat(handle),