shellx-ai 1.1.1 → 1.1.3

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/shellx.js CHANGED
@@ -9,7 +9,6 @@
9
9
  // Import refactored modules
10
10
  import { UIActionHandler } from "./automation/ui-action-handler.js";
11
11
  import { ElementFinder } from "./automation/element-finder.js";
12
- import { ShellCommandExecutor } from "./shell/shell-command-executor.js";
13
12
  // Import client
14
13
  import ConnectionClient from "./index.js";
15
14
  import { createLogger } from "./logger.js";
@@ -65,8 +64,6 @@ export class ShellX {
65
64
  uiActionHandler;
66
65
  /** Element finder for locating UI elements */
67
66
  elementFinder;
68
- /** Shell command executor for running shell commands */
69
- shellCommandExecutor;
70
67
  /** Connection client for device communication */
71
68
  client;
72
69
  /**
@@ -113,26 +110,18 @@ export class ShellX {
113
110
  options.onReconnectFailed?.();
114
111
  },
115
112
  onMessage: (message) => {
116
- // Forward shell output to ShellX instance
117
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
118
- const wsMessage = message;
119
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
120
- if (wsMessage.chunks) {
121
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
122
- this.handleShellOutput(wsMessage.chunks);
123
- }
124
113
  // Call user's onMessage callback
125
114
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
126
115
  options.onMessage?.(message);
127
116
  },
117
+ onAsrResult: options.onAsrResult ? (text) => options.onAsrResult(text) : undefined,
118
+ onGatewayMessage: options.onGatewayMessage,
128
119
  }, this.logger);
129
120
  // Initialize handlers
130
121
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
131
122
  this.uiActionHandler = new UIActionHandler(this.client);
132
123
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
133
124
  this.elementFinder = new ElementFinder(this.client);
134
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
135
- this.shellCommandExecutor = new ShellCommandExecutor(this.client);
136
125
  // Link client and shellx
137
126
  this.client.setShellX(this);
138
127
  this.logger.info("⏳ Initializing connection...");
@@ -347,21 +336,55 @@ export class ShellX {
347
336
  await this.ensureConnectionReady();
348
337
  const startTime = Date.now();
349
338
  const commandData = typeof cmdOrData === "string" ? { cmd: cmdOrData, ...options } : cmdOrData;
350
- const result = await this.shellCommandExecutor.executeShellCommand(commandData.cmd, {
351
- title: `Execute command: ${commandData.cmd}`,
352
- timeout: commandData.timeout,
353
- waitAfterMs: commandData.wait,
354
- });
355
- this.getClient().appendExecutionLog(`✅ Command executed successfully - Output: ${result.output}`);
356
- return {
357
- success: result.success,
358
- output: result.output,
359
- error: result.error,
360
- exitCode: result.exitCode,
361
- duration: result.duration,
362
- cmd: commandData.cmd,
363
- timestamp: startTime,
364
- };
339
+ // Default ptyType is 0 (shell execution with result)
340
+ const commandType = commandData.ptyType ?? 0;
341
+ if (commandType === 1) {
342
+ // ptyType=1: PTY 单向执行,不返回结果 — fire-and-forget
343
+ const action = {
344
+ type: "command",
345
+ command: commandData.cmd,
346
+ ptyType: commandType,
347
+ };
348
+ // 只有当 terminalId 被指定时才添加到 action 中
349
+ if (commandData.terminalId !== undefined) {
350
+ action.terminalId = commandData.terminalId;
351
+ }
352
+ await this.client.sendMessageWithTaskId({
353
+ action: {
354
+ action,
355
+ },
356
+ }, "oneway", { timeout: commandData.timeout });
357
+ return {
358
+ success: true,
359
+ output: "",
360
+ duration: Date.now() - startTime,
361
+ cmd: commandData.cmd,
362
+ terminalId: commandData.terminalId,
363
+ timestamp: startTime,
364
+ };
365
+ }
366
+ else {
367
+ // ptyType=0: shell 执行并返回结果 — wait for commandResult response
368
+ const { promise } = await this.client.sendMessageWithTaskId({
369
+ action: {
370
+ action: {
371
+ type: "command",
372
+ command: commandData.cmd,
373
+ ptyType: commandType,
374
+ },
375
+ },
376
+ }, "command", { timeout: commandData.timeout });
377
+ const response = await promise;
378
+ return {
379
+ success: response?.success ?? false,
380
+ output: response?.result ?? "",
381
+ error: response?.errorMessage,
382
+ duration: Date.now() - startTime,
383
+ cmd: commandData.cmd,
384
+ terminalId: commandData.terminalId,
385
+ timestamp: startTime,
386
+ };
387
+ }
365
388
  }
366
389
  /**
367
390
  * Execute a clipboard action
@@ -384,12 +407,17 @@ export class ShellX {
384
407
  */
385
408
  async clipboard(clipboardData) {
386
409
  await this.ensureConnectionReady();
387
- const result = await this.uiActionHandler.clipboard(clipboardData);
410
+ const startTime = Date.now();
411
+ // Use dataRequest-based clipboard method (consistent with find/wait)
412
+ const response = await this.client.clipboard(clipboardData);
388
413
  return {
389
- ...result,
390
- text: result.text,
391
- pasted: clipboardData.paste ? result.success : undefined,
392
- getCopied: clipboardData.get ? result.success : undefined,
414
+ success: response.success ?? true,
415
+ text: response.text ?? "",
416
+ pasted: clipboardData.paste ? (response.success ?? true) : undefined,
417
+ getCopied: clipboardData.get ? (response.success ?? true) : undefined,
418
+ error: response.error,
419
+ duration: Date.now() - startTime,
420
+ timestamp: startTime,
393
421
  };
394
422
  }
395
423
  async getAppInfo(pkgOrData, options) {
@@ -627,13 +655,6 @@ export class ShellX {
627
655
  ...options,
628
656
  });
629
657
  }
