@heybox/hb-sdk-protocol 0.8.1-alpha.3 → 0.8.1-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,29 @@
1
1
  import type {
2
+ CompanionCancelPreparationPayload,
3
+ CompanionCancelPreparationResult,
4
+ CompanionGetActiveSessionPayload,
5
+ CompanionGetActiveSessionResult,
6
+ CompanionGetInfoPayload,
7
+ CompanionGetInfoResult,
8
+ CompanionGetPreparationStatusPayload,
9
+ CompanionGetPreparationStatusResult,
10
+ CompanionLaunchPayload,
11
+ CompanionLaunchResult,
12
+ CompanionOpenAttachmentPayload,
13
+ CompanionOpenAttachmentResult,
14
+ CompanionPreparePayload,
15
+ CompanionPrepareProgress,
16
+ CompanionPrepareResult,
17
+ CompanionSessionAckOutputPayload,
18
+ CompanionSessionAckOutputResult,
19
+ CompanionSessionCloseStdinPayload,
20
+ CompanionSessionCloseStdinResult,
21
+ CompanionSessionTerminatePayload,
22
+ CompanionSessionTerminateResult,
23
+ CompanionSessionWritePayload,
24
+ CompanionSessionWriteResult,
25
+ CompanionShowNotificationPayload,
26
+ CompanionShowNotificationResult,
2
27
  ClosePayload,
3
28
  CloseResult,
4
29
  CopyLinkPayload,
@@ -11,6 +36,7 @@ import type {
11
36
  DirectoryListResult,
12
37
  DirectoryRemovePayload,
13
38
  DirectoryRemoveResult,
39
+ DownloadProgressPayload,
14
40
  DeleteCurrentUserLeaderboardEntryPayload,
15
41
  DeleteCurrentUserLeaderboardEntryResult,
16
42
  GetCurrentUserLeaderboardEntryPayload,
@@ -122,6 +148,18 @@ export const CLOUD_LEADERBOARD_GET_LIST_METHOD = 'cloud.leaderboard.getList' as
122
148
  export const CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD = 'cloud.leaderboard.getCurrentUserEntry' as const;
123
149
  export const CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD = 'cloud.leaderboard.deleteCurrentUserEntry' as const;
124
150
  export const CLOUD_LEADERBOARD_GET_INFO_METHOD = 'cloud.leaderboard.getInfo' as const;
151
+ export const COMPANION_GET_INFO_METHOD = 'companion.getInfo' as const;
152
+ export const COMPANION_GET_PREPARATION_STATUS_METHOD = 'companion.getPreparationStatus' as const;
153
+ export const COMPANION_PREPARE_METHOD = 'companion.prepare' as const;
154
+ export const COMPANION_CANCEL_PREPARATION_METHOD = 'companion.cancelPreparation' as const;
155
+ export const COMPANION_GET_ACTIVE_SESSION_METHOD = 'companion.getActiveSession' as const;
156
+ export const COMPANION_LAUNCH_METHOD = 'companion.launch' as const;
157
+ export const COMPANION_SESSION_WRITE_METHOD = 'companion.session.write' as const;
158
+ export const COMPANION_SESSION_CLOSE_STDIN_METHOD = 'companion.session.closeStdin' as const;
159
+ export const COMPANION_SESSION_TERMINATE_METHOD = 'companion.session.terminate' as const;
160
+ export const COMPANION_SESSION_ACK_OUTPUT_METHOD = 'companion.session.ackOutput' as const;
161
+ export const COMPANION_OPEN_ATTACHMENT_METHOD = 'companion.openAttachment' as const;
162
+ export const COMPANION_SHOW_NOTIFICATION_METHOD = 'companion.showNotification' as const;
125
163
 
126
164
  export type MiniProgramAuthMethod = typeof AUTH_LOGIN_METHOD;
127
165
  export type MiniProgramUserMethod = typeof USER_GET_INFO_METHOD | typeof USER_REVOKE_AUTHORIZATION_METHOD | typeof USER_GET_STEAM_GAME_LIST_METHOD;
@@ -153,6 +191,19 @@ export type MiniProgramCloudMethod =
153
191
  | typeof CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD
154
192
  | typeof CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD
155
193
  | typeof CLOUD_LEADERBOARD_GET_INFO_METHOD;
194
+ export type MiniProgramCompanionMethod =
195
+ | typeof COMPANION_GET_INFO_METHOD
196
+ | typeof COMPANION_GET_PREPARATION_STATUS_METHOD
197
+ | typeof COMPANION_PREPARE_METHOD
198
+ | typeof COMPANION_CANCEL_PREPARATION_METHOD
199
+ | typeof COMPANION_GET_ACTIVE_SESSION_METHOD
200
+ | typeof COMPANION_LAUNCH_METHOD
201
+ | typeof COMPANION_SESSION_WRITE_METHOD
202
+ | typeof COMPANION_SESSION_CLOSE_STDIN_METHOD
203
+ | typeof COMPANION_SESSION_TERMINATE_METHOD
204
+ | typeof COMPANION_SESSION_ACK_OUTPUT_METHOD
205
+ | typeof COMPANION_OPEN_ATTACHMENT_METHOD
206
+ | typeof COMPANION_SHOW_NOTIFICATION_METHOD;
156
207
  export type MiniProgramBridgeMethod =
157
208
  | MiniProgramAuthMethod
158
209
  | MiniProgramUserMethod
@@ -166,7 +217,8 @@ export type MiniProgramBridgeMethod =
166
217
  | MiniProgramUiMethod
167
218
  | MiniProgramDeviceMethod
168
219
  | MiniProgramNavigationMethod
169
- | MiniProgramCloudMethod;
220
+ | MiniProgramCloudMethod
221
+ | MiniProgramCompanionMethod;
170
222
  export type MiniProgramCapabilityModule =
171
223
  | 'auth'
172
224
  | 'user'
@@ -180,7 +232,8 @@ export type MiniProgramCapabilityModule =
180
232
  | 'ui'
181
233
  | 'device'
182
234
  | 'navigation'
183
- | 'cloud';
235
+ | 'cloud'
236
+ | 'companion';
184
237
  export type MiniProgramCapabilityRisk = 'low' | 'medium' | 'high';
185
238
 
186
239
  export interface MiniProgramCapabilityDefinition {
@@ -437,6 +490,26 @@ export const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
437
490
  requirement: { kind: 'all', permissions: ['leaderboard'] },
438
491
  risk: 'low',
439
492
  },
493
+ ...[
494
+ COMPANION_GET_INFO_METHOD,
495
+ COMPANION_GET_PREPARATION_STATUS_METHOD,
496
+ COMPANION_PREPARE_METHOD,
497
+ COMPANION_CANCEL_PREPARATION_METHOD,
498
+ COMPANION_GET_ACTIVE_SESSION_METHOD,
499
+ COMPANION_LAUNCH_METHOD,
500
+ COMPANION_SESSION_WRITE_METHOD,
501
+ COMPANION_SESSION_CLOSE_STDIN_METHOD,
502
+ COMPANION_SESSION_TERMINATE_METHOD,
503
+ COMPANION_SESSION_ACK_OUTPUT_METHOD,
504
+ COMPANION_OPEN_ATTACHMENT_METHOD,
505
+ COMPANION_SHOW_NOTIFICATION_METHOD,
506
+ ].map((method) => ({
507
+ method,
508
+ module: 'companion' as const,
509
+ capability: method,
510
+ requirement: { kind: 'all' as const, permissions: ['companion' as const] },
511
+ risk: 'high' as const,
512
+ })),
440
513
  ] as const satisfies readonly MiniProgramCapabilityDefinition[];
441
514
 
442
515
  export interface MiniProgramCapabilityPayloadMap {
@@ -481,6 +554,18 @@ export interface MiniProgramCapabilityPayloadMap {
481
554
  [CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD]: GetCurrentUserLeaderboardEntryPayload | undefined;
482
555
  [CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD]: DeleteCurrentUserLeaderboardEntryPayload | undefined;
483
556
  [CLOUD_LEADERBOARD_GET_INFO_METHOD]: GetLeaderboardInfoPayload | undefined;
557
+ [COMPANION_GET_INFO_METHOD]: CompanionGetInfoPayload;
558
+ [COMPANION_GET_PREPARATION_STATUS_METHOD]: CompanionGetPreparationStatusPayload;
559
+ [COMPANION_PREPARE_METHOD]: CompanionPreparePayload;
560
+ [COMPANION_CANCEL_PREPARATION_METHOD]: CompanionCancelPreparationPayload;
561
+ [COMPANION_GET_ACTIVE_SESSION_METHOD]: CompanionGetActiveSessionPayload;
562
+ [COMPANION_LAUNCH_METHOD]: CompanionLaunchPayload;
563
+ [COMPANION_SESSION_WRITE_METHOD]: CompanionSessionWritePayload;
564
+ [COMPANION_SESSION_CLOSE_STDIN_METHOD]: CompanionSessionCloseStdinPayload;
565
+ [COMPANION_SESSION_TERMINATE_METHOD]: CompanionSessionTerminatePayload;
566
+ [COMPANION_SESSION_ACK_OUTPUT_METHOD]: CompanionSessionAckOutputPayload;
567
+ [COMPANION_OPEN_ATTACHMENT_METHOD]: CompanionOpenAttachmentPayload;
568
+ [COMPANION_SHOW_NOTIFICATION_METHOD]: CompanionShowNotificationPayload;
484
569
  }
485
570
 
486
571
  export interface MiniProgramCapabilityResultMap {
@@ -525,7 +610,27 @@ export interface MiniProgramCapabilityResultMap {
525
610
  [CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD]: GetCurrentUserLeaderboardEntryResult;
526
611
  [CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD]: DeleteCurrentUserLeaderboardEntryResult;
527
612
  [CLOUD_LEADERBOARD_GET_INFO_METHOD]: GetLeaderboardInfoResult;
613
+ [COMPANION_GET_INFO_METHOD]: CompanionGetInfoResult;
614
+ [COMPANION_GET_PREPARATION_STATUS_METHOD]: CompanionGetPreparationStatusResult;
615
+ [COMPANION_PREPARE_METHOD]: CompanionPrepareResult;
616
+ [COMPANION_CANCEL_PREPARATION_METHOD]: CompanionCancelPreparationResult;
617
+ [COMPANION_GET_ACTIVE_SESSION_METHOD]: CompanionGetActiveSessionResult;
618
+ [COMPANION_LAUNCH_METHOD]: CompanionLaunchResult;
619
+ [COMPANION_SESSION_WRITE_METHOD]: CompanionSessionWriteResult;
620
+ [COMPANION_SESSION_CLOSE_STDIN_METHOD]: CompanionSessionCloseStdinResult;
621
+ [COMPANION_SESSION_TERMINATE_METHOD]: CompanionSessionTerminateResult;
622
+ [COMPANION_SESSION_ACK_OUTPUT_METHOD]: CompanionSessionAckOutputResult;
623
+ [COMPANION_OPEN_ATTACHMENT_METHOD]: CompanionOpenAttachmentResult;
624
+ [COMPANION_SHOW_NOTIFICATION_METHOD]: CompanionShowNotificationResult;
528
625
  }
529
626
 
627
+ export interface MiniProgramCapabilityProgressMap {
628
+ [NETWORK_DOWNLOAD_METHOD]: DownloadProgressPayload;
629
+ [COMPANION_PREPARE_METHOD]: CompanionPrepareProgress;
630
+ }
631
+
632
+ export type MiniProgramProgressMethod = keyof MiniProgramCapabilityProgressMap;
633
+ export type MiniProgramCapabilityProgress<T extends MiniProgramProgressMethod> = MiniProgramCapabilityProgressMap[T];
634
+
530
635
  export type MiniProgramCapabilityPayload<T extends MiniProgramBridgeMethod> = MiniProgramCapabilityPayloadMap[T];
531
636
  export type MiniProgramCapabilityResult<T extends MiniProgramBridgeMethod> = MiniProgramCapabilityResultMap[T];
package/src/constants.ts CHANGED
@@ -6,3 +6,6 @@ export const RUNTIME_LOCATION_PROBE_METHOD = 'runtime.location.probe' as const;
6
6
  export const SDK_LOCATION_REPORT_METHOD = 'sdk.location.report' as const;
7
7
  export const SDK_CSP_VIOLATION_METHOD = 'sdk.csp.violation' as const;
8
8
  export const MINI_PROGRAM_OPERATION_PROGRESS_METHOD = 'operation.progress' as const;
9
+ export const COMPANION_SESSION_OUTPUT_EVENT = 'companion.session.output' as const;
10
+ export const COMPANION_SESSION_EXIT_EVENT = 'companion.session.exit' as const;
11
+ export const COMPANION_SESSION_OWNERSHIP_LOST_EVENT = 'companion.session.ownershipLost' as const;
package/src/guards.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_OPERATION_PROGRESS_METHOD, SDK_HANDSHAKE_METHOD } from './constants';
2
2
  import type { MiniProgramBridgeMessage } from './bridge';
3
3
  import type {
4
+ CompanionPrepareProgress,
4
5
  DownloadProgressPayload,
5
6
  MiniProgramDirectoryDescriptor,
6
7
  MiniProgramDirectoryRef,
@@ -33,7 +34,7 @@ export function isMiniProgramBridgeMessage(value: unknown): value is MiniProgram
33
34
  if (value.type === 'event') {
34
35
  if (!isNonEmptyString(value.method) || value.error !== undefined) return false;
35
36
  if (value.method === MINI_PROGRAM_OPERATION_PROGRESS_METHOD) {
36
- return value.version === 2 && isNonEmptyString(value.id) && isMiniProgramDownloadProgressPayload(value.payload);
37
+ return value.version === 2 && isNonEmptyString(value.id) && isMiniProgramOperationProgressPayload(value.payload);
37
38
  }
38
39
  return value.id === undefined || isNonEmptyString(value.id);
39
40
  }
@@ -75,7 +76,7 @@ export function isMiniProgramDirectoryRef(value: unknown): value is MiniProgramD
75
76
  return hasOnlyKeys(value, ['kind', 'handleId']);
76
77
  }
77
78
  return (
78
- isMiniProgramPathRootRef(value.root) && isMiniProgramRelativePath(value.relativePath) && hasOnlyKeys(value, ['kind', 'root', 'relativePath'])
79
+ isMiniProgramPathRootRef(value.root) && (value.relativePath === '.' || isMiniProgramRelativePath(value.relativePath)) && hasOnlyKeys(value, ['kind', 'root', 'relativePath'])
79
80
  );
80
81
  }
81
82
 
@@ -133,6 +134,28 @@ export function isMiniProgramDownloadProgressPayload(value: unknown): value is D
133
134
  return isNonNegativeSafeInteger(value.total) && value.loaded <= value.total;
134
135
  }
