@awiki/dsh-plugin 0.3.2 → 0.3.4

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 (62) hide show
  1. package/README.md +36 -22
  2. package/README.zh.md +29 -19
  3. package/cordis.patch.yml +17 -0
  4. package/lib/client.js +1273 -216
  5. package/lib/client.js.map +1 -1
  6. package/lib/index.js +874 -266
  7. package/lib/provider.js +52 -16
  8. package/lib/{sdk-adapter-C0gdpg1u.mjs → sdk-adapter-BeJakxLP.mjs} +141 -3
  9. package/lib/typert.host.js +376 -44
  10. package/lib/typert.remote-client.d.ts +19 -3
  11. package/lib/typert.remote-client.d.ts.map +1 -1
  12. package/lib/typert.remote-client.js +376 -44
  13. package/lib/types/client/AwikiDevices.d.ts +28 -0
  14. package/lib/types/client/AwikiDevices.d.ts.map +1 -0
  15. package/lib/types/client/AwikiDevices.js +85 -0
  16. package/lib/types/client/AwikiDevices.js.map +1 -0
  17. package/lib/types/client/AwikiIdentityAccess.d.ts +6 -3
  18. package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
  19. package/lib/types/client/AwikiIdentityAccess.js +88 -27
  20. package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
  21. package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
  22. package/lib/types/client/AwikiOverlay.js +4 -3
  23. package/lib/types/client/AwikiOverlay.js.map +1 -1
  24. package/lib/types/client/controller.d.ts +20 -3
  25. package/lib/types/client/controller.d.ts.map +1 -1
  26. package/lib/types/client/controller.js +38 -3
  27. package/lib/types/client/controller.js.map +1 -1
  28. package/lib/types/client/index.d.ts.map +1 -1
  29. package/lib/types/client/index.js +8 -0
  30. package/lib/types/client/index.js.map +1 -1
  31. package/lib/types/client/slots.d.ts +10 -2
  32. package/lib/types/client/slots.d.ts.map +1 -1
  33. package/lib/types/index.d.ts +50 -9
  34. package/lib/types/index.d.ts.map +1 -1
  35. package/lib/types/index.js +672 -157
  36. package/lib/types/index.js.map +1 -1
  37. package/lib/types/listener-state.d.ts +5 -3
  38. package/lib/types/listener-state.d.ts.map +1 -1
  39. package/lib/types/listener-state.js +28 -13
  40. package/lib/types/listener-state.js.map +1 -1
  41. package/lib/types/listener.d.ts +9 -32
  42. package/lib/types/listener.d.ts.map +1 -1
  43. package/lib/types/listener.js +11 -127
  44. package/lib/types/listener.js.map +1 -1
  45. package/lib/types/provider-api.d.ts +96 -4
  46. package/lib/types/provider-api.d.ts.map +1 -1
  47. package/lib/types/provider.d.ts +7 -1
  48. package/lib/types/provider.d.ts.map +1 -1
  49. package/lib/types/provider.js +53 -15
  50. package/lib/types/provider.js.map +1 -1
  51. package/lib/types/realtime-supervisor.d.ts +43 -0
  52. package/lib/types/realtime-supervisor.d.ts.map +1 -0
  53. package/lib/types/realtime-supervisor.js +166 -0
  54. package/lib/types/realtime-supervisor.js.map +1 -0
  55. package/lib/types/sdk-adapter.d.ts +28 -2
  56. package/lib/types/sdk-adapter.d.ts.map +1 -1
  57. package/lib/types/sdk-adapter.js +131 -2
  58. package/lib/types/sdk-adapter.js.map +1 -1
  59. package/lib/types/types.d.ts +75 -1
  60. package/lib/types/types.d.ts.map +1 -1
  61. package/lib/types/types.js.map +1 -1
  62. package/package.json +5 -3
