shellx-ai 1.1.1 → 1.1.2

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
@@ -627,13 +650,6 @@ export class ShellX {
627
650
  ...options,
628
651
  });
629
652
  }
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
653
  /**
638
654
  * Wait for any of multiple elements to appear
639
655
  *
@@ -685,27 +701,6 @@ export class ShellX {
685
701
  }, { maxScrolls, direction });
686
702
  }
687
703
  // ==================== 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
704
  /**
710
705
  * Send raw WebSocket message (for advanced use cases)
711
706
  *
@@ -747,79 +742,197 @@ export class ShellX {
747
742
  await this.ensureConnectionReady();
748
743
  return this.client.sendRawMessage(message);
749
744
  }
745
+ // ==================== ASR / TTS Methods ====================
750
746
  /**
751
- * Start ASR (Automatic Speech Recognition)
752
- * @returns Promise that resolves when speech recognition has started
747
+ * Start ASR (Automatic Speech Recognition) on the device.
748
+ *
749
+ * The device will begin capturing microphone audio and streaming recognition
750
+ * results back. Each result is delivered via the `onAsrResult` callback
751
+ * configured in `ShellXOptions`, or you can listen to raw messages via
752
+ * `onMessage` and check `message.jsonData?.asr`.
753
+ *
754
+ * @param options - Optional ASR options (e.g. per-call `onResult` callback)
755
+ * @returns Promise that resolves when the start command has been sent
753
756
  *
754
757
  * @example
755
758
  * ```typescript
756
- * await shellx.startSpeechRecognition();
757
- * console.log('Speech recognition started');
759
+ * const shellx = new ShellX({
760
+ * deviceId: 'your-device-id',
761
+ * onAsrResult: (text) => console.log('ASR:', text)
762
+ * });
763
+ * await shellx.ready();
764
+ * await shellx.startAsr();
765
+ * // ...user speaks into device microphone...
766
+ * await shellx.stopAsr();
758
767
  * ```
759
768
  */
