@dyyz1993/agent-browser 0.9.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 (187) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +907 -0
  3. package/bin/agent-browser-darwin-arm64 +0 -0
  4. package/bin/agent-browser.js +120 -0
  5. package/dist/__tests__/e2e/utils/test-helpers.d.ts +5 -0
  6. package/dist/__tests__/e2e/utils/test-helpers.d.ts.map +1 -0
  7. package/dist/__tests__/e2e/utils/test-helpers.js +22 -0
  8. package/dist/__tests__/e2e/utils/test-helpers.js.map +1 -0
  9. package/dist/__tests__/test-iframe.d.ts +2 -0
  10. package/dist/__tests__/test-iframe.d.ts.map +1 -0
  11. package/dist/__tests__/test-iframe.js +52 -0
  12. package/dist/__tests__/test-iframe.js.map +1 -0
  13. package/dist/__tests__/utils/parseCli.d.ts +20 -0
  14. package/dist/__tests__/utils/parseCli.d.ts.map +1 -0
  15. package/dist/__tests__/utils/parseCli.js +1086 -0
  16. package/dist/__tests__/utils/parseCli.js.map +1 -0
  17. package/dist/actions.d.ts +50 -0
  18. package/dist/actions.d.ts.map +1 -0
  19. package/dist/actions.js +2164 -0
  20. package/dist/actions.js.map +1 -0
  21. package/dist/browser.d.ts +556 -0
  22. package/dist/browser.d.ts.map +1 -0
  23. package/dist/browser.js +2599 -0
  24. package/dist/browser.js.map +1 -0
  25. package/dist/cli/commands.d.ts +8 -0
  26. package/dist/cli/commands.d.ts.map +1 -0
  27. package/dist/cli/commands.js +1038 -0
  28. package/dist/cli/commands.js.map +1 -0
  29. package/dist/cli/connection.d.ts +50 -0
  30. package/dist/cli/connection.d.ts.map +1 -0
  31. package/dist/cli/connection.js +595 -0
  32. package/dist/cli/connection.js.map +1 -0
  33. package/dist/cli/flags.d.ts +36 -0
  34. package/dist/cli/flags.d.ts.map +1 -0
  35. package/dist/cli/flags.js +206 -0
  36. package/dist/cli/flags.js.map +1 -0
  37. package/dist/cli/help.d.ts +4 -0
  38. package/dist/cli/help.d.ts.map +1 -0
  39. package/dist/cli/help.js +1024 -0
  40. package/dist/cli/help.js.map +1 -0
  41. package/dist/cli/output.d.ts +14 -0
  42. package/dist/cli/output.d.ts.map +1 -0
  43. package/dist/cli/output.js +456 -0
  44. package/dist/cli/output.js.map +1 -0
  45. package/dist/cli-new.d.ts +3 -0
  46. package/dist/cli-new.d.ts.map +1 -0
  47. package/dist/cli-new.js +308 -0
  48. package/dist/cli-new.js.map +1 -0
  49. package/dist/cli-old.d.ts +3 -0
  50. package/dist/cli-old.d.ts.map +1 -0
  51. package/dist/cli-old.js +1101 -0
  52. package/dist/cli-old.js.map +1 -0
  53. package/dist/cli.d.ts +3 -0
  54. package/dist/cli.d.ts.map +1 -0
  55. package/dist/cli.js +403 -0
  56. package/dist/cli.js.map +1 -0
  57. package/dist/content-detection.d.ts +18 -0
  58. package/dist/content-detection.d.ts.map +1 -0
  59. package/dist/content-detection.js +68 -0
  60. package/dist/content-detection.js.map +1 -0
  61. package/dist/daemon.d.ts +55 -0
  62. package/dist/daemon.d.ts.map +1 -0
  63. package/dist/daemon.js +426 -0
  64. package/dist/daemon.js.map +1 -0
  65. package/dist/diff.d.ts +42 -0
  66. package/dist/diff.d.ts.map +1 -0
  67. package/dist/diff.js +166 -0
  68. package/dist/diff.js.map +1 -0
  69. package/dist/human-mouse.d.ts +31 -0
  70. package/dist/human-mouse.d.ts.map +1 -0
  71. package/dist/human-mouse.js +184 -0
  72. package/dist/human-mouse.js.map +1 -0
  73. package/dist/ios-actions.d.ts +11 -0
  74. package/dist/ios-actions.d.ts.map +1 -0
  75. package/dist/ios-actions.js +228 -0
  76. package/dist/ios-actions.js.map +1 -0
  77. package/dist/ios-manager.d.ts +266 -0
  78. package/dist/ios-manager.d.ts.map +1 -0
  79. package/dist/ios-manager.js +1076 -0
  80. package/dist/ios-manager.js.map +1 -0
  81. package/dist/message-bridge.d.ts +10 -0
  82. package/dist/message-bridge.d.ts.map +1 -0
  83. package/dist/message-bridge.js +60 -0
  84. package/dist/message-bridge.js.map +1 -0
  85. package/dist/protocol.d.ts +26 -0
  86. package/dist/protocol.d.ts.map +1 -0
  87. package/dist/protocol.js +912 -0
  88. package/dist/protocol.js.map +1 -0
  89. package/dist/recorder/binding.d.ts +24 -0
  90. package/dist/recorder/binding.d.ts.map +1 -0
  91. package/dist/recorder/binding.js +215 -0
  92. package/dist/recorder/binding.js.map +1 -0
  93. package/dist/recorder/index.d.ts +4 -0
  94. package/dist/recorder/index.d.ts.map +1 -0
  95. package/dist/recorder/index.js +4 -0
  96. package/dist/recorder/index.js.map +1 -0
  97. package/dist/recorder/inject.js +1913 -0
  98. package/dist/recorder/recorder.d.ts +19 -0
  99. package/dist/recorder/recorder.d.ts.map +1 -0
  100. package/dist/recorder/recorder.js +101 -0
  101. package/dist/recorder/recorder.js.map +1 -0
  102. package/dist/recorder/store.d.ts +22 -0
  103. package/dist/recorder/store.d.ts.map +1 -0
  104. package/dist/recorder/store.js +150 -0
  105. package/dist/recorder/store.js.map +1 -0
  106. package/dist/recorder/types.d.ts +73 -0
  107. package/dist/recorder/types.d.ts.map +1 -0
  108. package/dist/recorder/types.js +5 -0
  109. package/dist/recorder/types.js.map +1 -0
  110. package/dist/snapshot.d.ts +81 -0
  111. package/dist/snapshot.d.ts.map +1 -0
  112. package/dist/snapshot.js +1348 -0
  113. package/dist/snapshot.js.map +1 -0
  114. package/dist/stream-server-standalone.d.ts +38 -0
  115. package/dist/stream-server-standalone.d.ts.map +1 -0
  116. package/dist/stream-server-standalone.js +494 -0
  117. package/dist/stream-server-standalone.js.map +1 -0
  118. package/dist/stream-server.d.ts +214 -0
  119. package/dist/stream-server.d.ts.map +1 -0
  120. package/dist/stream-server.js +811 -0
  121. package/dist/stream-server.js.map +1 -0
  122. package/dist/types.d.ts +914 -0
  123. package/dist/types.d.ts.map +1 -0
  124. package/dist/types.js +4 -0
  125. package/dist/types.js.map +1 -0
  126. package/dist/viewer-html.d.ts +2 -0
  127. package/dist/viewer-html.d.ts.map +1 -0
  128. package/dist/viewer-html.js +185 -0
  129. package/dist/viewer-html.js.map +1 -0
  130. package/dist/viewer-script.d.ts +47 -0
  131. package/dist/viewer-script.d.ts.map +1 -0
  132. package/dist/viewer-script.js +586 -0
  133. package/dist/viewer-script.js.map +1 -0
  134. package/package.json +86 -0
  135. package/scripts/build-all-platforms.sh +68 -0
  136. package/scripts/check-version-sync.js +39 -0
  137. package/scripts/check_goods_container.js +35 -0
  138. package/scripts/check_page_content.js +36 -0
  139. package/scripts/click_applause_rate.js +30 -0
  140. package/scripts/copy-native.js +36 -0
  141. package/scripts/copy-recorder.js +21 -0
  142. package/scripts/e2e-test-recorder.ts +584 -0
  143. package/scripts/explore_jd_page.js +31 -0
  144. package/scripts/extract_all_jd_data.js +80 -0
  145. package/scripts/extract_jd_product_detail.js +62 -0
  146. package/scripts/extract_jd_products_correct_links.js +78 -0
  147. package/scripts/extract_jd_products_final.js +80 -0
  148. package/scripts/extract_jd_reviews.js +48 -0
  149. package/scripts/extract_jd_seafood_final.js +78 -0
  150. package/scripts/extract_multiple_products.js +77 -0
  151. package/scripts/extract_products_no_scroll.js +68 -0
  152. package/scripts/extract_products_simple.js +68 -0
  153. package/scripts/find_applause_rate.js +26 -0
  154. package/scripts/find_jd_links.js +28 -0
  155. package/scripts/find_main_content.js +20 -0
  156. package/scripts/find_product_cards.js +38 -0
  157. package/scripts/find_root_content.js +26 -0
  158. package/scripts/find_unique_products.js +55 -0
  159. package/scripts/get_jd_product_detail.js +16 -0
  160. package/scripts/get_jd_products.js +23 -0
  161. package/scripts/get_jd_seafood_products.js +44 -0
  162. package/scripts/get_product_details_from_images.js +54 -0
  163. package/scripts/postinstall.js +235 -0
  164. package/scripts/scroll_and_get_products.js +47 -0
  165. package/scripts/scroll_deep_and_find.js +45 -0
  166. package/scripts/sync-version.js +69 -0
  167. package/scripts/verify-baidu-enter.ts +116 -0
  168. package/skills/agent-browser/SKILL.md +310 -0
  169. package/skills/agent-browser/references/authentication.md +198 -0
  170. package/skills/agent-browser/references/commands.md +471 -0
  171. package/skills/agent-browser/references/data-extraction.md +377 -0
  172. package/skills/agent-browser/references/proxy-support.md +188 -0
  173. package/skills/agent-browser/references/session-management.md +197 -0
  174. package/skills/agent-browser/references/snapshot-refs.md +379 -0
  175. package/skills/agent-browser/references/video-recording.md +173 -0
  176. package/skills/agent-browser/templates/api-interception.sh +53 -0
  177. package/skills/agent-browser/templates/authenticated-session.sh +97 -0
  178. package/skills/agent-browser/templates/capture-workflow.sh +69 -0
  179. package/skills/agent-browser/templates/data-extraction.sh +210 -0
  180. package/skills/agent-browser/templates/form-automation.sh +62 -0
  181. package/skills/skill-creator/LICENSE.txt +202 -0
  182. package/skills/skill-creator/SKILL.md +356 -0
  183. package/skills/skill-creator/references/output-patterns.md +82 -0
  184. package/skills/skill-creator/references/workflows.md +28 -0
  185. package/skills/skill-creator/scripts/init_skill.py +303 -0
  186. package/skills/skill-creator/scripts/package_skill.py +113 -0
  187. package/skills/skill-creator/scripts/quick_validate.py +95 -0