@@ -0,0 +1,43 @@
1
+ import type { Logger } from '@deepseek-ai/cordis';
2
+ import type { AwikiSdkListenerSyncCause, AwikiSdkRealtimeClient } from './provider-api.ts';
3
+ export interface AwikiRealtimeDiagnostics {
4
+ readonly connected: boolean;
5
+ readonly activeSessionCount: 0 | 1;
6
+ readonly startCount: number;
7
+ readonly stopCount: number;
8
+ readonly lastCommittedSyncCause?: AwikiSdkListenerSyncCause | 'session_start';
9
+ }
10
+ export interface AwikiRealtimeSupervisorConfig {
11
+ readonly onSynchronized?: (cause: AwikiSdkListenerSyncCause | 'session_start') => Promise<void>;
12
+ }
13
+ /** Own the deployment identity's only WSS without knowing Workspace or Agent policy. */
14
+ export declare class IdentityRealtimeSupervisor {
15
+ private readonly realtime;
16
+ private readonly config;
17
+ private readonly logger;
18
+ private lifecycle;
19
+ private generation;
20
+ private activeSession;
21
+ private readonly stoppedSessions;
22
+ private stopped;
23
+ private connected;
24
+ private startCount;
25
+ private stopCount;
26
+ private lastCommittedSyncCause;
27
+ private retryTimer;
28
+ private resolveRetry;
29
+ constructor(realtime: AwikiSdkRealtimeClient, config?: AwikiRealtimeSupervisorConfig, logger?: Logger);
30
+ /** Start in the background; identity activation must never await connectivity. */
31
+ start(): void;
32
+ diagnostics(): AwikiRealtimeDiagnostics;
33
+ /** Fence late events, wake retry sleep, stop the exact session, and join the lifecycle. */
34
+ dispose(): Promise<void>;
35
+ private current;
36
+ private run;
37
+ private synchronize;
38
+ private observeConnection;
39
+ private stopSession;
40
+ private waitForRetry;
41
+ private wakeRetry;
42
+ }
43
+ //# sourceMappingURL=realtime-supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-supervisor.d.ts","sourceRoot":"","sources":["../../src/realtime-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAGV,yBAAyB,EAEzB,sBAAsB,EACvB,MAAM,mBAAmB,CAAA;AAK1B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,yBAAyB,GAAG,eAAe,CAAA;CAC9E;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,KAAK,EAAE,yBAAyB,GAAG,eAAe,KAC/C,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB;AAOD,wFAAwF;AACxF,qBAAa,0BAA0B;IAcnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAfzB,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,sBAAsB,CAAyD;IACvF,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,YAAY,CAA0B;gBAG3B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,GAAE,6BAAkC,EAC1C,MAAM,GAAE,MAEF;IAGzB,kFAAkF;IAC3E,KAAK,IAAI,IAAI;IAab,WAAW,IAAI,wBAAwB;IAY9C,2FAA2F;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC,OAAO,CAAC,OAAO;YAID,GAAG;YA4CH,WAAW;IAiBzB,OAAO,CAAC,iBAAiB;YAKX,WAAW;IASzB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;CAKlB"}
@@ -0,0 +1,166 @@
1
+ const RETRY_BASE_DELAY_MS = 1_000;
2
+ const RETRY_MAX_DELAY_MS = 30_000;
3
+ function syncReason(cause) {
4
+ if (cause === 'session_start')
5
+ return 'session_start';
6
+ return cause === 'reconnected' ? 'websocket_reconnect' : 'websocket_hint';
7
+ }
8
+ /** Own the deployment identity's only WSS without knowing Workspace or Agent policy. */
9
+ export class IdentityRealtimeSupervisor {
10
+ realtime;
11
+ config;
12
+ logger;
13
+ lifecycle;
14
+ generation = 0;
15
+ activeSession;
16
+ stoppedSessions = new WeakSet();
17
+ stopped = false;
18
+ connected = false;
19
+ startCount = 0;
20
+ stopCount = 0;
21
+ lastCommittedSyncCause;
22
+ retryTimer;
23
+ resolveRetry;
24
+ constructor(realtime, config = {}, logger = {
25
+ debug() { }, info() { }, warn() { }, error() { }, name: 'awiki-realtime',
26
+ }) {
27
+ this.realtime = realtime;
28
+ this.config = config;
29
+ this.logger = logger;
30
+ }
31
+ /** Start in the background; identity activation must never await connectivity. */
32
+ start() {
33
+ if (this.lifecycle !== undefined || this.stopped)
34
+ return;
35
+ const generation = ++this.generation;
36
+ this.lifecycle = this.run(generation).catch((error) => {
37
+ if (!this.stopped) {
38
+ this.logger.warn('AWiki realtime supervisor stopped unexpectedly: %s', error instanceof Error ? error.message : 'unknown failure');
39
+ }
40
+ });
41
+ }
42
+ diagnostics() {
43
+ return {
44
+ connected: this.connected,
45
+ activeSessionCount: this.activeSession === undefined ? 0 : 1,
46
+ startCount: this.startCount,
47
+ stopCount: this.stopCount,
48
+ ...(this.lastCommittedSyncCause === undefined
49
+ ? {}
50
+ : { lastCommittedSyncCause: this.lastCommittedSyncCause }),
51
+ };
52
+ }
53
+ /** Fence late events, wake retry sleep, stop the exact session, and join the lifecycle. */
54
+ async dispose() {
55
+ if (this.stopped)
56
+ return;
57
+ this.stopped = true;
58
+ this.generation += 1;
59
+ this.connected = false;
60
+ this.wakeRetry();
61
+ const session = this.activeSession;
62
+ if (session !== undefined)
63
+ await this.stopSession(session).catch(() => undefined);
64
+ await this.lifecycle;
65
+ }
66
+ current(generation) {
67
+ return !this.stopped && this.generation === generation;
68
+ }
69
+ async run(generation) {
70
+ let cause = 'session_start';
71
+ let failures = 0;
72
+ while (this.current(generation)) {
73
+ let session;
74
+ try {
75
+ await this.synchronize(cause, generation);
76
+ if (!this.current(generation))
77
+ return;
78
+ session = await this.realtime.startRealtime();
79
+ if (!this.current(generation)) {
80
+ await this.stopSession(session).catch(() => undefined);
81
+ return;
82
+ }
83
+ this.activeSession = session;
84
+ this.startCount += 1;
85
+ this.connected = (await session.getStatus().catch(() => ({ connected: false }))).connected;
86
+ failures = 0;
87
+ while (this.current(generation) && this.activeSession === session) {
88
+ const event = await session.nextEvent();
89
+ if (!this.current(generation) || this.activeSession !== session)
90
+ return;
91
+ if (event === null) {
92
+ await this.stopSession(session);
93
+ cause = 'reconnected';
94
+ break;
95
+ }
96
+ this.observeConnection(event);
97
+ if (event.kind !== 'sync_required')
98
+ continue;
99
+ await this.synchronize(event.cause, generation);
100
+ }
101
+ }
102
+ catch (error) {
103
+ this.connected = false;
104
+ if (session !== undefined)
105
+ await this.stopSession(session).catch(() => undefined);
106
+ if (!this.current(generation))
107
+ return;
108
+ failures += 1;
109
+ this.logger.warn('AWiki realtime lifecycle failed; retrying: %s', error instanceof Error ? error.message : 'unknown failure');
110
+ await this.waitForRetry(failures, generation);
111
+ cause = cause === 'session_start' ? 'session_start' : 'reconnected';
112
+ }
113
+ }
114
+ }
115
+ async synchronize(cause, generation) {
116
+ await this.realtime.syncNow(syncReason(cause));
117
+ if (!this.current(generation))
118
+ return;
119
+ this.lastCommittedSyncCause = cause;
120
+ try {
121
+ await this.config.onSynchronized?.(cause);
122
+ }
123
+ catch (error) {
124
+ this.logger.warn('AWiki realtime post-sync consumer failed: %s', error instanceof Error ? error.message : 'unknown failure');
125
+ }
126
+ }
127
+ observeConnection(event) {
128
+ if (event.kind !== 'connection_state_changed')
129
+ return;
130
+ this.connected = event.state === 'connected';
131
+ }
132
+ async stopSession(session) {
133
+ if (this.stoppedSessions.has(session))
134
+ return;
135
+ this.stoppedSessions.add(session);
136
+ if (this.activeSession === session)
137
+ this.activeSession = undefined;
138
+ this.connected = false;
139
+ this.stopCount += 1;
140
+ await session.stop();
141
+ }
142
+ waitForRetry(failures, generation) {
143
+ if (!this.current(generation))
144
+ return Promise.resolve();
145
+ const delay = Math.min(RETRY_BASE_DELAY_MS * 2 ** Math.min(failures - 1, 10), RETRY_MAX_DELAY_MS);
146
+ return new Promise(resolve => {
147
+ const finish = () => {
148
+ if (this.retryTimer === timer)
149
+ this.retryTimer = undefined;
150
+ if (this.resolveRetry === finish)
151
+ this.resolveRetry = undefined;
152
+ resolve();
153
+ };
154
+ const timer = setTimeout(finish, delay);
155
+ this.retryTimer = timer;
156
+ this.resolveRetry = finish;
157
+ });
158
+ }
159
+ wakeRetry() {
160
+ const timer = this.retryTimer;
161
+ if (timer !== undefined)
162
+ clearTimeout(timer);
163
+ this.resolveRetry?.();
164
+ }
165
+ }
166
+ //# sourceMappingURL=realtime-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-supervisor.js","sourceRoot":"","sources":["../../src/realtime-supervisor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /** Rust IM Core adapter that copies native values into Host-owned public DTOs. */
2
2
  import type { ImCoreNodeClient } from '@awiki/im-core-node';
