gleap 17.0.2 → 18.0.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 (26) hide show
  1. package/.worktrees/JavaScript-SDK-147158-corp-headers/.assetsignore +30 -0
  2. package/.worktrees/JavaScript-SDK-147158-corp-headers/.claude/launch.json +11 -0
  3. package/.worktrees/JavaScript-SDK-147158-corp-headers/.prettierignore +12 -0
  4. package/.worktrees/JavaScript-SDK-147158-corp-headers/.prettierrc.json +8 -0
  5. package/.worktrees/JavaScript-SDK-147158-corp-headers/LICENSE +7 -0
  6. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/browser/index.js +2 -0
  7. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/browser/index.js.map +1 -0
  8. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/cjs/index.js +2 -0
  9. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/cjs/index.js.map +1 -0
  10. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/esm/index.mjs +2 -0
  11. package/.worktrees/JavaScript-SDK-147158-corp-headers/build/esm/index.mjs.map +1 -0
  12. package/.worktrees/JavaScript-SDK-147158-corp-headers/index.d.ts +390 -0
  13. package/.worktrees/JavaScript-SDK-147158-corp-headers/package-lock.json +13926 -0
  14. package/.worktrees/JavaScript-SDK-147158-corp-headers/package.json +82 -0
  15. package/.worktrees/JavaScript-SDK-147158-corp-headers/resources/banner.png +0 -0
  16. package/.worktrees/JavaScript-SDK-147158-corp-headers/swa-cli.config.json +9 -0
  17. package/.worktrees/JavaScript-SDK-147158-corp-headers/wrangler.jsonc +16 -0
  18. package/README.md +9 -0
  19. package/build/browser/index.js +1 -1
  20. package/build/browser/index.js.map +1 -1
  21. package/build/cjs/index.js +1 -1
  22. package/build/cjs/index.js.map +1 -1
  23. package/build/esm/index.mjs +1 -1
  24. package/build/esm/index.mjs.map +1 -1
  25. package/index.d.ts +27 -0
  26. package/package.json +1 -1
