weapp-ide-cli 6.1.9 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,22 +1,77 @@
1
+ import { AutomatorElement, AutomatorMiniProgram, AutomatorPage, DevtoolsConnectionInput, DevtoolsContext, DevtoolsElementSnapshot, DevtoolsPageSnapshot, DevtoolsRuntimeSessionOptions, DevtoolsToolResult, MachineE2ELeaseRecoveryScope, MiniProgramEventMap, closeSharedMiniProgram, getSharedMiniProgramSessionCount, readDevtoolsElementSnapshot as readElementSnapshot, releaseSharedMiniProgram, resolveDevtoolsProjectPath as resolveProjectPath, toDevtoolsSerializableValue as toSerializableValue } from "@weapp-vite/devtools-runtime";
1
2
  import { Buffer } from "node:buffer";
2
- import { AutomatorElement, AutomatorMiniProgram, AutomatorPage, DevtoolsConnectionInput, DevtoolsContext, DevtoolsElementSnapshot, DevtoolsPageSnapshot, DevtoolsRuntimeSessionOptions, DevtoolsToolResult, MiniProgramEventMap, closeSharedMiniProgram, getSharedMiniProgramSessionCount, readDevtoolsElementSnapshot as readElementSnapshot, releaseSharedMiniProgram, resolveDevtoolsProjectPath as resolveProjectPath, toDevtoolsSerializableValue as toSerializableValue } from "@weapp-vite/devtools-runtime";
3
+ import { OperationLifecycle } from "@weapp-vite/miniprogram-automator/operation";
4
+ import { MiniProgram } from "@weapp-vite/miniprogram-automator";
3
5
  import { McpServer } from "@modelcontextprotocol/server";