3
3
  import type { AwikiAttachmentId, AwikiConversation, AwikiConversationId, AwikiDid, AwikiDownloadedAttachment, AwikiFailureCode, AwikiGroupConversation, AwikiGroupMember, AwikiGroupMemberPage, AwikiGroupRebindRecoverySummary, AwikiGroupMembersRequest, AwikiGroupSnapshot, AwikiHistoryRequest, AwikiIdentity, AwikiMessage, AwikiMessageId, AwikiMailAccount, AwikiMailInboxPage, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailMarkReadResult, AwikiMailMessage, AwikiMailReadRequest, AwikiMailSendRequest, AwikiMailSendResult, AwikiPage, AwikiPageRequest, AwikiProfile, AwikiRecoveryOperationRequest, AwikiRecoveryOtpRequest, AwikiRecoveryOtpResult, AwikiRecoveryPrepareRequest, AwikiRecoveryProgress, AwikiResolvedPeer, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSendTextRequest, AwikiUpdateDisplayNameRequest, AwikiUpdateProfileRequest } from './types.ts';
4
- import type { AwikiSdkClient, AwikiSdkDownloadedAttachment, AwikiSdkExternalHttpAttempt, AwikiSdkExternalHttpRequest, AwikiSdkListenerClient, AwikiSdkSendAttachmentRequest } from './provider-api.ts';
4
+ import type { AwikiSdkClient, AwikiSdkAdminJoinProgress, AwikiSdkCurrentDeviceSummary, AwikiSdkDownloadedAttachment, AwikiSdkDeviceJoinProgress, AwikiSdkDeviceJoinRequest, AwikiSdkExternalHttpAttempt, AwikiSdkExternalHttpRequest, AwikiSdkAgentInboxClient, AwikiSdkListenerClient, AwikiSdkRealtimeClient, AwikiSdkLocalDeviceJoinSession, AwikiSdkRegistrationResult, AwikiSdkRegistryDevice, AwikiSdkSendAttachmentRequest } from './provider-api.ts';
5
5
  /** Closed provider error consumed by the Host's fixed public failure mapping. */