135
136
 
137
+ export function isMiniProgramCompanionPrepareProgress(value: unknown): value is CompanionPrepareProgress {
138
+ if (!isRecord(value)) return false;
139
+ if (value.phase === 'downloading') {
140
+ return (
141
+ isNonNegativeSafeInteger(value.loaded) &&
142
+ (value.total === undefined || (isNonNegativeSafeInteger(value.total) && value.loaded <= value.total)) &&
143
+ hasOnlyKeys(value, ['phase', 'loaded', 'total'])
144
+ );
145
+ }
146
+ if (value.phase !== 'verifying' && value.phase !== 'extracting') return false;
147
+ return (
148
+ isNonNegativeSafeInteger(value.processed) &&
149
+ isNonNegativeSafeInteger(value.total) &&
150
+ value.processed <= value.total &&
151
+ hasOnlyKeys(value, ['phase', 'processed', 'total'])
152
+ );
153
+ }
154
+
155
+ export function isMiniProgramOperationProgressPayload(value: unknown): value is DownloadProgressPayload | CompanionPrepareProgress {
156
+ return isMiniProgramDownloadProgressPayload(value) || isMiniProgramCompanionPrepareProgress(value);
157
+ }
158
+
136
159
  function isSDKHandshakePayload(value: unknown) {
137
160
  return isRecord(value) && isNonEmptyString(value.href) && typeof value.userAgent === 'string' && isNonEmptyString(value.sdkVersion);
138
161
  }
