@heybox/hb-sdk-protocol 0.8.1-alpha.1 → 0.8.1-alpha.10

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.
@@ -146,6 +146,33 @@ export type ScreenshotPayload = {
146
146
  post?: MiniProgramSharePostOptions | null;
147
147
  } | undefined;
148
148
  export type ScreenshotResult = unknown;
149
+ /** 当前小程序实例的运行模式。 */
150
+ export type MiniProgramRuntimeMode = 'production' | 'preview' | 'development' | 'unknown';
151
+ /** Host 明确提供的操作系统名称。 */
152
+ export type MiniProgramOperatingSystemName = 'android' | 'ios' | 'ohos' | 'windows' | 'macos' | 'linux' | 'unknown';
153
+ /**
154
+ * Runtime 在握手期间下发的环境快照。
155
+ *
156
+ * @remarks
157
+ * 所有字段只用于界面适配、兼容降级和诊断,不能作为鉴权、权限控制或风控依据。
158
+ * 版本字段均为不透明字符串,除缺失判断外不承诺格式或大小比较语义。
159
+ */
160
+ export interface MiniProgramRuntimeEnvironmentInfo {
161
+ readonly runtime: {
162
+ readonly mode: MiniProgramRuntimeMode;
163
+ };
164
+ readonly host: {
165
+ readonly appVersion: string | null;
166
+ };
167
+ readonly miniProgram: {
168
+ readonly id: string | null;
169
+ readonly version: string | null;
170
+ };
171
+ readonly operatingSystem: {
172
+ readonly name: MiniProgramOperatingSystemName;
173
+ readonly version: string | null;
174
+ };
175
+ }
149
176
  export interface GetStoragePayload {
150
177
  key: string;
151
178
  }
@@ -191,7 +218,6 @@ export interface NetworkRequestPayload {
191
218
  data?: unknown;
192
219
  headers?: MiniProgramNetworkHeaders;
193
220
  timeout?: number;
194
- withCredentials?: boolean;
195
221
  }
