@tidblink/server 0.0.0-stage → 0.4.0-rc.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/LICENSE +201 -0
- package/README.md +1182 -2
- package/dist/audio.d.ts +72 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +168 -0
- package/dist/audio.js.map +1 -0
- package/dist/backend-connection.d.ts +89 -0
- package/dist/backend-connection.d.ts.map +1 -0
- package/dist/backend-connection.js +300 -0
- package/dist/backend-connection.js.map +1 -0
- package/dist/backend-pool.d.ts +93 -0
- package/dist/backend-pool.d.ts.map +1 -0
- package/dist/backend-pool.js +419 -0
- package/dist/backend-pool.js.map +1 -0
- package/dist/client-tool-executor.d.ts +31 -0
- package/dist/client-tool-executor.d.ts.map +1 -0
- package/dist/client-tool-executor.js +190 -0
- package/dist/client-tool-executor.js.map +1 -0
- package/dist/client-tools.d.ts +21 -0
- package/dist/client-tools.d.ts.map +1 -0
- package/dist/client-tools.js +48 -0
- package/dist/client-tools.js.map +1 -0
- package/dist/connector-callback.d.ts +92 -0
- package/dist/connector-callback.d.ts.map +1 -0
- package/dist/connector-callback.js +155 -0
- package/dist/connector-callback.js.map +1 -0
- package/dist/connectors.d.ts +66 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +71 -0
- package/dist/connectors.js.map +1 -0
- package/dist/control.d.ts +17 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +52 -0
- package/dist/control.js.map +1 -0
- package/dist/errors.d.ts +103 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +115 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +158 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +110 -0
- package/dist/events.js.map +1 -0
- package/dist/files.d.ts +129 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +388 -0
- package/dist/files.js.map +1 -0
- package/dist/history.d.ts +279 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +91 -0
- package/dist/history.js.map +1 -0
- package/dist/http.d.ts +88 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +302 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/organization.d.ts +87 -0
- package/dist/organization.d.ts.map +1 -0
- package/dist/organization.js +112 -0
- package/dist/organization.js.map +1 -0
- package/dist/realtime.d.ts +90 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +111 -0
- package/dist/realtime.js.map +1 -0
- package/dist/session-connection.d.ts +144 -0
- package/dist/session-connection.d.ts.map +1 -0
- package/dist/session-connection.js +334 -0
- package/dist/session-connection.js.map +1 -0
- package/dist/session-send.d.ts +49 -0
- package/dist/session-send.d.ts.map +1 -0
- package/dist/session-send.js +179 -0
- package/dist/session-send.js.map +1 -0
- package/dist/session.d.ts +165 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +253 -0
- package/dist/session.js.map +1 -0
- package/dist/skills.d.ts +103 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +98 -0
- package/dist/skills.js.map +1 -0
- package/dist/sse.d.ts +10 -0
- package/dist/sse.d.ts.map +1 -0
- package/dist/sse.js +50 -0
- package/dist/sse.js.map +1 -0
- package/dist/template-switch.d.ts +51 -0
- package/dist/template-switch.d.ts.map +1 -0
- package/dist/template-switch.js +81 -0
- package/dist/template-switch.js.map +1 -0
- package/dist/templates.d.ts +129 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +92 -0
- package/dist/templates.js.map +1 -0
- package/dist/turn.d.ts +47 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +210 -0
- package/dist/turn.js.map +1 -0
- package/dist/usage.d.ts +278 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +22 -0
- package/dist/usage.js.map +1 -0
- package/dist/user.d.ts +55 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +52 -0
- package/dist/user.js.map +1 -0
- package/examples/control-turn.mjs +53 -0
- package/examples/create-session.mjs +82 -0
- package/examples/http-connector.mjs +127 -0
- package/examples/lamp-backend.mjs +175 -0
- package/examples/prepare-realtime-connection.mjs +72 -0
- package/examples/read-usage.mjs +44 -0
- package/examples/send-message.mjs +48 -0
- package/examples/submit-audio.mjs +57 -0
- package/examples/upload-file.mjs +58 -0
- package/package.json +59 -4
package/dist/http.js
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { TiDBLinkApiError, TiDBLinkError, ConflictError, ConnectionError, OutcomeUnknownError, } from "./errors.js";
|
|
2
|
+
const RETRYABLE_STATUS = new Set([408, 429, 500, 502, 503, 504]);
|
|
3
|
+
const MAX_ATTEMPTS = 3;
|
|
4
|
+
export const paginationQuery = (options) => {
|
|
5
|
+
if (options)
|
|
6
|
+
requireKnownKeys(options, ["limit", "cursor", "signal", "requestId"], "List options");
|
|
7
|
+
const query = new URLSearchParams();
|
|
8
|
+
if (options?.limit !== undefined)
|
|
9
|
+
query.set("limit", String(options.limit));
|
|
10
|
+
if (options?.cursor !== undefined)
|
|
11
|
+
query.set("cursor", options.cursor);
|
|
12
|
+
return query.size ? `?${query}` : "";
|
|
13
|
+
};
|
|
14
|
+
/** Check a stable command key; `label` names the operation in the error. */
|
|
15
|
+
export function requireCreationKey(value, label = "Creation") {
|
|
16
|
+
if (typeof value !== "string" ||
|
|
17
|
+
!/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/.test(value))
|
|
18
|
+
throw new TypeError(`${label} requires a stable idempotencyKey (1-128 safe characters)`);
|
|
19
|
+
}
|
|
20
|
+
/** Check a Template ID the SDK sends: 1-64 characters without surrounding whitespace. */
|
|
21
|
+
export function requireTemplateId(value, label) {
|
|
22
|
+
if (typeof value !== "string" ||
|
|
23
|
+
!value ||
|
|
24
|
+
value.length > 64 ||
|
|
25
|
+
value.trim() !== value)
|
|
26
|
+
throw new TypeError(`${label} requires a Template ID of 1-64 characters without surrounding whitespace`);
|
|
27
|
+
}
|
|
28
|
+
/** Add an optional `templateId` filter under its wire name, `agentTemplateId`. */
|
|
29
|
+
export const setTemplateFilter = (query, templateId) => {
|
|
30
|
+
if (templateId === undefined)
|
|
31
|
+
return;
|
|
32
|
+
requireTemplateId(templateId, "The templateId filter");
|
|
33
|
+
query.set("agentTemplateId", templateId);
|
|
34
|
+
};
|
|
35
|
+
export const requireEtag = (result) => {
|
|
36
|
+
if (!result.etag) {
|
|
37
|
+
throw new TiDBLinkError("TiDB Link response omitted a required ETag", {
|
|
38
|
+
requestId: result.requestId,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return result.etag;
|
|
42
|
+
};
|
|
43
|
+
const requestId = () => crypto.randomUUID();
|
|
44
|
+
const REQUEST_ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$/;
|
|
45
|
+
export const sleep = (milliseconds, signal) => {
|
|
46
|
+
if (signal?.aborted)
|
|
47
|
+
return Promise.reject(signal.reason);
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const onAbort = () => {
|
|
50
|
+
clearTimeout(timer);
|
|
51
|
+
reject(signal?.reason);
|
|
52
|
+
};
|
|
53
|
+
const timer = setTimeout(() => {
|
|
54
|
+
signal?.removeEventListener("abort", onAbort);
|
|
55
|
+
resolve();
|
|
56
|
+
}, milliseconds);
|
|
57
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const pauseBeforeRetry = async (milliseconds, options, requestId) => {
|
|
61
|
+
try {
|
|
62
|
+
await sleep(milliseconds, options.signal);
|
|
63
|
+
}
|
|
64
|
+
catch (cause) {
|
|
65
|
+
if (!options.outcomeUnknown)
|
|
66
|
+
throw cause;
|
|
67
|
+
throw new OutcomeUnknownError("TiDB Link request outcome is unknown after local waiting stopped; recover with the same creation key", { requestId, cause });
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const errorInput = async (response, fallbackRequestId) => {
|
|
71
|
+
let value;
|
|
72
|
+
try {
|
|
73
|
+
value = await response.json();
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
value = undefined;
|
|
77
|
+
}
|
|
78
|
+
const envelope = value;
|
|
79
|
+
const error = typeof envelope?.error === "object" && envelope.error !== null
|
|
80
|
+
? envelope.error
|
|
81
|
+
: undefined;
|
|
82
|
+
return {
|
|
83
|
+
status: response.status,
|
|
84
|
+
code: typeof error?.code === "string" ? error.code : "http_error",
|
|
85
|
+
message: typeof error?.message === "string"
|
|
86
|
+
? error.message
|
|
87
|
+
: `TiDB Link request failed with status ${response.status}`,
|
|
88
|
+
requestId: response.headers.get("x-request-id") ??
|
|
89
|
+
(typeof error?.requestId === "string"
|
|
90
|
+
? error.requestId
|
|
91
|
+
: fallbackRequestId),
|
|
92
|
+
...(error && "details" in error ? { details: error.details } : {}),
|
|
93
|
+
...(response.headers.has("retry-after")
|
|
94
|
+
? { retryAfter: response.headers.get("retry-after") }
|
|
95
|
+
: {}),
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
export const normalizeBaseUrl = (value) => {
|
|
99
|
+
const url = new URL(value);
|
|
100
|
+
if ((url.protocol !== "http:" && url.protocol !== "https:") ||
|
|
101
|
+
url.username ||
|
|
102
|
+
url.password ||
|
|
103
|
+
url.search ||
|
|
104
|
+
url.hash) {
|
|
105
|
+
throw new TypeError("baseUrl must be an HTTP(S) URL without credentials");
|
|
106
|
+
}
|
|
107
|
+
return url.toString().replace(/\/$/, "");
|
|
108
|
+
};
|
|
109
|
+
export function requireKnownKeys(value, allowed, label) {
|
|
110
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
111
|
+
throw new TypeError(`${label} must be an object`);
|
|
112
|
+
}
|
|
113
|
+
const unknown = Object.keys(value).find((key) => !allowed.includes(key));
|
|
114
|
+
if (unknown)
|
|
115
|
+
throw new TypeError(`${label}.${unknown} is not supported`);
|
|
116
|
+
}
|
|
117
|
+
export const requestOptions = (options = {}) => {
|
|
118
|
+
requireKnownKeys(options, ["requestId", "signal"], "Request options");
|
|
119
|
+
return { ...options };
|
|
120
|
+
};
|
|
121
|
+
/** Check the frozen wire grammar without retaining or exposing the credential. */
|
|
122
|
+
export const isOrganizationApiKey = (value) => typeof value === "string" &&
|
|
123
|
+
/^ti_org_[A-Za-z0-9]{1,64}_[A-Za-z0-9_-]{43}$/u.test(value);
|
|
124
|
+
export class HttpClient {
|
|
125
|
+
#apiKey;
|
|
126
|
+
#baseUrl;
|
|
127
|
+
#scope;
|
|
128
|
+
#fetch;
|
|
129
|
+
/** The OrganizationClient's Backend Connections, shared by every scope. */
|
|
130
|
+
backend;
|
|
131
|
+
/** The End User this scope selects, if any. */
|
|
132
|
+
userId;
|
|
133
|
+
constructor(input) {
|
|
134
|
+
if (input.fetch !== undefined && typeof input.fetch !== "function")
|
|
135
|
+
throw new TypeError("fetch must be a function");
|
|
136
|
+
this.#baseUrl = normalizeBaseUrl(input.baseUrl);
|
|
137
|
+
this.#apiKey = input.apiKey;
|
|
138
|
+
this.#scope = input.scope ?? "/api/v1/org";
|
|
139
|
+
this.#fetch = input.fetch ?? ((url, init) => fetch(url, init));
|
|
140
|
+
this.backend = input.backend;
|
|
141
|
+
this.userId = input.userId;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The transport every request uses, including event streams and file
|
|
145
|
+
* transfers to presigned URLs. Those transfers carry no API Key.
|
|
146
|
+
*/
|
|
147
|
+
get fetch() {
|
|
148
|
+
return this.#fetch;
|
|
149
|
+
}
|
|
150
|
+
forUser(userId) {
|
|
151
|
+
if (typeof userId !== "string" || !/^[a-z0-9_-]{1,64}$/.test(userId))
|
|
152
|
+
throw new TypeError("Organization resources require an explicit User ID");
|
|
153
|
+
return new HttpClient({
|
|
154
|
+
baseUrl: this.#baseUrl,
|
|
155
|
+
apiKey: this.#apiKey,
|
|
156
|
+
scope: `${this.#scope}/users/${encodeURIComponent(userId)}`,
|
|
157
|
+
fetch: this.#fetch,
|
|
158
|
+
backend: this.backend,
|
|
159
|
+
userId,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
resolveUrl(value) {
|
|
163
|
+
return new URL(value, `${this.#baseUrl}/`);
|
|
164
|
+
}
|
|
165
|
+
get(path, options) {
|
|
166
|
+
return this.request(path, { ...options, retry: "safe" });
|
|
167
|
+
}
|
|
168
|
+
getResponse(path, options) {
|
|
169
|
+
return this.response(path, { ...options, retry: "safe" });
|
|
170
|
+
}
|
|
171
|
+
post(path, body, options) {
|
|
172
|
+
return this.request(path, {
|
|
173
|
+
...options,
|
|
174
|
+
method: "POST",
|
|
175
|
+
body,
|
|
176
|
+
retry: options?.idempotent ? "safe" : "never",
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
postResponse(path, body, options) {
|
|
180
|
+
return this.response(path, {
|
|
181
|
+
...options,
|
|
182
|
+
method: "POST",
|
|
183
|
+
body,
|
|
184
|
+
retry: options?.idempotent ? "safe" : "never",
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
patchResponse(path, body, options) {
|
|
188
|
+
return this.response(path, { ...options, method: "PATCH", body });
|
|
189
|
+
}
|
|
190
|
+
deleteResponse(path, options) {
|
|
191
|
+
return this.response(path, { ...options, method: "DELETE" });
|
|
192
|
+
}
|
|
193
|
+
async request(path, options = {}) {
|
|
194
|
+
return (await this.response(path, options)).data;
|
|
195
|
+
}
|
|
196
|
+
async response(path, options = {}) {
|
|
197
|
+
const { body, ...requestOptions } = options;
|
|
198
|
+
const { response, requestId } = await this.rawResponse(path, {
|
|
199
|
+
...requestOptions,
|
|
200
|
+
...(body === undefined
|
|
201
|
+
? {}
|
|
202
|
+
: {
|
|
203
|
+
body: JSON.stringify(body),
|
|
204
|
+
headers: { "content-type": "application/json" },
|
|
205
|
+
}),
|
|
206
|
+
});
|
|
207
|
+
let data;
|
|
208
|
+
try {
|
|
209
|
+
data =
|
|
210
|
+
response.status === 204
|
|
211
|
+
? undefined
|
|
212
|
+
: (await response.json());
|
|
213
|
+
}
|
|
214
|
+
catch (cause) {
|
|
215
|
+
const ErrorClass = options.outcomeUnknown
|
|
216
|
+
? OutcomeUnknownError
|
|
217
|
+
: TiDBLinkError;
|
|
218
|
+
throw new ErrorClass(options.outcomeUnknown
|
|
219
|
+
? "TiDB Link accepted the request but returned an unusable response"
|
|
220
|
+
: "TiDB Link returned invalid JSON", { requestId, cause });
|
|
221
|
+
}
|
|
222
|
+
return { data, etag: response.headers.get("etag") ?? undefined, requestId };
|
|
223
|
+
}
|
|
224
|
+
/** Raw bytes and event streams retain the same credential, redirect and error boundary. */
|
|
225
|
+
async rawResponse(path, options = {}) {
|
|
226
|
+
const stableRequestId = options.requestId ?? requestId();
|
|
227
|
+
if (!REQUEST_ID.test(stableRequestId)) {
|
|
228
|
+
throw new TypeError("requestId must be 1-64 safe characters");
|
|
229
|
+
}
|
|
230
|
+
if (options.idempotencyKey !== undefined &&
|
|
231
|
+
(options.idempotencyKey.length > 255 ||
|
|
232
|
+
!/^[\x20-\x7e]+$/.test(options.idempotencyKey))) {
|
|
233
|
+
throw new TypeError("idempotencyKey must be 1-255 visible ASCII characters");
|
|
234
|
+
}
|
|
235
|
+
options.signal?.throwIfAborted();
|
|
236
|
+
const attempts = options.retry === "safe" ? MAX_ATTEMPTS : 1;
|
|
237
|
+
for (let attempt = 1; attempt <= attempts; attempt += 1) {
|
|
238
|
+
let response;
|
|
239
|
+
try {
|
|
240
|
+
response = await this.#fetch(`${this.#baseUrl}${this.#scope}${path}`, {
|
|
241
|
+
method: options.method ?? "GET",
|
|
242
|
+
redirect: "error",
|
|
243
|
+
headers: {
|
|
244
|
+
accept: "application/json",
|
|
245
|
+
...options.headers,
|
|
246
|
+
authorization: `Bearer ${this.#apiKey}`,
|
|
247
|
+
"x-request-id": stableRequestId,
|
|
248
|
+
...(options.idempotencyKey
|
|
249
|
+
? { "idempotency-key": options.idempotencyKey }
|
|
250
|
+
: {}),
|
|
251
|
+
...(options.ifMatch ? { "if-match": options.ifMatch } : {}),
|
|
252
|
+
},
|
|
253
|
+
...(options.body === undefined ? {} : { body: options.body }),
|
|
254
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (cause) {
|
|
258
|
+
if (options.signal?.aborted && !options.outcomeUnknown)
|
|
259
|
+
throw cause;
|
|
260
|
+
if (attempt < attempts && !options.signal?.aborted) {
|
|
261
|
+
await pauseBeforeRetry(100 * 2 ** (attempt - 1), options, stableRequestId);
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
const ErrorClass = options.outcomeUnknown
|
|
265
|
+
? OutcomeUnknownError
|
|
266
|
+
: ConnectionError;
|
|
267
|
+
throw new ErrorClass(options.outcomeUnknown
|
|
268
|
+
? "TiDB Link request outcome is unknown; do not repeat it automatically"
|
|
269
|
+
: "Could not reach TiDB Link", {
|
|
270
|
+
requestId: stableRequestId,
|
|
271
|
+
cause,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
if (response.ok)
|
|
275
|
+
return {
|
|
276
|
+
response,
|
|
277
|
+
requestId: response.headers.get("x-request-id") ?? stableRequestId,
|
|
278
|
+
};
|
|
279
|
+
if (attempt < attempts && RETRYABLE_STATUS.has(response.status)) {
|
|
280
|
+
await response.arrayBuffer().catch(() => undefined);
|
|
281
|
+
await pauseBeforeRetry(100 * 2 ** (attempt - 1), options, stableRequestId);
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
const input = await errorInput(response, stableRequestId);
|
|
285
|
+
const error = input.status === 409 || input.status === 412
|
|
286
|
+
? new ConflictError(input)
|
|
287
|
+
: new TiDBLinkApiError(input);
|
|
288
|
+
if (options.outcomeUnknown &&
|
|
289
|
+
(input.status >= 500 || input.status === 408)) {
|
|
290
|
+
throw new OutcomeUnknownError("TiDB Link could not confirm the mutation outcome", {
|
|
291
|
+
...(input.requestId === undefined
|
|
292
|
+
? {}
|
|
293
|
+
: { requestId: input.requestId }),
|
|
294
|
+
cause: error,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
throw error;
|
|
298
|
+
}
|
|
299
|
+
throw new Error("unreachable");
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=http.js.map
|
package/dist/http.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** TiDB Link OpenAPI version supported by this SDK release. */
|
|
2
|
+
export declare const TIDB_LINK_API_VERSION: "0.0.1";
|
|
3
|
+
/** Exact service baseline for the supported refreshed SDK surface. */
|
|
4
|
+
export declare const TIDB_LINK_REVISION: "4305ef67daebf23c416badf806217a7c11dcef37";
|
|
5
|
+
export { TiDBLinkApiError, TiDBLinkError, ConflictError, ConnectionError, TurnWaitTimeoutError, InputNotAppliedError, OutcomeUnknownError, TurnFailedError, TurnInterruptedError, BackendConnectionClosedError, BackendRequestError, } from "./errors.js";
|
|
6
|
+
export { OrganizationClient } from "./organization.js";
|
|
7
|
+
export { SessionConnection } from "./session-connection.js";
|
|
8
|
+
export { ClientToolResultRefusedError } from "./client-tool-executor.js";
|
|
9
|
+
export type { ConnectOptions, ClientToolHandler, ClientToolHandlers, ClientToolCallContext, RealtimeTranscript, RealtimeResponse, SessionConnectionEnd, } from "./session-connection.js";
|
|
10
|
+
export type { SendOptions } from "./session-send.js";
|
|
11
|
+
export type { BackendWebSocket, WebSocketConstructor, } from "./backend-connection.js";
|
|
12
|
+
export type { Organization, EndUser, CreateEndUserInput, RequestOptions, OrganizationClientOptions, } from "./organization.js";
|
|
13
|
+
export { Templates } from "./templates.js";
|
|
14
|
+
export type { Template, TemplateSummary, TemplateContent, TemplateRealtimeLanguage, TemplatePage, TemplateListOptions, TemplateCatalog, TemplateInput, CreateTemplateInput, TemplateMutationOptions, } from "./templates.js";
|
|
15
|
+
export { Skills } from "./skills.js";
|
|
16
|
+
export type { SkillSummary, SkillVersion, SkillPage, SkillDetail, SkillUpload, SkillUploadState, UploadSkillInput, PublishSkillOptions, WaitForSkillUploadOptions, } from "./skills.js";
|
|
17
|
+
export { Connectors } from "./connectors.js";
|
|
18
|
+
export type { Connector, ConnectorTransport, RegisterConnectorInput, UpdateConnectorInput, ConnectorVersionOptions, } from "./connectors.js";
|
|
19
|
+
export { ConnectorKeySet, ConnectorAuthError, verifyConnectorCallback, readConnectorCallContext, CONNECTOR_CALLBACK_ISSUER, CONNECTOR_CALLBACK_AUDIENCE, CONNECTOR_CALL_CONTEXT_KEY, } from "./connector-callback.js";
|
|
20
|
+
export type { ConnectorVerificationKey, ConnectorCallbackClaims, ConnectorCallContext, ConnectorKeySetOptions, VerifyConnectorCallbackOptions, } from "./connector-callback.js";
|
|
21
|
+
export { EndUserClient } from "./user.js";
|
|
22
|
+
export type { AgentTemplate, AgentTemplatePage, AgentModelCatalog, SessionListOptions, SessionPage, } from "./user.js";
|
|
23
|
+
export type { ListOptions, FetchFunction } from "./http.js";
|
|
24
|
+
export { Session } from "./session.js";
|
|
25
|
+
export type { BillingTag, CreateSessionOptions, SessionSandboxSelection, SuggestSessionNameInput, ClarificationItem, SelectableSessionModel, SessionModel, SessionRecord, } from "./session.js";
|
|
26
|
+
export type { SwitchTemplateInput, TemplateSwitchReceipt, TemplateSwitchStatus, } from "./template-switch.js";
|
|
27
|
+
export type { OpenRealtimeConnectionInput, OpenRealtimeConnectionResult, RealtimeAudioFormat, RealtimeAudioFormats, RealtimeConnectGrant, RealtimeConnection, RealtimeEndpointingMode, RealtimeLanguage, RealtimeModel, RealtimeModelCatalog, RealtimeModelSelection, RealtimeOpusAudioFormat, RealtimePcm16AudioFormat, RealtimeVoiceSetting, } from "./realtime.js";
|
|
28
|
+
export type { CreateTurnInput, TurnResult, WaitForResultOptions, } from "./turn.js";
|
|
29
|
+
export type { MessageRecord, MessageInputContext, RealtimeMessageMetadata, TurnRecord, FullAgentTurnRecord, RealtimeTurnRecord, TemplateHandoffTurnRecord, TurnPage, TurnStatus, TurnUserFile, TurnFailure, OperationRecord, OperationStatus, OperationResultPointer, SessionInteraction, SessionInteractionPage, SessionRealtimeEvent, RealtimeResponseKind, SessionTimelineEntry, SessionTemplateSwitch, SessionTimelinePage, } from "./history.js";
|
|
30
|
+
export type { TurnCommandInput, RetryReceipt } from "./control.js";
|
|
31
|
+
export { UserFiles, FileUploadOutcomeUnknownError } from "./files.js";
|
|
32
|
+
export type { UserFile, FileUploadCapabilities, CreateFileUploadInput, UploadFileInput, FileUpload, FileUploadStatus, FileUploadPart, UploadedFilePart, FileListOptions, FilePage, FileDownloadGrant, FileContent, } from "./files.js";
|
|
33
|
+
export { asKnownSessionEvent } from "./events.js";
|
|
34
|
+
export type { SessionEvent, KnownSessionEvent, TurnEventData, TurnStartedEvent, TurnDraftEvent, TurnProgressEvent, TurnItemAddedEvent, OperationStepPayload, TurnRequiresActionEvent, ClientToolCallPayload, TurnCompletedEvent, TurnCancelledEvent, TurnFailedEvent, RealtimeTranscriptEvent, RealtimeResponseEvent, TemplateSwitchEvent, TemplateSwitchEventData, SessionIdleEvent, } from "./events.js";
|
|
35
|
+
export type { BillingUsageFactKind, BillingCostBearer, BillingPrincipalBucket, BillingAttributionKind, BillingLlmRequestPurpose, LlmPricingStatus, LlmPricingContextTier, SandboxUsageStatus, BillingUsageEvidenceStatus, BillingValuationStatus, BillingValuationSummary, BillingValuationBreakdown, BillingFactCompletenessCounters, BillingFactCompleteness, UsageTotals, BillingBearerCostTotals, BillingAttributionCounters, BillingAttributionBreakdown, LlmUsageAggregate, SandboxUsageAggregate, WebSearchUsageAggregate, BillingUsageSeriesInterval, BillingUsageSeriesRange, BillingUsageSeriesLlmBreakdown, BillingUsageSeriesSandboxBreakdown, BillingUsageSeriesWebSearchBreakdown, BillingUsageSeriesBreakdown, BillingUsageSeriesBreakdownGroups, BillingUsageSeriesPoint, OrganizationUserUsageSummary, OrganizationLlmUsage, OrganizationSandboxUsage, OrganizationWebSearchUsage, OrganizationUsageItem, OrganizationUserUsageDetails, OrganizationUserUsageOptions, OrganizationUserUsageDetailsOptions, } from "./usage.js";
|
|
36
|
+
export type { ClientToolDeclaration, ClientToolSet, ReplaceClientToolsOptions, } from "./client-tools.js";
|
|
37
|
+
export { AudioTurnStoppedError } from "./audio.js";
|
|
38
|
+
export type { AudioTurnInput, AudioTurnEvent, AudioTurnResult, } from "./audio.js";
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,EAAG,OAAgB,CAAC;AACtD,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,EAC7B,0CAAmD,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EACV,QAAQ,EACR,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAC9B,kCAAkC,EAClC,oCAAoC,EACpC,2BAA2B,EAC3B,iCAAiC,EACjC,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EACV,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** TiDB Link OpenAPI version supported by this SDK release. */
|
|
2
|
+
export const TIDB_LINK_API_VERSION = "0.0.1";
|
|
3
|
+
/** Exact service baseline for the supported refreshed SDK surface. */
|
|
4
|
+
export const TIDB_LINK_REVISION = "4305ef67daebf23c416badf806217a7c11dcef37";
|
|
5
|
+
export { TiDBLinkApiError, TiDBLinkError, ConflictError, ConnectionError, TurnWaitTimeoutError, InputNotAppliedError, OutcomeUnknownError, TurnFailedError, TurnInterruptedError, BackendConnectionClosedError, BackendRequestError, } from "./errors.js";
|
|
6
|
+
export { OrganizationClient } from "./organization.js";
|
|
7
|
+
export { SessionConnection } from "./session-connection.js";
|
|
8
|
+
export { ClientToolResultRefusedError } from "./client-tool-executor.js";
|
|
9
|
+
export { Templates } from "./templates.js";
|
|
10
|
+
export { Skills } from "./skills.js";
|
|
11
|
+
export { Connectors } from "./connectors.js";
|
|
12
|
+
export { ConnectorKeySet, ConnectorAuthError, verifyConnectorCallback, readConnectorCallContext, CONNECTOR_CALLBACK_ISSUER, CONNECTOR_CALLBACK_AUDIENCE, CONNECTOR_CALL_CONTEXT_KEY, } from "./connector-callback.js";
|
|
13
|
+
export { EndUserClient } from "./user.js";
|
|
14
|
+
export { Session } from "./session.js";
|
|
15
|
+
export { UserFiles, FileUploadOutcomeUnknownError } from "./files.js";
|
|
16
|
+
export { asKnownSessionEvent } from "./events.js";
|
|
17
|
+
export { AudioTurnStoppedError } from "./audio.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAgB,CAAC;AACtD,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,0CAAmD,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAsBzE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAa3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAYrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAS1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AA8DvC,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAetE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAkElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type OrganizationUserUsageOptions, type OrganizationUserUsageDetailsOptions, type OrganizationUserUsageSummary, type OrganizationUserUsageDetails } from "./usage.js";
|
|
2
|
+
import { EndUserClient } from "./user.js";
|
|
3
|
+
import { Templates } from "./templates.js";
|
|
4
|
+
import { Skills } from "./skills.js";
|
|
5
|
+
import { Connectors } from "./connectors.js";
|
|
6
|
+
import type { WebSocketConstructor } from "./backend-connection.js";
|
|
7
|
+
import { type FetchFunction } from "./http.js";
|
|
8
|
+
export interface OrganizationClientOptions {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
apiKey: string;
|
|
11
|
+
/**
|
|
12
|
+
* Replaces the global `fetch` for every HTTP request the client makes,
|
|
13
|
+
* including audio Turn streams and file transfers; Backend Connections use
|
|
14
|
+
* `WebSocket`. Use it for proxies, custom agents,
|
|
15
|
+
* instrumentation or tests. Defaults to `globalThis.fetch`.
|
|
16
|
+
*/
|
|
17
|
+
fetch?: FetchFunction;
|
|
18
|
+
/**
|
|
19
|
+
* WebSocket constructor for Backend Connections (`session.connect()`).
|
|
20
|
+
* Defaults to the global `WebSocket` of Node.js 22, which sends the
|
|
21
|
+
* Organization API Key in the upgrade's Authorization header. A
|
|
22
|
+
* replacement must accept `new WebSocket(url, { protocols, headers })`.
|
|
23
|
+
*/
|
|
24
|
+
WebSocket?: WebSocketConstructor;
|
|
25
|
+
}
|
|
26
|
+
export interface Organization {
|
|
27
|
+
organizationId: string;
|
|
28
|
+
slug: string;
|
|
29
|
+
name: string | null;
|
|
30
|
+
createdAt: string;
|
|
31
|
+
updatedAt: string;
|
|
32
|
+
}
|
|
33
|
+
export interface EndUser {
|
|
34
|
+
userId: string;
|
|
35
|
+
organizationId: string;
|
|
36
|
+
displayName: string | null;
|
|
37
|
+
externalId: string | null;
|
|
38
|
+
status: "active" | "disabled";
|
|
39
|
+
createdAt: string;
|
|
40
|
+
updatedAt: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CreateEndUserInput {
|
|
43
|
+
displayName?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Your application's identity for this End User. Creation with an
|
|
46
|
+
* externalId is idempotent: when an End User of this Organization already
|
|
47
|
+
* has exactly this externalId, the service returns it unchanged and ignores
|
|
48
|
+
* the other fields. Without one, every call creates a new End User.
|
|
49
|
+
*/
|
|
50
|
+
externalId?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface RequestOptions {
|
|
53
|
+
requestId?: string;
|
|
54
|
+
signal?: AbortSignal;
|
|
55
|
+
}
|
|
56
|
+
/** Customer operations authorized by an Organization API Key. */
|
|
57
|
+
export declare class OrganizationClient {
|
|
58
|
+
#private;
|
|
59
|
+
/** Organization Agent Templates. */
|
|
60
|
+
get templates(): Templates;
|
|
61
|
+
/** Organization Skills that Templates reference. */
|
|
62
|
+
get skills(): Skills;
|
|
63
|
+
/** Organization Connectors: MCP tool servers that Agents call. */
|
|
64
|
+
get connectors(): Connectors;
|
|
65
|
+
constructor(options: OrganizationClientOptions);
|
|
66
|
+
/**
|
|
67
|
+
* Close every Session connection opened through this client, with reason
|
|
68
|
+
* `closed`, and its Backend Connections. Later `connect()` calls are
|
|
69
|
+
* refused; REST calls keep working.
|
|
70
|
+
*/
|
|
71
|
+
close(): Promise<void>;
|
|
72
|
+
/** Select the End User who owns the resources; the Organization API Key remains the caller. */
|
|
73
|
+
user(userId: string): EndUserClient;
|
|
74
|
+
getUserUsage(userId: string, options: OrganizationUserUsageOptions): Promise<OrganizationUserUsageSummary>;
|
|
75
|
+
getUserUsageDetails(userId: string, options: OrganizationUserUsageDetailsOptions): Promise<OrganizationUserUsageDetails>;
|
|
76
|
+
getOrganization(options?: RequestOptions): Promise<Organization>;
|
|
77
|
+
/**
|
|
78
|
+
* Create an End User, or return the existing one with the same externalId.
|
|
79
|
+
* Calls with an externalId are retried automatically and are safe to repeat
|
|
80
|
+
* after an uncertain outcome. An externalId that only differs by case or
|
|
81
|
+
* accents from an existing one is refused with a ConflictError.
|
|
82
|
+
*/
|
|
83
|
+
createEndUser(input?: CreateEndUserInput, options?: RequestOptions): Promise<EndUser>;
|
|
84
|
+
listEndUsers(options?: RequestOptions): Promise<EndUser[]>;
|
|
85
|
+
getEndUser(userId: string, options?: RequestOptions): Promise<EndUser>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=organization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.d.ts","sourceRoot":"","sources":["../src/organization.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,4BAA4B,EACjC,KAAK,mCAAmC,EACxC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAClC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,iEAAiE;AACjE,qBAAa,kBAAkB;;IAO7B,oCAAoC;IACpC,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,oDAAoD;IACpD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,kEAAkE;IAClE,IAAI,UAAU,IAAI,UAAU,CAE3B;gBAEW,OAAO,EAAE,yBAAyB;IA6B9C;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,+FAA+F;IAC/F,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAInC,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,4BAA4B,CAAC;IAQxC,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,4BAA4B,CAAC;IAQlC,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAQtE;;;;;OAKG;IACG,aAAa,CACjB,KAAK,GAAE,kBAAuB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;IAiCb,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQ1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAO7E"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { usageQuery, userUsagePath, } from "./usage.js";
|
|
2
|
+
import { EndUserClient } from "./user.js";
|
|
3
|
+
import { Templates } from "./templates.js";
|
|
4
|
+
import { Skills } from "./skills.js";
|
|
5
|
+
import { Connectors } from "./connectors.js";
|
|
6
|
+
import { OutcomeUnknownError } from "./errors.js";
|
|
7
|
+
import { BackendConnectionPool } from "./backend-pool.js";
|
|
8
|
+
import { HttpClient, normalizeBaseUrl, isOrganizationApiKey, requireKnownKeys, requestOptions, } from "./http.js";
|
|
9
|
+
/** Customer operations authorized by an Organization API Key. */
|
|
10
|
+
export class OrganizationClient {
|
|
11
|
+
#http;
|
|
12
|
+
#backend;
|
|
13
|
+
#templates;
|
|
14
|
+
#skills;
|
|
15
|
+
#connectors;
|
|
16
|
+
/** Organization Agent Templates. */
|
|
17
|
+
get templates() {
|
|
18
|
+
return this.#templates;
|
|
19
|
+
}
|
|
20
|
+
/** Organization Skills that Templates reference. */
|
|
21
|
+
get skills() {
|
|
22
|
+
return this.#skills;
|
|
23
|
+
}
|
|
24
|
+
/** Organization Connectors: MCP tool servers that Agents call. */
|
|
25
|
+
get connectors() {
|
|
26
|
+
return this.#connectors;
|
|
27
|
+
}
|
|
28
|
+
constructor(options) {
|
|
29
|
+
requireKnownKeys(options, ["baseUrl", "apiKey", "fetch", "WebSocket"], "OrganizationClient options");
|
|
30
|
+
if (!isOrganizationApiKey(options.apiKey)) {
|
|
31
|
+
throw new TypeError("OrganizationClient requires an Organization API Key");
|
|
32
|
+
}
|
|
33
|
+
if (options.WebSocket !== undefined && typeof options.WebSocket !== "function")
|
|
34
|
+
throw new TypeError("WebSocket must be a constructor");
|
|
35
|
+
this.#backend = new BackendConnectionPool({
|
|
36
|
+
baseUrl: normalizeBaseUrl(options.baseUrl),
|
|
37
|
+
apiKey: options.apiKey,
|
|
38
|
+
WebSocket: options.WebSocket,
|
|
39
|
+
});
|
|
40
|
+
this.#http = new HttpClient({
|
|
41
|
+
baseUrl: options.baseUrl,
|
|
42
|
+
apiKey: options.apiKey,
|
|
43
|
+
fetch: options.fetch,
|
|
44
|
+
backend: this.#backend,
|
|
45
|
+
});
|
|
46
|
+
this.#templates = new Templates(this.#http);
|
|
47
|
+
this.#skills = new Skills(this.#http);
|
|
48
|
+
this.#connectors = new Connectors(this.#http);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Close every Session connection opened through this client, with reason
|
|
52
|
+
* `closed`, and its Backend Connections. Later `connect()` calls are
|
|
53
|
+
* refused; REST calls keep working.
|
|
54
|
+
*/
|
|
55
|
+
close() {
|
|
56
|
+
return this.#backend.close();
|
|
57
|
+
}
|
|
58
|
+
/** Select the End User who owns the resources; the Organization API Key remains the caller. */
|
|
59
|
+
user(userId) {
|
|
60
|
+
return new EndUserClient(this.#http.forUser(userId));
|
|
61
|
+
}
|
|
62
|
+
getUserUsage(userId, options) {
|
|
63
|
+
const path = userUsagePath(userId, options);
|
|
64
|
+
return this.#http.get(`${path}${usageQuery(options, ["from", "to", "interval", "templateId", "tagKey", "tagValue"])}`, options);
|
|
65
|
+
}
|
|
66
|
+
getUserUsageDetails(userId, options) {
|
|
67
|
+
const path = userUsagePath(userId, options);
|
|
68
|
+
return this.#http.get(`${path}/details${usageQuery(options, ["from", "to", "kind", "limit", "cursor", "templateId", "tagKey", "tagValue"])}`, options);
|
|
69
|
+
}
|
|
70
|
+
async getOrganization(options) {
|
|
71
|
+
const response = await this.#http.get("", requestOptions(options));
|
|
72
|
+
return response.organization;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create an End User, or return the existing one with the same externalId.
|
|
76
|
+
* Calls with an externalId are retried automatically and are safe to repeat
|
|
77
|
+
* after an uncertain outcome. An externalId that only differs by case or
|
|
78
|
+
* accents from an existing one is refused with a ConflictError.
|
|
79
|
+
*/
|
|
80
|
+
async createEndUser(input = {}, options) {
|
|
81
|
+
requireKnownKeys(input, ["displayName", "externalId"], "End User input");
|
|
82
|
+
const result = await this.#http.postResponse("/users", {
|
|
83
|
+
...(input.displayName === undefined
|
|
84
|
+
? {}
|
|
85
|
+
: { displayName: input.displayName }),
|
|
86
|
+
...(input.externalId === undefined
|
|
87
|
+
? {}
|
|
88
|
+
: { externalId: input.externalId }),
|
|
89
|
+
}, {
|
|
90
|
+
...requestOptions(options),
|
|
91
|
+
outcomeUnknown: true,
|
|
92
|
+
idempotent: input.externalId !== undefined,
|
|
93
|
+
});
|
|
94
|
+
if (!result.data?.user ||
|
|
95
|
+
typeof result.data.user.userId !== "string" ||
|
|
96
|
+
!result.data.user.userId) {
|
|
97
|
+
throw new OutcomeUnknownError("End User creation returned no usable User; repeat it with the same externalId", {
|
|
98
|
+
requestId: result.requestId,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return result.data.user;
|
|
102
|
+
}
|
|
103
|
+
async listEndUsers(options) {
|
|
104
|
+
const response = await this.#http.get("/users", requestOptions(options));
|
|
105
|
+
return response.users;
|
|
106
|
+
}
|
|
107
|
+
async getEndUser(userId, options) {
|
|
108
|
+
const response = await this.#http.get(`/users/${encodeURIComponent(userId)}`, requestOptions(options));
|
|
109
|
+
return response.user;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=organization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../src/organization.ts"],"names":[],"mappings":"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"}
|