@midscene/android 1.9.7 → 1.9.8-beta-20260618014851.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/es/cli.mjs CHANGED
@@ -4,7 +4,8 @@ import * as __rspack_external_node_module_ab9f2194 from "node:module";
4
4
  import * as __rspack_external_node_path_c5b9b54f from "node:path";
5
5
  import { createReportCliCommands, getMidsceneLocationSchema, z } from "@midscene/core";
6
6
  import { reportCLIError, runToolsCLI } from "@midscene/shared/cli";
7
- import { BaseMidsceneTools } from "@midscene/shared/mcp/base-tools";
7
+ import { agentBehaviorInitArgShape, extractAgentBehaviorInitArgs, getAgentInitArgsSignature, shouldRebuildAgentForInitArgs } from "@midscene/shared/agent-tools/agent-behavior-init-args";
8
+ import { BaseMidsceneTools } from "@midscene/shared/agent-tools/base-tools";
8
9
  import { Agent } from "@midscene/core/agent";
9
10
  import { mergeAndNormalizeAppNameMapping, normalizeForComparison, repeat } from "@midscene/shared/utils";
10
11
  import node_assert from "node:assert";
@@ -1939,7 +1940,7 @@ async function agentFromAdbDevice(deviceId, opts) {
1939
1940
  await device.connect();
1940
1941
  return new AndroidAgent(device, opts);
1941
1942
  }
