@midscene/core 1.10.1 → 1.10.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.
Files changed (58) hide show
  1. package/dist/es/agent/utils.mjs +1 -1
  2. package/dist/es/ai-model/llm-planning.mjs +1 -1
  3. package/dist/es/ai-model/llm-planning.mjs.map +1 -1
  4. package/dist/es/ai-model/models/default.mjs +2 -1
  5. package/dist/es/ai-model/models/default.mjs.map +1 -1
  6. package/dist/es/ai-model/models/gemini.mjs +4 -15
  7. package/dist/es/ai-model/models/gemini.mjs.map +1 -1
  8. package/dist/es/ai-model/prompt/describe.mjs +31 -34
  9. package/dist/es/ai-model/prompt/describe.mjs.map +1 -1
  10. package/dist/es/ai-model/prompt/extraction.mjs +6 -6
  11. package/dist/es/ai-model/prompt/extraction.mjs.map +1 -1
  12. package/dist/es/ai-model/prompt/llm-planning.mjs +19 -19
  13. package/dist/es/ai-model/prompt/llm-planning.mjs.map +1 -1
  14. package/dist/es/ai-model/prompt/locate-grounding-rules.mjs +7 -3
  15. package/dist/es/ai-model/prompt/locate-grounding-rules.mjs.map +1 -1
  16. package/dist/es/element-describer.mjs +36 -18
  17. package/dist/es/element-describer.mjs.map +1 -1
  18. package/dist/es/index.mjs +2 -2
  19. package/dist/es/index.mjs.map +1 -1
  20. package/dist/es/service/index.mjs +98 -22
  21. package/dist/es/service/index.mjs.map +1 -1
  22. package/dist/es/service/utils.mjs +65 -1
  23. package/dist/es/service/utils.mjs.map +1 -1
  24. package/dist/es/types.mjs.map +1 -1
  25. package/dist/es/utils.mjs +2 -2
  26. package/dist/lib/agent/utils.js +1 -1
  27. package/dist/lib/ai-model/llm-planning.js +1 -1
  28. package/dist/lib/ai-model/llm-planning.js.map +1 -1
  29. package/dist/lib/ai-model/models/default.js +2 -1
  30. package/dist/lib/ai-model/models/default.js.map +1 -1
  31. package/dist/lib/ai-model/models/gemini.js +4 -15
  32. package/dist/lib/ai-model/models/gemini.js.map +1 -1
  33. package/dist/lib/ai-model/prompt/describe.js +31 -34
  34. package/dist/lib/ai-model/prompt/describe.js.map +1 -1
  35. package/dist/lib/ai-model/prompt/extraction.js +6 -6
  36. package/dist/lib/ai-model/prompt/extraction.js.map +1 -1
  37. package/dist/lib/ai-model/prompt/llm-planning.js +19 -19
  38. package/dist/lib/ai-model/prompt/llm-planning.js.map +1 -1
  39. package/dist/lib/ai-model/prompt/locate-grounding-rules.js +7 -3
  40. package/dist/lib/ai-model/prompt/locate-grounding-rules.js.map +1 -1
  41. package/dist/lib/element-describer.js +37 -22
  42. package/dist/lib/element-describer.js.map +1 -1
  43. package/dist/lib/index.js +1 -4
  44. package/dist/lib/index.js.map +1 -1
  45. package/dist/lib/service/index.js +96 -20
  46. package/dist/lib/service/index.js.map +1 -1
  47. package/dist/lib/service/utils.js +98 -1
  48. package/dist/lib/service/utils.js.map +1 -1
  49. package/dist/lib/types.js.map +1 -1
  50. package/dist/lib/utils.js +2 -2
  51. package/dist/types/ai-model/models/gemini.d.ts +1 -1
  52. package/dist/types/ai-model/models/registry.d.ts +1 -1
  53. package/dist/types/element-describer.d.ts +3 -6
  54. package/dist/types/index.d.ts +1 -1
  55. package/dist/types/service/index.d.ts +1 -1
  56. package/dist/types/service/utils.d.ts +21 -2
  57. package/dist/types/types.d.ts +1 -0
  58. package/package.json +2 -2
