@aui.io/aui-client 3.1.2 → 3.2.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 +196 -69
- package/dist/cjs/ApolloClientWrapper.d.ts +52 -24
- package/dist/cjs/ApolloClientWrapper.js +86 -58
- package/dist/cjs/BaseClient.d.ts +5 -0
- package/dist/cjs/Client.d.ts +4 -1
- package/dist/cjs/Client.js +24 -9
- package/dist/cjs/api/resources/agentVersions/client/Client.d.ts +26 -2
- package/dist/cjs/api/resources/agentVersions/client/Client.js +96 -43
- package/dist/cjs/api/resources/agentVersions/client/requests/AgentVersionPushRequest.d.ts +1 -1
- package/dist/cjs/api/resources/agents/client/Client.d.ts +22 -7
- package/dist/cjs/api/resources/agents/client/Client.js +80 -39
- package/dist/cjs/api/resources/agents/client/requests/{ExternalAgentCreateRequest.d.ts → AgentCreateRequest.d.ts} +1 -1
- package/dist/{esm/api/resources/agents/client/requests/ExternalAgentUpdateRequest.d.mts → cjs/api/resources/agents/client/requests/AgentUpdateRequest.d.ts} +1 -1
- package/dist/cjs/api/resources/agents/client/requests/ListAgentsRequest.d.ts +1 -1
- package/dist/cjs/api/resources/agents/client/requests/index.d.ts +2 -2
- package/dist/cjs/api/resources/auth/client/Client.d.ts +3 -2
- package/dist/cjs/api/resources/auth/client/Client.js +20 -8
- package/dist/cjs/api/resources/channels/client/Client.d.ts +7 -6
- package/dist/cjs/api/resources/channels/client/Client.js +24 -12
- package/dist/cjs/api/resources/channels/client/requests/InitiateThreadRequest.d.ts +3 -10
- package/dist/cjs/api/resources/messaging/client/Client.d.ts +51 -14
- package/dist/cjs/api/resources/messaging/client/Client.js +249 -50
- package/dist/cjs/api/resources/messaging/client/requests/GenerateFollowupSuggestionsRequest.d.ts +9 -0
- package/dist/cjs/api/resources/messaging/client/requests/RerunMessageRequest.d.ts +2 -2
- package/dist/cjs/api/resources/messaging/client/requests/StreamMessageRequest.d.ts +0 -1
- package/dist/cjs/api/resources/messaging/client/requests/index.d.ts +1 -0
- package/dist/cjs/api/resources/projects/client/Client.d.ts +14 -2
- package/dist/cjs/api/resources/projects/client/Client.js +66 -31
- package/dist/cjs/api/resources/session/client/Client.d.ts +2 -1
- package/dist/cjs/api/resources/session/client/Client.js +12 -2
- package/dist/cjs/api/resources/threads/client/Client.d.ts +37 -2
- package/dist/cjs/api/resources/threads/client/Client.js +155 -31
- package/dist/cjs/api/resources/threads/client/requests/UpdateThreadRequest.d.ts +8 -0
- package/dist/cjs/api/resources/threads/client/requests/index.d.ts +1 -0
- package/dist/cjs/api/types/{ExternalAgent.d.ts → Agent.d.ts} +1 -1
- package/dist/cjs/api/types/{ExternalAgentCreateResponse.d.ts → AgentCreateResponse.d.ts} +1 -1
- package/dist/cjs/api/types/{ExternalAgentListFilters.d.ts → AgentListFilters.d.ts} +1 -1
- package/dist/{esm/api/types/ExternalAgentUpdateResponse.d.mts → cjs/api/types/AgentUpdateResponse.d.ts} +1 -1
- package/dist/cjs/api/types/AgentVariables.d.ts +12 -0
- package/dist/cjs/api/types/AgentVersionPullResponse.d.ts +2 -3
- package/dist/cjs/api/types/AgentVersionPushResponse.d.ts +1 -1
- package/dist/cjs/api/types/AgentVersionWelcomeMessageResponse.d.ts +6 -0
- package/dist/cjs/api/types/GenerateFollowupSuggestionsResponse.d.ts +4 -0
- package/dist/cjs/api/types/PageAgent.d.ts +6 -0
- package/dist/cjs/api/types/PageAgentVersion.d.ts +6 -0
- package/dist/cjs/api/types/PageAgentVersion.js +3 -0
- package/dist/cjs/api/types/{ExternalPageLinks.d.ts → PageLinks.d.ts} +1 -1
- package/dist/cjs/api/types/PageLinks.js +3 -0
- package/dist/cjs/api/types/{ExternalPageMeta.d.ts → PageMeta.d.ts} +1 -1
- package/dist/cjs/api/types/PageMeta.js +3 -0
- package/dist/cjs/api/types/PageProject.d.ts +6 -0
- package/dist/cjs/api/types/PageProject.js +3 -0
- package/dist/cjs/api/types/PageThreadListItem.d.ts +6 -0
- package/dist/cjs/api/types/PageThreadListItem.js +3 -0
- package/dist/cjs/api/types/Project.d.ts +1 -1
- package/dist/cjs/api/types/SendMessageRequest.d.ts +7 -5
- package/dist/cjs/api/types/ThreadListFilters.d.ts +2 -5
- package/dist/cjs/api/types/TokenResponse.d.ts +4 -8
- package/dist/cjs/api/types/TraceDecision.d.ts +1 -2
- package/dist/cjs/api/types/VersionStats.d.ts +1 -2
- package/dist/cjs/api/types/index.d.ts +13 -10
- package/dist/cjs/api/types/index.js +13 -10
- package/dist/cjs/core/auth/AuthProvider.d.ts +4 -0
- package/dist/cjs/core/auth/AuthProvider.js +2 -0
- package/dist/cjs/core/auth/AuthRequest.d.ts +9 -0
- package/dist/cjs/core/auth/AuthRequest.js +2 -0
- package/dist/cjs/core/auth/BasicAuth.d.ts +8 -0
- package/dist/cjs/core/auth/BasicAuth.js +27 -0
- package/dist/cjs/core/auth/BearerToken.d.ts +5 -0
- package/dist/cjs/core/auth/BearerToken.js +15 -0
- package/dist/cjs/core/auth/index.d.ts +4 -0
- package/dist/cjs/core/auth/index.js +7 -0
- package/dist/cjs/core/base64.d.ts +2 -0
- package/dist/cjs/core/base64.js +26 -0
- package/dist/cjs/core/index.d.ts +2 -0
- package/dist/cjs/core/index.js +2 -0
- package/dist/cjs/environments.d.ts +2 -2
- package/dist/cjs/environments.js +2 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/ApolloClientWrapper.d.mts +52 -24
- package/dist/esm/ApolloClientWrapper.mjs +83 -56
- package/dist/esm/BaseClient.d.mts +5 -0
- package/dist/esm/Client.d.mts +4 -1
- package/dist/esm/Client.mjs +25 -10
- package/dist/esm/api/resources/agentVersions/client/Client.d.mts +26 -2
- package/dist/esm/api/resources/agentVersions/client/Client.mjs +97 -44
- package/dist/esm/api/resources/agentVersions/client/requests/AgentVersionPushRequest.d.mts +1 -1
- package/dist/esm/api/resources/agents/client/Client.d.mts +22 -7
- package/dist/esm/api/resources/agents/client/Client.mjs +81 -40
- package/dist/esm/api/resources/agents/client/requests/{ExternalAgentCreateRequest.d.mts → AgentCreateRequest.d.mts} +1 -1
- package/dist/{cjs/api/resources/agents/client/requests/ExternalAgentUpdateRequest.d.ts → esm/api/resources/agents/client/requests/AgentUpdateRequest.d.mts} +1 -1
- package/dist/esm/api/resources/agents/client/requests/ListAgentsRequest.d.mts +1 -1
- package/dist/esm/api/resources/agents/client/requests/index.d.mts +2 -2
- package/dist/esm/api/resources/auth/client/Client.d.mts +3 -2
- package/dist/esm/api/resources/auth/client/Client.mjs +21 -9
- package/dist/esm/api/resources/channels/client/Client.d.mts +7 -6
- package/dist/esm/api/resources/channels/client/Client.mjs +25 -13
- package/dist/esm/api/resources/channels/client/requests/InitiateThreadRequest.d.mts +3 -10
- package/dist/esm/api/resources/messaging/client/Client.d.mts +51 -14
- package/dist/esm/api/resources/messaging/client/Client.mjs +249 -50
- package/dist/esm/api/resources/messaging/client/requests/GenerateFollowupSuggestionsRequest.d.mts +9 -0
- package/dist/esm/api/resources/messaging/client/requests/RerunMessageRequest.d.mts +2 -2
- package/dist/esm/api/resources/messaging/client/requests/StreamMessageRequest.d.mts +0 -1
- package/dist/esm/api/resources/messaging/client/requests/index.d.mts +1 -0
- package/dist/esm/api/resources/projects/client/Client.d.mts +14 -2
- package/dist/esm/api/resources/projects/client/Client.mjs +67 -32
- package/dist/esm/api/resources/session/client/Client.d.mts +2 -1
- package/dist/esm/api/resources/session/client/Client.mjs +12 -2
- package/dist/esm/api/resources/threads/client/Client.d.mts +37 -2
- package/dist/esm/api/resources/threads/client/Client.mjs +156 -32
- package/dist/esm/api/resources/threads/client/requests/UpdateThreadRequest.d.mts +8 -0
- package/dist/esm/api/resources/threads/client/requests/index.d.mts +1 -0
- package/dist/esm/api/types/{ExternalAgent.d.mts → Agent.d.mts} +1 -1
- package/dist/esm/api/types/{ExternalAgentCreateResponse.d.mts → AgentCreateResponse.d.mts} +1 -1
- package/dist/esm/api/types/{ExternalAgentListFilters.d.mts → AgentListFilters.d.mts} +1 -1
- package/dist/{cjs/api/types/ExternalAgentUpdateResponse.d.ts → esm/api/types/AgentUpdateResponse.d.mts} +1 -1
- package/dist/esm/api/types/AgentVariables.d.mts +12 -0
- package/dist/esm/api/types/AgentVersionPullResponse.d.mts +2 -3
- package/dist/esm/api/types/AgentVersionPushResponse.d.mts +1 -1
- package/dist/esm/api/types/AgentVersionWelcomeMessageResponse.d.mts +6 -0
- package/dist/esm/api/types/GenerateFollowupSuggestionsResponse.d.mts +4 -0
- package/dist/esm/api/types/PageAgent.d.mts +6 -0
- package/dist/esm/api/types/PageAgentVersion.d.mts +6 -0
- package/dist/esm/api/types/PageAgentVersion.mjs +2 -0
- package/dist/esm/api/types/{ExternalPageLinks.d.mts → PageLinks.d.mts} +1 -1
- package/dist/esm/api/types/PageLinks.mjs +2 -0
- package/dist/esm/api/types/{ExternalPageMeta.d.mts → PageMeta.d.mts} +1 -1
- package/dist/esm/api/types/PageMeta.mjs +2 -0
- package/dist/esm/api/types/PageProject.d.mts +6 -0
- package/dist/esm/api/types/PageProject.mjs +2 -0
- package/dist/esm/api/types/PageThreadListItem.d.mts +6 -0
- package/dist/esm/api/types/PageThreadListItem.mjs +2 -0
- package/dist/esm/api/types/Project.d.mts +1 -1
- package/dist/esm/api/types/SendMessageRequest.d.mts +7 -5
- package/dist/esm/api/types/ThreadListFilters.d.mts +2 -5
- package/dist/esm/api/types/TokenResponse.d.mts +4 -8
- package/dist/esm/api/types/TraceDecision.d.mts +1 -2
- package/dist/esm/api/types/VersionStats.d.mts +1 -2
- package/dist/esm/api/types/index.d.mts +13 -10
- package/dist/esm/api/types/index.mjs +13 -10
- package/dist/esm/core/auth/AuthProvider.d.mts +4 -0
- package/dist/esm/core/auth/AuthProvider.mjs +1 -0
- package/dist/esm/core/auth/AuthRequest.d.mts +9 -0
- package/dist/esm/core/auth/AuthRequest.mjs +1 -0
- package/dist/esm/core/auth/BasicAuth.d.mts +8 -0
- package/dist/esm/core/auth/BasicAuth.mjs +24 -0
- package/dist/esm/core/auth/BearerToken.d.mts +5 -0
- package/dist/esm/core/auth/BearerToken.mjs +12 -0
- package/dist/esm/core/auth/index.d.mts +4 -0
- package/dist/esm/core/auth/index.mjs +2 -0
- package/dist/esm/core/base64.d.mts +2 -0
- package/dist/esm/core/base64.mjs +22 -0
- package/dist/esm/core/index.d.mts +2 -0
- package/dist/esm/core/index.mjs +2 -0
- package/dist/esm/environments.d.mts +2 -2
- package/dist/esm/environments.mjs +2 -2
- package/dist/esm/index.d.mts +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +1 -1
- package/reference.md +568 -29
- package/dist/cjs/api/types/ExternalPageAgentVersion.d.ts +0 -6
- package/dist/cjs/api/types/ExternalPageExternalAgent.d.ts +0 -6
- package/dist/cjs/api/types/ExternalPageProject.d.ts +0 -6
- package/dist/cjs/api/types/ExternalPageThreadListItem.d.ts +0 -6
- package/dist/esm/api/types/ExternalPageAgentVersion.d.mts +0 -6
- package/dist/esm/api/types/ExternalPageExternalAgent.d.mts +0 -6
- package/dist/esm/api/types/ExternalPageProject.d.mts +0 -6
- package/dist/esm/api/types/ExternalPageThreadListItem.d.mts +0 -6
- /package/dist/cjs/api/resources/agents/client/requests/{ExternalAgentCreateRequest.js → AgentCreateRequest.js} +0 -0
- /package/dist/cjs/api/resources/agents/client/requests/{ExternalAgentUpdateRequest.js → AgentUpdateRequest.js} +0 -0
- /package/dist/cjs/api/{types/ExternalAgent.js → resources/messaging/client/requests/GenerateFollowupSuggestionsRequest.js} +0 -0
- /package/dist/cjs/api/{types/ExternalAgentCreateResponse.js → resources/threads/client/requests/UpdateThreadRequest.js} +0 -0
- /package/dist/cjs/api/types/{ExternalAgentListFilters.js → Agent.js} +0 -0
- /package/dist/cjs/api/types/{ExternalAgentUpdateResponse.js → AgentCreateResponse.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageAgentVersion.js → AgentListFilters.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageExternalAgent.js → AgentUpdateResponse.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageLinks.js → AgentVariables.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageMeta.js → AgentVersionWelcomeMessageResponse.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageProject.js → GenerateFollowupSuggestionsResponse.js} +0 -0
- /package/dist/cjs/api/types/{ExternalPageThreadListItem.js → PageAgent.js} +0 -0
- /package/dist/esm/api/resources/agents/client/requests/{ExternalAgentCreateRequest.mjs → AgentCreateRequest.mjs} +0 -0
- /package/dist/esm/api/resources/agents/client/requests/{ExternalAgentUpdateRequest.mjs → AgentUpdateRequest.mjs} +0 -0
- /package/dist/esm/api/{types/ExternalAgent.mjs → resources/messaging/client/requests/GenerateFollowupSuggestionsRequest.mjs} +0 -0
- /package/dist/esm/api/{types/ExternalAgentCreateResponse.mjs → resources/threads/client/requests/UpdateThreadRequest.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalAgentListFilters.mjs → Agent.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalAgentUpdateResponse.mjs → AgentCreateResponse.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageAgentVersion.mjs → AgentListFilters.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageExternalAgent.mjs → AgentUpdateResponse.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageLinks.mjs → AgentVariables.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageMeta.mjs → AgentVersionWelcomeMessageResponse.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageProject.mjs → GenerateFollowupSuggestionsResponse.mjs} +0 -0
- /package/dist/esm/api/types/{ExternalPageThreadListItem.mjs → PageAgent.mjs} +0 -0
package/README.md
CHANGED
|
@@ -13,46 +13,43 @@ npm install @aui.io/aui-client
|
|
|
13
13
|
|
|
14
14
|
## Authentication
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
There are two clients, one per credential flow — you never manage bearer tokens yourself. Each client exposes only the resources for its surface; pick the one that matches your environment (you can use both).
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
| Client | Credential | Resources | Browser-safe |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `ApolloMessagingClient` | Publishable key (`pk_network_…` / `pk_org_…`) | `messaging`, `channels`, WebSocket sessions | **Yes** |
|
|
21
|
+
| `ApolloManagementClient` | Organization API key | `projects`, `agents`, `agentVersions`, `threads` | **No** — server-side only |
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
- **`ApolloMessagingClient`** exchanges the publishable key automatically at `POST /management/v1/auth/token` for a short-lived bearer token that is cached and refreshed transparently, and sent as `Authorization: Bearer …`.
|
|
24
|
+
- **`ApolloManagementClient`** sends the organization API key on every request as the `x-organization-api-key` header — there is no token exchange, caching, or refresh.
|
|
22
25
|
|
|
23
26
|
```typescript
|
|
24
|
-
import {
|
|
27
|
+
import { ApolloMessagingClient, ApolloManagementClient } from '@aui.io/aui-client';
|
|
25
28
|
|
|
26
|
-
//
|
|
27
|
-
const
|
|
29
|
+
// Browser / widget / end-user (publishable key)
|
|
30
|
+
const messaging = new ApolloMessagingClient({
|
|
28
31
|
publishableKey: 'pk_network_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
29
32
|
});
|
|
30
33
|
|
|
31
|
-
//
|
|
32
|
-
const
|
|
34
|
+
// Backend / CI (organization API key — never ship this to the browser)
|
|
35
|
+
const management = new ApolloManagementClient({
|
|
33
36
|
organizationApiKey: 'YOUR_ORG_API_KEY',
|
|
34
37
|
});
|
|
35
38
|
```
|
|
36
39
|
|
|
37
40
|
## Quick Start
|
|
38
41
|
|
|
42
|
+
Messaging (publishable key) — the agent is derived from the key, so you don't pass it:
|
|
43
|
+
|
|
39
44
|
```typescript
|
|
40
|
-
import {
|
|
45
|
+
import { ApolloMessagingClient } from '@aui.io/aui-client';
|
|
41
46
|
|
|
42
|
-
const
|
|
47
|
+
const messaging = new ApolloMessagingClient({
|
|
43
48
|
publishableKey: 'pk_network_xxxxxxxxxxxxxxxxxxxxxxxx',
|
|
44
49
|
});
|
|
45
50
|
|
|
46
|
-
// List projects, then the agents in the first project
|
|
47
|
-
const projects = await client.projects.listProjects();
|
|
48
|
-
const projectId = projects.results[0].id;
|
|
49
|
-
|
|
50
|
-
const agents = await client.agents.listAgents(projectId, { filters: {} });
|
|
51
|
-
const agentId = agents.results[0].id;
|
|
52
|
-
|
|
53
51
|
// Send a message (creates a thread if thread_id is omitted)
|
|
54
|
-
const response = await
|
|
55
|
-
agent_id: agentId,
|
|
52
|
+
const response = await messaging.messaging.sendMessage({
|
|
56
53
|
user_id: 'end-user-123',
|
|
57
54
|
text: 'Hello from the SDK',
|
|
58
55
|
});
|
|
@@ -60,82 +57,203 @@ const response = await client.messaging.sendMessage({
|
|
|
60
57
|
console.log('Thread:', response.thread_id);
|
|
61
58
|
```
|
|
62
59
|
|
|
60
|
+
Management (organization API key, server-side only):
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
import { ApolloManagementClient } from '@aui.io/aui-client';
|
|
64
|
+
|
|
65
|
+
const management = new ApolloManagementClient({
|
|
66
|
+
organizationApiKey: 'YOUR_ORG_API_KEY',
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const projects = await management.projects.listProjects();
|
|
70
|
+
const projectId = projects.results[0].id;
|
|
71
|
+
|
|
72
|
+
const agents = await management.agents.listAgents(projectId, { filters: {} });
|
|
73
|
+
```
|
|
74
|
+
|
|
63
75
|
## Configuration
|
|
64
76
|
|
|
65
|
-
|
|
77
|
+
Each client takes its credential:
|
|
66
78
|
|
|
67
79
|
```typescript
|
|
68
|
-
interface
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
80
|
+
interface ApolloMessagingClient.Options {
|
|
81
|
+
publishableKey: string; // pk_network_… or pk_org_…
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface ApolloManagementClient.Options {
|
|
85
|
+
organizationApiKey: string; // server-side only
|
|
72
86
|
}
|
|
73
87
|
```
|
|
74
88
|
|
|
75
|
-
|
|
89
|
+
## REST API
|
|
90
|
+
|
|
91
|
+
Resources are split by surface: messaging resources live on `ApolloMessagingClient`, management resources on `ApolloManagementClient`. All list endpoints are paginated and return `{ results, meta }`, where `meta.has_more` indicates further pages.
|
|
92
|
+
|
|
93
|
+
### Messaging client (`ApolloMessagingClient`)
|
|
94
|
+
|
|
95
|
+
#### Messaging — `messaging.messaging`
|
|
96
|
+
|
|
97
|
+
Full method list:
|
|
98
|
+
|
|
99
|
+
| Method | Description |
|
|
100
|
+
| --- | --- |
|
|
101
|
+
| `sendMessage(request)` | Send a message and get the full reply. Omit `thread_id` to start a new thread. |
|
|
102
|
+
| `streamMessage(request)` | Same as `sendMessage`, but streams the reply token-by-token over Server-Sent Events. |
|
|
103
|
+
| `rerun(threadId, request)` | Re-run the latest turn of a thread. |
|
|
104
|
+
| `listMessages(threadId)` | The thread transcript, scoped to the key's agent. |
|
|
105
|
+
| `threadTrace(threadId)` | Reasoning trace for every interaction in a thread. |
|
|
106
|
+
| `interactionTrace(interactionId)` | Reasoning trace for a single interaction. |
|
|
107
|
+
| `getWelcomeMessage()` | The agent's welcome message (from its live version). |
|
|
108
|
+
| `generateFollowupSuggestions(request)` | Suggested follow-up prompts from a context you provide. |
|
|
76
109
|
|
|
77
110
|
```typescript
|
|
78
|
-
|
|
111
|
+
// Send a message. Omit thread_id to start a new thread. The agent rides the key,
|
|
112
|
+
// so it isn't passed in the body.
|
|
113
|
+
const res = await messaging.messaging.sendMessage({
|
|
114
|
+
user_id: 'end-user-123',
|
|
115
|
+
text: 'What can you help me with?',
|
|
116
|
+
// thread_id: existingThreadId,
|
|
117
|
+
// Optional per-message values for the agent's configured context variables:
|
|
118
|
+
// agent_variables: { static: { customer_name: 'Ada' }, dynamic: { order_id: 'ORD-1042' } },
|
|
119
|
+
});
|
|
120
|
+
console.log('Thread:', res.thread_id);
|
|
79
121
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
122
|
+
// Stream the reply instead (Server-Sent Events)
|
|
123
|
+
const stream = await messaging.messaging.streamMessage({ user_id: 'end-user-123', text: 'Tell me a story' });
|
|
124
|
+
for await (const event of stream) {
|
|
125
|
+
console.log(event);
|
|
126
|
+
}
|
|
85
127
|
|
|
86
|
-
|
|
128
|
+
// Re-run the latest turn of a thread
|
|
129
|
+
const rerun = await messaging.messaging.rerun(res.thread_id, { user_id: 'end-user-123' });
|
|
87
130
|
|
|
88
|
-
|
|
131
|
+
// Read the transcript and traces
|
|
132
|
+
const messages = await messaging.messaging.listMessages(res.thread_id);
|
|
133
|
+
const traces = await messaging.messaging.threadTrace(res.thread_id);
|
|
134
|
+
const one = await messaging.messaging.interactionTrace(interactionId);
|
|
135
|
+
|
|
136
|
+
// Welcome message (from the agent's live version) — open a conversation UI before the first turn
|
|
137
|
+
const { welcome_message } = await messaging.messaging.getWelcomeMessage();
|
|
89
138
|
|
|
90
|
-
|
|
139
|
+
// Follow-up suggestions generated from a context you provide
|
|
140
|
+
const { suggestions } = await messaging.messaging.generateFollowupSuggestions({
|
|
141
|
+
context: { topic: 'order tracking' },
|
|
142
|
+
});
|
|
143
|
+
```
|
|
91
144
|
|
|
92
|
-
|
|
145
|
+
#### Channels — `messaging.channels`
|
|
146
|
+
|
|
147
|
+
| Method | Description |
|
|
148
|
+
| --- | --- |
|
|
149
|
+
| `initiateThread(channel, request)` | Send the opening message on an outbound channel (`'sms'` / `'whatsapp'`) and bind the recipient to a thread. |
|
|
93
150
|
|
|
94
151
|
```typescript
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const
|
|
152
|
+
// Start a channel-scoped thread (e.g. SMS opener). The agent rides the key, so it isn't
|
|
153
|
+
// passed in the body. Use 'whatsapp' for WhatsApp.
|
|
154
|
+
const sms = await messaging.channels.initiateThread('sms', {
|
|
155
|
+
phone_number: '+14155551234',
|
|
156
|
+
user_id: 'end-user-123',
|
|
157
|
+
text: 'Hello from the SDK',
|
|
158
|
+
// thread_id: existingThreadId, // omit to start a new thread
|
|
159
|
+
});
|
|
160
|
+
console.log('Thread:', sms.thread_id);
|
|
98
161
|
```
|
|
99
162
|
|
|
100
|
-
###
|
|
163
|
+
### Management client (`ApolloManagementClient`)
|
|
164
|
+
|
|
165
|
+
#### Projects — `management.projects`
|
|
166
|
+
|
|
167
|
+
| Method | Description |
|
|
168
|
+
| --- | --- |
|
|
169
|
+
| `listProjects()` | List the org's projects (paginated). |
|
|
170
|
+
| `createProject(request)` | Create a project. |
|
|
171
|
+
| `getProject(projectId)` | Fetch one project. |
|
|
172
|
+
| `deleteProject(projectId)` | Delete a project. |
|
|
173
|
+
| `getProjectUsage(projectId)` | Usage metrics aggregated across the project. |
|
|
101
174
|
|
|
102
175
|
```typescript
|
|
103
|
-
const page = await
|
|
104
|
-
const
|
|
105
|
-
const
|
|
176
|
+
const page = await management.projects.listProjects(); // { results, meta }
|
|
177
|
+
const project = await management.projects.createProject({ name: 'My project' });
|
|
178
|
+
const fetched = await management.projects.getProject(project.id);
|
|
179
|
+
const usage = await management.projects.getProjectUsage(project.id);
|
|
180
|
+
await management.projects.deleteProject(project.id);
|
|
106
181
|
```
|
|
107
182
|
|
|
108
|
-
|
|
183
|
+
#### Agents — `management.agents`
|
|
184
|
+
|
|
185
|
+
| Method | Description |
|
|
186
|
+
| --- | --- |
|
|
187
|
+
| `listAgents(projectId, { filters })` | List a project's agents (paginated). |
|
|
188
|
+
| `createAgent(projectId, request)` | Create an agent (starts with no live version). |
|
|
189
|
+
| `getAgent(agentId)` | Fetch one agent, incl. its live version. |
|
|
190
|
+
| `updateAgent(agentId, request)` | Rename an agent. |
|
|
191
|
+
| `deleteAgent(agentId)` | Delete an agent and all its versions. |
|
|
192
|
+
| `getAgentUsage(agentId)` | Usage metrics for one agent. |
|
|
109
193
|
|
|
110
194
|
```typescript
|
|
111
|
-
const page = await
|
|
112
|
-
const
|
|
113
|
-
const
|
|
114
|
-
|
|
195
|
+
const page = await management.agents.listAgents(projectId, { filters: {} });
|
|
196
|
+
const agent = await management.agents.createAgent(projectId, { name: 'Support bot' });
|
|
197
|
+
const fetched = await management.agents.getAgent(agent.id); // fetched.live_version_id, …
|
|
198
|
+
await management.agents.updateAgent(agent.id, { name: 'Support bot v2' });
|
|
199
|
+
const usage = await management.agents.getAgentUsage(agent.id);
|
|
200
|
+
await management.agents.deleteAgent(agent.id);
|
|
115
201
|
```
|
|
116
202
|
|
|
117
|
-
|
|
203
|
+
#### Agent versions — `management.agentVersions`
|
|
204
|
+
|
|
205
|
+
| Method | Description |
|
|
206
|
+
| --- | --- |
|
|
207
|
+
| `listVersions(agentId, { filters })` | List an agent's versions, newest first. |
|
|
208
|
+
| `createVersion(agentId, request)` | Create a draft version (empty, from a template, or cloned). |
|
|
209
|
+
| `updateVersion(agentId, versionId, request)` | Update a version's metadata (label, tags, notes). |
|
|
210
|
+
| `pushVersion(agentId, versionId, request)` | Push a config bundle, committing a new revision. |
|
|
211
|
+
| `pullVersion(agentId, versionId, request?)` | Download a version's config bundle. |
|
|
212
|
+
| `publishVersion(agentId, versionId)` | Make a version the agent's live version. |
|
|
213
|
+
| `archiveVersion(agentId, versionId)` | Archive (retire) a version. |
|
|
118
214
|
|
|
119
215
|
```typescript
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
216
|
+
const versions = await management.agentVersions.listVersions(agentId, { filters: {} });
|
|
217
|
+
const draft = await management.agentVersions.createVersion(agentId, {});
|
|
218
|
+
await management.agentVersions.updateVersion(agentId, draft.id, { label: 'v1' });
|
|
219
|
+
await management.agentVersions.pushVersion(agentId, draft.id, { /* config bundle */ });
|
|
220
|
+
const bundle = await management.agentVersions.pullVersion(agentId, draft.id);
|
|
221
|
+
await management.agentVersions.publishVersion(agentId, draft.id);
|
|
222
|
+
await management.agentVersions.archiveVersion(agentId, draft.id);
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### Threads — `management.threads`
|
|
128
226
|
|
|
129
|
-
|
|
130
|
-
|
|
227
|
+
| Method | Description |
|
|
228
|
+
| --- | --- |
|
|
229
|
+
| `listThreads({ filters })` | List the org's threads, newest first (paginated). |
|
|
230
|
+
| `getThread(threadId)` | Fetch one thread. |
|
|
231
|
+
| `updateThread(threadId, request)` | Update a thread (currently `title`). |
|
|
232
|
+
| `getThreadMessages(threadId)` | The thread's full transcript. |
|
|
233
|
+
| `getThreadTrace(threadId)` | Reasoning trace for every interaction in the thread. |
|
|
234
|
+
| `getInteractionTrace(interactionId)` | Reasoning trace for a single interaction. |
|
|
235
|
+
|
|
236
|
+
`filters` supports `project_id`, `agent_id`, `user_id`, `external_id`, `created` (range), `tool`, `rule`, and `param`. Prefer a filter (e.g. `project_id`) over `{}` — the unfiltered list sorts every thread in the org and can be slow.
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
const page = await management.threads.listThreads(
|
|
240
|
+
{ filters: { project_id: projectId } },
|
|
241
|
+
{ timeoutInSeconds: 120 }, // this endpoint can be slow; give it headroom
|
|
242
|
+
);
|
|
243
|
+
const thread = await management.threads.getThread(threadId);
|
|
244
|
+
const updated = await management.threads.updateThread(threadId, { title: 'Renamed conversation' });
|
|
245
|
+
const messages = await management.threads.getThreadMessages(threadId);
|
|
246
|
+
const trace = await management.threads.getThreadTrace(threadId);
|
|
247
|
+
const one = await management.threads.getInteractionTrace(interactionId);
|
|
131
248
|
```
|
|
132
249
|
|
|
133
250
|
## WebSocket Messaging
|
|
134
251
|
|
|
135
|
-
`
|
|
252
|
+
`connect()` opens a real-time session and is available on **`ApolloMessagingClient`** only (WebSocket messaging is publishable-key territory). The bearer token is attached to the upgrade automatically — it's passed as the first WebSocket subprotocol, which is the one credential channel browsers allow, so this works in the browser as well as in Node.
|
|
136
253
|
|
|
137
254
|
```typescript
|
|
138
|
-
const
|
|
255
|
+
const messaging = new ApolloMessagingClient({ publishableKey: 'pk_network_…' });
|
|
256
|
+
const socket = await messaging.connect();
|
|
139
257
|
await socket.waitForOpen();
|
|
140
258
|
|
|
141
259
|
socket.on('message', (msg) => {
|
|
@@ -152,32 +270,41 @@ socket.sendSubmitMessage({
|
|
|
152
270
|
text: 'Hello over WebSocket',
|
|
153
271
|
});
|
|
154
272
|
|
|
273
|
+
// Resume a dropped stream
|
|
274
|
+
socket.sendResume({ /* ResumeRequest */ });
|
|
275
|
+
|
|
155
276
|
// When done
|
|
156
277
|
socket.close();
|
|
157
278
|
```
|
|
158
279
|
|
|
280
|
+
The socket (`SessionSocket`) exposes: `waitForOpen()`, `on(event, handler)` (events: `open`, `message`, `error`, `close`), `sendSubmitMessage(request)`, `sendResume(request)`, and `close()`.
|
|
281
|
+
|
|
159
282
|
> **Notes**
|
|
160
283
|
> - `socket.on(event, handler)` registers a **single** handler per event — calling it
|
|
161
284
|
> again for the same event replaces the previous handler rather than adding one.
|
|
162
285
|
> - The socket type is exported as `SessionSocket` (`import { SessionSocket } from '@aui.io/aui-client'`).
|
|
163
286
|
> - Request timeouts are **per call** via `timeoutInSeconds` on a request's options; there
|
|
164
287
|
> is no client-wide default timeout. Pass it on slow calls, e.g.
|
|
165
|
-
> `
|
|
288
|
+
> `management.threads.listThreads({ filters: {} }, { timeoutInSeconds: 120 })`.
|
|
166
289
|
|
|
167
290
|
## Key Context Helpers
|
|
168
291
|
|
|
169
|
-
|
|
292
|
+
On **`ApolloMessagingClient`**, after the first request (or an explicit `getContext()`), the scope resolved from the publishable key is available:
|
|
170
293
|
|
|
171
294
|
```typescript
|
|
172
|
-
|
|
295
|
+
const messaging = new ApolloMessagingClient({ publishableKey: 'pk_network_…' });
|
|
296
|
+
|
|
297
|
+
console.log(messaging.keyType); // 'agent' | 'org' | 'unknown'
|
|
173
298
|
|
|
174
|
-
const ctx = await
|
|
299
|
+
const ctx = await messaging.getContext();
|
|
175
300
|
console.log(ctx.agentId, ctx.organizationId, ctx.keyType);
|
|
176
301
|
|
|
177
|
-
|
|
178
|
-
|
|
302
|
+
messaging.agentId; // populated once a token has been exchanged
|
|
303
|
+
messaging.organizationId;
|
|
179
304
|
```
|
|
180
305
|
|
|
306
|
+
`ApolloManagementClient` proves only the organization (resolved server-side by the gateway), so it has no key-context helpers.
|
|
307
|
+
|
|
181
308
|
## Error Handling
|
|
182
309
|
|
|
183
310
|
`ApolloError` (the base API error) and `ApolloTimeoutError` are exported at the top
|
|
@@ -188,7 +315,7 @@ namespace.
|
|
|
188
315
|
import { ApolloError, Apollo } from '@aui.io/aui-client';
|
|
189
316
|
|
|
190
317
|
try {
|
|
191
|
-
await
|
|
318
|
+
await management.agents.getAgent('missing-id');
|
|
192
319
|
} catch (error) {
|
|
193
320
|
if (error instanceof Apollo.UnprocessableEntityError) {
|
|
194
321
|
console.error('Validation failed:', error.body);
|
|
@@ -205,7 +332,7 @@ try {
|
|
|
205
332
|
The SDK ships full type definitions. Models are namespaced under `Apollo`:
|
|
206
333
|
|
|
207
334
|
```typescript
|
|
208
|
-
import {
|
|
335
|
+
import { Apollo } from '@aui.io/aui-client';
|
|
209
336
|
|
|
210
337
|
const req: Apollo.SubmitMessageRequest = {
|
|
211
338
|
type: 'message',
|
|
@@ -2,30 +2,41 @@ import { ApolloClient as _GeneratedClient } from "./Client.js";
|
|
|
2
2
|
import type { ApolloEnvironmentUrls } from "./environments.js";
|
|
3
3
|
import { SessionSocket } from "./api/resources/session/client/Socket.js";
|
|
4
4
|
import type { Session } from "./api/resources/session/client/Client.js";
|
|
5
|
+
import type { Messaging } from "./api/resources/messaging/client/Client.js";
|
|
6
|
+
import type { Channels } from "./api/resources/channels/client/Client.js";
|
|
7
|
+
import type { Projects } from "./api/resources/projects/client/Client.js";
|
|
8
|
+
import type { Agents } from "./api/resources/agents/client/Client.js";
|
|
9
|
+
import type { AgentVersions } from "./api/resources/agentVersions/client/Client.js";
|
|
10
|
+
import type { Threads } from "./api/resources/threads/client/Client.js";
|
|
5
11
|
/** Publishable-key family, inferred from the key prefix. */
|
|
6
12
|
export type PublishableKeyType = "agent" | "org" | "unknown";
|
|
7
|
-
|
|
13
|
+
type AuthHeaders = Record<string, string | (() => Promise<string>) | null>;
|
|
14
|
+
declare class BaseApolloClient {
|
|
15
|
+
protected readonly _client: _GeneratedClient;
|
|
16
|
+
protected readonly _env: ApolloEnvironmentUrls;
|
|
17
|
+
constructor(env: ApolloEnvironmentUrls, authHeaders: AuthHeaders);
|
|
18
|
+
}
|
|
19
|
+
export declare namespace ApolloMessagingClient {
|
|
8
20
|
interface Options {
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
/** Organization API key; used directly as the bearer token. */
|
|
14
|
-
organizationApiKey?: string;
|
|
21
|
+
/** Publishable key (pk_network_ / pk_org_). */
|
|
22
|
+
publishableKey: string;
|
|
23
|
+
/** Internal: override the API host. Defaults to production. */
|
|
24
|
+
baseUrl?: string;
|
|
15
25
|
}
|
|
16
26
|
interface ConnectArgs extends Session.ConnectArgs {
|
|
17
27
|
}
|
|
18
28
|
}
|
|
19
29
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* transparently. Every generated resource (agents, threads, messaging, …) is
|
|
23
|
-
* inherited unchanged.
|
|
30
|
+
* Publishable-key client for end-user / widget messaging (browser-safe).
|
|
31
|
+
* Exposes the `messaging` audience only.
|
|
24
32
|
*/
|
|
25
|
-
export declare class
|
|
26
|
-
private readonly
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
export declare class ApolloMessagingClient extends BaseApolloClient {
|
|
34
|
+
private readonly _pkAuth;
|
|
35
|
+
constructor(options: ApolloMessagingClient.Options);
|
|
36
|
+
/** Send / stream messages and read thread & interaction traces. */
|
|
37
|
+
get messaging(): Messaging;
|
|
38
|
+
/** Initiate channel-scoped threads (e.g. SMS). */
|
|
39
|
+
get channels(): Channels;
|
|
29
40
|
/** Publishable-key family (agent / org / unknown). */
|
|
30
41
|
get keyType(): PublishableKeyType;
|
|
31
42
|
/** Agent resolved from an agent-scoped key. Populated after the first exchange. */
|
|
@@ -38,13 +49,30 @@ export declare class ApolloClient extends _GeneratedClient {
|
|
|
38
49
|
organizationId?: string;
|
|
39
50
|
keyType: PublishableKeyType;
|
|
40
51
|
}>;
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
/** Open a messaging WebSocket session. */
|
|
53
|
+
connect(args?: ApolloMessagingClient.ConnectArgs): Promise<SessionSocket>;
|
|
54
|
+
}
|
|
55
|
+
export declare namespace ApolloManagementClient {
|
|
56
|
+
interface Options {
|
|
57
|
+
/** Organization API key. Server-side only. */
|
|
58
|
+
organizationApiKey: string;
|
|
59
|
+
/** Internal: override the API host. Defaults to production. */
|
|
60
|
+
baseUrl?: string;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Organization-API-key client for backend services and CI (server-side only).
|
|
65
|
+
* Exposes the `management` audience only.
|
|
66
|
+
*/
|
|
67
|
+
export declare class ApolloManagementClient extends BaseApolloClient {
|
|
68
|
+
constructor(options: ApolloManagementClient.Options);
|
|
69
|
+
/** Projects: listing, retrieval, and usage. */
|
|
70
|
+
get projects(): Projects;
|
|
71
|
+
/** Agents: listing, retrieval, and usage. */
|
|
72
|
+
get agents(): Agents;
|
|
73
|
+
/** Agent versions. */
|
|
74
|
+
get agentVersions(): AgentVersions;
|
|
75
|
+
/** Threads: listing, retrieval, updates, and traces. */
|
|
76
|
+
get threads(): Threads;
|
|
50
77
|
}
|
|
78
|
+
export {};
|