package/src/payloads.ts CHANGED
@@ -209,7 +209,6 @@ export interface NetworkRequestPayload {
209
209
  data?: unknown;
210
210
  headers?: MiniProgramNetworkHeaders;
211
211
  timeout?: number;
212
- withCredentials?: boolean;
213
212
  }
214
213
  export interface NetworkResponsePayload<T = unknown> {
215
214
  data: T;
@@ -372,7 +371,6 @@ interface NetworkDownloadBasePayload {
372
371
  params?: MiniProgramNetworkParams;
373
372
  headers?: MiniProgramNetworkHeaders;
374
373
  timeout?: number;
375
- withCredentials?: boolean;
376
374
  maxBytes?: number;
377
375
  }
378
376
 
@@ -484,3 +482,137 @@ export interface GetLeaderboardInfoResult {
484
482
  order: LeaderboardOrder;
485
483
  rankLimit: number;
486
484
  }
485
+
486
+ /** 受管桌面程序可选能力。 */
487
+ export type CompanionCapability = 'stdio' | 'attachments' | 'notifications';
488
+ export type CompanionTarget = 'windows-x64' | 'macos-arm64';
489
+ export type CompanionSignatureStatus = 'unsigned' | 'valid' | 'invalid' | 'unknown';
490
+
491
+ /** Companion alias 的跨构建、Runtime 与 Host 规范。 */
492
+ export const COMPANION_ALIAS_PATTERN = /^[a-z][a-z0-9-]{0,31}$/;
493
+
494
+ /** Companion Host 可跨 bridge 保留的稳定领域错误码。 */
495
+ export const COMPANION_ERROR_CODES = [
496
+ 'COMPANION_UNSUPPORTED',
497
+ 'COMPANION_NOT_DECLARED',
498
+ 'COMPANION_TARGET_UNSUPPORTED',
499
+ 'COMPANION_NOT_PREPARED',
500
+ 'COMPANION_PREPARATION_CANCELLED',
501
+ 'COMPANION_DOWNLOAD_FAILED',
502
+ 'COMPANION_DESCRIPTOR_UNAVAILABLE',
503
+ 'COMPANION_ARCHIVE_INVALID',
504
+ 'COMPANION_INTEGRITY_FAILED',
505
+ 'COMPANION_ENTRYPOINT_INVALID',
506
+ 'COMPANION_USER_CANCELLED',
507
+ 'COMPANION_ELEVATION_DENIED',
508
+ 'COMPANION_OS_BLOCKED',
509
+ 'COMPANION_LAUNCH_FAILED',
510
+ 'COMPANION_SESSION_VERSION_MISMATCH',
511
+ 'COMPANION_SESSION_OWNERSHIP_LOST',
512
+ 'COMPANION_SESSION_EXITED',
513
+ 'COMPANION_PIPE_CLOSED',
514
+ 'COMPANION_OUTPUT_LIMIT',
515
+ 'COMPANION_PROCESS_CRASHED',
516
+ 'COMPANION_ATTACHMENT_NOT_FOUND',
517
+ 'COMPANION_NOTIFICATION_UNAVAILABLE',
518
+ 'COMPANION_TERMINATE_FAILED',
519
+ ] as const;
520
+ export type CompanionErrorCode = (typeof COMPANION_ERROR_CODES)[number];
521
+
522
+ export interface CompanionInfo {
523
+ alias: string;
524
+ displayName: string;
525
+ target: CompanionTarget;
526
+ capabilities: readonly CompanionCapability[];
527
+ archiveBytes: number;
528
+ signatureStatus: CompanionSignatureStatus;
529
+ /** Host 确认的产物来源;旧 Host 缺省时来源未知。 */
530
+ source?: 'local-dev' | 'released';
531
+ }
532
+
533
+ export interface CompanionErrorSummary {
534
+ code: CompanionErrorCode;
535
+ message: string;
536
+ retryable: boolean;
537
+ }
538
+
539
+ export type CompanionPrepareProgress =
540
+ | { phase: 'downloading'; loaded: number; total?: number }
541
+ | { phase: 'verifying'; processed: number; total: number }
542
+ | { phase: 'extracting'; processed: number; total: number };
543
+
544
+ export type CompanionPreparationStatus =
545
+ | { state: 'not-prepared' }
546
+ | { state: 'preparing'; progress: CompanionPrepareProgress }
547
+ | { state: 'ready'; preparedAt: number }
548
+ | { state: 'failed'; error: CompanionErrorSummary };
549
+
550
+ export type CompanionExitReason = 'exited' | 'terminated' | 'crashed' | 'host-shutdown' | 'permission-revoked' | 'output-limit';
551
+ export type CompanionExit = { reason: 'exited'; exitCode: number } | { reason: Exclude<CompanionExitReason, 'exited'>; exitCode?: number };
552
+
553
+ /** 活动 Session 的 wire 快照;不包含路径、PID 或原生句柄。 */
554
+ export interface CompanionSessionSnapshot {
555
+ id: string;
556
+ alias: string;
557
+ target: CompanionTarget;
558
+ capabilities: readonly CompanionCapability[];
559
+ state: 'running';
560
+ controllerGeneration: number;
561
+ }
562
+
563
+ export interface CompanionAliasPayload {
564
+ alias: string;
565
+ }
566
+ export type CompanionGetInfoPayload = CompanionAliasPayload;
567
+ export type CompanionGetInfoResult = CompanionInfo;
568
+ export type CompanionGetPreparationStatusPayload = CompanionAliasPayload;
569
+ export type CompanionGetPreparationStatusResult = CompanionPreparationStatus;
570
+ export type CompanionPreparePayload = CompanionAliasPayload;
571
+ export type CompanionPrepareResult = CompanionInfo;
572
+ export type CompanionCancelPreparationPayload = CompanionAliasPayload;
573
+ export type CompanionCancelPreparationResult = void;
574
+ export type CompanionGetActiveSessionPayload = CompanionAliasPayload;
575
+ export type CompanionGetActiveSessionResult = CompanionSessionSnapshot | undefined;
576
+ export type CompanionLaunchPayload = CompanionAliasPayload;
577
+ export type CompanionLaunchResult = CompanionSessionSnapshot;
578
+
579
+ export interface CompanionSessionControllerPayload {
580
+ sessionId: string;
581
+ controllerGeneration: number;
582
+ }
583
+ export interface CompanionSessionWritePayload extends CompanionSessionControllerPayload {
584
+ data: Uint8Array;
585
+ }
586
+ export type CompanionSessionWriteResult = void;
587
+ export type CompanionSessionCloseStdinPayload = CompanionSessionControllerPayload;
588
+ export type CompanionSessionCloseStdinResult = void;
589
+ export type CompanionSessionTerminatePayload = CompanionSessionControllerPayload;
590
+ export type CompanionSessionTerminateResult = void;
591
+ export interface CompanionSessionAckOutputPayload extends CompanionSessionControllerPayload {
592
+ stream: 'stdout' | 'stderr';
593
+ sequence: number;
594
+ }
595
+ export type CompanionSessionAckOutputResult = void;
596
+ export interface CompanionOpenAttachmentPayload extends CompanionSessionControllerPayload {
597
+ id: string;
598
+ }
599
+ export type CompanionOpenAttachmentResult = MiniProgramFileDescriptor;
600
+ export type CompanionNotificationCategory = 'completed' | 'failed' | 'stopped' | 'attention';
601
+ export interface CompanionShowNotificationPayload extends CompanionSessionControllerPayload {
602
+ category: CompanionNotificationCategory;
603
+ }
604
+ export type CompanionShowNotificationResult = void;
605
+
606
+ export interface CompanionSessionOutputPayload extends CompanionSessionControllerPayload {
607
+ stream: 'stdout' | 'stderr';
608
+ sequence: number;
609
+ data: Uint8Array;
610
+ }
611
+ export interface CompanionSessionExitPayload {
612
+ sessionId: string;
613
+ exit: CompanionExit;
614
+ }
615
+ export interface CompanionSessionOwnershipLostPayload {
616
+ sessionId: string;
617
+ controllerGeneration: number;
618
+ }
@@ -9,6 +9,7 @@ export const MINI_PROGRAM_PERMISSION_KEYS = [
9
9
  'clipboard',
10
10
  'leaderboard',
11
11
  'network',
12
+ 'companion',
12
13
  ] as const;
13
14
 
14
15
  export type MiniProgramPermissionKey = (typeof MINI_PROGRAM_PERMISSION_KEYS)[number];
@@ -146,6 +147,29 @@ export const MINI_PROGRAM_PERMISSION_CATALOG = [
146
147
  methods: ['network.request', 'network.download'],
147
148
  conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
148
149
  },
150
+ {
151
+ key: 'companion',
152
+ name: '桌面辅助应用',
153
+ description: '下载、准备并运行随当前小程序版本发布的受管桌面程序。',
154
+ access: 'platform-approval',
155
+ risk: 'high',
156
+ config: {},
157
+ methods: [
158
+ 'companion.getInfo',
159
+ 'companion.getPreparationStatus',
160
+ 'companion.prepare',
161
+ 'companion.cancelPreparation',
162
+ 'companion.getActiveSession',
163
+ 'companion.launch',
164
+ 'companion.session.write',
165
+ 'companion.session.closeStdin',
166
+ 'companion.session.terminate',
167
+ 'companion.session.ackOutput',
168
+ 'companion.openAttachment',
169
+ 'companion.showNotification',
170
+ ],
171
+ conditions: ['声明后仍需平台批准,并继续执行可信用户手势、Host 能力和当前版本 Manifest 校验。'],
172
+ },
149
173
  ] as const satisfies readonly MiniProgramPermissionDefinition[];