4
- //#region src/cli/automator.d.ts
5
- export interface AutomatorOptions {
6
- projectPath: string;
6
+ //#region src/devtoolsTarget/metadata.d.ts
7
+ interface WechatDevtoolsMetadata {
8
+ version?: string;
9
+ channel?: 'stable' | 'rc' | 'nightly' | 'unknown';
10
+ }
11
+ //#endregion
12
+ //#region src/devtoolsTarget/profile.d.ts
13
+ interface WechatDevtoolsProfileOptions {
14
+ homeDir?: string;
15
+ localAppDataDir?: string;
16
+ platform?: NodeJS.Platform;
17
+ }
18
+ //#endregion
19
+ //#region src/devtoolsTarget/host.d.ts
20
+ interface WechatDevtoolsHostInspectionOptions {
21
+ platform?: NodeJS.Platform;
22
+ signal?: AbortSignal;
7
23
  timeout?: number;
24
+ }
25
+ /** 启动前验证共享宿主身份;无活跃宿主可以继续,其他安装不得被隐式接管。 */
26
+ export declare function assertWechatDevtoolsHost(target: ResolvedWechatDevtoolsTarget, options?: WechatDevtoolsHostInspectionOptions): Promise<void>;
27
+ /** HTTP 与 WebSocket 的显式端口均需由所选安装持有,端口号本身不是宿主身份。 */
28
+ export declare function assertWechatDevtoolsPort(target: ResolvedWechatDevtoolsTarget, port: number, options?: WechatDevtoolsHostInspectionOptions): Promise<void>;
29
+ //#endregion
30
+ //#region src/devtoolsTarget/index.d.ts
31
+ export interface ResolvedWechatDevtoolsTarget extends WechatDevtoolsMetadata {
32
+ cliPath: string;
33
+ installationId: string;
34
+ appPath: string;
35
+ profileDir: string;
36
+ }
37
+ export interface ResolveWechatDevtoolsTargetOptions extends WechatDevtoolsProfileOptions {
8
38
  cliPath?: string;
9
- port?: number;
10
- sessionId?: string;
39
+ target?: ResolvedWechatDevtoolsTarget;
40
+ }
41
+ /** 一次解析 CLI、应用身份及配置目录,供本次操作的所有阶段共同使用。 */
42
+ export declare function resolveWechatDevtoolsTarget(options?: ResolveWechatDevtoolsTargetOptions): Promise<ResolvedWechatDevtoolsTarget>;
43
+ //#endregion
44
+ //#region src/cli/agentStart.d.ts
45
+ export interface StartWechatIdeAgentOptions {
46
+ projectPath: string;
47
+ port: number;
48
+ cliPath?: string;
49
+ target?: ResolvedWechatDevtoolsTarget;
11
50
  trustProject?: boolean;
12
- preferOpenedSession?: boolean;
13
- preserveProjectRoot?: boolean;
14
- persistAsDefaultSession?: boolean;
51
+ timeout?: number;
52
+ signal?: AbortSignal;
53
+ /** 官方回执验证后先登记窗口所有权,再检查取消状态。 */
54
+ onStarted?: (result: StartWechatIdeAgentResult) => void | Promise<void>;
15
55
  }
16
- /**
17
- * @description 为项目路径派生稳定的 DevTools automator 端口,避免多个 dev:open 项目抢占默认端口。
18
- */
19
- export declare function resolveProjectAutomatorPort(projectPath: string): number;
56
+ export interface StartWechatIdeAgentResult {
57
+ autoPort: number;
58
+ openedProjectWindow: boolean;
59
+ version: string;
60
+ }
61
+ /** 使用所选安装的官方 agent start,并保留其窗口复用和端口冲突语义。 */
62
+ export declare function startWechatIdeAgent(options: StartWechatIdeAgentOptions): Promise<StartWechatIdeAgentResult>;
63
+ //#endregion
64
+ //#region src/cli/automator/context.d.ts
65
+ interface AutomatorInstallationOptions extends DevtoolsRuntimeSessionOptions {
66
+ target?: ResolvedWechatDevtoolsTarget;
67
+ signal?: AbortSignal;
68
+ }
69
+ /** 在连接与共享缓存入口固定安装选择;headless 不读取或修改 IDE 状态。 */
70
+ export declare function resolveAutomatorSessionOptions<T extends AutomatorInstallationOptions>(options: T): Promise<T & AutomatorInstallationOptions & {
71
+ installationId: string;
72
+ }>;
73
+ //#endregion
74
+ //#region src/cli/automator/errors.d.ts
20
75
  /**
21
76
  * @description 判断错误是否属于开发者工具服务端口不可用。
22
77
  */
@@ -53,17 +108,42 @@ export declare function isAutomatorLoginError(error: unknown): boolean;
53
108
  * @description 格式化开发者工具登录失效错误,便于终端展示。
54
109
  */
55
110
  export declare function formatAutomatorLoginError(error: unknown): string;
111
+ //#endregion
112
+ //#region src/cli/automator.d.ts
113
+ export interface AutomatorOptions extends AutomatorInstallationOptions {
114
+ projectPath: string;
115
+ timeout?: number;
116
+ signal?: AbortSignal;
117
+ cliPath?: string;
118
+ port?: number;
119
+ sessionId?: string;
120
+ trustProject?: boolean;
121
+ preferOpenedSession?: boolean;
122
+ preserveProjectRoot?: boolean;
123
+ persistAsDefaultSession?: boolean;
124
+ }
125
+ /**
126
+ * @description 为项目路径派生稳定的 DevTools automator 端口,避免多个 dev:open 项目抢占默认端口。
127
+ */
128
+ export declare function resolveProjectAutomatorPort(projectPath: string): number;
56
129
  /**
57
130
  * @description 基于当前配置解析 CLI 路径,并通过现代化 automator 入口启动会话。
58
131
  */
59
132
  export declare function launchAutomator(options: AutomatorOptions): Promise<any>;
60
133
  /**
61
- * @description 连接当前项目已打开的开发者工具自动化会话,不触发新的 IDE 拉起。
134
+ * @description 登记由外部 automator bridge 创建的会话,供 CLI 子进程安全复用。
135
+ */
136
+ export declare function persistOpenedAutomatorSession(options: AutomatorOptions & {
137
+ wsEndpoint: string;
138
+ }): Promise<void>;
139
+ /**
140
+ * @description 只读连接当前项目已打开的自动化会话;失败不证明缓存过期,也不删除其他操作持有的会话记录。
62
141
  */
63
- export declare function connectOpenedAutomator(options: AutomatorOptions): Promise<unknown>;
142
+ export declare function connectOpenedAutomator(options: AutomatorOptions): Promise<MiniProgram>;
64
143
  //#endregion
65
144
  //#region src/cli/automator-argv.d.ts
66
145
  export interface ParsedAutomatorArgs {
146
+ cliPath?: string;
67
147
  projectPath: string;
68
148
  timeout?: number;
69
149
  port?: number;
@@ -93,7 +173,10 @@ export declare function removeOption(argv: readonly string[], optionName: string
93
173
  type MiniProgramLike = AutomatorMiniProgram;
94
174
  type MiniProgramPage = AutomatorPage;
95
175
  type MiniProgramElement = AutomatorElement;
96
- interface AutomatorSessionOptions extends DevtoolsRuntimeSessionOptions {}
176
+ interface AutomatorSessionOptions extends DevtoolsRuntimeSessionOptions {
177
+ signal?: AbortSignal;
178
+ target?: ResolvedWechatDevtoolsTarget;
179
+ }
97
180
  /** 建立交互式会话,并报告最终连接错误。 */
98
181
  export declare function connectMiniProgram(options: AutomatorSessionOptions): Promise<MiniProgramLike>;
99
182
  /**
@@ -248,6 +331,8 @@ export declare function handleConfigCommand(argv: string[]): Promise<void>;
248
331
  //#endregion
249
332
  //#region src/cli/http.d.ts
250
333
  export interface WechatDevtoolsHttpCommandOptions {
334
+ cliPath?: string;
335
+ target?: ResolvedWechatDevtoolsTarget;
251
336
  port?: number;
252
337
  signal?: AbortSignal;
253
338
  timeoutMs?: number;
@@ -264,9 +349,10 @@ export interface PollWechatIdeEngineBuildResult extends WechatDevtoolsEngineBuil
264
349
  done: boolean;
265
350
  failed: boolean;
266
351
  }
352
+ /** 请求期间持有机器租约,避免 E2E 与另一入口同时更改共享宿主。 */
267
353
  export declare function requestWechatDevtoolsHttp(pathname: string, query: Record<string, string>, options?: WechatDevtoolsHttpCommandOptions): Promise<string>;
268
354
  /**
269
- * @description 通过微信开发者工具 HTTP 服务端口重新打开项目;若项目已打开,开发者工具会刷新当前项目。
355
+ * @description 请求微信开发者工具打开项目并返回原始响应;目标 runtime 状态仍需通过会话或界面确认。
270
356
  */
271
357
  export declare function openWechatIdeProjectByHttp(projectPath: string, options?: WechatDevtoolsHttpCommandOptions): Promise<string>;
272
358
  /**
@@ -297,17 +383,19 @@ export interface RunWechatIdeEngineBuildByHttpOptions extends WechatDevtoolsHttp
297
383
  }
298
384
  export interface RunWechatIdeEngineBuildOptions extends RunWechatIdeEngineBuildByHttpOptions {
299
385
  fallbackToCli?: boolean;
386
+ /** 避免 CLI 诊断污染协议标准输出。 */
387
+ quiet?: boolean;
300
388
  logPath?: string;
301
389
  }
302
390
  export declare function isWechatIdeEngineBuildEndpointMissingError(error: unknown): boolean;
303
- /**
304
- * @description 通过开发者工具 HTTP 服务端口执行 engine build,并轮询直到构建结束。
305
- */
391
+ /** 固定安装上下文后完整持有 HTTP 构建与轮询期间的租约。 */
306
392
  export declare function runWechatIdeEngineBuildByHttp(projectPath: string, options?: RunWechatIdeEngineBuildByHttpOptions): Promise<PollWechatIdeEngineBuildResult>;
307
- /**
308
- * @description 以更接近官方 CLI 的方式执行 engine build,并支持将构建日志写入文件。
309
- */
393
+ /** HTTP、轮询与 CLI 回退沿用同一次解析的安装。 */
310
394
  export declare function runWechatIdeEngineBuild(projectPath: string, options?: RunWechatIdeEngineBuildOptions): Promise<void | PollWechatIdeEngineBuildResult>;
395
+ /** 在验收交互前等待 IDE 消费产物,并沿用该会话选择的安装。 */
396
+ export declare function prepareAcceptanceProject(projectPath: string, signal: AbortSignal, options?: WechatDevtoolsHttpCommandOptions & {
397
+ runtimeProvider?: 'headless' | 'devtools';
398
+ }): Promise<void | PollWechatIdeEngineBuildResult>;
311
399
  //#endregion
312
400
  //#region src/cli/forwardConsole.d.ts
313
401
  export type ForwardConsoleLogLevel = 'debug' | 'log' | 'info' | 'warn' | 'error';
@@ -344,6 +432,7 @@ export interface SharedInputSession {
344
432
  suspend: () => void;
345
433
  }
346
434
  export interface ExclusiveKeypressOptions<T> {
435
+ signal?: AbortSignal;
347
436
  ignoreInitialMs?: number;
348
437
  timeoutMs?: number;
349
438
  onKeypress: (str: string, key: {
@@ -355,6 +444,20 @@ export declare function createSharedInputSession(options: SharedInputSessionOpti
355
444
  export declare function waitForExclusiveKeypress<T>(options: ExclusiveKeypressOptions<T>): Promise<T | 'timeout'>;
356
445
  export declare function runWithSuspendedSharedInput<T>(runner: () => Promise<T>): Promise<T>;
357
446
  //#endregion
447
+ //#region src/cli/loginQuery.d.ts
448
+ export type WechatIdeLoginQueryResult = {
449
+ status: 'success';
450
+ login: boolean;
451
+ } | {
452
+ status: 'unknown';
453
+ reason: 'timeout' | 'command-failed' | 'invalid-response' | 'installation-mismatch' | 'runtime-busy';
454
+ };
455
+ /** 显式调用指定 CLI 查询登录语义,不重试、不提示登录;原生 CLI 可能启动 IDE。 */
456
+ export declare function queryWechatIdeLogin(cliPath: string, options?: {
457
+ timeout?: number;
458
+ signal?: AbortSignal;
459
+ }): Promise<WechatIdeLoginQueryResult>;
460
+ //#endregion
358
461
  //#region src/cli/minidev.d.ts
359
462
  /**
360
463
  * @description 运行支付宝小程序 CLI(minidev)
@@ -378,6 +481,7 @@ export declare function resolveCliPath(): Promise<{
378
481
  //#endregion
379
482
  //#region src/cli/retry.d.ts
380
483
  export interface RetryKeypressOptions {
484
+ signal?: AbortSignal;
381
485
  timeoutMs?: number;
382
486
  }
383
487
  export interface RetryPromptOptions extends RetryKeypressOptions {
@@ -391,6 +495,7 @@ export interface RetryLogger {
391
495
  warn: (message: string) => void;
392
496
  }
393
497
  export interface WechatIdeLoginRetryOptions {
498
+ signal?: AbortSignal;
394
499
  allowRetry?: boolean;
395
500
  cancelLevel?: 'info' | 'warn';
396
501
  error: unknown;
@@ -469,31 +574,34 @@ export declare function runAutomatorCommand(command: string, argv: string[]): Pr
469
574
  //#endregion
470
575
  //#region src/cli/run-login.d.ts
471
576
  export interface RunWechatCliWithRetryOptions {
577
+ target?: ResolvedWechatDevtoolsTarget;
472
578
  silent?: boolean;
473
579
  timeout?: number;
580
+ signal?: AbortSignal;
474
581
  }
475
- /**
476
- * @description 运行微信开发者工具 CLI,并在登录失效时允许按键重试。
477
- */
582
+ /** 原生 CLI 可能启动或改变共享宿主,完整命令与有限重试共用机器租约。 */
478
583
  export declare function runWechatCliWithRetry(cliPath: string, argv: string[], options?: RunWechatCliWithRetryOptions): Promise<void>;
479
584
  //#endregion
480
585
  //#region src/cli/run-login-executor.d.ts
481
586
  export interface RetryableCommandExecutorOptions<TResult, TPromptResult> {
587
+ timeout?: number;
588
+ signal?: AbortSignal;
589
+ maxAttempts?: number;
590
+ disposeLate?: (result: TResult) => void | Promise<void>;
482
591
  createCancelError: (result: TResult) => Error;
483
- execute: () => Promise<TResult>;
592
+ execute: (operation: OperationLifecycle) => Promise<TResult>;
484
593
  isRetryableResult: (result: TResult) => boolean;
485
594
  onCancel?: (result: TResult) => void;
486
595
  onRetry?: () => void;
487
- promptRetry: (result: TResult, retryCount: number) => Promise<TPromptResult>;
596
+ promptRetry: (result: TResult, retryCount: number, operation: OperationLifecycle) => Promise<TPromptResult>;
488
597
  shouldRetry: (result: TPromptResult) => boolean;
489
598
  }
490
- /**
491
- * @description 执行可重试命令循环,并将“是否可重试”与“如何提示重试”交给调用方定义。
492
- */
599
+ /** 命令、登录提示和有限重试共用一个 deadline,取消信号由执行边界传入 I/O。 */
493
600
  export declare function runRetryableCommand<TResult, TPromptResult>(options: RetryableCommandExecutorOptions<TResult, TPromptResult>): Promise<TResult>;
494
601
  //#endregion
495
602
  //#region src/cli/run-mcp.d.ts
496
603
  export interface McpCommandOptions {
604
+ cliPath?: string;
497
605
  workspaceRoot?: string;
498
606
  }
499
607
  export declare function runMcpCommand(argv: string[]): Promise<void>;
@@ -582,6 +690,11 @@ export interface AutoReplayWechatIdeOptions {
582
690
  export interface OpenWechatIdeOtherProjectOptions {
583
691
  projectPath?: string;
584
692
  }
693
+ export interface CloseWechatIdeProjectOptions {
694
+ projectPath?: string;
695
+ cliPath?: string;
696
+ target?: ResolvedWechatDevtoolsTarget;
697
+ }
585
698
  export interface ClearWechatIdeCacheOptions {
586
699
  clean: 'all' | 'auth' | 'compile' | 'file' | 'network' | 'session' | 'storage';
587
700
  }
@@ -635,9 +748,7 @@ export interface BuildWechatIdeIpaOptions {
635
748
  versionDesc?: string;
636
749
  versionName?: string;
637
750
  }
638
- /**
639
- * @description 调用微信开发者工具 open 命令。
640
- */
751
+ /** 打开与兼容回退在同一机器租约内沿用固定安装,禁止重新选择宿主。 */
641
752
  export declare function openWechatIde(options?: OpenWechatIdeOptions): Promise<void>;
642
753
  /**
643
754
  * @description 调用微信开发者工具 login 命令。
@@ -677,7 +788,7 @@ export declare function uploadWechatIde(options: UploadWechatIdeOptions): Promis
677
788
  /**
678
789
  * @description 调用微信开发者工具 close 命令。
679
790
  */
680
- export declare function closeWechatIdeProject(): Promise<void>;
791
+ export declare function closeWechatIdeProject(options?: CloseWechatIdeProjectOptions): Promise<void>;
681
792
  /**
682
793
  * @description 调用微信开发者工具 quit 命令。
683
794
  */
@@ -738,14 +849,15 @@ export declare function buildWechatIdeIpa(options: BuildWechatIdeIpaOptions): Pr
738
849
  export declare function dispatchWechatCliCommand(argv: string[]): Promise<boolean>;
739
850
  //#endregion
740
851
  //#region src/cli/wechatDevtoolsRuntimePort.d.ts
852
+ type PortTarget = Pick<ResolvedWechatDevtoolsTarget, 'installationId'>;
741
853
  /**
742
- * @description 标记当前进程最近一次检测到的微信开发者工具服务端口。
854
+ * @description 标记所选安装检测到的服务端口;无身份的旧调用仅保留在独立兼容槽中。
743
855
  */
744
- export declare function setRuntimeWechatDevtoolsServicePort(port: number | undefined): void;
856
+ export declare function setRuntimeWechatDevtoolsServicePort(port: number | undefined, target?: PortTarget): void;
745
857
  /**
746
- * @description 读取当前进程最近一次检测到的微信开发者工具服务端口。
858
+ * @description 只读取所选安装的服务端口,不借用其他安装或无身份的旧记录。
747
859
  */
748
- export declare function getRuntimeWechatDevtoolsServicePort(): number | undefined;
860
+ export declare function getRuntimeWechatDevtoolsServicePort(target?: PortTarget): number | undefined;
749
861
  //#endregion
750
862
  //#region src/cli/wechatDevtoolsSettings.d.ts
751
863
  export interface WechatDevtoolsSecuritySettings {
@@ -758,10 +870,8 @@ export interface DetectedWechatDevtoolsServicePortSettings {
758
870
  enabled?: boolean;
759
871
  port?: number;
760
872
  }
761
- export interface DetectWechatDevtoolsServicePortOptions {
762
- homeDir?: string;
763
- localAppDataDir?: string;
764
- platform?: NodeJS.Platform;
873
+ export interface DetectWechatDevtoolsServicePortOptions extends ResolveWechatDevtoolsTargetOptions {
874
+ target?: ResolvedWechatDevtoolsTarget;
765
875
  }
766
876
  export interface DetectWechatDevtoolsServicePortResult {
767
877
  touchedInstanceCount: number;
@@ -799,7 +909,7 @@ interface BaseConfig {
799
909
  /**
800
910
  * @description 配置来源
801
911
  */
802
- type ConfigSource = 'custom' | 'default' | 'missing';
912
+ type ConfigSource = 'custom' | 'default' | 'environment' | 'missing';
803
913
  /**
804
914
  * @description 解析后的配置
805
915
  */
@@ -869,7 +979,7 @@ export declare function resolveDevtoolsAutomationDefaults(config: {
869
979
  autoTrustProject: boolean;
870
980
  };
871
981
  /**
872
- * @description 读取并解析 CLI 配置(自定义优先)
982
+ * @description 读取并解析 CLI 配置(进程选择优先,其次用户配置与平台默认)
873
983
  */
874
984
  export declare function getConfig(): Promise<ResolvedConfig>;
875
985
  /**
@@ -877,8 +987,162 @@ export declare function getConfig(): Promise<ResolvedConfig>;
877
987
  */
878
988
  export declare function getConfiguredLocale(): Promise<"zh" | "en" | undefined>;
879
989
  //#endregion
990
+ //#region src/devtoolsProjectOwnership/types.d.ts
991
+ interface ManagedWechatHostIdentity {
992
+ pid: number;
993
+ executable: string;
994
+ started: string;
995
+ }
996
+ type ManagedWechatProjectState = 'starting' | 'unconfirmed' | 'owned' | 'borrowed' | 'closing' | 'failed' | 'released';
997
+ interface ManagedWechatInstallationExitEvidence {
998
+ protocol: 'wechat-devtools-installation-exit-v1';
999
+ recoveredAt: string;
1000
+ recoveryScopeId: string;
1001
+ journalScopeId: string;
1002
+ journalRootPath: string;
1003
+ installationId: string;
1004
+ profileDir: string;
1005
+ previous: {
1006
+ state: 'starting' | 'unconfirmed' | 'failed';
1007
+ error?: string;
1008
+ updatedAt: string;
1009
+ recordSha256: string;
1010
+ };
1011
+ stoppedOwnerPids: number[];
1012
+ closedPorts: number[];
1013
+ processInspection: {
1014
+ platform: 'darwin';
1015
+ installationRoot: string;
1016
+ checkedAt: string;
1017
+ inspectedProcessCount: number;
1018
+ kernelPathProcessCount: number;
1019
+ textImageProcessCount: number;
1020
+ exitedProcessCount: number;
1021
+ zombieProcessCount: number;
1022
+ selectedProcessCount: 0;
1023
+ };
1024
+ }
1025
+ interface ManagedWechatWindowLogCursor {
1026
+ name: string;
1027
+ identity: string;
1028
+ offset: number;
1029
+ anchor: string;
1030
+ skipPartialLine: boolean;
1031
+ }
1032
+ interface ManagedWechatWindowCloseCall {
1033
+ fileIdentity: string;
1034
+ winId: string;
1035
+ browserWindowId: number;
1036
+ calledAt: string;
1037
+ cancelled?: boolean;
1038
+ }
1039
+ interface ManagedWechatWindowCloseEvidence {
1040
+ protocol: 'wechat-devtools-window-close-trace-v1';
1041
+ profileDir: string;
1042
+ productVersion: string;
1043
+ capturedAt: string;
1044
+ /** 活动日志按文件句柄捕获时,绑定实际持有日志的主进程身份。 */
1045
+ mainHost?: ManagedWechatHostIdentity;
1046
+ /** 关闭意图先于 CLI 落盘;未知执行结果不能再次按路径关闭窗口。 */
1047
+ dispatchedAt?: string;
1048
+ cursors: ManagedWechatWindowLogCursor[];
1049
+ calls: ManagedWechatWindowCloseCall[];
1050
+ window?: ManagedWechatWindowCloseCall & {
1051
+ runtimeId: string;
1052
+ requestedAt: string;
1053
+ nativeClosedAt?: string;
1054
+ webContentsDestroyedAt?: string;
1055
+ };
1056
+ failure?: string;
1057
+ /** 旧整目录门禁恢复时保留原失败和游标,不重新捕获偏移或重复关窗。 */
1058
+ logInventoryRecovery?: {
1059
+ failure: string;
1060
+ cursors: ManagedWechatWindowLogCursor[];
1061
+ };
1062
+ }
1063
+ interface ManagedWechatProjectRecord {
1064
+ schemaVersion: 1;
1065
+ id: string;
1066
+ generation: string;
1067
+ journalPath: string;
1068
+ ownerToken: string;
1069
+ ownerPid: number;
1070
+ target: ResolvedWechatDevtoolsTarget;
1071
+ projectPath: string;
1072
+ state: ManagedWechatProjectState;
1073
+ openedProjectWindow?: boolean;
1074
+ port?: number;
1075
+ /** 自动化端口的监听进程身份,可能是 backend;不能当作主宿主或窗口身份。 */
1076
+ host?: ManagedWechatHostIdentity;
1077
+ createdAt: string;
1078
+ updatedAt: string;
1079
+ closeAcknowledgedAt?: string;
1080
+ /** 端口退出不是窗口退出;保存所选 profile 的增量销毁证据供父任务恢复。 */
1081
+ windowClose?: ManagedWechatWindowCloseEvidence;
1082
+ releasedReason?: 'borrowed' | 'project-closed' | 'installation-exited';
1083
+ /** 显式恢复只终结已退出安装的活资源;原启动失败与归属缺口仍保留。 */
1084
+ installationExitRecovery?: ManagedWechatInstallationExitEvidence;
1085
+ error?: string;
1086
+ }
1087
+ interface BeginManagedWechatProjectOptions {
1088
+ target: ResolvedWechatDevtoolsTarget;
1089
+ projectPath: string;
1090
+ generation?: string;
1091
+ port?: number;
1092
+ journalPath?: string;
1093
+ /** 当前任务根作用域最多持有一个窗口;双项目验收须显式指定两个。 */
1094
+ maxOwnedWindows?: 1 | 2;
1095
+ }
1096
+ interface ManagedWechatProjectIntent {
1097
+ id: string;
1098
+ journalPath: string;
1099
+ confirm: (result: {
1100
+ openedProjectWindow: boolean;
1101
+ port: number;
1102
+ }) => Promise<void>;
1103
+ fail: (error: unknown) => Promise<void>;
1104
+ close: () => Promise<void>;
1105
+ }
1106
+ interface CleanupManagedWechatProjectsOptions {
1107
+ journalPath?: string;
1108
+ scope?: 'process' | 'journal';
1109
+ }
1110
+ //#endregion
1111
+ //#region src/devtoolsProjectOwnership/installationExit/index.d.ts
1112
+ export interface RecoverManagedWechatProjectsAfterInstallationExitOptions {
1113
+ target: ResolvedWechatDevtoolsTarget;
1114
+ recoveryScope: MachineE2ELeaseRecoveryScope;
1115
+ }
1116
+ export interface ManagedWechatInstallationExitRecoveryResult {
1117
+ recoveredRecordIds: string[];
1118
+ }
1119
+ /** 在精确恢复租约中终结已退出安装的未知启动或失败关窗;保留原证据,不补造销毁事件。 */
1120
+ export declare function recoverManagedWechatProjectsAfterInstallationExit(options: RecoverManagedWechatProjectsAfterInstallationExitOptions): Promise<ManagedWechatInstallationExitRecoveryResult>;
1121
+ //#endregion
1122
+ //#region src/devtoolsProjectOwnership/journal/constants.d.ts
1123
+ /** 受管项目日志的环境变量名称;基础设施预检可在构建包之前读取。 */
1124
+ export declare const MANAGED_PROJECT_JOURNAL_ENV = "WEAPP_IDE_MANAGED_PROJECT_JOURNAL";
1125
+ /** 仅供显式受管任务声明双项目窗口验收;不允许无限扩大并行窗口。 */
1126
+ export declare const MANAGED_PROJECT_MAX_WINDOWS_ENV = "WEAPP_IDE_MANAGED_PROJECT_MAX_WINDOWS";
1127
+ //#endregion
1128
+ //#region src/devtoolsProjectOwnership/journal.d.ts
1129
+ /** 仅递归当前任务明确传递的 children;不扫描用户缓存,不跟随符号链接。 */
1130
+ export declare function readManagedWechatProjectRecords(journalPath?: string): Promise<ManagedWechatProjectRecord[]>;
1131
+ //#endregion
1132
+ //#region src/devtoolsProjectOwnership/index.d.ts
1133
+ /** 窗口销毁与连接断开分别验证;失败保留登记供后续继续观察。 */
1134
+ export declare function closeManagedWechatProject(options: {
1135
+ journalPath?: string;
1136
+ id: string;
1137
+ }): Promise<void>;
1138
+ /** 未启用受管日志时不改变公共共享会话;意图登记本身没有项目关闭权。 */
1139
+ export declare function beginManagedWechatProject(options: BeginManagedWechatProjectOptions): Promise<ManagedWechatProjectIntent | undefined>;
1140
+ /** 父进程可回收已退出工作进程的确认所有权;未知启动结果严格阻止后续任务。 */
1141
+ export declare function cleanupManagedWechatProjects(options?: CleanupManagedWechatProjectsOptions): Promise<void>;
1142
+ //#endregion
880
1143
  //#region src/mcp/runtime.d.ts
881
1144
  export interface StartWeappIdeMcpServerOptions {
1145
+ cliPath?: string;
882
1146
  workspaceRoot?: string;
883
1147
  }
884
1148
  export declare function startWeappIdeMcpServer(options?: StartWeappIdeMcpServerOptions): Promise<{
@@ -890,14 +1154,7 @@ interface ToolRegistrar {
890
1154
  registerTool: McpServer['registerTool'];
891
1155
  }
892
1156
  export interface WeappIdeMcpRuntimeHooks {
893
- withMiniProgram: <T>(options: {
894
- preferOpenedSession?: boolean;
895
- port?: number;
896
- projectPath: string;
897
- sharedSession?: boolean;
898
- sessionId?: string;
899
- timeout?: number;
900
- }, runner: (miniProgram: MiniProgramLike) => Promise<T>) => Promise<T>;
1157
+ withMiniProgram: <T>(options: AutomatorSessionOptions, runner: (miniProgram: MiniProgramLike) => Promise<T>) => Promise<T>;
901
1158
  }
902
1159
  export interface WeappIdeMcpServerOptions {
903
1160
  runtimeHooks: WeappIdeMcpRuntimeHooks;
@@ -962,12 +1219,15 @@ interface ExecuteOptions {
962
1219
  pipeStdout?: boolean;
963
1220
  pipeStderr?: boolean;
964
1221
  timeout?: number;
1222
+ signal?: AbortSignal;
965
1223
  }
966
1224
  /**
967
1225
  * @description 执行 CLI 命令并透传输出
968
1226
  */
969
1227
  export declare function execute(cliPath: string, argv: string[], options?: ExecuteOptions): Promise<import("execa").Result<{
970
1228
  timeout: number | undefined;
1229
+ cancelSignal: AbortSignal | undefined;
1230
+ forceKillAfterDelay: number;
971
1231
  }>>;
972
1232
  //#endregion
973
1233
  //#region src/utils/path.d.ts
@@ -976,4 +1236,4 @@ export declare function execute(cliPath: string, argv: string[], options?: Execu
976
1236
  */
977
1237
  export declare function resolvePath(filePath: string): string;
978
1238
  //#endregion
979
- export { type AutomatorSessionOptions, type BaseConfig, type ConfigSource, type DevtoolsConnectionInput, type DevtoolsContext, type DevtoolsElementSnapshot, type DevtoolsPageSnapshot, type DevtoolsToolResult, type MiniProgramElement, type MiniProgramEventMap, type MiniProgramLike, type MiniProgramPage, type ResolvedConfig, closeSharedMiniProgram, getSharedMiniProgramSessionCount, readElementSnapshot, releaseSharedMiniProgram, resolveProjectPath, toSerializableValue };
1239
+ export { type AutomatorSessionOptions, type BaseConfig, type BeginManagedWechatProjectOptions, type CleanupManagedWechatProjectsOptions, type ConfigSource, type DevtoolsConnectionInput, type DevtoolsContext, type DevtoolsElementSnapshot, type DevtoolsPageSnapshot, type DevtoolsToolResult, type ManagedWechatHostIdentity, type ManagedWechatInstallationExitEvidence, type ManagedWechatProjectIntent, type ManagedWechatProjectRecord, type ManagedWechatProjectState, type ManagedWechatWindowCloseCall, type ManagedWechatWindowCloseEvidence, type ManagedWechatWindowLogCursor, type MiniProgramElement, type MiniProgramEventMap, type MiniProgramLike, type MiniProgramPage, type ResolvedConfig, type WechatDevtoolsHostInspectionOptions, closeSharedMiniProgram, getSharedMiniProgramSessionCount, readElementSnapshot, releaseSharedMiniProgram, resolveProjectPath, toSerializableValue };
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
- import { $ as createAutoTrustProjectConfig, A as getAutomatorProtocolTimeoutMethod, B as bootstrapWechatDevtoolsSettings, C as runWithSuspendedSharedInput, F as isDevtoolsExtensionContextInvalidatedError, G as resolveDevtoolsAutomationDefaults, H as resolveCliPath, I as isDevtoolsHttpPortError, J as isOperatingSystemSupported, K as SupportedPlatformsMap, L as isRetryableAutomatorLaunchError, M as isAutomatorPortInUseError, N as isAutomatorProtocolTimeoutError, O as connectOpenedAutomator, P as isAutomatorWsConnectError, Q as createAutoBootstrapDevtoolsConfig, R as launchAutomator, S as createSharedInputSession, U as getConfig, V as detectWechatDevtoolsServicePort, W as getConfiguredLocale, Y as operatingSystemName, _ as isWechatIdeLoginRequiredError, a as connectMiniProgram, at as defaultCustomConfigDirPath, b as promptWechatIdeLoginRetry, c as withMiniProgram, d as RETRY_CONFIRM_KEYS, et as createCustomConfig, f as RETRY_PROMPT_INITIAL_IGNORE_MS, g as formatWechatIdeLoginRequiredError, h as formatRetryHotkeyPrompt, it as removeCustomConfigKey, j as isAutomatorLoginError, k as formatAutomatorLoginError, l as runRetryableCommand, m as extractExecutionErrorText, n as acquireSharedMiniProgram, nt as overwriteCustomConfig, o as getSharedMiniProgramSessionCount, ot as defaultCustomConfigFilePath, p as createWechatIdeLoginRequiredExitError, q as getDefaultCliPath, r as closeSharedMiniProgram, rt as readCustomConfig, s as releaseSharedMiniProgram, st as resolvePath, tt as createLocaleConfig, u as RETRY_CANCEL_KEYS, v as isWechatIdeLoginRequiredExitError, w as waitForExclusiveKeypress, x as waitForRetryKeypress, y as promptRetryKeypress, z as resolveProjectAutomatorPort } from "./automator-session-fbanL2eW.js";
2
- import { $ as getRuntimeWechatDevtoolsServicePort, A as isWechatIdeLoggedIn, C as clearWechatIdeCache, D as getWechatIdeTestAccounts, E as compileWechatIdeByAutomator, F as quitWechatIde, G as transformArgv, H as execute, I as refreshWechatIdeTicket, J as openWechatIdeProjectByHttp, K as promptForCliPath, L as resetWechatIdeFileUtils, M as openWechatIde, N as openWechatIdeOtherProject, O as getWechatIdeTicket, P as previewWechatIde, Q as startWechatIdeEngineBuildByHttp, R as setWechatIdeTicket, S as buildWechatIdeNpm, T as closeWechatIdeProject, U as createAlias, V as runWechatCliWithRetry, W as createPathCompat, X as requestWechatDevtoolsHttp, Y as pollWechatIdeEngineBuildResultByHttp, Z as resetWechatIdeFileUtilsByHttp, _ as autoPreviewWechatIde, a as navigateBack, b as buildWechatIdeApk, c as pageStack, d as remote, et as setRuntimeWechatDevtoolsServicePort, f as scrollTo, g as tap, h as takeScreenshot, i as input, it as removeOption, j as loginWechatIde, k as getWechatIdeToolInfo, l as reLaunch, m as systemInfo, n as captureScreenshotBuffer, nt as readBooleanOption, o as navigateTo, p as switchTab, q as WECHAT_DEVTOOLS_ENGINE_BUILD_STATUSES, r as currentPage, rt as readOptionValue, s as pageData, t as audit, tt as parseAutomatorArgs, u as redirectTo, v as autoReplayWechatIde, w as clearWechatIdeCacheByAutomator, x as buildWechatIdeIpa, y as autoWechatIde, z as uploadWechatIde } from "./commands-__RJ552L.js";
3
- import { C as parseCompareArgs, S as printScreenshotHelp, _ as AUTOMATOR_COMMAND_NAMES, a as runMinidev, b as runAutomatorCommand, c as runWechatIdeEngineBuild, d as CONFIG_COMMAND_NAME, f as MCP_COMMAND_NAME, g as isWeappIdeTopLevelCommand, h as WECHAT_CLI_COMMAND_NAMES, i as validateWechatCliCommandArgs, l as runWechatIdeEngineBuildByHttp, m as WEAPP_IDE_TOP_LEVEL_COMMAND_NAMES, n as parse, o as startForwardConsole, p as MINIDEV_NAMESPACE_COMMAND_NAMES, r as dispatchWechatCliCommand, s as isWechatIdeEngineBuildEndpointMissingError, t as createCli, u as handleConfigCommand, v as getAutomatorCommandHelp, w as printCompareHelp, x as parseScreenshotArgs, y as isAutomatorCommand } from "./cli-2sY1sAVq.js";
4
- import { a as readElementSnapshot, i as registerWeappIdeMcpTools, n as startWeappIdeMcpServer, o as resolveProjectPath, r as createWeappIdeMcpServer, s as toSerializableValue, t as runMcpCommand } from "./run-mcp-LqaWlQJ_.js";
5
- export { AUTOMATOR_COMMAND_NAMES, CONFIG_COMMAND_NAME, MCP_COMMAND_NAME, MINIDEV_NAMESPACE_COMMAND_NAMES, RETRY_CANCEL_KEYS, RETRY_CONFIRM_KEYS, RETRY_PROMPT_INITIAL_IGNORE_MS, SupportedPlatformsMap, WEAPP_IDE_TOP_LEVEL_COMMAND_NAMES, WECHAT_CLI_COMMAND_NAMES, WECHAT_DEVTOOLS_ENGINE_BUILD_STATUSES, acquireSharedMiniProgram, audit, autoPreviewWechatIde, autoReplayWechatIde, autoWechatIde, bootstrapWechatDevtoolsSettings, buildWechatIdeApk, buildWechatIdeIpa, buildWechatIdeNpm, captureScreenshotBuffer, clearWechatIdeCache, clearWechatIdeCacheByAutomator, closeSharedMiniProgram, closeWechatIdeProject, compileWechatIdeByAutomator, connectMiniProgram, connectOpenedAutomator, createAlias, createAutoBootstrapDevtoolsConfig, createAutoTrustProjectConfig, createCli, createCustomConfig, createLocaleConfig, createPathCompat, createSharedInputSession, createWeappIdeMcpServer, createWechatIdeLoginRequiredExitError, currentPage, defaultCustomConfigDirPath, defaultCustomConfigFilePath, detectWechatDevtoolsServicePort, dispatchWechatCliCommand, execute, extractExecutionErrorText, formatAutomatorLoginError, formatRetryHotkeyPrompt, formatWechatIdeLoginRequiredError, getAutomatorCommandHelp, getAutomatorProtocolTimeoutMethod, getConfig, getConfiguredLocale, getDefaultCliPath, getRuntimeWechatDevtoolsServicePort, getSharedMiniProgramSessionCount, getWechatIdeTestAccounts, getWechatIdeTicket, getWechatIdeToolInfo, handleConfigCommand, input, isAutomatorCommand, isAutomatorLoginError, isAutomatorPortInUseError, isAutomatorProtocolTimeoutError, isAutomatorWsConnectError, isDevtoolsExtensionContextInvalidatedError, isDevtoolsHttpPortError, isOperatingSystemSupported, isRetryableAutomatorLaunchError, isWeappIdeTopLevelCommand, isWechatIdeEngineBuildEndpointMissingError, isWechatIdeLoggedIn, isWechatIdeLoginRequiredError, isWechatIdeLoginRequiredExitError, launchAutomator, loginWechatIde, navigateBack, navigateTo, openWechatIde, openWechatIdeOtherProject, openWechatIdeProjectByHttp, operatingSystemName, overwriteCustomConfig, pageData, pageStack, parse, parseAutomatorArgs, parseCompareArgs, parseScreenshotArgs, pollWechatIdeEngineBuildResultByHttp, previewWechatIde, printCompareHelp, printScreenshotHelp, promptForCliPath, promptRetryKeypress, promptWechatIdeLoginRetry, quitWechatIde, reLaunch, readBooleanOption, readCustomConfig, readElementSnapshot, readOptionValue, redirectTo, refreshWechatIdeTicket, registerWeappIdeMcpTools, releaseSharedMiniProgram, remote, removeCustomConfigKey, removeOption, requestWechatDevtoolsHttp, resetWechatIdeFileUtils, resetWechatIdeFileUtilsByHttp, resolveCliPath, resolveDevtoolsAutomationDefaults, resolvePath, resolveProjectAutomatorPort, resolveProjectPath, runAutomatorCommand, runMcpCommand, runMinidev, runRetryableCommand, runWechatCliWithRetry, runWechatIdeEngineBuild, runWechatIdeEngineBuildByHttp, runWithSuspendedSharedInput, scrollTo, setRuntimeWechatDevtoolsServicePort, setWechatIdeTicket, startForwardConsole, startWeappIdeMcpServer, startWechatIdeEngineBuildByHttp, switchTab, systemInfo, takeScreenshot, tap, toSerializableValue, transformArgv, uploadWechatIde, validateWechatCliCommandArgs, waitForExclusiveKeypress, waitForRetryKeypress, withMiniProgram };
1
+ import { C as getDefaultCliPath, S as SupportedPlatformsMap, T as operatingSystemName, _ as readCustomConfig, a as assertWechatDevtoolsPort, b as defaultCustomConfigFilePath, d as resolveDevtoolsAutomationDefaults, f as createAutoBootstrapDevtoolsConfig, g as overwriteCustomConfig, h as createLocaleConfig, i as assertWechatDevtoolsHost, l as getConfig, m as createCustomConfig, p as createAutoTrustProjectConfig, r as resolveWechatDevtoolsTarget, u as getConfiguredLocale, v as removeCustomConfigKey, w as isOperatingSystemSupported, x as resolvePath, y as defaultCustomConfigDirPath } from "./sessionStore-zdzy2UFM.js";
2
+ import { d as MANAGED_PROJECT_MAX_WINDOWS_ENV, h as startWechatIdeAgent, i as recoverManagedWechatProjectsAfterInstallationExit, n as cleanupManagedWechatProjects, o as readManagedWechatProjectRecords, r as closeManagedWechatProject, t as beginManagedWechatProject, u as MANAGED_PROJECT_JOURNAL_ENV } from "./devtoolsProjectOwnership-yDD6h0dO.js";
3
+ import { a as bootstrapWechatDevtoolsSettings, c as getAutomatorProtocolTimeoutMethod, d as isAutomatorProtocolTimeoutError, f as isAutomatorWsConnectError, g as resolveAutomatorSessionOptions, h as isRetryableAutomatorLaunchError, i as resolveProjectAutomatorPort, l as isAutomatorLoginError, m as isDevtoolsHttpPortError, n as launchAutomator, o as detectWechatDevtoolsServicePort, p as isDevtoolsExtensionContextInvalidatedError, r as persistOpenedAutomatorSession, s as formatAutomatorLoginError, t as connectOpenedAutomator, u as isAutomatorPortInUseError } from "./automator-CRpB6_pA.js";
4
+ import { $ as MINIDEV_NAMESPACE_COMMAND_NAMES, A as queryWechatIdeLogin, B as WECHAT_DEVTOOLS_ENGINE_BUILD_STATUSES, C as refreshWechatIdeTicket, D as validateWechatCliCommandArgs, E as uploadWechatIde, F as startForwardConsole, G as startWechatIdeEngineBuildByHttp, H as pollWechatIdeEngineBuildResultByHttp, I as isWechatIdeEngineBuildEndpointMissingError, J as handleConfigCommand, K as getRuntimeWechatDevtoolsServicePort, L as prepareAcceptanceProject, M as createAlias, N as createPathCompat, O as runWechatCliWithRetry, P as transformArgv, Q as MCP_COMMAND_NAME, R as runWechatIdeEngineBuild, S as quitWechatIde, T as setWechatIdeTicket, U as requestWechatDevtoolsHttp, V as openWechatIdeProjectByHttp, W as resetWechatIdeFileUtilsByHttp, X as promptForCliPath, Y as resolveCliPath, Z as CONFIG_COMMAND_NAME, _ as isWechatIdeLoggedIn, a as autoReplayWechatIde, at as isAutomatorCommand, b as openWechatIdeOtherProject, c as buildWechatIdeIpa, ct as printScreenshotHelp, d as clearWechatIdeCacheByAutomator, dt as parseAutomatorArgs, et as WEAPP_IDE_TOP_LEVEL_COMMAND_NAMES, f as closeWechatIdeProject, ft as readBooleanOption, g as getWechatIdeToolInfo, h as getWechatIdeTicket, i as autoPreviewWechatIde, it as getAutomatorCommandHelp, j as execute, k as runMinidev, l as buildWechatIdeNpm, lt as parseCompareArgs, m as getWechatIdeTestAccounts, mt as removeOption, n as parse, nt as isWeappIdeTopLevelCommand, o as autoWechatIde, ot as runAutomatorCommand, p as compileWechatIdeByAutomator, pt as readOptionValue, q as setRuntimeWechatDevtoolsServicePort, r as dispatchWechatCliCommand, rt as AUTOMATOR_COMMAND_NAMES, s as buildWechatIdeApk, st as parseScreenshotArgs, t as createCli, tt as WECHAT_CLI_COMMAND_NAMES, u as clearWechatIdeCache, ut as printCompareHelp, v as loginWechatIde, w as resetWechatIdeFileUtils, x as previewWechatIde, y as openWechatIde, z as runWechatIdeEngineBuildByHttp } from "./cli-ChMQqi5w.js";
5
+ import { C as runWithSuspendedSharedInput, S as createSharedInputSession, _ as isWechatIdeLoginRequiredError, a as connectMiniProgram, b as promptWechatIdeLoginRetry, c as withMiniProgram, d as RETRY_CONFIRM_KEYS, f as RETRY_PROMPT_INITIAL_IGNORE_MS, g as formatWechatIdeLoginRequiredError, h as formatRetryHotkeyPrompt, l as runRetryableCommand, m as extractExecutionErrorText, n as acquireSharedMiniProgram, o as getSharedMiniProgramSessionCount, p as createWechatIdeLoginRequiredExitError, r as closeSharedMiniProgram, s as releaseSharedMiniProgram, u as RETRY_CANCEL_KEYS, v as isWechatIdeLoginRequiredExitError, w as waitForExclusiveKeypress, x as waitForRetryKeypress, y as promptRetryKeypress } from "./automator-session-gWEsSs_A.js";
6
+ import { a as navigateBack, c as pageStack, d as remote, f as scrollTo, g as tap, h as takeScreenshot, i as input, l as reLaunch, m as systemInfo, n as captureScreenshotBuffer, o as navigateTo, p as switchTab, r as currentPage, s as pageData, t as audit, u as redirectTo } from "./commands-C1PF1B4P.js";
7
+ import { a as readElementSnapshot, i as registerWeappIdeMcpTools, n as startWeappIdeMcpServer, o as resolveProjectPath, r as createWeappIdeMcpServer, s as toSerializableValue, t as runMcpCommand } from "./run-mcp-Dl_1TH1x.js";
8
+ export { AUTOMATOR_COMMAND_NAMES, CONFIG_COMMAND_NAME, MANAGED_PROJECT_JOURNAL_ENV, MANAGED_PROJECT_MAX_WINDOWS_ENV, MCP_COMMAND_NAME, MINIDEV_NAMESPACE_COMMAND_NAMES, RETRY_CANCEL_KEYS, RETRY_CONFIRM_KEYS, RETRY_PROMPT_INITIAL_IGNORE_MS, SupportedPlatformsMap, WEAPP_IDE_TOP_LEVEL_COMMAND_NAMES, WECHAT_CLI_COMMAND_NAMES, WECHAT_DEVTOOLS_ENGINE_BUILD_STATUSES, acquireSharedMiniProgram, assertWechatDevtoolsHost, assertWechatDevtoolsPort, audit, autoPreviewWechatIde, autoReplayWechatIde, autoWechatIde, beginManagedWechatProject, bootstrapWechatDevtoolsSettings, buildWechatIdeApk, buildWechatIdeIpa, buildWechatIdeNpm, captureScreenshotBuffer, cleanupManagedWechatProjects, clearWechatIdeCache, clearWechatIdeCacheByAutomator, closeManagedWechatProject, closeSharedMiniProgram, closeWechatIdeProject, compileWechatIdeByAutomator, connectMiniProgram, connectOpenedAutomator, createAlias, createAutoBootstrapDevtoolsConfig, createAutoTrustProjectConfig, createCli, createCustomConfig, createLocaleConfig, createPathCompat, createSharedInputSession, createWeappIdeMcpServer, createWechatIdeLoginRequiredExitError, currentPage, defaultCustomConfigDirPath, defaultCustomConfigFilePath, detectWechatDevtoolsServicePort, dispatchWechatCliCommand, execute, extractExecutionErrorText, formatAutomatorLoginError, formatRetryHotkeyPrompt, formatWechatIdeLoginRequiredError, getAutomatorCommandHelp, getAutomatorProtocolTimeoutMethod, getConfig, getConfiguredLocale, getDefaultCliPath, getRuntimeWechatDevtoolsServicePort, getSharedMiniProgramSessionCount, getWechatIdeTestAccounts, getWechatIdeTicket, getWechatIdeToolInfo, handleConfigCommand, input, isAutomatorCommand, isAutomatorLoginError, isAutomatorPortInUseError, isAutomatorProtocolTimeoutError, isAutomatorWsConnectError, isDevtoolsExtensionContextInvalidatedError, isDevtoolsHttpPortError, isOperatingSystemSupported, isRetryableAutomatorLaunchError, isWeappIdeTopLevelCommand, isWechatIdeEngineBuildEndpointMissingError, isWechatIdeLoggedIn, isWechatIdeLoginRequiredError, isWechatIdeLoginRequiredExitError, launchAutomator, loginWechatIde, navigateBack, navigateTo, openWechatIde, openWechatIdeOtherProject, openWechatIdeProjectByHttp, operatingSystemName, overwriteCustomConfig, pageData, pageStack, parse, parseAutomatorArgs, parseCompareArgs, parseScreenshotArgs, persistOpenedAutomatorSession, pollWechatIdeEngineBuildResultByHttp, prepareAcceptanceProject, previewWechatIde, printCompareHelp, printScreenshotHelp, promptForCliPath, promptRetryKeypress, promptWechatIdeLoginRetry, queryWechatIdeLogin, quitWechatIde, reLaunch, readBooleanOption, readCustomConfig, readElementSnapshot, readManagedWechatProjectRecords, readOptionValue, recoverManagedWechatProjectsAfterInstallationExit, redirectTo, refreshWechatIdeTicket, registerWeappIdeMcpTools, releaseSharedMiniProgram, remote, removeCustomConfigKey, removeOption, requestWechatDevtoolsHttp, resetWechatIdeFileUtils, resetWechatIdeFileUtilsByHttp, resolveAutomatorSessionOptions, resolveCliPath, resolveDevtoolsAutomationDefaults, resolvePath, resolveProjectAutomatorPort, resolveProjectPath, resolveWechatDevtoolsTarget, runAutomatorCommand, runMcpCommand, runMinidev, runRetryableCommand, runWechatCliWithRetry, runWechatIdeEngineBuild, runWechatIdeEngineBuildByHttp, runWithSuspendedSharedInput, scrollTo, setRuntimeWechatDevtoolsServicePort, setWechatIdeTicket, startForwardConsole, startWeappIdeMcpServer, startWechatIdeAgent, startWechatIdeEngineBuildByHttp, switchTab, systemInfo, takeScreenshot, tap, toSerializableValue, transformArgv, uploadWechatIde, validateWechatCliCommandArgs, waitForExclusiveKeypress, waitForRetryKeypress, withMiniProgram };