6
6
  export declare class AwikiSdkError extends Error {
7
7
  readonly code: AwikiFailureCode;
@@ -13,6 +13,8 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
13
13
  private readonly client;
14
14
  private readonly attachmentConversations;
15
15
  private disposal;
16
+ readonly realtime: AwikiSdkRealtimeClient;
17
+ readonly agentInbox: AwikiSdkAgentInboxClient;
16
18
  readonly listener: AwikiSdkListenerClient;
17
19
  constructor(client: ImCoreNodeClient | Promise<ImCoreNodeClient>);
18
20
  private run;
@@ -39,7 +41,31 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
39
41
  prepareExternalHttpRequest(request: AwikiSdkExternalHttpRequest): Promise<AwikiSdkExternalHttpAttempt>;
40
42
  getIdentity(): Promise<AwikiIdentity | null>;
41
43
  sendRegistrationOtp(request: AwikiRegistrationOtpRequest): Promise<AwikiRegistrationOtpResult>;
42
- registerIdentity(request: AwikiRegistrationRequest): Promise<AwikiIdentity>;
44
+ registerIdentity(request: AwikiRegistrationRequest): Promise<AwikiSdkRegistrationResult>;
45
+ beginDeviceJoin(request: {
46
+ readonly continuationId: string;
47
+ readonly operationId: string;
48
+ readonly userPresenceConfirmed: boolean;
49
+ }): Promise<AwikiSdkDeviceJoinProgress>;
50
+ getDeviceJoinStatus(joinSessionId: string): Promise<AwikiSdkDeviceJoinProgress>;
51
+ listLocalDeviceJoinSessions(): Promise<readonly AwikiSdkLocalDeviceJoinSession[]>;
52
+ cancelDeviceJoin(joinSessionId: string): Promise<AwikiSdkLocalDeviceJoinSession>;
53
+ getCurrentDeviceSummary(): Promise<AwikiSdkCurrentDeviceSummary>;
54
+ syncDeviceManagement(): Promise<void>;
55
+ getDeviceRegistry(): Promise<readonly AwikiSdkRegistryDevice[]>;
56
+ listLocalDeviceJoinRequests(): Promise<readonly AwikiSdkDeviceJoinRequest[]>;
57
+ startDeviceJoinVerification(request: {
58
+ readonly joinSessionId: string;
59
+ readonly operationId: string;
60
+ readonly challengeTtlSeconds: number;
61
+ }): Promise<AwikiSdkAdminJoinProgress>;
62
+ getLocalDeviceJoinVerificationProgress(joinSessionId: string): Promise<AwikiSdkAdminJoinProgress>;
63
+ prepareDeviceJoinApproval(joinSessionId: string): Promise<{
64
+ readonly approvalHandle: string;
65
+ }>;
66
+ confirmDeviceJoinApproval(approvalHandle: string): Promise<AwikiSdkAdminJoinProgress>;
67
+ rejectDeviceJoin(joinSessionId: string, reason: 'user_rejected' | 'sas_mismatch'): Promise<AwikiSdkAdminJoinProgress>;
68
+ revokeDevice(deviceId: string): Promise<void>;
43
69
  updateDisplayName(request: AwikiUpdateDisplayNameRequest): Promise<AwikiIdentity>;
44
70
  getProfile(): Promise<AwikiProfile>;
45
71
  updateProfile(request: AwikiUpdateProfileRequest): Promise<AwikiProfile>;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"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"}