@@ -0,0 +1,214 @@
1
+ import type { BrowserManager } from './browser.js';
2
+ import type { Command } from './types.js';
3
+ export type StreamState = 'user_interacting' | 'screen_moving' | 'static';
4
+ export interface StreamStateConfig {
5
+ format: 'jpeg' | 'webp';
6
+ quality: number;
7
+ maxFps: number;
8
+ scale: number;
9
+ }
10
+ export declare const STATE_CONFIGS: Record<StreamState, StreamStateConfig>;
11
+ export type StateChangeCallback = (newState: StreamState, previousState: StreamState) => void;
12
+ export declare class StreamStateManager {
13
+ private currentState;
14
+ private isUserInteracting;
15
+ private userInteractionTimer;
16
+ private lastFrameTime;
17
+ private frameInterval;
18
+ private onStateChange;
19
+ private staticTimer;
20
+ private readonly USER_INTERACTION_TIMEOUT_MS;
21
+ private readonly SCREEN_MOVING_THRESHOLD_MS;
22
+ private readonly STATIC_TIMEOUT_MS;
23
+ setStateChangeCallback(callback: StateChangeCallback | null): void;
24
+ private setState;
25
+ private resetStaticTimer;
26
+ onUserInteraction(): void;
27
+ private resetUserInteractionTimeout;
28
+ onFrameReceived(): void;
29
+ getConfig(): StreamStateConfig;
30
+ getState(): StreamState;
31
+ getFrameInterval(): number;
32
+ getIsUserInteracting(): boolean;
33
+ }
34
+ export declare class FrameRateController {
35
+ private lastSentTime;
36
+ private fpsFrameCount;
37
+ private fpsLastTime;
38
+ private currentFps;
39
+ private readonly FPS_CALCULATION_INTERVAL_MS;
40
+ shouldSendFrame(maxFps: number): boolean;
41
+ private calculateFps;
42
+ getCurrentFps(): number;
43
+ reset(): void;
44
+ }
45
+ export declare class FrameProcessor {
46
+ process(data: string, config: StreamStateConfig, viewportWidth?: number, viewportHeight?: number): Promise<Buffer>;
47
+ }
48
+ export declare function isAllowedOrigin(origin: string | undefined): boolean;
49
+ export interface FrameMessage {
50
+ type: 'frame';
51
+ metadata: {
52
+ offsetTop: number;
53
+ pageScaleFactor: number;
54
+ deviceWidth: number;
55
+ deviceHeight: number;
56
+ scrollOffsetX: number;
57
+ scrollOffsetY: number;
58
+ timestamp?: number;
59
+ };
60
+ format: 'jpeg' | 'webp';
61
+ fps: number;
62
+ state: StreamState;
63
+ }
64
+ export interface InputMouseMessage {
65
+ type: 'input_mouse';
66
+ eventType: 'mousePressed' | 'mouseReleased' | 'mouseMoved' | 'mouseWheel';
67
+ x: number;
68
+ y: number;
69
+ button?: 'left' | 'right' | 'middle' | 'none';
70
+ clickCount?: number;
71
+ deltaX?: number;
72
+ deltaY?: number;
73
+ modifiers?: number;
74
+ }
75
+ export interface InputKeyboardMessage {
76
+ type: 'input_keyboard';
77
+ eventType: 'keyDown' | 'keyUp' | 'rawKeyDown' | 'char';
78
+ key?: string;
79
+ code?: string;
80
+ text?: string;
81
+ modifiers?: number;
82
+ }
83
+ export interface InputTouchMessage {
84
+ type: 'input_touch';
85
+ eventType: 'touchStart' | 'touchEnd' | 'touchMove' | 'touchCancel';
86
+ touchPoints: Array<{
87
+ x: number;
88
+ y: number;
89
+ id?: number;
90
+ }>;
91
+ modifiers?: number;
92
+ }
93
+ export interface InputTextMessage {
94
+ type: 'input_text';
95
+ text: string;
96
+ }
97
+ export interface KeyboardDownMessage {
98
+ type: 'keyboard_down';
99
+ key: string;
100
+ }
101
+ export interface KeyboardUpMessage {
102
+ type: 'keyboard_up';
103
+ key: string;
104
+ }
105
+ export interface KeyboardInsertTextMessage {
106
+ type: 'keyboard_insert_text';
107
+ text: string;
108
+ }
109
+ export interface StatusMessage {
110
+ type: 'status';
111
+ connected: boolean;
112
+ screencasting: boolean;
113
+ viewportWidth?: number;
114
+ viewportHeight?: number;
115
+ fps?: number;
116
+ state?: StreamState;
117
+ }
118
+ export interface ErrorMessage {
119
+ type: 'error';
120
+ message: string;
121
+ }
122
+ export interface TabCreatedMessage {
123
+ type: 'tab_created';
124
+ data: {
125
+ index: number;
126
+ url: string;
127
+ title: string;
128
+ };
129
+ }
130
+ export interface TabClosedMessage {
131
+ type: 'tab_closed';
132
+ data: {
133
+ index: number;
134
+ remainingTabs: number;
135
+ };
136
+ }
137
+ export interface TabSwitchedMessage {
138
+ type: 'tab_switched';
139
+ data: {
140
+ fromIndex: number;
141
+ toIndex: number;
142
+ };
143
+ }
144
+ export interface NavigationMessage {
145
+ type: 'navigation';
146
+ data: {
147
+ url: string;
148
+ title: string;
149
+ };
150
+ }
151
+ export interface UserActivityMessage {
152
+ type: 'user_activity';
153
+ }
154
+ export type StreamMessage = FrameMessage | InputMouseMessage | InputKeyboardMessage | InputTouchMessage | InputTextMessage | KeyboardDownMessage | KeyboardUpMessage | KeyboardInsertTextMessage | StatusMessage | ErrorMessage | TabCreatedMessage | TabClosedMessage | TabSwitchedMessage | NavigationMessage | UserActivityMessage | Command;
155
+ export declare class StreamServer {
156
+ private wss;
157
+ private clients;
158
+ private browser;
159
+ private port;
160
+ private isScreencasting;
161
+ private stateManager;
162
+ private frameRateController;
163
+ private frameProcessor;
164
+ private lastFrameData;
165
+ private lastFrameMetadata;
166
+ constructor(browser: BrowserManager, port?: number);
167
+ private onStateChange;
168
+ start(): Promise<void>;
169
+ stop(): Promise<void>;
170
+ private handleConnection;
171
+ private handleMessage;
172
+ private broadcastFrame;
173
+ private broadcastEvent;
174
+ private sendStatus;
175
+ private sendError;
176
+ private startScreencast;
177
+ private stopScreencast;
178
+ getPort(): number;
179
+ getClientCount(): number;
180
+ getStateManager(): StreamStateManager;
181
+ getFrameRateController(): FrameRateController;
182
+ }
183
+ export declare function getStreamServerIpcPath(): string;
184
+ export declare class StreamServerProxy {
185
+ private browser;
186
+ private ipcSocket;
187
+ private ipcPath;
188
+ private session;
189
+ private isScreencasting;
190
+ private stateManager;
191
+ private frameRateController;
192
+ private frameProcessor;
193
+ private reconnectTimer;
194
+ private lastFrameData;
195
+ private lastFrameMetadata;
196
+ constructor(browser: BrowserManager);
197
+ private onStateChange;
198
+ connect(): Promise<void>;
199
+ private handleMessage;
200
+ private handleClientConnected;
201
+ private handleClientDisconnected;
202
+ private handleInputMessage;
203
+ private setupFrameCallback;
204
+ private sendFrame;
205
+ private send;
206
+ private getDaemonSocketPath;
207
+ private getDaemonPort;
208
+ private scheduleReconnect;
209
+ startScreencast(): Promise<void>;
210
+ stopScreencast(): Promise<void>;
211
+ disconnect(): Promise<void>;
212
+ isConnected(): boolean;
213
+ }
214
+ //# sourceMappingURL=stream-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-server.d.ts","sourceRoot":"","sources":["../src/stream-server.ts"],"names":[],"mappings":"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"}