630
- /**
631
- * Wait for any of multiple elements to appear
632
- * @deprecated Use waitAnyElement() instead for consistency
633
- */
634
- async waitForAnyElement(selectors, timeout = 10000) {
635
- return this.waitAnyElement(selectors, timeout);
636
- }
637
658
  /**
638
659
  * Wait for any of multiple elements to appear
639
660
  *
@@ -685,27 +706,6 @@ export class ShellX {
685
706
  }, { maxScrolls, direction });
686
707
  }
687
708
  // ==================== Shell Command Methods ====================
688
- /**
689
- * Handle shell output from WebSocket messages
690
- *
691
- * This method should be called in the WebSocket message handler.
692
- *
693
- * @param chunks - Shell output chunks
694
- *
695
- * @example
696
- * ```typescript
697
- * const client = new ConnectionClient(deviceId, {
698
- * onMessage: (message) => {
699
- * if (message.chunks) {
700
- * shellx.handleShellOutput(message.chunks);
701
- * }
702
- * }
703
- * });
704
- * ```
705
- */
706
- handleShellOutput(chunks) {
707
- this.shellCommandExecutor.handleShellOutput(chunks);
708
- }
709
709
  /**
710
710
  * Send raw WebSocket message (for advanced use cases)
711
711
  *
@@ -747,79 +747,197 @@ export class ShellX {
747
747
  await this.ensureConnectionReady();
748
748
  return this.client.sendRawMessage(message);
749
749
  }
750
+ // ==================== ASR / TTS Methods ====================
750
751
  /**
751
- * Start ASR (Automatic Speech Recognition)
752
- * @returns Promise that resolves when speech recognition has started
752
+ * Start ASR (Automatic Speech Recognition) on the device.
753
+ *
754
+ * The device will begin capturing microphone audio and streaming recognition
755
+ * results back. Each result is delivered via the `onAsrResult` callback
756
+ * configured in `ShellXOptions`, or you can listen to raw messages via
757
+ * `onMessage` and check `message.jsonData?.asr`.
758
+ *
759
+ * @param options - Optional ASR options (e.g. per-call `onResult` callback)
760
+ * @returns Promise that resolves when the start command has been sent
753
761
  *
754
762
  * @example
755
763
  * ```typescript
756
- * await shellx.startSpeechRecognition();
757
- * console.log('Speech recognition started');
764
+ * const shellx = new ShellX({
765
+ * deviceId: 'your-device-id',
766
+ * onAsrResult: (text) => console.log('ASR:', text)
767
+ * });
768
+ * await shellx.ready();
769
+ * await shellx.startAsr();
770
+ * // ...user speaks into device microphone...
771
+ * await shellx.stopAsr();
758
772
  * ```
759
773
  */