@@ -236,6 +236,26 @@ function identity(value) {
236
236
  registeredAt: safeInteger(value.registeredAtMs),
237
237
  };
238
238
  }
239
+ function joinProgress(value) {
240
+ return {
241
+ joinSessionId: required(value.joinSessionId),
242
+ localPhase: value.localPhase,
243
+ remoteState: value.remoteState,
244
+ expiresAt: required(value.expiresAt),
245
+ ...value.sas === undefined ? {} : { sas: required(value.sas) },
246
+ completed: boolean(value.completed),
247
+ ...value.identity === undefined ? {} : { identity: identity(value.identity) },
248
+ };
249
+ }
250
+ function adminJoinProgress(value) {
251
+ return {
252
+ joinSessionId: required(value.joinSessionId),
253
+ localPhase: value.localPhase,
254
+ remoteState: value.remoteState,
255
+ expiresAt: required(value.expiresAt),
256
+ ...value.sas === undefined ? {} : { sas: required(value.sas) },
257
+ };
258
+ }
239
259
  function profile(value) {
240
260
  return {
241
261
  did: required(value.did),
@@ -362,17 +382,22 @@ export class RustSdkAdapter {
362
382
  client;
363
383
  attachmentConversations = new Map();
364
384
  disposal;
385
+ realtime;
386
+ agentInbox;
365
387
  listener;
366
388
  constructor(client) {
367
389
  this.client = Promise.resolve(client);
368
- this.listener = {
390
+ this.realtime = {
369
391
  syncNow: reason => this.listenerSyncNow(reason),
370
392
  startRealtime: () => this.listenerStartRealtime(),
393
+ };
394
+ this.agentInbox = {
371
395
  listConversations: request => this.listenerConversations(request),
372
396
  getHistory: request => this.listenerHistory(request),
373
397
  markConversationRead: conversationId => this.markConversationRead(conversationId),
374
398
  sendText: request => this.sendText(request),
375
399
  };
400
+ this.listener = { ...this.realtime, ...this.agentInbox };
376
401
  }
377
402
  async run(operation, ambiguousSend = false) {
378
403
  try {
@@ -602,6 +627,10 @@ export class RustSdkAdapter {
602
627
  const session = await client.startRealtime();
603
628
  return {
604
629
  nextEvent: () => this.run(() => session.nextEvent()),
630
+ getStatus: () => this.run(async () => {
631
+ const status = await session.getStatus();
632
+ return { connected: status.connected };
633
+ }),
605
634
  stop: () => this.run(() => session.stop()),
606
635
  };
607
636
  });
@@ -658,7 +687,107 @@ export class RustSdkAdapter {
658
687
  });
659
688
  }
660
689
  registerIdentity(request) {
661
- return this.run(async (client) => identity(await client.completeRegistration(request)));
690
+ return this.run(async (client) => {
691
+ const value = await client.completeRegistrationWithOutcome(request);
692
+ if (value.status === 'registered') {
693
+ return { status: 'registered', identity: identity(value.identity) };
694
+ }
695
+ return {
696
+ status: 'join-required',
697
+ continuationId: required(value.existingHandle.continuationId),
698
+ fullHandle: required(value.existingHandle.fullHandle),
699
+ mode: value.existingHandle.mode === 'handle_recovery_rebind'
700
+ ? 'handle-recovery-rebind'
701
+ : 'ordinary',
702
+ requiresUserPresence: boolean(value.existingHandle.requiresUserPresence),
703
+ };
704
+ });
705
+ }
706
+ beginDeviceJoin(request) {
707
+ return this.run(async (client) => joinProgress(await client.beginPreparedRegistrationJoin(request)));
708
+ }
709
+ getDeviceJoinStatus(joinSessionId) {
710
+ return this.run(async (client) => joinProgress(await client.resumePreparedRegistrationJoin({ joinSessionId })));
711
+ }
712
+ listLocalDeviceJoinSessions() {
713
+ return this.run(async (client) => (await client.listLocalDeviceJoinSessions()).map(value => ({
714
+ joinSessionId: required(value.joinSessionId),
715
+ side: value.side,
716
+ localPhase: value.localPhase,
717
+ expiresAt: required(value.expiresAt),
718
+ })));
719
+ }
720
+ cancelDeviceJoin(joinSessionId) {
721
+ return this.run(async (client) => {
722
+ const value = await client.cancelPreparedRegistrationJoin({ joinSessionId });
723
+ return {
724
+ joinSessionId: required(value.joinSessionId),
725
+ side: value.side,
726
+ localPhase: value.localPhase,
727
+ expiresAt: required(value.expiresAt),
728
+ };
729
+ });
730
+ }
731
+ getCurrentDeviceSummary() {
732
+ return this.run(async (client) => {
733
+ const value = await client.getCurrentDeviceSummary();
734
+ return {
735
+ ...value.role === undefined ? {} : { role: value.role },
736
+ readiness: value.readiness,
737
+ canManage: boolean(value.canManage),
738
+ };
739
+ });
740
+ }
741
+ syncDeviceManagement() {
742
+ return this.run(async (client) => {
743
+ await client.syncNow({ reason: 'foreground_reconcile' });
744
+ });
745
+ }
746
+ getDeviceRegistry() {
747
+ return this.run(async (client) => (await client.getDeviceRegistry()).devices.map(value => ({
748
+ deviceId: required(value.protocolDeviceId),
749
+ status: value.status,
750
+ role: value.role,
751
+ managementReady: boolean(value.managementReady),
752
+ isCurrent: boolean(value.isCurrent),
753
+ })));
754
+ }
755
+ listLocalDeviceJoinRequests() {
756
+ return this.run(async (client) => (await client.listLocalDeviceJoinRequests()).map(value => ({
757
+ joinSessionId: required(value.joinSessionId),
758
+ candidateKeyFingerprint: required(value.candidateKeyFingerprint),
759
+ issuedAt: required(value.issuedAt),
760
+ expiresAt: required(value.expiresAt),
761
+ state: value.state,
762
+ claimedByCurrentDevice: boolean(value.claimedByCurrentDevice),
763
+ canStartVerification: boolean(value.canStartVerification),
764
+ })));
765
+ }
766
+ startDeviceJoinVerification(request) {
767
+ return this.run(async (client) => adminJoinProgress(await client.startDeviceJoinVerification(request)));
768
+ }
769
+ getLocalDeviceJoinVerificationProgress(joinSessionId) {
770
+ return this.run(async (client) => adminJoinProgress(await client.getLocalDeviceJoinVerificationProgress({ joinSessionId })));
771
+ }
772
+ prepareDeviceJoinApproval(joinSessionId) {
773
+ return this.run(async (client) => {
774
+ const value = await client.prepareDeviceJoinApproval({ joinSessionId, sasConfirmed: true });
775
+ return { approvalHandle: required(value.approvalHandle) };
776
+ });
777
+ }
778
+ confirmDeviceJoinApproval(approvalHandle) {
779
+ return this.run(async (client) => adminJoinProgress(await client.confirmDeviceJoinApproval({
780
+ approvalHandle,
781
+ userPresenceConfirmed: true,
782
+ })));
783
+ }
784
+ rejectDeviceJoin(joinSessionId, reason) {
785
+ return this.run(async (client) => adminJoinProgress(await client.rejectDeviceJoin({ joinSessionId, reason })));
786
+ }
787
+ revokeDevice(deviceId) {
788
+ return this.run(async (client) => {
789
+ await client.revokeDevice({ targetDeviceId: deviceId, userPresenceConfirmed: true });
790
+ });
662
791
  }
663
792
  updateDisplayName(request) {
664
793
  return this.run(async (client) => identity(await client.updateDisplayName(request.displayName)));