guideai-app 0.4.3-9 → 0.5.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.
Files changed (40) hide show
  1. package/dist/GuideAI.js +1 -1
  2. package/dist/GuideAI.js.map +1 -1
  3. package/dist/components/AnimatedSettingsItem.d.ts +9 -0
  4. package/dist/components/Microphone.d.ts +1 -2
  5. package/dist/components/MuteButton.d.ts +1 -5
  6. package/dist/components/ResetButton.d.ts +2 -6
  7. package/dist/components/SettingsMenu.d.ts +16 -0
  8. package/dist/components/SettingsToggle.d.ts +7 -0
  9. package/dist/components/TranscriptBox.d.ts +4 -2
  10. package/dist/components/TranscriptToggle.d.ts +1 -4
  11. package/dist/hooks/index.d.ts +3 -0
  12. package/dist/hooks/useGuideAIAPI.d.ts +22 -0
  13. package/dist/hooks/useTranscriptState.d.ts +21 -0
  14. package/dist/hooks/useWebRTC.d.ts +63 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/types/GuideAI.types.d.ts +1 -2
  17. package/dist/utils/api.d.ts +16 -12
  18. package/dist/utils/constants.d.ts +17 -3
  19. package/dist/utils/conversationManager.d.ts +89 -0
  20. package/dist/utils/dataChannel.d.ts +25 -27
  21. package/dist/utils/elementInteractions.d.ts +1 -1
  22. package/dist/utils/isChromeExtension.d.ts +5 -0
  23. package/dist/utils/localStorageHelper.d.ts +57 -0
  24. package/dist/utils/logger.d.ts +7 -7
  25. package/dist/utils/messageStorage.d.ts +3 -5
  26. package/dist/utils/positionUtils.d.ts +39 -0
  27. package/dist/utils/webrtcConnection.d.ts +56 -0
  28. package/dist/visualContext/VisualContextScheduler.d.ts +11 -14
  29. package/dist/visualContext/domChangeTracker.d.ts +16 -0
  30. package/dist/visualContext/index.d.ts +8 -1
  31. package/dist/visualContext/types.d.ts +4 -0
  32. package/dist/visualContext/useVisualContext.d.ts +32 -0
  33. package/package.json +4 -2
  34. package/dist/metric/event-listner.d.ts +0 -143
  35. package/dist/metric/index.d.ts +0 -2
  36. package/dist/metric/metadata-tracker.d.ts +0 -50
  37. package/dist/types/metadata.types.d.ts +0 -48
  38. package/dist/utils/gemini.d.ts +0 -5
  39. package/dist/utils/highlightAndClick.d.ts +0 -3
  40. package/dist/utils/hoverAndClick.d.ts +0 -4
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Position and layout utilities for GuideAI components.
3
+ * Handles mic position, popup position, transcript position, and z-index config.
4
+ */
5
+ import type { GuideAIPosition, PopupPosition, TranscriptPosition } from '../types/GuideAI.types';
6
+ export declare const DEFAULT_POSITION: {
7
+ readonly bottom: "20px";
8
+ readonly left: "50%";
9
+ readonly transform: "translateX(-50%)";
10
+ };
11
+ export interface ZIndexConfig {
12
+ main: number;
13
+ transcript: number;
14
+ microphone: number;
15
+ onboarding: number;
16
+ }
17
+ /**
18
+ * Get default mic position (bottom center).
19
+ */
20
+ export declare function getDefaultPosition(): typeof DEFAULT_POSITION;
21
+ /**
22
+ * Calculate popup position based on mic position prop.
23
+ * Used for onboarding and welcome bubble placement.
24
+ */
25
+ export declare function calculatePositionFromProp(position?: GuideAIPosition | null): PopupPosition;
26
+ /**
27
+ * Get transcript box position (left or right) based on mic position.
28
+ */
29
+ export declare function getTranscriptPosition(transcriptOptions?: {
30
+ position?: TranscriptPosition;
31
+ } | null, position?: GuideAIPosition | null): TranscriptPosition;
32
+ /**
33
+ * Get z-index configuration from position prop.
34
+ */
35
+ export declare function getZIndexConfig(position?: GuideAIPosition | null): ZIndexConfig;
36
+ /**
37
+ * Get position styles for mic/base component (position only, no z-index).
38
+ */
39
+ export declare function getPositionStyles(position?: GuideAIPosition | null): Record<string, string>;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * WebRTC connection manager for OpenAI Realtime API.
3
+ * Uses unified initialize endpoint (conversation + WebRTC SDP exchange).
4
+ * See: https://developers.openai.com/api/docs/guides/realtime-webrtc
5
+ */
6
+ import { DataChannelManager, DataChannelConfig } from './dataChannel';
7
+ /** Ref-like holder for mutable references (avoids React dependency in utils) */
8
+ export interface RefLike<T> {
9
+ current: T | null;
10
+ }
11
+ export interface InitializeSessionData {
12
+ id: string;
13
+ }
14
+ export interface WebRTCConnectionConfig {
15
+ /** Microphone stream, or null for text-only mode */
16
+ audioStream: MediaStream | null;
17
+ /** Initialize endpoint URL (e.g. /api/initialize) - returns { id, answerSdp } */
18
+ initializeEndpoint: string;
19
+ /** Payload for initialize (organizationKey, user, conversationId */
20
+ initializePayload: {
21
+ organizationKey: string;
22
+ user?: string;
23
+ conversationId?: string | null;
24
+ };
25
+ /** Called when session data is received (id) */
26
+ onSessionData?: (data: InitializeSessionData) => void;
27
+ /** Whether running in Chrome extension content script (affects audio setup) */
28
+ isContentScript?: boolean;
29
+ /** Config for the data channel manager */
30
+ dataChannelConfig: DataChannelConfig;
31
+ /** Optional refs to populate with created objects */
32
+ refs?: {
33
+ peerConnection?: RefLike<RTCPeerConnection>;
34
+ dataChannelManager?: RefLike<DataChannelManager>;
35
+ audioElement?: RefLike<HTMLAudioElement>;
36
+ };
37
+ /** Optional existing audio element to reuse (avoids duplicate elements on reconnect) */
38
+ existingAudioElement?: HTMLAudioElement | null;
39
+ }
40
+ /**
41
+ * Manages WebRTC connection via unified initialize endpoint.
42
+ * Handles peer connection setup, SDP exchange (via initialize), and data channel creation.
43
+ */
44
+ export declare class WebRTCConnection {
45
+ private config;
46
+ private peerConnection;
47
+ private dataChannelManager;
48
+ private audioElement;
49
+ constructor(config: WebRTCConnectionConfig);
50
+ /**
51
+ * Establish WebRTC connection via initialize endpoint.
52
+ */
53
+ connect(): Promise<boolean>;
54
+ private createAudioElement;
55
+ close(): void;
56
+ }
@@ -4,40 +4,37 @@ export declare class VisualContextScheduler {
4
4
  private screenshotProvider;
5
5
  private isRunning;
6
6
  private isCaptureInFlight;
7
- private hasPendingCapture;
8
- private pendingReason;
9
- private lastHash;
10
7
  private lastCaptureAt;
11
- private lastScrollAt;
12
- private lastDomBurstAt;
13
- private domChangeCounter;
14
- private domBurstWindowMs;
15
- private domBurstThreshold;
16
8
  private minIntervalMs;
17
- private scrollDebounceMs;
18
- private scrollTimer;
19
9
  private mode;
20
10
  private buttonObserver;
21
- private domObserver;
11
+ private intervalId;
22
12
  private targetWidth;
23
13
  private rootElement;
24
14
  private quality;
25
15
  private minQuality;
26
16
  private maxBytes;
27
17
  private onFrame;
18
+ private isBufferFull;
19
+ private hasSignificantDomChange;
20
+ private markDomChangeConsumed;
21
+ private onError;
22
+ private pendingRequestResolve;
28
23
  constructor(getContainer: () => HTMLElement | null, screenshotProvider: ScreenshotProvider, onFrame: (frame: ScreenshotFrame) => void, options?: {
29
24
  targetWidth?: number;
30
25
  quality?: number;
31
26
  minQuality?: number;
32
27
  maxBytes?: number;
28
+ isBufferFull?: () => boolean;
29
+ hasSignificantDomChange?: () => boolean;
30
+ markDomChangeConsumed?: () => void;
31
+ onError?: (message: string, data?: any) => void;
33
32
  });
34
33
  setRootElement(root: HTMLElement | ShadowRoot | Document): void;
35
34
  start(): void;
36
35
  stop(): void;
37
36
  private observeButtonState;
38
- private observeDomChanges;
39
- private observeScroll;
40
37
  scheduleCapture(reason: 'preview' | 'final' | 'change'): void;
38
+ requestCapture(): Promise<ScreenshotFrame | null>;
41
39
  private performCapture;
42
- private maybeRunPending;
43
40
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * DOM change tracker that detects significant host-page changes.
3
+ * Excludes only the GuideAI widget container (transcript, mic, etc.) - not by class name.
4
+ * Detects SPA navigation (route changes, visibility changes) and structural DOM changes.
5
+ */
6
+ export interface DomChangeTrackerOptions {
7
+ /** Returns the GuideAI widget root element - mutations inside it are excluded */
8
+ getGuideaiRoot: () => HTMLElement | null;
9
+ }
10
+ export interface DomChangeTracker {
11
+ hasSignificantChange: () => boolean;
12
+ markCaptured: () => void;
13
+ start: () => void;
14
+ stop: () => void;
15
+ }
16
+ export declare function createDomChangeTracker(options: DomChangeTrackerOptions): DomChangeTracker;
@@ -1,5 +1,12 @@
1
+ /**
2
+ * Visual Context module for GuideAI
3
+ * Provides screenshot capture, storage, image sending, debug overlay,
4
+ * and the useVisualContext hook for integration.
5
+ */
1
6
  export { VisualContextStore } from './VisualContextStore';
2
7
  export { VisualContextScheduler } from './VisualContextScheduler';
3
8
  export { DebugOverlay } from './debug-overlay';
9
+ export { useVisualContext } from './useVisualContext';
4
10
  export { createDefaultScreenshotProvider, getDefaultScreenshotProvider } from './defaultProvider';
5
- export type { ScreenshotResponse, ScreenshotFrame, ScreenshotOptions, ScreenshotProvider, VisualContextConfig } from './types';
11
+ export type { ScreenshotResponse, ScreenshotFrame, ScreenshotDetail, ScreenshotOptions, ScreenshotProvider, VisualContextConfig } from './types';
12
+ export { MAX_IMAGE_MESSAGE_BYTES } from './types';
@@ -24,6 +24,10 @@ export type ScreenshotFrame = {
24
24
  sentToLLM?: boolean;
25
25
  llmReceivedAt?: number;
26
26
  };
27
+ /** Alias for ScreenshotFrame, used for event payload compatibility */
28
+ export type ScreenshotDetail = ScreenshotFrame;
29
+ /** Max size for WebRTC image message payload (bytes) */
30
+ export declare const MAX_IMAGE_MESSAGE_BYTES = 200000;
27
31
  export type ScreenshotOptions = {
28
32
  targetElement?: HTMLElement;
29
33
  targetWidth?: number;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * useVisualContext - React hook that encapsulates screenshot capture, storage,
3
+ * image sending, and debug overlay for the GuideAI visual context feature.
4
+ */
5
+ import { ScreenshotFrame, VisualContextConfig } from './types';
6
+ export type RecordingStatus = 'idle' | 'recording' | 'active' | 'processing' | 'playing';
7
+ export interface UseVisualContextParams {
8
+ options: VisualContextConfig;
9
+ sendMessage: (msg: any) => void;
10
+ isDataChannelOpen: () => boolean;
11
+ status: RecordingStatus;
12
+ isConversationActive: boolean;
13
+ getContainer: () => HTMLElement | null;
14
+ onLogVisualContext: (content: string, data?: any) => void;
15
+ onVisualContextError?: (message: string, data?: any) => void;
16
+ isBufferFull?: () => boolean;
17
+ }
18
+ export interface UseVisualContextReturn {
19
+ frames: ScreenshotFrame[];
20
+ debugEnabled: boolean;
21
+ setDebugEnabled: (value: boolean | ((prev: boolean) => boolean)) => void;
22
+ showGallery: boolean;
23
+ setShowGallery: (value: boolean | ((prev: boolean) => boolean)) => void;
24
+ latencyMs: number | null;
25
+ windowAPI: Record<string, any>;
26
+ captureForMessage: () => Promise<{
27
+ type: 'input_image';
28
+ image_url: string;
29
+ } | null>;
30
+ cleanupOnConversationEnd: () => void;
31
+ }
32
+ export declare function useVisualContext(React: typeof import('react'), params: UseVisualContextParams): UseVisualContextReturn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "guideai-app",
3
- "version": "0.4.3-9",
3
+ "version": "0.5.0",
4
4
  "description": "AI-powered guide component for React applications",
5
5
  "main": "dist/GuideAI.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,6 +18,9 @@
18
18
  "scripts": {
19
19
  "build": "webpack --mode=production && tsc --emitDeclarationOnly && javascript-obfuscator dist/GuideAI.js --config obfuscator.json --output dist/GuideAI.js",
20
20
  "build:dev": "webpack --mode=development && tsc --emitDeclarationOnly",
21
+ "watch": "webpack --mode=development --watch & tsc --emitDeclarationOnly --watch",
22
+ "dev": "npm run watch",
23
+ "serve:local": "npm run build:dev && npx serve -l 8080 dist",
21
24
  "prepare": "npm run build",
22
25
  "test": "jest",
23
26
  "test:watch": "jest --watch",
@@ -33,7 +36,6 @@
33
36
  "license": "ISC",
34
37
  "dependencies": {
35
38
  "@google/generative-ai": "^0.2.1",
36
- "guideai-app": "^0.3.4",
37
39
  "html2canvas": "^1.4.1",
38
40
  "openai": "^4.28.0"
39
41
  },
@@ -1,143 +0,0 @@
1
- interface EventData {
2
- type: 'click' | 'focus' | 'change' | 'submit' | 'route_change';
3
- element?: Element;
4
- tagName?: string;
5
- className?: string;
6
- id?: string;
7
- textContent?: string;
8
- value?: string;
9
- formData?: FormData;
10
- timestamp: number;
11
- url: string;
12
- previousUrl?: string;
13
- event?: Event;
14
- customerId?: string;
15
- customerType?: string;
16
- customerSegment?: string;
17
- sessionId?: string;
18
- conversationStartTime?: number;
19
- timeSinceConversationStart?: number;
20
- deviceType?: 'desktop' | 'mobile' | 'tablet';
21
- userAgent?: string;
22
- screenResolution?: string;
23
- currentPage?: string;
24
- userRole?: string;
25
- organizationId?: string;
26
- timezone?: string;
27
- locale?: string;
28
- }
29
- declare class EventTracker {
30
- private isTracking;
31
- private eventData;
32
- private batchSize;
33
- private batchTimeout;
34
- private batchTimer;
35
- private pendingEvents;
36
- private currentUrl;
37
- private organizationKey?;
38
- private lastEventTime;
39
- private eventThrottleInterval;
40
- private lastEventsByType;
41
- private duplicateEventBuffer;
42
- private maxDuplicateBuffer;
43
- private isInitialized;
44
- private sessionId;
45
- private conversationStartTime;
46
- private inactivityTimer;
47
- private inactivityTimeout;
48
- private lastActivityTime;
49
- private customerMetadata;
50
- constructor(options?: {
51
- customerId?: string;
52
- customerType?: string;
53
- organizationId?: string;
54
- organizationKey?: string;
55
- batchSize?: number;
56
- batchTimeout?: number;
57
- eventThrottleInterval?: number;
58
- });
59
- private init;
60
- private loadEventsFromStorage;
61
- private saveEventsToStorage;
62
- setCustomerMetadata(metadata: Partial<typeof this.customerMetadata>): void;
63
- getCustomerMetadata(): typeof this.customerMetadata;
64
- clearCustomerMetadata(): void;
65
- initialize(): void;
66
- private enrichEventData;
67
- private sanitizeEventData;
68
- setConversationStartTime(startTime: number): void;
69
- private getConversationTiming;
70
- private getDeviceType;
71
- startTracking(): void;
72
- stopTracking(): void;
73
- private trackClickEvents;
74
- private trackFocusEvents;
75
- private trackChangeEvents;
76
- private trackSubmitEvents;
77
- private trackRouteChanges;
78
- private handleClick;
79
- private handleFocus;
80
- private handleChange;
81
- private handleSubmit;
82
- private handlePopstate;
83
- private handleHashChange;
84
- private interceptHistoryAPI;
85
- private getPreviousUrl;
86
- private getSafeValue;
87
- private isFocusable;
88
- private isFormElement;
89
- private generateEventKey;
90
- private shouldThrottleEvent;
91
- private isDuplicateEvent;
92
- private isSignificantClickTarget;
93
- private isSignificantFocusTarget;
94
- private isSignificantRouteChange;
95
- private logEvent;
96
- private emitBatch;
97
- private sendEventBatch;
98
- getEventData(): EventData[];
99
- clearEventData(): void;
100
- getEventDataByType(type: EventData['type']): EventData[];
101
- getEventDataByElement(tagName: string): EventData[];
102
- getEventDataByUrl(url: string): EventData[];
103
- emitPendingEvents(): void;
104
- setBatchConfig(batchSize: number, batchTimeout: number): void;
105
- getPendingEventsCount(): number;
106
- getCustomerAnalytics(): {
107
- totalEvents: number;
108
- eventsByCustomer: Record<string, number>;
109
- eventsByType: Record<string, number>;
110
- eventsByPage: Record<string, number>;
111
- eventsByDevice: Record<string, number>;
112
- sessionDuration: number;
113
- lastActivity: number;
114
- };
115
- private getSessionStartTime;
116
- identifyCustomerFromContext(): void;
117
- setCustomerFromAuth(authData: {
118
- id?: string;
119
- role?: string;
120
- customerType?: 'individual' | 'business' | 'agent' | 'admin';
121
- customerSegment?: string;
122
- }): void;
123
- private setupPageUnloadTracking;
124
- private setupInactivityTracking;
125
- private cleanupPageTracking;
126
- }
127
- export default EventTracker;
128
- export type { EventData };
129
- export interface CustomerMetadata {
130
- customerId?: string;
131
- customerType?: 'individual' | 'business' | 'agent' | 'admin';
132
- customerSegment?: string;
133
- userRole?: string;
134
- }
135
- export interface CustomerAnalytics {
136
- totalEvents: number;
137
- eventsByCustomer: Record<string, number>;
138
- eventsByType: Record<string, number>;
139
- eventsByPage: Record<string, number>;
140
- eventsByDevice: Record<string, number>;
141
- sessionDuration: number;
142
- lastActivity: number;
143
- }
@@ -1,2 +0,0 @@
1
- export { default as UserMetadataTracker } from './metadata-tracker';
2
- export type { UserMetadata, MetadataConfig, MetadataUpdate } from './metadata-tracker';
@@ -1,50 +0,0 @@
1
- import { UserMetadata, MetadataConfig, MetadataUpdate } from '../types/metadata.types';
2
- declare class UserMetadataTracker {
3
- private config;
4
- private metadata;
5
- private syncTimer;
6
- private pendingUpdates;
7
- private isInitialized;
8
- private onError?;
9
- private lastSyncTime;
10
- private minSyncInterval;
11
- private lastMetadataHash;
12
- private pendingUpdateTypes;
13
- private inactivityTimer;
14
- private inactivityTimeout;
15
- private lastActivityTime;
16
- constructor(organizationKey: string, config?: MetadataConfig, onError?: (error: Error, context: string) => void);
17
- init(): void;
18
- updateUserInfo(userInfo: Partial<UserMetadata>): void;
19
- trackLogin(additionalInfo?: Partial<UserMetadata>): void;
20
- private trackVisitIfNewSession;
21
- trackVisit(): void;
22
- resetSessionVisitTracking(): void;
23
- trackVisitManually(): void;
24
- trackCustomEvent(eventType: string, customData: Record<string, any>): void;
25
- getMetadata(): UserMetadata;
26
- getPendingUpdates(): MetadataUpdate[];
27
- clearPendingUpdates(): void;
28
- syncNow(): MetadataUpdate[];
29
- private loadMetadata;
30
- private saveMetadata;
31
- private collectBrowserInfo;
32
- private parseBrowserInfo;
33
- private startSyncTimer;
34
- private shouldSync;
35
- private addPendingUpdate;
36
- private isDataDuplicate;
37
- private generateDataHash;
38
- private stopSyncTimer;
39
- private emitPendingUpdates;
40
- private emitPendingUpdatesImmediate;
41
- private getFromStorage;
42
- private setToStorage;
43
- private clearStorage;
44
- private setupPageUnloadTracking;
45
- private setupInactivityTracking;
46
- private cleanupPageTracking;
47
- destroy(): void;
48
- }
49
- export default UserMetadataTracker;
50
- export type { UserMetadata, MetadataConfig, MetadataUpdate };
@@ -1,48 +0,0 @@
1
- export interface UserMetadata {
2
- userId?: string;
3
- email?: string;
4
- userType?: 'agent' | 'admin' | 'manager' | 'customer' | 'guest' | string;
5
- customerType?: 'individual' | 'business' | 'enterprise' | string;
6
- customerLicense?: string;
7
- firstVisit?: number;
8
- lastVisit?: number;
9
- visitCount?: number;
10
- loginCount?: number;
11
- lastLogin?: number;
12
- organizationKey: string;
13
- sessionId?: string;
14
- userAgent?: string;
15
- browserInfo?: {
16
- name?: string;
17
- version?: string;
18
- platform?: string;
19
- };
20
- customFields?: Record<string, string | number | boolean>;
21
- }
22
- export interface MetadataUpdate {
23
- type: 'visit' | 'login' | 'user_info' | 'session' | 'custom';
24
- timestamp: number;
25
- data: Partial<UserMetadata>;
26
- }
27
- export interface MetadataConfig {
28
- trackVisits?: boolean;
29
- trackLogins?: boolean;
30
- syncInterval?: number;
31
- storage?: 'localStorage' | 'sessionStorage' | 'memory';
32
- customFields?: string[];
33
- collectBrowserInfo?: boolean;
34
- collectUserAgent?: boolean;
35
- sessionTimeout?: number;
36
- }
37
- export interface MetadataStorageData {
38
- metadata: UserMetadata;
39
- lastUpdated: number;
40
- version: string;
41
- }
42
- export type MetadataEventType = 'user_visit' | 'user_login' | 'user_info_update' | 'session_start' | 'session_end' | 'custom_event';
43
- export interface MetadataEvent {
44
- type: MetadataEventType;
45
- timestamp: number;
46
- metadata: Partial<UserMetadata>;
47
- source?: string;
48
- }
@@ -1,5 +0,0 @@
1
- import { ElementInteractionType } from './constants';
2
- export declare const parse_args: (interactionType: ElementInteractionType, argsToUse: any, geminiFlash: Function, organizationKey: string) => Promise<any>;
3
- export declare const geminiFlash: (prompt: string, organizationKey: string) => Promise<string>;
4
- export declare const HIGHLIGHT_TOOL_PROMPT = "Validate the following JSON string and return ONLY a correct JSON object:\nNote: The selector(s) should be either a css selector or an xpath, so modify those if invalid.\nAlso, [url=''] is a valid css selector, so do not modify it if it's present.\nDo not add any other text or newlines to the response.\nIt should be of the following format:\n{ \"selector\": \"string\" }\nor\n{ \"selector\": [\"string\", ...] }\nDO NOT add any other text or newlines to the response, it should begin and end with curly braces.\nDO NOT add '''json to the response.\nThe JSON string is:\n";
5
- export declare const HOVER_TOOL_PROMPT = "Validate the following JSON string and return ONLY a correct JSON object:\nNote: The selector(s) should be either a css selector or an xpath, so modify those if invalid.\nAlso, [url=''] is a valid css selector, so do not modify it if it's present.\nDo not add any other text or newlines to the response.\nIt should be of the following format:\n{ \"selector\": \"string\" }\nor\n{ \"selector\": [\"string\", ...] }\nor\n{ \"selector\": \"string\", \"hoverTime\": number }\nor\n{ \"selector\": [\"string\", ...], \"hoverTime\": number }\nThe hoverTime parameter is optional and represents time to hover in milliseconds (500-10000).\nIf not provided, default to 3000ms.\nDO NOT add any other text or newlines to the response, it should begin and end with curly braces.\nDO NOT add '''json to the response.\nThe JSON string is:\n";
@@ -1,3 +0,0 @@
1
- export declare const createHoverEffect: (element: Element, rect: DOMRect) => Promise<void>;
2
- export declare const createHoverEffectWithTracking: (element: Element, initialRect: DOMRect, cursorElement: HTMLElement | null, duration?: number) => Promise<void>;
3
- export declare const highlightThenClick: (selector: string | string[], isHovering: boolean, setIsHovering: (hovering: boolean) => void, logMessage: (content: string, sender: "GUIDEAI" | "HUMAN") => void, hoverTime?: number) => Promise<boolean>;
@@ -1,4 +0,0 @@
1
- export declare const createHoverEffect: (element: Element, rect: DOMRect) => Promise<void>;
2
- export declare const createHoverEffectWithTracking: (element: Element, initialRect: DOMRect, cursorElement: HTMLElement | null) => Promise<void>;
3
- export declare const clickElement: (element: Element, rect: DOMRect) => Promise<void>;
4
- export declare const hoverThenClick: (selector: string | string[], isHighlighting: boolean, setIsHighlighting: (highlighting: boolean) => void, logMessage: (content: string, sender: "GUIDEAI" | "HUMAN") => void) => Promise<boolean>;