760
- async startSpeechRecognition() {
769
+ async startAsr(options) {
761
770
  await this.ensureConnectionReady();
771
+ // If the caller passes a per-call onResult, register it temporarily
772
+ if (options?.onResult) {
773
+ const handler = options.onResult;
774
+ // Wrap: re-register a one-shot forwarder in the client config
775
+ // (The primary channel is onAsrResult in ShellXOptions; this is a convenience)
776
+ const original = this.client.config.onAsrResult;
777
+ this.client.config.onAsrResult = (text, source) => {
778
+ handler(text);
779
+ original?.(text, source);
780
+ };
781
+ }
762
782
  return this.client.startAsr();
763
783
  }
764
784
  /**
765
- * Stop ASR (Automatic Speech Recognition)
766
- * @returns Promise that resolves when speech recognition has stopped
785
+ * Stop ASR (Automatic Speech Recognition) on the device.
786
+ *
787
+ * @returns Promise that resolves when the stop command has been sent
767
788
  *
768
789
  * @example
769
790
  * ```typescript
770
- * await shellx.stopSpeechRecognition();
771
- * console.log('Speech recognition stopped');
791
+ * await shellx.stopAsr();
772
792
  * ```
773
793
  */
774
- async stopSpeechRecognition() {
794
+ async stopAsr() {
775
795
  await this.ensureConnectionReady();
776
796
  return this.client.stopAsr();
777
797
  }
798
+ async speak(textOrData, options) {
799
+ await this.ensureConnectionReady();
800
+ const startTime = Date.now();
801
+ const { text, voiceType, volume } = typeof textOrData === "string"
802
+ ? { text: textOrData, voiceType: options?.voiceType, volume: options?.volume }
803
+ : textOrData;
804
+ await this.client.speak(text, voiceType, volume);
805
+ return {
806
+ success: true,
807
+ text,
808
+ voiceType,
809
+ volume,
810
+ duration: Date.now() - startTime,
811
+ timestamp: startTime,
812
+ };
813
+ }
778
814
  /**
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
815
+ * Stop TTS (Text-to-Speech) on the device.
816
+ *
817
+ * @returns Promise that resolves when the stop command has been sent
782
818
  *
783
819
  * @example
784
820
  * ```typescript
785
- * await shellx.speak('Hello, world!');
821
+ * await shellx.stopSpeaking();
786
822
  * ```
787
823
  */
788
- async speak(text) {
824
+ async stopSpeaking() {
789
825
  await this.ensureConnectionReady();
790
- return this.client.speak(text);
826
+ return this.client.stopTts();
791
827
  }
828
+ // ========================================================================
829
+ // Terminal Management Methods
830
+ // ========================================================================
792
831
  /**
793
- * Stop TTS (Text-to-Speech)
794
- * @returns Promise that resolves when TTS has stopped speaking
832
+ * Close a terminal session by ID
833
+ *
834
+ * This method closes a PTY (pseudo-terminal) session and releases its resources.
835
+ * The terminal ID is the same as the one used in the `terminalId` parameter
836
+ * when executing commands.
837
+ *
838
+ * @param terminalId - Terminal ID (sid) to close
839
+ * @returns Promise that resolves when the close command has been sent
795
840
  *
796
841
  * @example
797
842
  * ```typescript
798
- * await shellx.stopSpeaking();
843
+ * // Execute command in a specific terminal
844
+ * await shellx.command({ cmd: 'pwd', ptyType: 1, terminalId: 12345 });
845
+ *
846
+ * // Close the terminal when done
847
+ * await shellx.closeTerminal(12345);
799
848
  * ```
800
849
  */
801
- async stopSpeaking() {
850
+ async closeTerminal(terminalId) {
802
851
  await this.ensureConnectionReady();
803
- return this.client.stopTts();
852
+ this.logger.info(`Closing terminal: ${terminalId}`);
853
+ return this.client.closeTerminal(terminalId);
804
854
  }
805
855
  /**
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
856
+ * Close the WebSocket connection and cleanup resources
857
+ *
858
+ * This method closes the underlying WebSocket connection to the device.
859
+ * All pending tasks will be cancelled with a connection-closed result.
860
+ *
861
+ * After calling this method, the ShellX instance cannot be used for further
862
+ * operations until a new connection is established.
810
863
  *
811
864
  * @example
812
865
  * ```typescript
813
- * const shellx = new ShellX({ deviceId: 'device-id' });
814
- * const handler = ShellX.createShellOutputHandler(shellx);
866
+ * // Close the connection when done
867
+ * await shellx.close();
815
868
  * ```
816
869
  */
817
- static createShellOutputHandler(shellx) {
818
- return (message) => {
819
- if (message.chunks) {
820
- shellx.handleShellOutput(message.chunks);
821
- }
870
+ close() {
871
+ this.logger.info("Closing ShellX connection...");
872
+ this.client.close();
873
+ }
874
+ /**
875
+ * Disconnect from the device (alias for close)
876
+ *
877
+ * @example
878
+ * ```typescript
879
+ * await shellx.disconnect();
880
+ * ```
881
+ */
882
+ disconnect() {
883
+ this.close();
884
+ }
885
+ // ========================================================================
886
+ // Data Request Methods
887
+ // ========================================================================
888
+ /**
889
+ * Send a data request to the device
890
+ *
891
+ * This is a generic method that allows sending data requests to the device
892
+ * and receiving typed responses. It can be used to implement custom data
893
+ * access functionality beyond what's provided by the ShellX API.
894
+ *
895
+ * @template TResponse - Type of the response
896
+ * @param requestType - The type of data request (e.g., "addAlarm", "getCalls", etc.)
897
+ * @param params - Request parameters
898
+ * @returns Promise resolving to the typed response
899
+ *
900
+ * @example
901
+ * ```typescript
902
+ * // Add an alarm
903
+ * const alarmResult = await shellx.sendDataRequest<AddAlarmResponse>(
904
+ * "addAlarm",
905
+ * { hour: 7, minute: 30, label: "Wake up", enabled: true }
906
+ * );
907
+ *
908
+ * // Get call records
909
+ * const callsResult = await shellx.sendDataRequest<GetCallsResponse>(
910
+ * "getCalls",
911
+ * { limit: 20 }
912
+ * );
913
+ *
914
+ * // Search contacts
915
+ * const contactsResult = await shellx.sendDataRequest<SearchContactsResponse>(
916
+ * "searchContacts",
917
+ * { query: "张三", limit: 10 }
918
+ * );
919
+ * ```
920
+ */
921
+ async sendDataRequest(requestType, params) {
922
+ this.logger.debug(`Sending data request: ${requestType}`);
923
+ // Remove keys with undefined values from params
924
+ const cleanedParams = params && typeof params === "object"
925
+ ? Object.fromEntries(Object.entries(params).filter(([, value]) => value !== undefined))
926
+ : params;
927
+ const message = {
928
+ dataRequest: {
929
+ requestType,
930
+ params: cleanedParams,
931
+ },
822
932
  };
933
+ // Use sendMessage to send the data request and wait for response
934
+ // Use "dataRequest" as the task type for response matching
935
+ return this.client.sendMessage(message, "dataRequest");
823
936
  }
824
937
  }
825
938
  //# 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
+ }
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "shellx-ai",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "type": "module",
5
5
  "description": "A powerful TypeScript library for Android device automation and UI control via WebSocket",
6
6
  "workspaces": [
7
- "example"
7
+ "example",
8
+ "phone-agent",
9
+ "shellx-cli",
10
+ "gui-agent"
8
11
  ],
9
12
  "keywords": [
10
13
  "android",
@@ -44,8 +47,11 @@
44
47
  ],
45
48
  "scripts": {
46
49
  "build": "tsc",
50
+ "build:gui-agent": "cd gui-agent && npm run build:all",
47
51
  "build:phone-agent": "cd phone-agent && npm run build:all",
48
- "build:all": "npm run build && npm run build:phone-agent",
52
+ "build:shellx-cli": "cd shellx-cli && npm run build",
53
+ "build:example": "cd example && npm run build",
54
+ "build:all": "npm run build && npm run build:gui-agent && npm run build:phone-agent && npm run build:shellx-cli && npm run build:example",
49
55
  "build:watch": "tsc --watch",
50
56
  "type-check": "tsc --noEmit",
51
57
  "lint": "eslint src --ext .ts",
@@ -55,11 +61,13 @@
55
61
  "test": "jest",
56
62
  "test:coverage": "jest --coverage",
57
63
  "test:watch": "jest --watch",
58
- "clean": "rimraf dist && cd phone-agent && rimraf dist",
64
+ "clean": "rimraf dist && cd gui-agent && rimraf dist && cd ../phone-agent && rimraf dist && cd ../shellx-cli && rimraf dist && cd ../example && rimraf dist",
59
65
  "prepublishOnly": "npm run clean && npm run build && npm run type-check",
60
66
  "prepare": "husky install || echo 'Husky not available'"
61
67
  },
62
68
  "dependencies": {
69
+ "@mariozechner/pi-agent-core": "^0.65.2",
70
+ "@mariozechner/pi-ai": "^0.65.2",
63
71
  "cbor": "^9.0.0",
64
72
  "dotenv": "^16.4.5",
65
73
  "ofetch": "^1.4.1",
@@ -72,18 +80,31 @@
72
80
  "ws": "^8.14.2"
73
81
  },
74
82
  "devDependencies": {
83
+ "@eslint/plugin-kit": "^0.4.1",
75
84
  "@types/jest": "^30.0.0",
76
85
  "@types/node": "^24.0.13",
86
+ "@types/react": "^19.2.11",
87
+ "@types/uuid": "^9.0.7",
77
88
  "@types/ws": "^8.18.1",
78
89
  "@typescript-eslint/eslint-plugin": "^8.0.0",
79
90
  "@typescript-eslint/parser": "^8.0.0",
91
+ "autocomplete-cli": "^0.0.2",
92
+ "chalk": "^5.6.2",
93
+ "esbuild": "^0.27.4",
94
+ "esbuild-node-externals": "^1.20.1",
80
95
  "eslint": "^9.0.0",
81
96
  "eslint-config-prettier": "^9.1.0",
82
97
  "eslint-plugin-prettier": "^5.2.0",
98
+ "ink": "^6.6.0",
99
+ "ink-spinner": "^5.0.0",
100
+ "ink-text-input": "^6.0.0",
83
101
  "jest": "^30.0.4",
84
102
  "prettier": "^3.3.0",
103
+ "prettier-linter-helpers": "^1.0.1",
104
+ "react": "^19.2.4",
85
105
  "rimraf": "^6.0.0",
86
106
  "ts-jest": "^29.4.0",
107
+ "tsx": "^4.19.2",
87
108
  "typescript": "^5.8.3"
88
109
  },
89
110
  "engines": {