1942
- function mcp_tools_define_property(obj, key, value) {
1943
+ function agent_tools_define_property(obj, key, value) {
1943
1944
  if (key in obj) Object.defineProperty(obj, key, {
1944
1945
  value: value,
1945
1946
  enumerable: true,
@@ -1949,7 +1950,20 @@ function mcp_tools_define_property(obj, key, value) {
1949
1950
  else obj[key] = value;
1950
1951
  return obj;
1951
1952
  }
1952
- const debug = (0, logger_.getDebug)('mcp:android-tools');
1953
+ const debug = (0, logger_.getDebug)('agent-tools:android');
1954
+ function adaptAndroidInitArgs(extracted) {
1955
+ if (!extracted) return;
1956
+ const initArgs = {
1957
+ ...'string' == typeof extracted.deviceId ? {
1958
+ deviceId: extracted.deviceId
1959
+ } : {},
1960
+ ...'boolean' == typeof extracted.useScrcpy ? {
1961
+ useScrcpy: extracted.useScrcpy
1962
+ } : {},
1963
+ ...extractAgentBehaviorInitArgs(extracted) ?? {}
1964
+ };
1965
+ return Object.keys(initArgs).length > 0 ? initArgs : void 0;
1966
+ }
1953
1967
  class AndroidMidsceneTools extends BaseMidsceneTools {
1954
1968
  getCliReportSessionName() {
1955
1969
  return 'midscene-android';
@@ -1959,7 +1973,8 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
1959
1973
  }
1960
1974
  async ensureAgent(initArgs) {
1961
1975
  const deviceId = initArgs?.deviceId;
1962
- if (this.agent && deviceId) {
1976
+ const nextSignature = getAgentInitArgsSignature(initArgs);
1977
+ if (this.agent && shouldRebuildAgentForInitArgs(this.lastInitArgsSignature, nextSignature)) {
1963
1978
  try {
1964
1979
  await this.agent.destroy?.();
1965
1980
  } catch (error) {
@@ -1972,6 +1987,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
1972
1987
  const reportOptions = this.readCliReportAgentOptions();
1973
1988
  const agent = await agentFromAdbDevice(deviceId, {
1974
1989
  autoDismissKeyboard: false,
1990
+ ...extractAgentBehaviorInitArgs(initArgs) ?? {},
1975
1991
  ...initArgs?.useScrcpy ? {
1976
1992
  scrcpyConfig: {
1977
1993
  enabled: true
@@ -1980,6 +1996,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
1980
1996
  ...reportOptions ?? {}
1981
1997
  });
1982
1998
  this.agent = agent;
1999
+ this.lastInitArgsSignature = nextSignature;
1983
2000
  return agent;
1984
2001
  }
1985
2002
  preparePlatformTools() {
@@ -2001,6 +2018,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2001
2018
  debug('Failed to destroy agent during connect:', error);
2002
2019
  }
2003
2020
  this.agent = void 0;
2021
+ this.lastInitArgsSignature = void 0;
2004
2022
  }
2005
2023
  const agent = await this.ensureAgent(initArgs);
2006
2024
  const screenshot = await agent.page.screenshotBase64();
@@ -2025,26 +2043,24 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2025
2043
  ];
2026
2044
  }
2027
2045
  constructor(...args){
2028
- super(...args), mcp_tools_define_property(this, "initArgSpec", {
2046
+ super(...args), agent_tools_define_property(this, "lastInitArgsSignature", void 0), agent_tools_define_property(this, "initArgSpec", {
2029
2047
  namespace: 'android',
2030
2048
  shape: {
2031
2049
  deviceId: z.string().optional().describe('Android device ID (from adb devices)'),
2032
- useScrcpy: z.boolean().optional().describe('Enable scrcpy accelerated screenshots')
2050
+ useScrcpy: z.boolean().optional().describe('Enable scrcpy accelerated screenshots'),
2051
+ ...agentBehaviorInitArgShape
2033
2052
  },
2034
2053
  cli: {
2035
2054
  preferBareKeys: true
2036
2055
  },
2037
- adapt: (extracted)=>({
2038
- deviceId: extracted?.deviceId,
2039
- useScrcpy: extracted?.useScrcpy
2040
- })
2056
+ adapt: adaptAndroidInitArgs
2041
2057
  });
2042
2058
  }
2043
2059
  }
2044
2060
  const tools = new AndroidMidsceneTools();
2045
2061
  runToolsCLI(tools, 'midscene-android', {
2046
2062
  stripPrefix: 'android_',
2047
- version: "1.9.7",
2063
+ version: "1.9.8-beta-20260618014851.0",
2048
2064
  extraCommands: createReportCliCommands()
2049
2065
  }).catch((e)=>{
2050
2066
  process.exit(reportCLIError(e));
package/dist/es/index.mjs CHANGED
@@ -12,7 +12,8 @@ import { createImgBase64ByFormat, validateScreenshotBuffer } from "@midscene/sha
12
12
  import { mergeAndNormalizeAppNameMapping, normalizeForComparison, repeat } from "@midscene/shared/utils";
13
13
  import { ADB } from "appium-adb";
14
14
  import { Agent } from "@midscene/core/agent";
15
- import { BaseMidsceneTools } from "@midscene/shared/mcp/base-tools";
15
+ import { agentBehaviorInitArgShape, extractAgentBehaviorInitArgs, getAgentInitArgsSignature, shouldRebuildAgentForInitArgs } from "@midscene/shared/agent-tools/agent-behavior-init-args";
16
+ import { BaseMidsceneTools } from "@midscene/shared/agent-tools/base-tools";
16
17
  var __webpack_modules__ = {
17
18
  "./src/scrcpy-manager.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
18
19
  __webpack_require__.d(__webpack_exports__, {
@@ -2005,7 +2006,7 @@ async function agentFromAdbDevice(deviceId, opts) {
2005
2006
  await device.connect();
2006
2007
  return new AndroidAgent(device, opts);
2007
2008
  }
2008
- function mcp_tools_define_property(obj, key, value) {
2009
+ function agent_tools_define_property(obj, key, value) {
2009
2010
  if (key in obj) Object.defineProperty(obj, key, {
2010
2011
  value: value,
2011
2012
  enumerable: true,
@@ -2015,7 +2016,20 @@ function mcp_tools_define_property(obj, key, value) {
2015
2016
  else obj[key] = value;
2016
2017
  return obj;
2017
2018
  }
2018
- const debug = (0, logger_.getDebug)('mcp:android-tools');
2019
+ const debug = (0, logger_.getDebug)('agent-tools:android');
2020
+ function adaptAndroidInitArgs(extracted) {
2021
+ if (!extracted) return;
2022
+ const initArgs = {
2023
+ ...'string' == typeof extracted.deviceId ? {
2024
+ deviceId: extracted.deviceId
2025
+ } : {},
2026
+ ...'boolean' == typeof extracted.useScrcpy ? {
2027
+ useScrcpy: extracted.useScrcpy
2028
+ } : {},
2029
+ ...extractAgentBehaviorInitArgs(extracted) ?? {}
2030
+ };
2031
+ return Object.keys(initArgs).length > 0 ? initArgs : void 0;
2032
+ }
2019
2033
  class AndroidMidsceneTools extends BaseMidsceneTools {
2020
2034
  getCliReportSessionName() {
2021
2035
  return 'midscene-android';
@@ -2025,7 +2039,8 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2025
2039
  }
2026
2040
  async ensureAgent(initArgs) {
2027
2041
  const deviceId = initArgs?.deviceId;
2028
- if (this.agent && deviceId) {
2042
+ const nextSignature = getAgentInitArgsSignature(initArgs);
2043
+ if (this.agent && shouldRebuildAgentForInitArgs(this.lastInitArgsSignature, nextSignature)) {
2029
2044
  try {
2030
2045
  await this.agent.destroy?.();
2031
2046
  } catch (error) {
@@ -2038,6 +2053,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2038
2053
  const reportOptions = this.readCliReportAgentOptions();
2039
2054
  const agent = await agentFromAdbDevice(deviceId, {
2040
2055
  autoDismissKeyboard: false,
2056
+ ...extractAgentBehaviorInitArgs(initArgs) ?? {},
2041
2057
  ...initArgs?.useScrcpy ? {
2042
2058
  scrcpyConfig: {
2043
2059
  enabled: true
@@ -2046,6 +2062,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2046
2062
  ...reportOptions ?? {}
2047
2063
  });
2048
2064
  this.agent = agent;
2065
+ this.lastInitArgsSignature = nextSignature;
2049
2066
  return agent;
2050
2067
  }
2051
2068
  preparePlatformTools() {
@@ -2067,6 +2084,7 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2067
2084
  debug('Failed to destroy agent during connect:', error);
2068
2085
  }
2069
2086
  this.agent = void 0;
2087
+ this.lastInitArgsSignature = void 0;
2070
2088
  }
2071
2089
  const agent = await this.ensureAgent(initArgs);
2072
2090
  const screenshot = await agent.page.screenshotBase64();
@@ -2091,19 +2109,17 @@ class AndroidMidsceneTools extends BaseMidsceneTools {
2091
2109
  ];
2092
2110
  }
2093
2111
  constructor(...args){
2094
- super(...args), mcp_tools_define_property(this, "initArgSpec", {
2112
+ super(...args), agent_tools_define_property(this, "lastInitArgsSignature", void 0), agent_tools_define_property(this, "initArgSpec", {
2095
2113
  namespace: 'android',
2096
2114
  shape: {
2097
2115
  deviceId: z.string().optional().describe('Android device ID (from adb devices)'),
2098
- useScrcpy: z.boolean().optional().describe('Enable scrcpy accelerated screenshots')
2116
+ useScrcpy: z.boolean().optional().describe('Enable scrcpy accelerated screenshots'),
2117
+ ...agentBehaviorInitArgShape
2099
2118
  },
2100
2119
  cli: {
2101
2120
  preferBareKeys: true
2102
2121
  },
2103
- adapt: (extracted)=>({
2104
- deviceId: extracted?.deviceId,
2105
- useScrcpy: extracted?.useScrcpy
2106
- })
2122
+ adapt: adaptAndroidInitArgs
2107
2123
  });
2108
2124
  }
2109
2125
  }
package/dist/lib/cli.js CHANGED
@@ -448,8 +448,9 @@ var __webpack_exports__ = {};
448
448
  (()=>{
449
449
  const core_namespaceObject = require("@midscene/core");
450
450
  const cli_namespaceObject = require("@midscene/shared/cli");
451
+ const agent_behavior_init_args_namespaceObject = require("@midscene/shared/agent-tools/agent-behavior-init-args");
452
+ const base_tools_namespaceObject = require("@midscene/shared/agent-tools/base-tools");
451
453
  var logger_ = __webpack_require__("@midscene/shared/logger");
452
- const base_tools_namespaceObject = require("@midscene/shared/mcp/base-tools");
453
454
  const agent_namespaceObject = require("@midscene/core/agent");
454
455
  const utils_namespaceObject = require("@midscene/shared/utils");
455
456
  const EMPTY_ADB_SHELL_STDOUT = '<empty>';
@@ -1954,7 +1955,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1954
1955
  await device.connect();
1955
1956
  return new AndroidAgent(device, opts);
1956
1957
  }
1957
- function mcp_tools_define_property(obj, key, value) {
1958
+ function agent_tools_define_property(obj, key, value) {
1958
1959
  if (key in obj) Object.defineProperty(obj, key, {
1959
1960
  value: value,
1960
1961
  enumerable: true,
@@ -1964,7 +1965,20 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1964
1965
  else obj[key] = value;
1965
1966
  return obj;
1966
1967
  }
1967
- const debug = (0, logger_.getDebug)('mcp:android-tools');
1968
+ const debug = (0, logger_.getDebug)('agent-tools:android');
1969
+ function adaptAndroidInitArgs(extracted) {
1970
+ if (!extracted) return;
1971
+ const initArgs = {
1972
+ ...'string' == typeof extracted.deviceId ? {
1973
+ deviceId: extracted.deviceId
1974
+ } : {},
1975
+ ...'boolean' == typeof extracted.useScrcpy ? {
1976
+ useScrcpy: extracted.useScrcpy
1977
+ } : {},
1978
+ ...(0, agent_behavior_init_args_namespaceObject.extractAgentBehaviorInitArgs)(extracted) ?? {}
1979
+ };
1980
+ return Object.keys(initArgs).length > 0 ? initArgs : void 0;
1981
+ }
1968
1982
  class AndroidMidsceneTools extends base_tools_namespaceObject.BaseMidsceneTools {
1969
1983
  getCliReportSessionName() {
1970
1984
  return 'midscene-android';
@@ -1974,7 +1988,8 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1974
1988
  }
1975
1989
  async ensureAgent(initArgs) {
1976
1990
  const deviceId = initArgs?.deviceId;
1977
- if (this.agent && deviceId) {
1991
+ const nextSignature = (0, agent_behavior_init_args_namespaceObject.getAgentInitArgsSignature)(initArgs);
1992
+ if (this.agent && (0, agent_behavior_init_args_namespaceObject.shouldRebuildAgentForInitArgs)(this.lastInitArgsSignature, nextSignature)) {
1978
1993
  try {
1979
1994
  await this.agent.destroy?.();
1980
1995
  } catch (error) {
@@ -1987,6 +2002,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1987
2002
  const reportOptions = this.readCliReportAgentOptions();
1988
2003
  const agent = await agentFromAdbDevice(deviceId, {
1989
2004
  autoDismissKeyboard: false,
2005
+ ...(0, agent_behavior_init_args_namespaceObject.extractAgentBehaviorInitArgs)(initArgs) ?? {},
1990
2006
  ...initArgs?.useScrcpy ? {
1991
2007
  scrcpyConfig: {
1992
2008
  enabled: true
@@ -1995,6 +2011,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
1995
2011
  ...reportOptions ?? {}
1996
2012
  });
1997
2013
  this.agent = agent;
2014
+ this.lastInitArgsSignature = nextSignature;
1998
2015
  return agent;
1999
2016
  }
2000
2017
  preparePlatformTools() {
@@ -2016,6 +2033,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2016
2033
  debug('Failed to destroy agent during connect:', error);
2017
2034
  }
2018
2035
  this.agent = void 0;
2036
+ this.lastInitArgsSignature = void 0;
2019
2037
  }
2020
2038
  const agent = await this.ensureAgent(initArgs);
2021
2039
  const screenshot = await agent.page.screenshotBase64();
@@ -2040,26 +2058,24 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2040
2058
  ];
2041
2059
  }
2042
2060
  constructor(...args){
2043
- super(...args), mcp_tools_define_property(this, "initArgSpec", {
2061
+ super(...args), agent_tools_define_property(this, "lastInitArgsSignature", void 0), agent_tools_define_property(this, "initArgSpec", {
2044
2062
  namespace: 'android',
2045
2063
  shape: {
2046
2064
  deviceId: core_namespaceObject.z.string().optional().describe('Android device ID (from adb devices)'),
2047
- useScrcpy: core_namespaceObject.z.boolean().optional().describe('Enable scrcpy accelerated screenshots')
2065
+ useScrcpy: core_namespaceObject.z.boolean().optional().describe('Enable scrcpy accelerated screenshots'),
2066
+ ...agent_behavior_init_args_namespaceObject.agentBehaviorInitArgShape
2048
2067
  },
2049
2068
  cli: {
2050
2069
  preferBareKeys: true
2051
2070
  },
2052
- adapt: (extracted)=>({
2053
- deviceId: extracted?.deviceId,
2054
- useScrcpy: extracted?.useScrcpy
2055
- })
2071
+ adapt: adaptAndroidInitArgs
2056
2072
  });
2057
2073
  }
2058
2074
  }
2059
2075
  const tools = new AndroidMidsceneTools();
2060
2076
  (0, cli_namespaceObject.runToolsCLI)(tools, 'midscene-android', {
2061
2077
  stripPrefix: 'android_',
2062
- version: "1.9.7",
2078
+ version: "1.9.8-beta-20260618014851.0",
2063
2079
  extraCommands: (0, core_namespaceObject.createReportCliCommands)()
2064
2080
  }).catch((e)=>{
2065
2081
  process.exit((0, cli_namespaceObject.reportCLIError)(e));
package/dist/lib/index.js CHANGED
@@ -2040,8 +2040,9 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2040
2040
  await device.connect();
2041
2041
  return new AndroidAgent(device, opts);
2042
2042
  }
2043
- const base_tools_namespaceObject = require("@midscene/shared/mcp/base-tools");
2044
- function mcp_tools_define_property(obj, key, value) {
2043
+ const agent_behavior_init_args_namespaceObject = require("@midscene/shared/agent-tools/agent-behavior-init-args");
2044
+ const base_tools_namespaceObject = require("@midscene/shared/agent-tools/base-tools");
2045
+ function agent_tools_define_property(obj, key, value) {
2045
2046
  if (key in obj) Object.defineProperty(obj, key, {
2046
2047
  value: value,
2047
2048
  enumerable: true,
@@ -2051,7 +2052,20 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2051
2052
  else obj[key] = value;
2052
2053
  return obj;
2053
2054
  }
2054
- const debug = (0, logger_.getDebug)('mcp:android-tools');
2055
+ const debug = (0, logger_.getDebug)('agent-tools:android');
2056
+ function adaptAndroidInitArgs(extracted) {
2057
+ if (!extracted) return;
2058
+ const initArgs = {
2059
+ ...'string' == typeof extracted.deviceId ? {
2060
+ deviceId: extracted.deviceId
2061
+ } : {},
2062
+ ...'boolean' == typeof extracted.useScrcpy ? {
2063
+ useScrcpy: extracted.useScrcpy
2064
+ } : {},
2065
+ ...(0, agent_behavior_init_args_namespaceObject.extractAgentBehaviorInitArgs)(extracted) ?? {}
2066
+ };
2067
+ return Object.keys(initArgs).length > 0 ? initArgs : void 0;
2068
+ }
2055
2069
  class AndroidMidsceneTools extends base_tools_namespaceObject.BaseMidsceneTools {
2056
2070
  getCliReportSessionName() {
2057
2071
  return 'midscene-android';
@@ -2061,7 +2075,8 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2061
2075
  }
2062
2076
  async ensureAgent(initArgs) {
2063
2077
  const deviceId = initArgs?.deviceId;
2064
- if (this.agent && deviceId) {
2078
+ const nextSignature = (0, agent_behavior_init_args_namespaceObject.getAgentInitArgsSignature)(initArgs);
2079
+ if (this.agent && (0, agent_behavior_init_args_namespaceObject.shouldRebuildAgentForInitArgs)(this.lastInitArgsSignature, nextSignature)) {
2065
2080
  try {
2066
2081
  await this.agent.destroy?.();
2067
2082
  } catch (error) {
@@ -2074,6 +2089,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2074
2089
  const reportOptions = this.readCliReportAgentOptions();
2075
2090
  const agent = await agentFromAdbDevice(deviceId, {
2076
2091
  autoDismissKeyboard: false,
2092
+ ...(0, agent_behavior_init_args_namespaceObject.extractAgentBehaviorInitArgs)(initArgs) ?? {},
2077
2093
  ...initArgs?.useScrcpy ? {
2078
2094
  scrcpyConfig: {
2079
2095
  enabled: true
@@ -2082,6 +2098,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2082
2098
  ...reportOptions ?? {}
2083
2099
  });
2084
2100
  this.agent = agent;
2101
+ this.lastInitArgsSignature = nextSignature;
2085
2102
  return agent;
2086
2103
  }
2087
2104
  preparePlatformTools() {
@@ -2103,6 +2120,7 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2103
2120
  debug('Failed to destroy agent during connect:', error);
2104
2121
  }
2105
2122
  this.agent = void 0;
2123
+ this.lastInitArgsSignature = void 0;
2106
2124
  }
2107
2125
  const agent = await this.ensureAgent(initArgs);
2108
2126
  const screenshot = await agent.page.screenshotBase64();
@@ -2127,19 +2145,17 @@ ${Object.keys(size).filter((key)=>size[key]).map((key)=>` ${key} size: ${size[k
2127
2145
  ];
2128
2146
  }
2129
2147
  constructor(...args){
2130
- super(...args), mcp_tools_define_property(this, "initArgSpec", {
2148
+ super(...args), agent_tools_define_property(this, "lastInitArgsSignature", void 0), agent_tools_define_property(this, "initArgSpec", {
2131
2149
  namespace: 'android',
2132
2150
  shape: {
2133
2151
  deviceId: core_namespaceObject.z.string().optional().describe('Android device ID (from adb devices)'),
2134
- useScrcpy: core_namespaceObject.z.boolean().optional().describe('Enable scrcpy accelerated screenshots')
2152
+ useScrcpy: core_namespaceObject.z.boolean().optional().describe('Enable scrcpy accelerated screenshots'),
2153
+ ...agent_behavior_init_args_namespaceObject.agentBehaviorInitArgShape
2135
2154
  },
2136
2155
  cli: {
2137
2156
  preferBareKeys: true
2138
2157
  },
2139
- adapt: (extracted)=>({
2140
- deviceId: extracted?.deviceId,
2141
- useScrcpy: extracted?.useScrcpy
2142
- })
2158
+ adapt: adaptAndroidInitArgs
2143
2159
  });
2144
2160
  }
2145
2161
  }
@@ -4,20 +4,21 @@ import type { ActionReturn } from '@midscene/core';
4
4
  import { ADB } from 'appium-adb';
5
5
  import type { Adb } from '@yume-chan/adb';
6
6
  import { Agent } from '@midscene/core/agent';
7
+ import { AgentBehaviorInitArgs } from '@midscene/shared/agent-tools/agent-behavior-init-args';
7
8
  import { AgentOpt } from '@midscene/core/agent';
8
9
  import { AndroidDeviceInputOpt } from '@midscene/core/device';
9
10
  import { AndroidDeviceOpt } from '@midscene/core/device';
10
- import { BaseMidsceneTools } from '@midscene/shared/mcp/base-tools';
11
+ import { BaseMidsceneTools } from '@midscene/shared/agent-tools/base-tools';
11
12
  import { Device } from 'appium-adb';
12
13
  import { DeviceAction } from '@midscene/core';
13
14
  import type { ElementInfo } from '@midscene/shared/extractor';
14
- import { InitArgSpec } from '@midscene/shared/mcp/base-tools';
15
+ import { InitArgSpec } from '@midscene/shared/agent-tools/base-tools';
15
16
  import { InterfaceType } from '@midscene/core';
16
17
  import { MobileInputPrimitives } from '@midscene/core/device';
17
18
  import { overrideAIConfig } from '@midscene/shared/env';
18
19
  import { Point } from '@midscene/core';
19
20
  import { Size } from '@midscene/core';
20
- import type { ToolDefinition } from '@midscene/shared/mcp/types';
21
+ import type { ToolDefinition } from '@midscene/shared/agent-tools/types';
21
22
 
22
23
  declare type ActionArgs<T extends DeviceAction> = [ActionParam<T>] extends [undefined] ? [] : [ActionParam<T>];
23
24
 
@@ -234,24 +235,21 @@ export declare class AndroidDevice implements AbstractInterface {
234
235
  hideKeyboard(options?: AndroidDeviceInputOpt, timeoutMs?: number): Promise<boolean>;
235
236
  }
236
237
 
238
+ declare type AndroidInitArgs = AgentBehaviorInitArgs & {
239
+ deviceId?: string;
240
+ useScrcpy?: boolean;
241
+ };
242
+
237
243
  /**
238
244
  * Android-specific tools manager
239
245
  * Extends BaseMidsceneTools to provide Android ADB device connection tools
240
246
  */
241
- export declare class AndroidMidsceneTools extends BaseMidsceneTools<AndroidAgent, {
242
- deviceId?: string;
243
- useScrcpy?: boolean;
244
- }> {
247
+ export declare class AndroidMidsceneTools extends BaseMidsceneTools<AndroidAgent, AndroidInitArgs> {
248
+ private lastInitArgsSignature?;
245
249
  protected getCliReportSessionName(): string;
246
- protected readonly initArgSpec: InitArgSpec<{
247
- deviceId?: string;
248
- useScrcpy?: boolean;
249
- }>;
250
+ protected readonly initArgSpec: InitArgSpec<AndroidInitArgs>;
250
251
  protected createTemporaryDevice(): AndroidDevice;
251
- protected ensureAgent(initArgs?: {
252
- deviceId?: string;
253
- useScrcpy?: boolean;
254
- }): Promise<AndroidAgent>;
252
+ protected ensureAgent(initArgs?: AndroidInitArgs): Promise<AndroidAgent>;
255
253
  /**
256
254
  * Provide Android-specific platform tools
257
255
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midscene/android",
3
- "version": "1.9.7",
3
+ "version": "1.9.8-beta-20260618014851.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/midscene.git",
@@ -31,11 +31,6 @@
31
31
  "import": "./dist/es/index.mjs",
32
32
  "require": "./dist/lib/index.js"
33
33
  },
34
- "./mcp-server": {
35
- "types": "./dist/types/mcp-server.d.ts",
36
- "import": "./dist/es/mcp-server.mjs",
37
- "require": "./dist/lib/mcp-server.js"
38
- },
39
34
  "./package.json": "./package.json"
40
35
  },
41
36
  "dependencies": {
@@ -46,8 +41,8 @@
46
41
  "@yume-chan/stream-extra": "2.1.0",
47
42
  "appium-adb": "12.12.1",
48
43
  "sharp": "^0.34.3",
49
- "@midscene/core": "1.9.7",
50
- "@midscene/shared": "1.9.7"
44
+ "@midscene/core": "1.9.8-beta-20260618014851.0",
45
+ "@midscene/shared": "1.9.8-beta-20260618014851.0"
51
46
  },
52
47
  "optionalDependencies": {
53
48
  "@ffmpeg-installer/ffmpeg": "^1.1.0"
@@ -61,7 +56,7 @@
61
56
  "undici": "^6.0.0",
62
57
  "vitest": "3.0.5",
63
58
  "zod": "^3.25.1",
64
- "@midscene/playground": "1.9.7"
59
+ "@midscene/playground": "1.9.8-beta-20260618014851.0"
65
60
  },
66
61
  "license": "MIT",
67
62
  "scripts": {