760
- async startSpeechRecognition() {
774
+ async startAsr(options) {
761
775
  await this.ensureConnectionReady();
776
+ // If the caller passes a per-call onResult, register it temporarily
777
+ if (options?.onResult) {
778
+ const handler = options.onResult;
779
+ // Wrap: re-register a one-shot forwarder in the client config
780
+ // (The primary channel is onAsrResult in ShellXOptions; this is a convenience)
781
+ const original = this.client.config.onAsrResult;
782
+ this.client.config.onAsrResult = (text, source) => {
783
+ handler(text);
784
+ original?.(text, source);
785
+ };
786
+ }
762
787
  return this.client.startAsr();
763
788
  }
764
789
  /**
765
- * Stop ASR (Automatic Speech Recognition)
766
- * @returns Promise that resolves when speech recognition has stopped
790
+ * Stop ASR (Automatic Speech Recognition) on the device.
791
+ *
792
+ * @returns Promise that resolves when the stop command has been sent
767
793
  *
768
794
  * @example
769
795
  * ```typescript
770
- * await shellx.stopSpeechRecognition();
771
- * console.log('Speech recognition stopped');
796
+ * await shellx.stopAsr();
772
797
  * ```
773
798
  */
774
- async stopSpeechRecognition() {
799
+ async stopAsr() {
775
800
  await this.ensureConnectionReady();
776
801
  return this.client.stopAsr();
777
802
  }
803
+ async speak(textOrData, options) {
804
+ await this.ensureConnectionReady();
805
+ const startTime = Date.now();
806
+ const { text, voiceType, volume } = typeof textOrData === "string"
807
+ ? { text: textOrData, voiceType: options?.voiceType, volume: options?.volume }
808
+ : textOrData;
809
+ await this.client.speak(text, voiceType, volume);
810
+ return {
811
+ success: true,
812
+ text,
813
+ voiceType,
814
+ volume,
815
+ duration: Date.now() - startTime,
816
+ timestamp: startTime,
817
+ };
818
+ }
778
819
  /**
779
- * Speak text aloud using TTS (Text-to-Speech)
780
- * @param text - The text to speak
781
- * @returns Promise that resolves when TTS has started speaking
820
+ * Stop TTS (Text-to-Speech) on the device.
821
+ *
822
+ * @returns Promise that resolves when the stop command has been sent
782
823
  *
783
824
  * @example
784
825
  * ```typescript
785
- * await shellx.speak('Hello, world!');
826
+ * await shellx.stopSpeaking();
786
827
  * ```
787
828
  */
788
- async speak(text) {
829
+ async stopSpeaking() {
789
830
  await this.ensureConnectionReady();
790
- return this.client.speak(text);
831
+ return this.client.stopTts();
791
832
  }
833
+ // ========================================================================
834
+ // Terminal Management Methods
835
+ // ========================================================================
792
836
  /**
793
- * Stop TTS (Text-to-Speech)
794
- * @returns Promise that resolves when TTS has stopped speaking
837
+ * Close a terminal session by ID
838
+ *
839
+ * This method closes a PTY (pseudo-terminal) session and releases its resources.
840
+ * The terminal ID is the same as the one used in the `terminalId` parameter
841
+ * when executing commands.
842
+ *
843
+ * @param terminalId - Terminal ID (sid) to close
844
+ * @returns Promise that resolves when the close command has been sent
795
845
  *
796
846
  * @example
797
847
  * ```typescript
798
- * await shellx.stopSpeaking();
848
+ * // Execute command in a specific terminal
849
+ * await shellx.command({ cmd: 'pwd', ptyType: 1, terminalId: 12345 });
850
+ *
851
+ * // Close the terminal when done
852
+ * await shellx.closeTerminal(12345);
799
853
  * ```
800
854
  */
801
- async stopSpeaking() {
855
+ async closeTerminal(terminalId) {
802
856
  await this.ensureConnectionReady();
803
- return this.client.stopTts();
857
+ this.logger.info(`Closing terminal: ${terminalId}`);
858
+ return this.client.closeTerminal(terminalId);
804
859
  }
805
860
  /**
806
- * Static factory method to create shell output handler
807
- * @deprecated This method is kept for backward compatibility but is no longer needed
808
- * @param shellx - The ShellX instance
809
- * @returns Message handler function
861
+ * Close the WebSocket connection and cleanup resources
862
+ *
863
+ * This method closes the underlying WebSocket connection to the device.
864
+ * All pending tasks will be cancelled with a connection-closed result.
865
+ *
866
+ * After calling this method, the ShellX instance cannot be used for further
867
+ * operations until a new connection is established.
810
868
  *
811
869
  * @example
812
870
  * ```typescript
813
- * const shellx = new ShellX({ deviceId: 'device-id' });
814
- * const handler = ShellX.createShellOutputHandler(shellx);
871
+ * // Close the connection when done
872
+ * await shellx.close();
815
873
  * ```
816
874
  */
817
- static createShellOutputHandler(shellx) {
818
- return (message) => {
819
- if (message.chunks) {
820
- shellx.handleShellOutput(message.chunks);
821
- }
875
+ close() {
876
+ this.logger.info("Closing ShellX connection...");
877
+ this.client.close();
878
+ }
879
+ /**
880
+ * Disconnect from the device (alias for close)
881
+ *
882
+ * @example
883
+ * ```typescript
884
+ * await shellx.disconnect();
885
+ * ```
886
+ */
887
+ disconnect() {
888
+ this.close();
889
+ }
890
+ // ========================================================================
891
+ // Data Request Methods
892
+ // ========================================================================
893
+ /**
894
+ * Send a data request to the device
895
+ *
896
+ * This is a generic method that allows sending data requests to the device
897
+ * and receiving typed responses. It can be used to implement custom data
898
+ * access functionality beyond what's provided by the ShellX API.
899
+ *
900
+ * @template TResponse - Type of the response
901
+ * @param requestType - The type of data request (e.g., "addAlarm", "getCalls", etc.)
902
+ * @param params - Request parameters
903
+ * @returns Promise resolving to the typed response
904
+ *
905
+ * @example
906
+ * ```typescript
907
+ * // Add an alarm
908
+ * const alarmResult = await shellx.sendDataRequest<AddAlarmResponse>(
909
+ * "addAlarm",
910
+ * { hour: 7, minute: 30, label: "Wake up", enabled: true }
911
+ * );
912
+ *
913
+ * // Get call records
914
+ * const callsResult = await shellx.sendDataRequest<GetCallsResponse>(
915
+ * "getCalls",
916
+ * { limit: 20 }
917
+ * );
918
+ *
919
+ * // Search contacts
920
+ * const contactsResult = await shellx.sendDataRequest<SearchContactsResponse>(
921
+ * "searchContacts",
922
+ * { query: "张三", limit: 10 }
923
+ * );
924
+ * ```
925
+ */
926
+ async sendDataRequest(requestType, params) {
927
+ this.logger.debug(`Sending data request: ${requestType}`);
928
+ // Remove keys with undefined values from params
929
+ const cleanedParams = params && typeof params === "object"
930
+ ? Object.fromEntries(Object.entries(params).filter(([, value]) => value !== undefined))
931
+ : params;
932
+ const message = {
933
+ dataRequest: {
934
+ requestType,
935
+ params: cleanedParams,
936
+ },
822
937
  };
938
+ // Use sendMessage to send the data request and wait for response
939
+ // Use "dataRequest" as the task type for response matching
940
+ return this.client.sendMessage(message, "dataRequest");
823
941
  }
824
942
  }
825
943
  //# sourceMappingURL=shellx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shellx.js","sourceRoot":"","sources":["../src/shellx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellx.js","sourceRoot":"","sources":["../src/shellx.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -116,11 +116,15 @@ export interface FindResult extends BaseResult {
116
116
  }
117
117
  export type Command = BaseOptions & {
118
118
  cmd: string;
119
+ ptyType?: 0 | 1;
120
+ terminalId?: number;
119
121
  };
120
122
  export interface CommandResult extends BaseResult {
121
- output: string;
123
+ output?: string;
122
124
  exitCode?: number;
123
125
  cmd: string;
126
+ terminalId?: number;
127
+ result?: string;
124
128
  }
125
129
  export type Clipboard = BaseOptions & {
126
130
  text?: string;
@@ -151,6 +155,9 @@ export type Screenshot = BaseOptions & {
151
155
  scale?: number;
152
156
  quality?: number;
153
157
  saveToFile?: boolean;
158
+ enableFallback?: boolean;
159
+ fallbackWidth?: number;
160
+ fallbackHeight?: number;
154
161
  };
155
162
  export interface ScreenshotResult extends BaseResult {
156
163
  imagePath?: string;
@@ -158,6 +165,7 @@ export interface ScreenshotResult extends BaseResult {
158
165
  format?: "png" | "jpeg";
159
166
  width?: number;
160
167
  height?: number;
168
+ isFallback?: boolean;
161
169
  }
162
170
  export interface ScreenInfoResult extends BaseResult {
163
171
  width?: number;
@@ -200,3 +208,32 @@ export interface ExecuteActionsResult {
200
208
  failureCount: number;
201
209
  totalDuration: number;
202
210
  }
211
+ export type Asr = {
212
+ /** Called each time the device sends a partial or final recognition result */
213
+ onResult?: (text: string) => void;
214
+ };
215
+ export interface AsrResult extends BaseResult {
216
+ /** The recognised text returned by the device */
217
+ text: string;
218
+ /** Source tag returned by the device (e.g. "asr") */
219
+ source?: string;
220
+ }
221
+ export type Tts = {
222
+ /** Text to synthesise and play on the device */
223
+ text: string;
224
+ /**
225
+ * Volcengine voice type.
226
+ * Defaults to the device's configured voice when omitted.
227
+ * Example: "BV001_streaming", "BV002_streaming"
228
+ */
229
+ voiceType?: string;
230
+ /**
231
+ * Playback volume, 0.0 (silent) – 1.0 (full, default).
232
+ */
233
+ volume?: number;
234
+ };
235
+ export interface TtsResult extends BaseResult {
236
+ text: string;
237
+ voiceType?: string;
238
+ volume?: number;
239
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * UI Analyzer - Extract online count and comments from UI hierarchy
3
+ * Direct implementation using ShellX API
4
+ */
5
+ import type { UIElement, UIHierarchy } from './protocol.js';
6
+ export interface OnlineCountInfo {
7
+ count: number;
8
+ text: string;
9
+ bounds: {
10
+ left: number;
11
+ top: number;
12
+ right: number;
13
+ bottom: number;
14
+ };
15
+ confidence: 'high' | 'medium' | 'low';
16
+ }
17
+ export interface CommentInfo {
18
+ text: string;
19
+ bounds: {
20
+ left: number;
21
+ top: number;
22
+ right: number;
23
+ bottom: number;
24
+ };
25
+ className: string;
26
+ }
27
+ export interface ScreenAnalysis {
28
+ screenWidth: number;
29
+ screenHeight: number;
30
+ totalElements: number;
31
+ elementsWithText: number;
32
+ clickableElements: number;
33
+ elementsByClass: Record<string, number>;
34
+ }
35
+ /**
36
+ * Get all UI elements from current screen
37
+ */
38
+ export declare function getAllUIElements(findElement: (selector: any, options?: any) => Promise<UIHierarchy>): Promise<UIElement[]>;
39
+ /**
40
+ * Extract online count from top-right corner
41
+ */
42
+ export declare function extractOnlineCount(elements: UIElement[], screenWidth: number, screenHeight: number): OnlineCountInfo | null;
43
+ /**
44
+ * Extract comment information from elements
45
+ * Looks for text elements that are likely comments based on position and content
46
+ */
47
+ export declare function extractComments(elements: UIElement[], maxComments?: number): CommentInfo[];
48
+ /**
49
+ * Analyze screen and provide summary
50
+ */
51
+ export declare function analyzeScreen(elements: UIElement[], screenWidth: number, screenHeight: number): ScreenAnalysis;
52
+ /**
53
+ * Format screen analysis as readable text
54
+ */
55
+ export declare function formatScreenAnalysis(analysis: ScreenAnalysis): string;
56
+ /**
57
+ * Format online count result as readable text
58
+ */
59
+ export declare function formatOnlineCount(info: OnlineCountInfo | null): string;
60
+ /**
61
+ * Format comments as readable text
62
+ */
63
+ export declare function formatComments(comments: CommentInfo[]): string;
64
+ /**
65
+ * Extract all meaningful text content from elements
66
+ * Returns all text elements that might be useful (comments, descriptions, etc.)
67
+ */
68
+ export declare function extractAllTextContent(elements: UIElement[], maxLength?: number): Array<{
69
+ text: string;
70
+ className: string;
71
+ bounds: {
72
+ left: number;
73
+ top: number;
74
+ right: number;
75
+ bottom: number;
76
+ };
77
+ }>;
78
+ /**
79
+ * Format all text content as readable text
80
+ */
81
+ export declare function formatAllTextContent(contents: Array<{
82
+ text: string;
83
+ className: string;
84
+ bounds: {
85
+ left: number;
86
+ top: number;
87
+ right: number;
88
+ bottom: number;
89
+ };
90
+ }>): string;