150
174
 
151
175
  export const MINI_PROGRAM_NO_DECLARATION_METHODS = [
@@ -42,7 +42,8 @@ export function parseMiniProgramRuntimePermissions(snapshot: unknown): ParsedMin
42
42
  }
43
43
  seenKeys.add(key);
44
44
  if (!isManagedMiniProgramRuntimePermissionKey(key)) {
45
- if (!isRecord(rawEntry.config)) return { valid: false, permissions: {} };
45
+ // 未知权限必须忽略,不能让 config:null / 缺字段把已认识的批准一起否掉。
46
+ // 服务端会对无 config 的 message 字段输出 null(Rylai EmitUnpopulated)。
46
47
  continue;
47
48
  }
48
49
  if (key === 'network') {
package/types/bridge.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import { MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_OPERATION_PROGRESS_METHOD } from './constants';
2
- import type { DownloadProgressPayload, MiniProgramRuntimeEnvironmentInfo, UserInfoAuthorization } from './payloads';
1
+ import { COMPANION_SESSION_EXIT_EVENT, COMPANION_SESSION_OUTPUT_EVENT, COMPANION_SESSION_OWNERSHIP_LOST_EVENT, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_OPERATION_PROGRESS_METHOD } from './constants';
2
+ import type { CompanionSessionExitPayload, CompanionSessionOutputPayload, CompanionSessionOwnershipLostPayload, MiniProgramRuntimeEnvironmentInfo, UserInfoAuthorization } from './payloads';
3
+ import type { MiniProgramCapabilityProgress, MiniProgramProgressMethod } from './capabilities';
3
4
  export type MiniProgramBridgeMessageType = 'handshake' | 'request' | 'response' | 'event' | 'cancel';
4
- export type MiniProgramEventName = 'launch' | 'ready' | 'show' | 'hide' | 'unload' | 'error' | 'heybox_app_login_change' | 'user_info_authorization_change';
5
+ export type MiniProgramEventName = 'launch' | 'ready' | 'show' | 'hide' | 'unload' | 'error' | 'heybox_app_login_change' | 'user_info_authorization_change' | typeof COMPANION_SESSION_OUTPUT_EVENT | typeof COMPANION_SESSION_EXIT_EVENT | typeof COMPANION_SESSION_OWNERSHIP_LOST_EVENT;
5
6
  export interface MiniProgramBridgeError {
6
7
  code: string;
7
8
  message: string;
@@ -59,12 +60,12 @@ export interface MiniProgramBridgeCancelMessage extends MiniProgramBridgeMessage
59
60
  payload?: never;
60
61
  error?: never;
61
62
  }
62
- export interface MiniProgramBridgeProgressMessage extends MiniProgramBridgeMessage<DownloadProgressPayload> {
63
+ export interface MiniProgramBridgeProgressMessage<TMethod extends MiniProgramProgressMethod = MiniProgramProgressMethod> extends MiniProgramBridgeMessage<MiniProgramCapabilityProgress<TMethod>> {
63
64
  version: 2;
64
65
  type: 'event';
65
66
  id: string;
66
67
  method: typeof MINI_PROGRAM_OPERATION_PROGRESS_METHOD;
67
- payload: DownloadProgressPayload;
68
+ payload: MiniProgramCapabilityProgress<TMethod>;
68
69
  error?: never;
69
70
  }
70
71
  export interface MiniProgramEventPayloadMap {
@@ -91,4 +92,7 @@ export interface MiniProgramEventPayloadMap {
91
92
  isHeyboxAppLoggedIn: boolean;
92
93
  };
93
94
  user_info_authorization_change: UserInfoAuthorization;
95
+ [COMPANION_SESSION_OUTPUT_EVENT]: CompanionSessionOutputPayload;
96
+ [COMPANION_SESSION_EXIT_EVENT]: CompanionSessionExitPayload;
97
+ [COMPANION_SESSION_OWNERSHIP_LOST_EVENT]: CompanionSessionOwnershipLostPayload;
94
98
  }
@@ -1,4 +1,4 @@
1
- import type { ClosePayload, CloseResult, CopyLinkPayload, CopyLinkResult, DirectoryCreatePayload, DirectoryCreateResult, DirectoryExistsPayload, DirectoryExistsResult, DirectoryListPayload, DirectoryListResult, DirectoryRemovePayload, DirectoryRemoveResult, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetStoragePayload, GetStorageResult, GetSteamGameListPayload, GetSteamGameListResult, GetUserInfoPayload, GetUserInfoResult, GetWindowInfoPayload, GetWindowInfoResult, HideLoadingPayload, HideLoadingResult, FileCreatePayload, FileCreateResult, FileExistsPayload, FileExistsResult, FileReadBytesPayload, FileReadBytesResult, FileReadTextPayload, FileReadTextResult, FileRemovePayload, FileRemoveResult, FileStatPayload, FileStatResult, FileWriteBytesPayload, FileWriteBytesResult, FileWriteTextPayload, FileWriteTextResult, LoginPayload, LoginResult, NetworkDownloadPayload, NetworkDownloadResult, NetworkRequestPayload, NetworkResponsePayload, OpenAppPagePayload, OpenAppPageResult, PickDirectoryPayload, PickDirectoryResult, PickFilesPayload, PickFilesResult, ReloadPayload, ReloadResult, ScreenshotPayload, ScreenshotResult, SaveFilePayload, SaveFileResult, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, VibratePayload, VibrateResult } from './payloads';
1
+ import type { CompanionCancelPreparationPayload, CompanionCancelPreparationResult, CompanionGetActiveSessionPayload, CompanionGetActiveSessionResult, CompanionGetInfoPayload, CompanionGetInfoResult, CompanionGetPreparationStatusPayload, CompanionGetPreparationStatusResult, CompanionLaunchPayload, CompanionLaunchResult, CompanionOpenAttachmentPayload, CompanionOpenAttachmentResult, CompanionPreparePayload, CompanionPrepareProgress, CompanionPrepareResult, CompanionSessionAckOutputPayload, CompanionSessionAckOutputResult, CompanionSessionCloseStdinPayload, CompanionSessionCloseStdinResult, CompanionSessionTerminatePayload, CompanionSessionTerminateResult, CompanionSessionWritePayload, CompanionSessionWriteResult, CompanionShowNotificationPayload, CompanionShowNotificationResult, ClosePayload, CloseResult, CopyLinkPayload, CopyLinkResult, DirectoryCreatePayload, DirectoryCreateResult, DirectoryExistsPayload, DirectoryExistsResult, DirectoryListPayload, DirectoryListResult, DirectoryRemovePayload, DirectoryRemoveResult, DownloadProgressPayload, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetStoragePayload, GetStorageResult, GetSteamGameListPayload, GetSteamGameListResult, GetUserInfoPayload, GetUserInfoResult, GetWindowInfoPayload, GetWindowInfoResult, HideLoadingPayload, HideLoadingResult, FileCreatePayload, FileCreateResult, FileExistsPayload, FileExistsResult, FileReadBytesPayload, FileReadBytesResult, FileReadTextPayload, FileReadTextResult, FileRemovePayload, FileRemoveResult, FileStatPayload, FileStatResult, FileWriteBytesPayload, FileWriteBytesResult, FileWriteTextPayload, FileWriteTextResult, LoginPayload, LoginResult, NetworkDownloadPayload, NetworkDownloadResult, NetworkRequestPayload, NetworkResponsePayload, OpenAppPagePayload, OpenAppPageResult, PickDirectoryPayload, PickDirectoryResult, PickFilesPayload, PickFilesResult, ReloadPayload, ReloadResult, ScreenshotPayload, ScreenshotResult, SaveFilePayload, SaveFileResult, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, VibratePayload, VibrateResult } from './payloads';
2
2
  import type { MiniProgramPermissionRequirement } from './permission-catalog';
3
3
  export declare const AUTH_LOGIN_METHOD: "auth.login";
4
4
  export declare const USER_GET_INFO_METHOD: "user.getInfo";
@@ -41,6 +41,18 @@ export declare const CLOUD_LEADERBOARD_GET_LIST_METHOD: "cloud.leaderboard.getLi
41
41
  export declare const CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD: "cloud.leaderboard.getCurrentUserEntry";
42
42
  export declare const CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD: "cloud.leaderboard.deleteCurrentUserEntry";
43
43
  export declare const CLOUD_LEADERBOARD_GET_INFO_METHOD: "cloud.leaderboard.getInfo";
44
+ export declare const COMPANION_GET_INFO_METHOD: "companion.getInfo";
45
+ export declare const COMPANION_GET_PREPARATION_STATUS_METHOD: "companion.getPreparationStatus";
46
+ export declare const COMPANION_PREPARE_METHOD: "companion.prepare";
47
+ export declare const COMPANION_CANCEL_PREPARATION_METHOD: "companion.cancelPreparation";
48
+ export declare const COMPANION_GET_ACTIVE_SESSION_METHOD: "companion.getActiveSession";
49
+ export declare const COMPANION_LAUNCH_METHOD: "companion.launch";
50
+ export declare const COMPANION_SESSION_WRITE_METHOD: "companion.session.write";
51
+ export declare const COMPANION_SESSION_CLOSE_STDIN_METHOD: "companion.session.closeStdin";
52
+ export declare const COMPANION_SESSION_TERMINATE_METHOD: "companion.session.terminate";
53
+ export declare const COMPANION_SESSION_ACK_OUTPUT_METHOD: "companion.session.ackOutput";
54
+ export declare const COMPANION_OPEN_ATTACHMENT_METHOD: "companion.openAttachment";
55
+ export declare const COMPANION_SHOW_NOTIFICATION_METHOD: "companion.showNotification";
44
56
  export type MiniProgramAuthMethod = typeof AUTH_LOGIN_METHOD;
45
57
  export type MiniProgramUserMethod = typeof USER_GET_INFO_METHOD | typeof USER_REVOKE_AUTHORIZATION_METHOD | typeof USER_GET_STEAM_GAME_LIST_METHOD;
46
58
  export type MiniProgramShareMethod = typeof SHARE_COPY_LINK_METHOD | typeof SHARE_SHOW_SHARE_MENU_METHOD | typeof SHARE_SCREENSHOT_METHOD;
@@ -54,8 +66,9 @@ export type MiniProgramUiMethod = typeof UI_SHOW_TOAST_METHOD | typeof UI_SHOW_L
54
66
  export type MiniProgramDeviceMethod = typeof DEVICE_VIBRATE_METHOD | typeof DEVICE_SET_CLIPBOARD_METHOD;
55
67
  export type MiniProgramNavigationMethod = typeof NAVIGATION_CLOSE_METHOD | typeof NAVIGATION_RELOAD_METHOD | typeof NAVIGATION_OPEN_APP_PAGE_METHOD;
56
68
  export type MiniProgramCloudMethod = typeof CLOUD_LEADERBOARD_SUBMIT_METHOD | typeof CLOUD_LEADERBOARD_GET_LIST_METHOD | typeof CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD | typeof CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD | typeof CLOUD_LEADERBOARD_GET_INFO_METHOD;
57
- export type MiniProgramBridgeMethod = MiniProgramAuthMethod | MiniProgramUserMethod | MiniProgramShareMethod | MiniProgramViewportMethod | MiniProgramStorageMethod | MiniProgramNetworkMethod | MiniProgramFilesMethod | MiniProgramFileMethod | MiniProgramDirectoryMethod | MiniProgramUiMethod | MiniProgramDeviceMethod | MiniProgramNavigationMethod | MiniProgramCloudMethod;
58
- export type MiniProgramCapabilityModule = 'auth' | 'user' | 'share' | 'viewport' | 'storage' | 'network' | 'files' | 'file' | 'directory' | 'ui' | 'device' | 'navigation' | 'cloud';
69
+ export type MiniProgramCompanionMethod = typeof COMPANION_GET_INFO_METHOD | typeof COMPANION_GET_PREPARATION_STATUS_METHOD | typeof COMPANION_PREPARE_METHOD | typeof COMPANION_CANCEL_PREPARATION_METHOD | typeof COMPANION_GET_ACTIVE_SESSION_METHOD | typeof COMPANION_LAUNCH_METHOD | typeof COMPANION_SESSION_WRITE_METHOD | typeof COMPANION_SESSION_CLOSE_STDIN_METHOD | typeof COMPANION_SESSION_TERMINATE_METHOD | typeof COMPANION_SESSION_ACK_OUTPUT_METHOD | typeof COMPANION_OPEN_ATTACHMENT_METHOD | typeof COMPANION_SHOW_NOTIFICATION_METHOD;
70
+ export type MiniProgramBridgeMethod = MiniProgramAuthMethod | MiniProgramUserMethod | MiniProgramShareMethod | MiniProgramViewportMethod | MiniProgramStorageMethod | MiniProgramNetworkMethod | MiniProgramFilesMethod | MiniProgramFileMethod | MiniProgramDirectoryMethod | MiniProgramUiMethod | MiniProgramDeviceMethod | MiniProgramNavigationMethod | MiniProgramCloudMethod | MiniProgramCompanionMethod;
71
+ export type MiniProgramCapabilityModule = 'auth' | 'user' | 'share' | 'viewport' | 'storage' | 'network' | 'files' | 'file' | 'directory' | 'ui' | 'device' | 'navigation' | 'cloud' | 'companion';
59
72
  export type MiniProgramCapabilityRisk = 'low' | 'medium' | 'high';
60
73
  export interface MiniProgramCapabilityDefinition {
61
74
  method: MiniProgramBridgeMethod;
@@ -423,7 +436,16 @@ export declare const MINI_PROGRAM_PROTOCOL_CAPABILITIES: readonly [{
423
436
  readonly permissions: readonly ["leaderboard"];
424
437
  };
425
438
  readonly risk: "low";
426
- }];
439
+ }, ...{
440
+ method: "companion.getInfo" | "companion.getPreparationStatus" | "companion.prepare" | "companion.cancelPreparation" | "companion.getActiveSession" | "companion.launch" | "companion.session.write" | "companion.session.closeStdin" | "companion.session.terminate" | "companion.session.ackOutput" | "companion.openAttachment" | "companion.showNotification";
441
+ module: "companion";
442
+ capability: "companion.getInfo" | "companion.getPreparationStatus" | "companion.prepare" | "companion.cancelPreparation" | "companion.getActiveSession" | "companion.launch" | "companion.session.write" | "companion.session.closeStdin" | "companion.session.terminate" | "companion.session.ackOutput" | "companion.openAttachment" | "companion.showNotification";
443
+ requirement: {
444
+ kind: "all";
445
+ permissions: "companion"[];
446
+ };
447
+ risk: "high";
448
+ }[]];
427
449
  export interface MiniProgramCapabilityPayloadMap {
428
450
  [AUTH_LOGIN_METHOD]: LoginPayload;
429
451
  [USER_GET_INFO_METHOD]: GetUserInfoPayload;
@@ -466,6 +488,18 @@ export interface MiniProgramCapabilityPayloadMap {
466
488
  [CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD]: GetCurrentUserLeaderboardEntryPayload | undefined;
467
489
  [CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD]: DeleteCurrentUserLeaderboardEntryPayload | undefined;
468
490
  [CLOUD_LEADERBOARD_GET_INFO_METHOD]: GetLeaderboardInfoPayload | undefined;
491
+ [COMPANION_GET_INFO_METHOD]: CompanionGetInfoPayload;
492
+ [COMPANION_GET_PREPARATION_STATUS_METHOD]: CompanionGetPreparationStatusPayload;
493
+ [COMPANION_PREPARE_METHOD]: CompanionPreparePayload;
494
+ [COMPANION_CANCEL_PREPARATION_METHOD]: CompanionCancelPreparationPayload;
495
+ [COMPANION_GET_ACTIVE_SESSION_METHOD]: CompanionGetActiveSessionPayload;
496
+ [COMPANION_LAUNCH_METHOD]: CompanionLaunchPayload;
497
+ [COMPANION_SESSION_WRITE_METHOD]: CompanionSessionWritePayload;
498
+ [COMPANION_SESSION_CLOSE_STDIN_METHOD]: CompanionSessionCloseStdinPayload;
499
+ [COMPANION_SESSION_TERMINATE_METHOD]: CompanionSessionTerminatePayload;
500
+ [COMPANION_SESSION_ACK_OUTPUT_METHOD]: CompanionSessionAckOutputPayload;
501
+ [COMPANION_OPEN_ATTACHMENT_METHOD]: CompanionOpenAttachmentPayload;
502
+ [COMPANION_SHOW_NOTIFICATION_METHOD]: CompanionShowNotificationPayload;
469
503
  }
470
504
  export interface MiniProgramCapabilityResultMap {
471
505
  [AUTH_LOGIN_METHOD]: LoginResult;
@@ -509,6 +543,24 @@ export interface MiniProgramCapabilityResultMap {
509
543
  [CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD]: GetCurrentUserLeaderboardEntryResult;
510
544
  [CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD]: DeleteCurrentUserLeaderboardEntryResult;
511
545
  [CLOUD_LEADERBOARD_GET_INFO_METHOD]: GetLeaderboardInfoResult;
546
+ [COMPANION_GET_INFO_METHOD]: CompanionGetInfoResult;
547
+ [COMPANION_GET_PREPARATION_STATUS_METHOD]: CompanionGetPreparationStatusResult;
548
+ [COMPANION_PREPARE_METHOD]: CompanionPrepareResult;
549
+ [COMPANION_CANCEL_PREPARATION_METHOD]: CompanionCancelPreparationResult;
550
+ [COMPANION_GET_ACTIVE_SESSION_METHOD]: CompanionGetActiveSessionResult;
551
+ [COMPANION_LAUNCH_METHOD]: CompanionLaunchResult;
552
+ [COMPANION_SESSION_WRITE_METHOD]: CompanionSessionWriteResult;
553
+ [COMPANION_SESSION_CLOSE_STDIN_METHOD]: CompanionSessionCloseStdinResult;
554
+ [COMPANION_SESSION_TERMINATE_METHOD]: CompanionSessionTerminateResult;
555
+ [COMPANION_SESSION_ACK_OUTPUT_METHOD]: CompanionSessionAckOutputResult;
556
+ [COMPANION_OPEN_ATTACHMENT_METHOD]: CompanionOpenAttachmentResult;
557
+ [COMPANION_SHOW_NOTIFICATION_METHOD]: CompanionShowNotificationResult;
512
558
  }
559
+ export interface MiniProgramCapabilityProgressMap {
560
+ [NETWORK_DOWNLOAD_METHOD]: DownloadProgressPayload;
561
+ [COMPANION_PREPARE_METHOD]: CompanionPrepareProgress;
562
+ }
563
+ export type MiniProgramProgressMethod = keyof MiniProgramCapabilityProgressMap;
564
+ export type MiniProgramCapabilityProgress<T extends MiniProgramProgressMethod> = MiniProgramCapabilityProgressMap[T];
513
565
  export type MiniProgramCapabilityPayload<T extends MiniProgramBridgeMethod> = MiniProgramCapabilityPayloadMap[T];
514
566
  export type MiniProgramCapabilityResult<T extends MiniProgramBridgeMethod> = MiniProgramCapabilityResultMap[T];
@@ -6,3 +6,6 @@ export declare const RUNTIME_LOCATION_PROBE_METHOD: "runtime.location.probe";
6
6
  export declare const SDK_LOCATION_REPORT_METHOD: "sdk.location.report";
7
7
  export declare const SDK_CSP_VIOLATION_METHOD: "sdk.csp.violation";
8
8
  export declare const MINI_PROGRAM_OPERATION_PROGRESS_METHOD: "operation.progress";
9
+ export declare const COMPANION_SESSION_OUTPUT_EVENT: "companion.session.output";
10
+ export declare const COMPANION_SESSION_EXIT_EVENT: "companion.session.exit";
11
+ export declare const COMPANION_SESSION_OWNERSHIP_LOST_EVENT: "companion.session.ownershipLost";
package/types/guards.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { MiniProgramBridgeMessage } from './bridge';
2
- import type { DownloadProgressPayload, MiniProgramDirectoryDescriptor, MiniProgramDirectoryRef, MiniProgramFileDescriptor, MiniProgramFileRef, MiniProgramFileStat, MiniProgramFileSystemEntityDescriptor, MiniProgramPathRootRef } from './payloads';
2
+ import type { CompanionPrepareProgress, DownloadProgressPayload, MiniProgramDirectoryDescriptor, MiniProgramDirectoryRef, MiniProgramFileDescriptor, MiniProgramFileRef, MiniProgramFileStat, MiniProgramFileSystemEntityDescriptor, MiniProgramPathRootRef } from './payloads';
3
3
  export declare function isMiniProgramBridgeMessage(value: unknown): value is MiniProgramBridgeMessage;
4
4
  export declare function isMiniProgramRelativePath(value: unknown): value is string;
5
5
  export declare function isMiniProgramPathRootRef(value: unknown): value is MiniProgramPathRootRef;
@@ -11,3 +11,5 @@ export declare function isMiniProgramFileSystemEntityDescriptor(value: unknown):
11
11
  export declare function isMiniProgramByteArray(value: unknown): value is Uint8Array;
12
12
  export declare function isMiniProgramFileStat(value: unknown): value is MiniProgramFileStat;
13
13
  export declare function isMiniProgramDownloadProgressPayload(value: unknown): value is DownloadProgressPayload;
14
+ export declare function isMiniProgramCompanionPrepareProgress(value: unknown): value is CompanionPrepareProgress;
15
+ export declare function isMiniProgramOperationProgressPayload(value: unknown): value is DownloadProgressPayload | CompanionPrepareProgress;