@@ -14,7 +14,7 @@ export declare const extractGeminiContentAndReasoning: (message: GeminiContentSo
14
14
  export declare const geminiAdapters: {
15
15
  gemini: {
16
16
  chatCompletion: {
17
- unsupportedUserConfig: ("reasoningEnabled" | "reasoningBudget")[];
17
+ unsupportedUserConfig: "reasoningBudget"[];
18
18
  buildChatCompletionParams: (input: ChatCompletionCallContext) => ChatCompletionParamsResult;
19
19
  messageExtraction: {
20
20
  kind: "custom";
@@ -63,7 +63,7 @@ export declare const MODEL_ADAPTER_CONFIGS: {
63
63
  'vlm-ui-tars-doubao-1.5': ModelAdapterDefinition;
64
64
  gemini: {
65
65
  chatCompletion: {
66
- unsupportedUserConfig: ("reasoningEnabled" | "reasoningBudget")[];
66
+ unsupportedUserConfig: "reasoningBudget"[];
67
67
  buildChatCompletionParams: (input: import("../model-adapter/types").ChatCompletionCallContext) => import("../model-adapter/types").ChatCompletionParamsResult;
68
68
  messageExtraction: {
69
69
  kind: "custom";
@@ -5,13 +5,13 @@ export type DescribeElementCoordinateSpace = 'screenshot' | 'logical';
5
5
  export type LocatorVerifyFn = (input: {
6
6
  prompt: string;
7
7
  expectCenter: [number, number];
8
- deepLocate: boolean;
9
8
  retryCount: number;
10
9
  verifyResult: LocateValidatorResult;
11
10
  }) => LocateValidatorResult | boolean;
12
11
  export type DescribeElementAtPointOptions = {
13
12
  verifyPrompt?: boolean;
14
13
  retryLimit?: number;
14
+ deepDescribe?: boolean;
15
15
  deepLocate?: boolean;
16
16
  locatorVerifyFn?: LocatorVerifyFn;
17
17
  screenshotBase64?: string;
@@ -20,6 +20,7 @@ export type DescribeElementAtPointOptions = {
20
20
  logicalSize?: Size;
21
21
  onProgress?: (progress: {
22
22
  prompt?: string;
23
+ deepDescribe?: boolean;
23
24
  deepLocate?: boolean;
24
25
  verifyResult?: LocateValidatorResult;
25
26
  }) => void;
@@ -31,16 +32,12 @@ type ScreenshotBoundContextOptions = {
31
32
  logicalSize?: Size;
32
33
  };
33
34
  export type VerifyElementDescriptionAtPointOptions = ScreenshotBoundContextOptions & LocatorValidatorOption;
34
- export type VerifyElementByServiceLocateOptions = VerifyElementDescriptionAtPointOptions & Pick<LocateOption, 'cacheable' | 'deepLocate' | 'xpath'> & {
35
- abortSignal?: AbortSignal;
36
- };
37
35
  export type ElementDescriberRuntime = {
38
36
  service: Pick<Service, 'describe' | 'locate'>;
39
37
  describeModelRuntime: ModelRuntime;
40
38
  locateModelRuntime: ModelRuntime;
41
39
  };
42
- export declare function verifyLocator(runtime: Pick<ElementDescriberRuntime, 'service' | 'locateModelRuntime'>, prompt: string, locateOpt: LocateOption | undefined, expectCenter: [number, number], verifyLocateOption?: LocatorValidatorOption): Promise<LocateValidatorResult>;
40
+ export declare function verifyLocator(runtime: Pick<ElementDescriberRuntime, 'service' | 'locateModelRuntime'>, prompt: string, locateOpt: LocateOption | undefined, expectCenter: [number, number], verifyLocateOption?: LocatorValidatorOption & Pick<LocateOption, 'deepLocate'>): Promise<LocateValidatorResult>;
43
41
  export declare function describeElementAtPoint(runtime: ElementDescriberRuntime, center: [number, number], opt?: DescribeElementAtPointOptions): Promise<AgentDescribeElementAtPointResult>;
44
42
  export declare function verifyElementDescriptionAtPoint(runtime: ElementDescriberRuntime, description: string, center: [number, number], opt?: VerifyElementDescriptionAtPointOptions): Promise<LocateValidatorResult>;
45
- export declare function verifyElementByServiceLocate(runtime: Pick<ElementDescriberRuntime, 'service' | 'locateModelRuntime'>, description: string, center: [number, number], opt?: VerifyElementByServiceLocateOptions): Promise<LocateValidatorResult>;
46
43
  export {};
@@ -11,7 +11,7 @@ export default Service;
11
11
  export { TaskRunner, Service, getVersion };
12
12
  export type { MidsceneYamlScript, MidsceneYamlTask, MidsceneYamlFlowItem, MidsceneYamlConfigResult, MidsceneYamlConfig, MidsceneYamlScriptWebEnv, MidsceneYamlScriptAndroidEnv, MidsceneYamlScriptIOSEnv, MidsceneYamlScriptEnv, LocateOption, DetailedLocateParam, } from './yaml';
13
13
  export { Agent, type AgentOpt, type AiActOptions, type GherkinStepKeyword, type RunGherkinScenarioOptions, createAgent, } from './agent';
14
- export { describeElementAtPoint, verifyElementDescriptionAtPoint, verifyElementByServiceLocate, verifyLocator, type DescribeElementAtPointOptions, type DescribeElementCoordinateSpace, type ElementDescriberRuntime, type VerifyElementDescriptionAtPointOptions, type VerifyElementByServiceLocateOptions, } from './element-describer';
14
+ export { describeElementAtPoint, verifyElementDescriptionAtPoint, verifyLocator, type DescribeElementAtPointOptions, type DescribeElementCoordinateSpace, type ElementDescriberRuntime, type VerifyElementDescriptionAtPointOptions, } from './element-describer';
15
15
  export { restoreImageReferences, escapeContent, unescapeContent, parseImageScripts, parseDumpScript, parseDumpScriptAttributes, generateImageScriptTag, generateDumpScriptTag, deriveTaskStatus, deriveCaseStatus, } from './dump';
16
16
  export type { TaskStatusFields, DerivedTaskStatus } from './dump';
17
17
  export { getTaskSearchArea, getTaskServiceDump, } from './dump/task-service-dump';
@@ -21,7 +21,7 @@ export default class Service {
21
21
  abortSignal?: AbortSignal;
22
22
  }): Promise<ServiceExtractResult<T>>;
23
23
  describe(target: Rect | [number, number], modelRuntime: ModelRuntime, opt?: {
24
- deepLocate?: boolean;
24
+ deepDescribe?: boolean;
25
25
  context?: UIContext;
26
26
  }): Promise<Pick<AIDescribeElementResponse, 'description'>>;
27
27
  }
@@ -1,4 +1,23 @@
1
- import type { AIDescribeElementResponse } from '../types';
2
- import type { PartialServiceDumpFromSDK, ServiceDump } from '../types';
1
+ import type { AIDescribeElementResponse, PartialServiceDumpFromSDK, Rect, ServiceDump, Size } from '../types';
2
+ export declare const DESCRIBE_POINT_MARKER_MAX_SIZE = 40;
3
+ export declare const DESCRIBE_RECT_MARKER_BORDER_THICKNESS = 1;
4
+ export declare const DESCRIBE_LARGE_RECT_MARKER_BORDER_THICKNESS = 2;
5
+ export declare const DESCRIBE_WIDE_MARKER_INSET_MIN_WIDTH = 100;
6
+ export declare const DESCRIBE_DEEP_CONTEXT_CONFIG: {
7
+ readonly resize: {
8
+ readonly cropMaxLongEdge: 1000;
9
+ readonly cropUpscaleMaxRatio: 2;
10
+ };
11
+ };
12
+ export type DescribeDeepContextArea = {
13
+ kind: 'focused';
14
+ rect: Rect;
15
+ };
16
+ export declare function clampRect(rect: Rect, size: Size): Rect;
17
+ export declare function getDescribeDeepContextAreas(rect: Rect, screenSize: Size): DescribeDeepContextArea[];
18
+ export declare function getRectInCrop(rect: Rect, cropRect: Rect, cropSize: Size): Rect;
19
+ export declare function getDescribeMarkerRect(rect: Rect): Rect;
20
+ export declare function getDescribeMarkerBorderThickness(rect: Rect): number;
21
+ export declare function getDescribeDeepLocateResizeSize(size: Size): Size | undefined;
3
22
  export declare function createServiceDump(data: PartialServiceDumpFromSDK): ServiceDump;
4
23
  export declare function recoverDescribeResponseFromParseError(error: unknown): Pick<AIDescribeElementResponse, 'description'> | undefined;
@@ -84,6 +84,7 @@ export interface LocateValidatorResult {
84
84
  export interface AgentDescribeElementAtPointResult {
85
85
  prompt: string;
86
86
  deepLocate: boolean;
87
+ deepDescribe: boolean;
87
88
  verifyResult?: LocateValidatorResult;
88
89
  success: boolean;
89
90
  error?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@midscene/core",
3
3
  "description": "Automate browser actions, extract data, and perform assertions using AI. It offers JavaScript SDK, Chrome extension, and support for scripting in YAML. See https://midscenejs.com/ for details.",
4
- "version": "1.10.1",
4
+ "version": "1.10.2",
5
5
  "repository": "https://github.com/web-infra-dev/midscene",
6
6
  "homepage": "https://midscenejs.com/",
7
7
  "main": "./dist/lib/index.js",
@@ -107,7 +107,7 @@
107
107
  "semver": "7.5.2",
108
108
  "undici": "^6.0.0",
109
109
  "zod": "^3.25.1",
110
- "@midscene/shared": "1.10.1"
110
+ "@midscene/shared": "1.10.2"
111
111
  },
112
112
  "devDependencies": {
113
113
  "@rslib/core": "^0.18.3",