196
222
  export interface NetworkResponsePayload<T = unknown> {
197
223
  data: T;
@@ -330,7 +356,6 @@ interface NetworkDownloadBasePayload {
330
356
  params?: MiniProgramNetworkParams;
331
357
  headers?: MiniProgramNetworkHeaders;
332
358
  timeout?: number;
333
- withCredentials?: boolean;
334
359
  maxBytes?: number;
335
360
  }
336
361
  export type NetworkDownloadPayload = NetworkDownloadBasePayload & ({
@@ -436,4 +461,124 @@ export interface GetLeaderboardInfoResult {
436
461
  order: LeaderboardOrder;
437
462
  rankLimit: number;
438
463
  }
464
+ /** 受管桌面程序可选能力。 */
465
+ export type CompanionCapability = 'stdio' | 'attachments' | 'notifications';
466
+ export type CompanionTarget = 'windows-x64' | 'macos-arm64';
467
+ export type CompanionSignatureStatus = 'unsigned' | 'valid' | 'invalid' | 'unknown';
468
+ /** Companion alias 的跨构建、Runtime 与 Host 规范。 */
469
+ export declare const COMPANION_ALIAS_PATTERN: RegExp;
470
+ /** Companion Host 可跨 bridge 保留的稳定领域错误码。 */
471
+ export declare const COMPANION_ERROR_CODES: readonly ["COMPANION_UNSUPPORTED", "COMPANION_NOT_DECLARED", "COMPANION_TARGET_UNSUPPORTED", "COMPANION_NOT_PREPARED", "COMPANION_PREPARATION_CANCELLED", "COMPANION_DOWNLOAD_FAILED", "COMPANION_DESCRIPTOR_UNAVAILABLE", "COMPANION_ARCHIVE_INVALID", "COMPANION_INTEGRITY_FAILED", "COMPANION_ENTRYPOINT_INVALID", "COMPANION_USER_CANCELLED", "COMPANION_ELEVATION_DENIED", "COMPANION_OS_BLOCKED", "COMPANION_LAUNCH_FAILED", "COMPANION_SESSION_VERSION_MISMATCH", "COMPANION_SESSION_OWNERSHIP_LOST", "COMPANION_SESSION_EXITED", "COMPANION_PIPE_CLOSED", "COMPANION_OUTPUT_LIMIT", "COMPANION_PROCESS_CRASHED", "COMPANION_ATTACHMENT_NOT_FOUND", "COMPANION_NOTIFICATION_UNAVAILABLE", "COMPANION_TERMINATE_FAILED"];
472
+ export type CompanionErrorCode = (typeof COMPANION_ERROR_CODES)[number];
473
+ export interface CompanionInfo {
474
+ alias: string;
475
+ displayName: string;
476
+ target: CompanionTarget;
477
+ capabilities: readonly CompanionCapability[];
478
+ archiveBytes: number;
479
+ signatureStatus: CompanionSignatureStatus;
480
+ /** Host 确认的产物来源;旧 Host 缺省时来源未知。 */
481
+ source?: 'local-dev' | 'released';
482
+ }
483
+ export interface CompanionErrorSummary {
484
+ code: CompanionErrorCode;
485
+ message: string;
486
+ retryable: boolean;
487
+ }
488
+ export type CompanionPrepareProgress = {
489
+ phase: 'downloading';
490
+ loaded: number;
491
+ total?: number;
492
+ } | {
493
+ phase: 'verifying';
494
+ processed: number;
495
+ total: number;
496
+ } | {
497
+ phase: 'extracting';
498
+ processed: number;
499
+ total: number;
500
+ };
501
+ export type CompanionPreparationStatus = {
502
+ state: 'not-prepared';
503
+ } | {
504
+ state: 'preparing';
505
+ progress: CompanionPrepareProgress;
506
+ } | {
507
+ state: 'ready';
508
+ preparedAt: number;
509
+ } | {
510
+ state: 'failed';
511
+ error: CompanionErrorSummary;
512
+ };
513
+ export type CompanionExitReason = 'exited' | 'terminated' | 'crashed' | 'host-shutdown' | 'permission-revoked' | 'output-limit';
514
+ export type CompanionExit = {
515
+ reason: 'exited';
516
+ exitCode: number;
517
+ } | {
518
+ reason: Exclude<CompanionExitReason, 'exited'>;
519
+ exitCode?: number;
520
+ };
521
+ /** 活动 Session 的 wire 快照;不包含路径、PID 或原生句柄。 */
522
+ export interface CompanionSessionSnapshot {
523
+ id: string;
524
+ alias: string;
525
+ target: CompanionTarget;
526
+ capabilities: readonly CompanionCapability[];
527
+ state: 'running';
528
+ controllerGeneration: number;
529
+ }
530
+ export interface CompanionAliasPayload {
531
+ alias: string;
532
+ }
533
+ export type CompanionGetInfoPayload = CompanionAliasPayload;
534
+ export type CompanionGetInfoResult = CompanionInfo;
535
+ export type CompanionGetPreparationStatusPayload = CompanionAliasPayload;
536
+ export type CompanionGetPreparationStatusResult = CompanionPreparationStatus;
537
+ export type CompanionPreparePayload = CompanionAliasPayload;
538
+ export type CompanionPrepareResult = CompanionInfo;
539
+ export type CompanionCancelPreparationPayload = CompanionAliasPayload;
540
+ export type CompanionCancelPreparationResult = void;
541
+ export type CompanionGetActiveSessionPayload = CompanionAliasPayload;
542
+ export type CompanionGetActiveSessionResult = CompanionSessionSnapshot | undefined;
543
+ export type CompanionLaunchPayload = CompanionAliasPayload;
544
+ export type CompanionLaunchResult = CompanionSessionSnapshot;
545
+ export interface CompanionSessionControllerPayload {
546
+ sessionId: string;
547
+ controllerGeneration: number;
548
+ }
549
+ export interface CompanionSessionWritePayload extends CompanionSessionControllerPayload {
550
+ data: Uint8Array;
551
+ }
552
+ export type CompanionSessionWriteResult = void;
553
+ export type CompanionSessionCloseStdinPayload = CompanionSessionControllerPayload;
554
+ export type CompanionSessionCloseStdinResult = void;
555
+ export type CompanionSessionTerminatePayload = CompanionSessionControllerPayload;
556
+ export type CompanionSessionTerminateResult = void;
557
+ export interface CompanionSessionAckOutputPayload extends CompanionSessionControllerPayload {
558
+ stream: 'stdout' | 'stderr';
559
+ sequence: number;
560
+ }
561
+ export type CompanionSessionAckOutputResult = void;
562
+ export interface CompanionOpenAttachmentPayload extends CompanionSessionControllerPayload {
563
+ id: string;
564
+ }
565
+ export type CompanionOpenAttachmentResult = MiniProgramFileDescriptor;
566
+ export type CompanionNotificationCategory = 'completed' | 'failed' | 'stopped' | 'attention';
567
+ export interface CompanionShowNotificationPayload extends CompanionSessionControllerPayload {
568
+ category: CompanionNotificationCategory;
569
+ }
570
+ export type CompanionShowNotificationResult = void;
571
+ export interface CompanionSessionOutputPayload extends CompanionSessionControllerPayload {
572
+ stream: 'stdout' | 'stderr';
573
+ sequence: number;
574
+ data: Uint8Array;
575
+ }
576
+ export interface CompanionSessionExitPayload {
577
+ sessionId: string;
578
+ exit: CompanionExit;
579
+ }
580
+ export interface CompanionSessionOwnershipLostPayload {
581
+ sessionId: string;
582
+ controllerGeneration: number;
583
+ }
439
584
  export {};
@@ -1,5 +1,5 @@
1
1
  import type { MiniProgramBridgeMethod, MiniProgramCapabilityRisk } from './capabilities';
2
- export declare const MINI_PROGRAM_PERMISSION_KEYS: readonly ["userInfo", "steamLibrary", "share", "storage", "filesystem", "clipboard", "leaderboard", "network"];
2
+ export declare const MINI_PROGRAM_PERMISSION_KEYS: readonly ["userInfo", "steamLibrary", "share", "storage", "filesystem", "clipboard", "leaderboard", "network", "companion"];
3
3
  export type MiniProgramPermissionKey = (typeof MINI_PROGRAM_PERMISSION_KEYS)[number];
4
4
  export type MiniProgramPermissionRequirement = {
5
5
  readonly kind: 'none';
@@ -103,6 +103,15 @@ export declare const MINI_PROGRAM_PERMISSION_CATALOG: readonly [{
103
103
  };
104
104
  readonly methods: readonly ["network.request", "network.download"];
105
105
  readonly conditions: readonly ["声明后仍需平台批准,并继续执行网络安全策略。"];
106
+ }, {
107
+ readonly key: "companion";
108
+ readonly name: "桌面辅助应用";
109
+ readonly description: "下载、准备并运行随当前小程序版本发布的受管桌面程序。";
110
+ readonly access: "platform-approval";
111
+ readonly risk: "high";
112
+ readonly config: {};
113
+ readonly methods: readonly ["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"];
114
+ readonly conditions: readonly ["声明后仍需平台批准,并继续执行可信用户手势、Host 能力和当前版本 Manifest 校验。"];
106
115
  }];
107
116
  export declare const MINI_PROGRAM_NO_DECLARATION_METHODS: readonly ["user.revokeAuthorization", "ui.showToast", "ui.showLoading", "ui.hideLoading", "viewport.getWindowInfo", "viewport.setNavigationBarStyle", "device.vibrate", "navigation.close", "navigation.reload", "navigation.openAppPage"];
108
117
  export declare function isMiniProgramPermissionKey(key: string): key is MiniProgramPermissionKey;