@@ -0,0 +1,390 @@
1
+ export namespace Gleap {
2
+ function initialize(sdkKey: string, disablePing?: boolean): void;
3
+ function sendSilentCrashReport(
4
+ description: string,
5
+ priority?: "LOW" | "MEDIUM" | "HIGH",
6
+ excludeData?: {
7
+ customData?: Boolean;
8
+ metaData?: Boolean;
9
+ attachments?: Boolean;
10
+ consoleLog?: Boolean;
11
+ networkLogs?: Boolean;
12
+ customEventLog?: Boolean;
13
+ screenshot?: Boolean;
14
+ replays?: Boolean;
15
+ }
16
+ ): void;
17
+ function sendSilentCrashReportWithFormData(
18
+ formData: {
19
+ [key: string]: string;
20
+ },
21
+ priority?: "LOW" | "MEDIUM" | "HIGH",
22
+ excludeData?: {
23
+ customData: Boolean;
24
+ metaData: Boolean;
25
+ attachments: Boolean;
26
+ consoleLog: Boolean;
27
+ networkLogs: Boolean;
28
+ customEventLog: Boolean;
29
+ screenshot: Boolean;
30
+ replays: Boolean;
31
+ }
32
+ ): void;
33
+ function startClassicForm(
34
+ formId: string,
35
+ showBackButton?: boolean
36
+ ): void;
37
+ function startBot(botId: string, showBackButton?: boolean): void;
38
+ function startConversation(showBackButton?: boolean): void;
39
+ function attachCustomData(customData: any): void;
40
+ function setTicketAttribute(key: string, value: string): void;
41
+ function unsetTicketAttribute(key: string): void;
42
+ function clearTicketAttributes(): void;
43
+ function setCustomData(key: string, value: string): void;
44
+ function removeCustomData(key: string): void;
45
+ function clearCustomData(): void;
46
+ function playSound(play: boolean): void;
47
+ function destroy(): void;
48
+ function showAiChatbar(): void;
49
+ function hideAiChatbar(): void;
50
+ function askAI(question: string, showBackButton?: boolean): void;
51
+ function setAiChatbarQuickActions(quickActions: string[]): void;
52
+ function startAgent(
53
+ agentId: string,
54
+ options?: { context?: any; initialQuestion?: string; initialMessage?: string }
55
+ ): void;
56
+ function isOpened(): boolean;
57
+ function setApiUrl(apiUrl: string): void;
58
+ function setWSApiUrl(wsApiUrl: string): void;
59
+ /** Messenger realtime hostname, without protocol or path. Set before initialize. */
60
+ function setRealtimeHost(realtimeHost: string): void;
61
+ function setFrameUrl(frameUrl: string): void;
62
+ function closeBanner(): void;
63
+ function closeModal(): void;
64
+ function setBannerUrl(bannerUrl: string): void;
65
+ function setModalUrl(modalUrl: string): void;
66
+ function setMaxNetworkRequests(maxRequests: number): void;
67
+ function startNetworkLogger(): void;
68
+ function setNetworkLogsBlacklist(networkLogBlacklist: string[]): void;
69
+ function setNetworkLogPropsToIgnore(filters: string[]): void;
70
+ /**
71
+ * @deprecated Use registerAgentTool(name, handler) with a dashboard-defined
72
+ * Frontend tool instead.
73
+ */
74
+ function registerAgentToolAction(
75
+ callback: (toolAction: {
76
+ name: string;
77
+ params: Record<string, any>;
78
+ result: any;
79
+ message: string;
80
+ toolCallId: string;
81
+ }) => void
82
+ ): void;
83
+ /**
84
+ * Register the handler for a Frontend tool defined on an AI agent in the
85
+ * Gleap dashboard. The agent calls the handler with the configured
86
+ * parameters and waits for its return value (string or JSON — JSON is
87
+ * stringified). Thrown errors are caught and reported back to the AI.
88
+ */
89
+ function registerAgentTool(
90
+ name: string,
91
+ handler: (
92
+ params: Record<string, any>
93
+ ) => string | object | Promise<string | object>
94
+ ): void;
95
+ function registerCustomAction(
96
+ customAction: (action: { name: string }) => void
97
+ ): void;
98
+ function log(message: string, logLevel?: "INFO" | "WARNING" | "ERROR"): void;
99
+ /**
100
+ * @deprecated Please use trackEvent instead.
101
+ */
102
+ function logEvent(name: string, data?: any): void;
103
+ function trackEvent(name: string, data?: any): void;
104
+ function setAppBuildNumber(buildNumber: string): void;
105
+ function setAppVersionCode(versionCode: string): void;
106
+ function setStyles(styles: {
107
+ primaryColor: string;
108
+ headerColor: string;
109
+ buttonColor: string;
110
+ backgroundColor: string;
111
+ borderRadius?: number;
112
+ buttonX?: number;
113
+ buttonY?: number;
114
+ buttonStyle?: string;
115
+ }): void;
116
+ function disableConsoleLogOverwrite(): void;
117
+ function setLiveSite(isLiveSite: boolean): void;
118
+ function enableShortcuts(enabled: boolean): void;
119
+ function setLanguage(language: string): void;
120
+ function preFillForm(data: object): void;
121
+ /**
122
+ * @deprecated Define Frontend tools on your AI agent in the Gleap dashboard
123
+ * and register their handlers via registerAgentTool(name, handler) instead.
124
+ */
125
+ function setAiTools(tools: {
126
+ name: string;
127
+ description: string;
128
+ response?: string;
129
+ executionType?: 'button' | 'auto';
130
+ parameters?: {
131
+ name: string;
132
+ description: string;
133
+ type: "string" | "number" | "boolean";
134
+ required: boolean;
135
+ enum?: string[];
136
+ }[];
137
+ }[]): void;
138
+ function showTabNotificationBadge(showNotificationBadge: boolean): void;
139
+ function attachNetworkLogs(networkLogs: string): void;
140
+ function clearIdentity(): void;
141
+ function setTags(tags: string[]): void;
142
+ function setDisableInAppNotifications(
143
+ disableInAppNotifications: boolean
144
+ ): void;
145
+ function setDisablePageTracking(
146
+ disablePageTracking: boolean
147
+ ): void;
148
+ function identify(
149
+ userId: string,
150
+ customerData: {
151
+ name?: string | null;
152
+ email?: string | null;
153
+ phone?: string | null;
154
+ value?: number | null;
155
+ /** @deprecated Use `company` instead. */
156
+ companyId?: string | null;
157
+ /** @deprecated Use `company` instead. */
158
+ companyName?: string | null;
159
+ company?: { id: string | number; name?: string | null } | null;
160
+ sla?: number | null;
161
+ plan?: string | null;
162
+ customData?: object | null;
163
+ avatar?: string | null;
164
+ createdAt?: Date | null;
165
+ },
166
+ userHash?: string
167
+ ): void;
168
+ function updateContact(
169
+ customerData: {
170
+ name?: string | null;
171
+ email?: string | null;
172
+ phone?: string | null;
173
+ value?: number | null;
174
+ /** @deprecated Use `company` instead. */
175
+ companyId?: string | null;
176
+ /** @deprecated Use `company` instead. */
177
+ companyName?: string | null;
178
+ company?: { id: string | number; name?: string | null } | null;
179
+ sla?: number | null;
180
+ plan?: string | null;
181
+ avatar?: string | null;
182
+ customData?: object | null;
183
+ }
184
+ ): void;
185
+ function getInstance(): any;
186
+ function open(): void;
187
+ function openChecklists(showBackButton?: boolean): void;
188
+ function openChecklist(checklistId: string, showBackButton?: boolean): void;
189
+ function startChecklist(outboundId: string, showBackButton?: boolean, sharedKey?: string): void;
190
+ function openNews(showBackButton?: boolean): void;
191
+ function openNewsArticle(id: string, showBackButton?: boolean): void;
192
+ function openConversations(showBackButton?: boolean): void;
193
+ function startProductTour(tourId: string): void;
194
+ function openConversation(
195
+ shareToken?: string,
196
+ showBackButton?: boolean
197
+ ): void;
198
+ function setUrlHandler(
199
+ urlHandler: (url: string, newTab?: boolean) => void
200
+ ): void;
201
+ function openHelpCenter(showBackButton?: boolean): void;
202
+ function openHelpCenterCollection(
203
+ collectionId: string,
204
+ showBackButton?: boolean
205
+ ): void;
206
+ function openHelpCenterArticle(
207
+ articleId: string,
208
+ showBackButton?: boolean
209
+ ): void;
210
+ function searchHelpCenter(term: string, showBackButton?: boolean): void;
211
+ function openFeatureRequests(showBackButton?: boolean): void;
212
+ function close(): void;
213
+ function hide(): void;
214
+ function setUseCookies(useCookies: boolean): void;
215
+ function setEnvironment(environment: "dev" | "staging" | "prod"): void;
216
+ function setCSPNonce(nonce: string): void;
217
+ function showFeedbackButton(show: boolean): void;
218
+ function startFeedbackFlow(
219
+ feedbackFlow: string,
220
+ showBackButton?: boolean
221
+ ): void;
222
+ function showSurvey(surveyId: string, format?: string): void;
223
+ function on(
224
+ event:
225
+ | "initialized"
226
+ | "open"
227
+ | "close"
228
+ | "flow-started"
229
+ | "checklist-loaded"
230
+ | "checklist-step-completed"
231
+ | "checklist-completed"
232
+ | "agent-message-sent"
233
+ | "agent-reply-received"
234
+ | "agent-error"
235
+ | "agent-conversation-created"
236
+ | "agent-tool-executed"
237
+ | string,
238
+ callback: (data?: any) => void
239
+ ): void;
240
+ function sendAgentMessage(
241
+ agentId: string,
242
+ message: string,
243
+ options?: {
244
+ conversationId?: string;
245
+ additionalContext?: Record<string, any>;
246
+ }
247
+ ): Promise<{
248
+ runId: string;
249
+ status: string;
250
+ response: string;
251
+ conversationId?: string;
252
+ outcome?: { type: string };
253
+ }>;
254
+ function clearAgentConversation(): void;
255
+
256
+ interface AgentChatMessage {
257
+ id: string;
258
+ role: 'user' | 'assistant';
259
+ content: string;
260
+ createdAt: string;
261
+ }
262
+
263
+ interface AgentChatState {
264
+ messages: AgentChatMessage[];
265
+ isExecuting: boolean;
266
+ error: any;
267
+ conversationId: string | null;
268
+ }
269
+
270
+ interface AgentChatOptions {
271
+ /** The agent ID to talk to. */
272
+ agentId: string;
273
+ /** Additional context sent with every message to the AI. */
274
+ context?: Record<string, any>;
275
+ /** Resume an existing conversation by ID. */
276
+ conversationId?: string;
277
+ /** Called on every state change (messages, loading, error). */
278
+ onChange?: (state: AgentChatState) => void;
279
+ /** Called when the agent replies. */
280
+ onReplyReceived?: (data: any) => void;
281
+ /** Called on error. */
282
+ onError?: (error: any) => void;
283
+ /** Called when a new conversation is created. */
284
+ onConversationCreated?: (conversationId: string) => void;
285
+ }
286
+
287
+ interface AgentChatInstance {
288
+ /** Send a message to the agent. */
289
+ sendMessage(content: string): Promise<void>;
290
+ /** Clear all messages and start a new conversation. */
291
+ clearMessages(): void;
292
+ /** Update the context sent with future messages. */
293
+ setContext(context: Record<string, any>): void;
294
+ /** Get the current state snapshot. */
295
+ getState(): AgentChatState;
296
+ /** Destroy this instance and stop all callbacks. */
297
+ destroy(): void;
298
+ }
299
+
300
+ /**
301
+ * Create a headless agent chat instance.
302
+ * Framework-agnostic — wire onChange to React setState, Vue ref, Svelte store, etc.
303
+ *
304
+ * @example
305
+ * ```js
306
+ * const chat = Gleap.createAgentChat({
307
+ * agentId: 'abc123',
308
+ * context: { page: '/billing' },
309
+ * onChange: ({ messages, isExecuting }) => { ... },
310
+ * });
311
+ * chat.sendMessage('Hello!');
312
+ * ```
313
+ */
314
+ function createAgentChat(options: AgentChatOptions): AgentChatInstance;
315
+
316
+ function getIdentity(): any;
317
+ function isUserIdentified(): boolean;
318
+ function setReplayOptions(options: {
319
+ blockClass?: string | RegExp;
320
+ blockSelector?: string;
321
+ ignoreClass?: string | RegExp;
322
+ ignoreSelector?: string;
323
+ ignoreCSSAttributes?: string[];
324
+ maskTextClass?: string | RegExp;
325
+ maskTextSelector?: string;
326
+ maskAllInputs?: boolean;
327
+ maskInputOptions?: {
328
+ password?: boolean;
329
+ [key: string]: any;
330
+ };
331
+ maskInputFn?: (text: string) => string;
332
+ maskTextFn?: (text: string) => string;
333
+ slimDOMOptions?: {
334
+ [key: string]: any;
335
+ };
336
+ dataURLOptions?: {
337
+ [key: string]: any;
338
+ };
339
+ hooks?: {
340
+ [key: string]: any;
341
+ };
342
+ packFn?: (events: any) => any;
343
+ sampling?: any;
344
+ recordCanvas?: boolean;
345
+ recordCrossOriginIframes?: boolean;
346
+ recordAfter?: 'DOMContentLoaded' | 'load';
347
+ inlineImages?: boolean;
348
+ collectFonts?: boolean;
349
+ userTriggeredOnInput?: boolean;
350
+ plugins?: {
351
+ [key: string]: any;
352
+ }[];
353
+ errorHandler?: (error: Error) => void;
354
+ }): void;
355
+ }
356
+ export default Gleap;
357
+
358
+ // Custom element type declarations — makes <gleap-*> work in JSX without extra setup
359
+ // Covers both React 18 (global JSX) and React 19+ (React.JSX)
360
+ declare global {
361
+ namespace JSX {
362
+ interface IntrinsicElements {
363
+ 'gleap-agent-conversation': any;
364
+ 'gleap-agent-input': any;
365
+ 'gleap-agent-profile-image': any;
366
+ 'gleap-agent-reply-bubble': any;
367
+ 'gleap-agent-user-bubble': any;
368
+ 'gleap-agent-typing-indicator': any;
369
+ 'gleap-agent-send-button': any;
370
+ 'gleap-agent-message-list': any;
371
+ 'gleap-checklist': any;
372
+ }
373
+ }
374
+ }
375
+
376
+ declare module 'react' {
377
+ namespace JSX {
378
+ interface IntrinsicElements {
379
+ 'gleap-agent-conversation': any;
380
+ 'gleap-agent-input': any;
381
+ 'gleap-agent-profile-image': any;
382
+ 'gleap-agent-reply-bubble': any;
383
+ 'gleap-agent-user-bubble': any;
384
+ 'gleap-agent-typing-indicator': any;
385
+ 'gleap-agent-send-button': any;
386
+ 'gleap-agent-message-list': any;
387
+ 'gleap-checklist': any;
388
+ }
389
+ }
390
+ }