@egain/ai-agent-sdk 0.1.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/README.md +295 -0
- package/dist/browser.js +22739 -0
- package/dist/core/AiAgent.d.ts +1126 -0
- package/dist/core/AiAgent.d.ts.map +1 -0
- package/dist/core/AiAgent.js +2037 -0
- package/dist/core/AiAgent.js.map +1 -0
- package/dist/core/api/ApiHelper.d.ts +433 -0
- package/dist/core/api/ApiHelper.d.ts.map +1 -0
- package/dist/core/api/ApiHelper.js +689 -0
- package/dist/core/api/ApiHelper.js.map +1 -0
- package/dist/core/api/CacheAdapter.d.ts +295 -0
- package/dist/core/api/CacheAdapter.d.ts.map +1 -0
- package/dist/core/api/CacheAdapter.js +298 -0
- package/dist/core/api/CacheAdapter.js.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
- package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthProvider.d.ts +13 -0
- package/dist/core/auth/AuthProvider.d.ts.map +1 -0
- package/dist/core/auth/AuthProvider.js +2 -0
- package/dist/core/auth/AuthProvider.js.map +1 -0
- package/dist/core/auth/AuthStrategy.d.ts +74 -0
- package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AuthStrategy.js +2 -0
- package/dist/core/auth/AuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthenticationService.d.ts +226 -0
- package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
- package/dist/core/auth/AuthenticationService.js +344 -0
- package/dist/core/auth/AuthenticationService.js.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.js +409 -0
- package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
- package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
- package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PreAuthStrategy.js +216 -0
- package/dist/core/auth/PreAuthStrategy.js.map +1 -0
- package/dist/core/auth/msal-browser.js +19683 -0
- package/dist/core/auth/msal-loader.d.ts +14 -0
- package/dist/core/auth/msal-loader.d.ts.map +1 -0
- package/dist/core/auth/msal-loader.js +43 -0
- package/dist/core/auth/msal-loader.js.map +1 -0
- package/dist/core/connection/Connection.d.ts +168 -0
- package/dist/core/connection/Connection.d.ts.map +1 -0
- package/dist/core/connection/Connection.js +290 -0
- package/dist/core/connection/Connection.js.map +1 -0
- package/dist/core/connection/ConnectionState.d.ts +11 -0
- package/dist/core/connection/ConnectionState.d.ts.map +1 -0
- package/dist/core/connection/ConnectionState.js +12 -0
- package/dist/core/connection/ConnectionState.js.map +1 -0
- package/dist/core/connection/Transport.d.ts +98 -0
- package/dist/core/connection/Transport.d.ts.map +1 -0
- package/dist/core/connection/Transport.js +27 -0
- package/dist/core/connection/Transport.js.map +1 -0
- package/dist/core/connection/WebSocketTransport.d.ts +65 -0
- package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
- package/dist/core/connection/WebSocketTransport.js +177 -0
- package/dist/core/connection/WebSocketTransport.js.map +1 -0
- package/dist/core/errors/SDKError.d.ts +27 -0
- package/dist/core/errors/SDKError.d.ts.map +1 -0
- package/dist/core/errors/SDKError.js +43 -0
- package/dist/core/errors/SDKError.js.map +1 -0
- package/dist/core/events/EventEmitter.d.ts +120 -0
- package/dist/core/events/EventEmitter.d.ts.map +1 -0
- package/dist/core/events/EventEmitter.js +183 -0
- package/dist/core/events/EventEmitter.js.map +1 -0
- package/dist/core/logging/LogLevel.d.ts +33 -0
- package/dist/core/logging/LogLevel.d.ts.map +1 -0
- package/dist/core/logging/LogLevel.js +40 -0
- package/dist/core/logging/LogLevel.js.map +1 -0
- package/dist/core/logging/Logger.d.ts +120 -0
- package/dist/core/logging/Logger.d.ts.map +1 -0
- package/dist/core/logging/Logger.js +204 -0
- package/dist/core/logging/Logger.js.map +1 -0
- package/dist/core/logging/globalLogger.d.ts +8 -0
- package/dist/core/logging/globalLogger.d.ts.map +1 -0
- package/dist/core/logging/globalLogger.js +12 -0
- package/dist/core/logging/globalLogger.js.map +1 -0
- package/dist/core/logging/types.d.ts +45 -0
- package/dist/core/logging/types.d.ts.map +1 -0
- package/dist/core/logging/types.js +2 -0
- package/dist/core/logging/types.js.map +1 -0
- package/dist/core/message/BaseMessageHandler.d.ts +208 -0
- package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
- package/dist/core/message/BaseMessageHandler.js +155 -0
- package/dist/core/message/BaseMessageHandler.js.map +1 -0
- package/dist/core/message/Message.d.ts +69 -0
- package/dist/core/message/Message.d.ts.map +1 -0
- package/dist/core/message/Message.js +131 -0
- package/dist/core/message/Message.js.map +1 -0
- package/dist/core/message/MessageProcessor.d.ts +51 -0
- package/dist/core/message/MessageProcessor.d.ts.map +1 -0
- package/dist/core/message/MessageProcessor.js +123 -0
- package/dist/core/message/MessageProcessor.js.map +1 -0
- package/dist/core/message/MessageTypes.d.ts +123 -0
- package/dist/core/message/MessageTypes.d.ts.map +1 -0
- package/dist/core/message/MessageTypes.js +106 -0
- package/dist/core/message/MessageTypes.js.map +1 -0
- package/dist/core/message/Transcript.d.ts +373 -0
- package/dist/core/message/Transcript.d.ts.map +1 -0
- package/dist/core/message/Transcript.js +355 -0
- package/dist/core/message/Transcript.js.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
- package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
- package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
- package/dist/core/message/types.d.ts +107 -0
- package/dist/core/message/types.d.ts.map +1 -0
- package/dist/core/message/types.js +30 -0
- package/dist/core/message/types.js.map +1 -0
- package/dist/core/platform/HookContract.d.ts +112 -0
- package/dist/core/platform/HookContract.d.ts.map +1 -0
- package/dist/core/platform/HookContract.js +13 -0
- package/dist/core/platform/HookContract.js.map +1 -0
- package/dist/core/platform/PlatformComponentService.d.ts +40 -0
- package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
- package/dist/core/platform/PlatformComponentService.js +12 -0
- package/dist/core/platform/PlatformComponentService.js.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.js +110 -0
- package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
- package/dist/core/polyfills.d.ts +16 -0
- package/dist/core/polyfills.d.ts.map +1 -0
- package/dist/core/polyfills.js +168 -0
- package/dist/core/polyfills.js.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.js +636 -0
- package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
- package/dist/core/queue/MessageQueue.d.ts +277 -0
- package/dist/core/queue/MessageQueue.d.ts.map +1 -0
- package/dist/core/queue/MessageQueue.js +291 -0
- package/dist/core/queue/MessageQueue.js.map +1 -0
- package/dist/core/types/PortalTypes.d.ts +51 -0
- package/dist/core/types/PortalTypes.d.ts.map +1 -0
- package/dist/core/types/PortalTypes.js +8 -0
- package/dist/core/types/PortalTypes.js.map +1 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/package.json +84 -0
package/README.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# @eGain/ai-agent-sdk
|
|
2
|
+
|
|
3
|
+
TypeScript-first SDK for eGain's AI Agent platform with WebSocket communication, automatic reconnection, and comprehensive message handling.
|
|
4
|
+
|
|
5
|
+
**Current release:** v0.0.14
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@eGain/ai-agent-sdk)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- 🔌 **WebSocket Communication** - Real-time bidirectional messaging with auto-reconnection
|
|
14
|
+
- 📬 **Message Queuing** - Automatic queuing when offline, flush on reconnect
|
|
15
|
+
- 🔐 **Multiple Auth Strategies** - Pre-Auth, Anonymous, PKCE, Client Credentials
|
|
16
|
+
- 🎯 **Type-Safe Events** - Full TypeScript support with strongly-typed events
|
|
17
|
+
- 📝 **Transcript Management** - Built-in conversation history with filtering
|
|
18
|
+
- 🧠 **Context Persistence** - Automatic caching and restoration on reconnect
|
|
19
|
+
- 🛡️ **Error Handling** - Comprehensive typed errors that protect your app
|
|
20
|
+
- 🌐 **Universal** - Works in Browser and Node.js
|
|
21
|
+
- 🏢 **Portal initialization** - Contact center REST pipeline (portals, agents, profiles) before WebSocket `connect()`
|
|
22
|
+
- 🔌 **Platform connectors** - Load CC connector scripts; typed `HookContract` / `PlatformComponentService` for integrators
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install @eGain/ai-agent-sdk
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**GitHub Packages Configuration** (`.npmrc`):
|
|
31
|
+
```ini
|
|
32
|
+
@eGain:registry=https://npm.pkg.github.com/
|
|
33
|
+
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import { AiAgent } from "@eGain/ai-agent-sdk";
|
|
40
|
+
|
|
41
|
+
const agent = new AiAgent({
|
|
42
|
+
id: "your-agent-id",
|
|
43
|
+
endpoint: "https://your-endpoint.com",
|
|
44
|
+
auth: { type: "pre-auth", accessToken: "your-access-token" },
|
|
45
|
+
autoConnect: true
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
agent.on("agentMessage", (event) => {
|
|
49
|
+
console.log("Agent:", event.payload.message?.content);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
agent.on("error", (event) => {
|
|
53
|
+
console.error("Error:", event.payload.error);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
await agent.initialize();
|
|
57
|
+
await agent.send("Hello!");
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Contact center (portal flow)
|
|
61
|
+
|
|
62
|
+
For agents that use the portal / profile pipeline, listen for selection events and call `connect()` after `initialized`:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import { AiAgent } from "@eGain/ai-agent-sdk";
|
|
66
|
+
|
|
67
|
+
const agent = new AiAgent({
|
|
68
|
+
id: "your-agent-id",
|
|
69
|
+
endpoint: "https://your-endpoint.com",
|
|
70
|
+
initParams: { authType: "user", userid: "user-1", platform: "standalone" },
|
|
71
|
+
authScheme: "popup",
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
agent.on("portalsAvailable", (e) => agent.selectPortal(e.payload.portals[0]));
|
|
75
|
+
agent.on("profilesAvailable", (e) => agent.selectUserProfile(e.payload.profiles[0]));
|
|
76
|
+
agent.on("initialized", async () => {
|
|
77
|
+
await agent.connect();
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
await agent.initialize();
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
See the [Portal initialization](https://egain.github.io/ai-agent-sdk/guide/portal-initialization.html) guide for the full flow.
|
|
84
|
+
|
|
85
|
+
## Documentation
|
|
86
|
+
|
|
87
|
+
Published docs and TypeDoc on the site below describe the **current release** (version at top of this file).
|
|
88
|
+
|
|
89
|
+
📚 **[Full Documentation](https://egain.github.io/ai-agent-sdk/)**
|
|
90
|
+
|
|
91
|
+
| Guide | Description |
|
|
92
|
+
|-------|-------------|
|
|
93
|
+
| [Getting Started](https://egain.github.io/ai-agent-sdk/guide/) | Introduction and concepts |
|
|
94
|
+
| [Installation](https://egain.github.io/ai-agent-sdk/guide/installation.html) | Setup instructions |
|
|
95
|
+
| [Quick Start](https://egain.github.io/ai-agent-sdk/guide/quick-start.html) | First integration |
|
|
96
|
+
| [Authentication](https://egain.github.io/ai-agent-sdk/guide/authentication.html) | Auth strategies |
|
|
97
|
+
| [Events](https://egain.github.io/ai-agent-sdk/guide/events.html) | Event handling |
|
|
98
|
+
| [Portal initialization](https://egain.github.io/ai-agent-sdk/guide/portal-initialization.html) | CC portal / agent / profile pipeline |
|
|
99
|
+
| [Platform connectors](https://egain.github.io/ai-agent-sdk/guide/platform-connectors.html) | Connector scripts and `HookContract` |
|
|
100
|
+
| [Message Flow](https://egain.github.io/ai-agent-sdk/guide/message-flow.html) | Sending/receiving messages |
|
|
101
|
+
| [API Reference](https://egain.github.io/ai-agent-sdk/api-generated/README.html) | TypeDoc: classes, interfaces, and methods |
|
|
102
|
+
| [Types](https://egain.github.io/ai-agent-sdk/api-generated/README.html) | `Portal`, `UserProfile`, `AgentListItem`, API options (see TypeDoc index) |
|
|
103
|
+
|
|
104
|
+
## Authentication Options
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Pre-Auth (API Key / Token)
|
|
108
|
+
auth: { type: "pre-auth", accessToken: "your-access-token" }
|
|
109
|
+
|
|
110
|
+
// Anonymous
|
|
111
|
+
auth: { type: "anonymous" }
|
|
112
|
+
|
|
113
|
+
// PKCE (Browser OAuth)
|
|
114
|
+
auth: {
|
|
115
|
+
type: "pkce",
|
|
116
|
+
config: {
|
|
117
|
+
authorizationUrl: "https://auth.example.com/authorize",
|
|
118
|
+
tokenUrl: "https://auth.example.com/token",
|
|
119
|
+
clientId: "your-client-id",
|
|
120
|
+
redirectUri: "https://your-app.com/callback"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Pre-Auth (Server-provided token)
|
|
125
|
+
auth: {
|
|
126
|
+
type: "pre-auth",
|
|
127
|
+
accessToken: "token-from-server"
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Events
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
agent.on("connected", (event) => { /* Connected */ });
|
|
135
|
+
agent.on("agentMessage", (event) => { /* Agent response */ });
|
|
136
|
+
agent.on("message", (event) => { /* Any message */ });
|
|
137
|
+
agent.on("heartbeat", (event) => { /* Agent typing */ });
|
|
138
|
+
agent.on("error", (event) => { /* Error occurred */ });
|
|
139
|
+
agent.on("closed", (event) => { /* Disconnected */ });
|
|
140
|
+
agent.on("stateChanged", (event) => { /* State change */ });
|
|
141
|
+
agent.on("queueFlushed", (event) => { /* Queue sent */ });
|
|
142
|
+
agent.on("tokenExpiring", (event) => { /* Token refresh needed */ });
|
|
143
|
+
agent.on("transcriptUpdate", (event) => { /* Chat transcript line */ });
|
|
144
|
+
agent.on("initialized", (event) => { /* CC init done; safe to connect */ });
|
|
145
|
+
agent.on("portalsAvailable", (event) => { /* Call selectPortal */ });
|
|
146
|
+
agent.on("agentsAvailable", (event) => { /* Call selectAgent */ });
|
|
147
|
+
agent.on("profilesAvailable", (event) => { /* Call selectUserProfile */ });
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Message Helpers
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import {
|
|
154
|
+
createContextMessage,
|
|
155
|
+
createFeedbackMessage,
|
|
156
|
+
createEscalationMessage
|
|
157
|
+
} from "@eGain/ai-agent-sdk";
|
|
158
|
+
|
|
159
|
+
// Send context (auto-cached for reconnect)
|
|
160
|
+
await agent.send(createContextMessage({
|
|
161
|
+
context: { userId: "123", language: "en" }
|
|
162
|
+
}));
|
|
163
|
+
|
|
164
|
+
// Send feedback
|
|
165
|
+
await agent.send(createFeedbackMessage({
|
|
166
|
+
rating: 5,
|
|
167
|
+
answerMessageId: "msg-456"
|
|
168
|
+
}));
|
|
169
|
+
|
|
170
|
+
// Trigger escalation
|
|
171
|
+
await agent.send(createEscalationMessage({
|
|
172
|
+
escalationEvent: { type: "transfer", reason: "complex" }
|
|
173
|
+
}));
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Node.js Setup
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
npm install ws
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The SDK automatically loads the `ws` package when running in Node.js. Just import and use:
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
import { AiAgent } from "@eGain/ai-agent-sdk";
|
|
186
|
+
|
|
187
|
+
const agent = new AiAgent({
|
|
188
|
+
id: "your-agent-id",
|
|
189
|
+
endpoint: "https://your-endpoint.com",
|
|
190
|
+
auth: { type: "pre-auth", accessToken: process.env.AI_AGENT_TOKEN }
|
|
191
|
+
});
|
|
192
|
+
// ... rest of code
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
If the automatic polyfill doesn't work in your environment, you can set it up manually:
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
import WebSocket from "ws";
|
|
199
|
+
(global as any).WebSocket = WebSocket;
|
|
200
|
+
|
|
201
|
+
import { AiAgent } from "@eGain/ai-agent-sdk";
|
|
202
|
+
// ... rest of code
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Browser (UMD)
|
|
206
|
+
|
|
207
|
+
```html
|
|
208
|
+
<script src="https://unpkg.com/@eGain/ai-agent-sdk/dist/browser.js"></script>
|
|
209
|
+
<script>
|
|
210
|
+
const agent = new eGain.AiAgent({ ... });
|
|
211
|
+
</script>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Development
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Install dependencies
|
|
218
|
+
npm install
|
|
219
|
+
|
|
220
|
+
# Build
|
|
221
|
+
npm run build:all
|
|
222
|
+
|
|
223
|
+
# Test
|
|
224
|
+
npm test
|
|
225
|
+
|
|
226
|
+
# Documentation
|
|
227
|
+
npm run docs:dev # Dev server
|
|
228
|
+
npm run docs:build # Build docs
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Examples
|
|
232
|
+
|
|
233
|
+
See [usage-examples](https://github.com/eGain/ai-agent-sdk/tree/master/ai-agent-sdk/usage-examples) in this repository for complete examples:
|
|
234
|
+
- **Basic Usage** - Simple getting started
|
|
235
|
+
- **Browser Test** - Browser integration with UI
|
|
236
|
+
- **Server Test** - Node.js implementation
|
|
237
|
+
|
|
238
|
+
## API Reference
|
|
239
|
+
|
|
240
|
+
### AiAgent Methods
|
|
241
|
+
|
|
242
|
+
| Method | Description |
|
|
243
|
+
|--------|-------------|
|
|
244
|
+
| `initialize()` | Initialize the agent (required) |
|
|
245
|
+
| `connect()` | Connect to the server |
|
|
246
|
+
| `disconnect(options?)` | Disconnect from server |
|
|
247
|
+
| `restartConnection()` | Restart with new session |
|
|
248
|
+
| `send(data, options?)` | Send a message |
|
|
249
|
+
| `getState()` | Get connection state |
|
|
250
|
+
| `isConnected()` | Check if connected |
|
|
251
|
+
| `getTranscript(options?)` | Get conversation transcript |
|
|
252
|
+
| `getContext()` | Get stored context |
|
|
253
|
+
| `removeContext()` | Remove stored context |
|
|
254
|
+
| `updateAccessToken(token)` | Update auth token |
|
|
255
|
+
| `selectPortal(portal)` | CC: continue after `portalsAvailable` |
|
|
256
|
+
| `selectAgent(agent)` | CC Flow B: continue after `agentsAvailable` |
|
|
257
|
+
| `selectUserProfile(profile)` | CC: continue after `profilesAvailable` |
|
|
258
|
+
| `getInitParams()` | Copy of configured `initParams` |
|
|
259
|
+
| `getIsInitialized()` | Whether `initialize()` completed |
|
|
260
|
+
| `restartPortalInitializer()` | Re-run CC portal pipeline (or `restartConnection` fallback) |
|
|
261
|
+
| `updateUserProfile(profile)` | Switch profile after CC init without full pipeline restart |
|
|
262
|
+
| `getUserDetails()` | User details from init (or `null`) |
|
|
263
|
+
| `getCallTranscript()` / `clearCallTranscript()` | Telephony call transcript (connector) |
|
|
264
|
+
| `getCallerInfo()` / `getConversationId()` | Connector-provided CTI state |
|
|
265
|
+
|
|
266
|
+
### Configuration
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
new AiAgent({
|
|
270
|
+
id: string, // Required: Agent ID
|
|
271
|
+
endpoint: string, // Required: Endpoint URL
|
|
272
|
+
auth?: AuthenticationInput, // Optional: Auth config (defaults to anonymous)
|
|
273
|
+
autoConnect?: boolean, // Auto-connect (default: false)
|
|
274
|
+
maxQueueSize?: number, // Queue size (default: 1000)
|
|
275
|
+
maxReconnectAttempts?: number, // Reconnect attempts (default: Infinity)
|
|
276
|
+
baseReconnectDelay?: number, // Base delay ms (default: 1000)
|
|
277
|
+
maxReconnectDelay?: number, // Max delay ms (default: 30000)
|
|
278
|
+
logLevel?: LogLevel, // Log level (default: INFO)
|
|
279
|
+
transcriptConfig?: TranscriptConfig,
|
|
280
|
+
cache?: CacheConfig,
|
|
281
|
+
sessionId?: string | number, // Skip session fetch if already known
|
|
282
|
+
scopes?: string[], // OAuth resource scopes
|
|
283
|
+
initParams?: Record<string, string>, // CC: portalIds, authType, platform, etc.
|
|
284
|
+
platformScriptUrl?: string, // Override connector script URL
|
|
285
|
+
authScheme?: "popup" | "redirect" // Auto-built PKCE only
|
|
286
|
+
});
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## License
|
|
290
|
+
|
|
291
|
+
MIT
|
|
292
|
+
|
|
293
|
+
## Support
|
|
294
|
+
|
|
295
|
+
For issues and questions, please open an issue on [GitHub](https://github.com/eGain/ai-agent-sdk/issues).
|