assistant-cloud 0.2.2 → 0.2.3
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 +2 -2
- package/dist/AssistantCloud.d.ts +15 -17
- package/dist/AssistantCloud.d.ts.map +1 -1
- package/dist/AssistantCloud.js +7 -2
- package/dist/AssistantCloud.js.map +1 -1
- package/dist/AssistantCloudAPI.d.ts +69 -66
- package/dist/AssistantCloudAPI.d.ts.map +1 -1
- package/dist/AssistantCloudAPI.js.map +1 -1
- package/dist/AssistantCloudAuthStrategy.d.ts +23 -25
- package/dist/AssistantCloudAuthStrategy.d.ts.map +1 -1
- package/dist/AssistantCloudAuthTokens.d.ts +6 -7
- package/dist/AssistantCloudAuthTokens.d.ts.map +1 -1
- package/dist/AssistantCloudEvents.d.ts +32 -25
- package/dist/AssistantCloudEvents.d.ts.map +1 -1
- package/dist/AssistantCloudEvents.js +65 -16
- package/dist/AssistantCloudEvents.js.map +1 -1
- package/dist/AssistantCloudFiles.d.ts +25 -26
- package/dist/AssistantCloudFiles.d.ts.map +1 -1
- package/dist/AssistantCloudProjectThreadMessages.d.ts +10 -11
- package/dist/AssistantCloudProjectThreadMessages.d.ts.map +1 -1
- package/dist/AssistantCloudProjectThreads.d.ts +11 -12
- package/dist/AssistantCloudProjectThreads.d.ts.map +1 -1
- package/dist/AssistantCloudProjects.d.ts +3 -5
- package/dist/AssistantCloudProjects.d.ts.map +1 -1
- package/dist/AssistantCloudRuns.d.ts +65 -53
- package/dist/AssistantCloudRuns.d.ts.map +1 -1
- package/dist/AssistantCloudRuns.js +9 -4
- package/dist/AssistantCloudRuns.js.map +1 -1
- package/dist/AssistantCloudScores.d.ts +17 -19
- package/dist/AssistantCloudScores.d.ts.map +1 -1
- package/dist/AssistantCloudThreadMessages.d.ts +33 -31
- package/dist/AssistantCloudThreadMessages.d.ts.map +1 -1
- package/dist/AssistantCloudThreadMessages.js +9 -2
- package/dist/AssistantCloudThreadMessages.js.map +1 -1
- package/dist/AssistantCloudThreads.d.ts +37 -38
- package/dist/AssistantCloudThreads.d.ts.map +1 -1
- package/dist/CloudEngagementReporter.d.ts +53 -54
- package/dist/CloudEngagementReporter.d.ts.map +1 -1
- package/dist/CloudEngagementReporter.js +4 -1
- package/dist/CloudEngagementReporter.js.map +1 -1
- package/dist/CloudMessagePersistence.d.ts +55 -56
- package/dist/CloudMessagePersistence.d.ts.map +1 -1
- package/dist/CloudMessagePersistence.js +3 -0
- package/dist/CloudMessagePersistence.js.map +1 -1
- package/dist/CloudRunReporter.d.ts +6 -8
- package/dist/CloudRunReporter.d.ts.map +1 -1
- package/dist/FormattedCloudPersistence.d.ts +34 -36
- package/dist/FormattedCloudPersistence.d.ts.map +1 -1
- package/dist/ai-sdk/index.d.ts +10 -12
- package/dist/ai-sdk/index.d.ts.map +1 -1
- package/dist/cloudResponse.d.ts +2 -4
- package/dist/cloudResponse.d.ts.map +1 -1
- package/dist/generateThreadTitle.d.ts +8 -10
- package/dist/generateThreadTitle.d.ts.map +1 -1
- package/dist/index.d.ts +18 -17
- package/dist/index.d.ts.map +1 -0
- package/dist/instrumentMcpSampling.d.ts +30 -32
- package/dist/instrumentMcpSampling.d.ts.map +1 -1
- package/dist/runTelemetry.d.ts +86 -78
- package/dist/runTelemetry.d.ts.map +1 -1
- package/dist/runTelemetry.js +57 -15
- package/dist/runTelemetry.js.map +1 -1
- package/dist/telemetry/index.d.ts +13 -15
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/AssistantCloud.ts +17 -2
- package/src/AssistantCloudAPI.ts +4 -0
- package/src/AssistantCloudEvents.test.ts +116 -0
- package/src/AssistantCloudEvents.ts +81 -20
- package/src/AssistantCloudRuns.ts +35 -5
- package/src/AssistantCloudThreadMessages.ts +21 -1
- package/src/BackendTranscriptCopy.test.ts +79 -0
- package/src/CloudEngagementReporter.ts +9 -3
- package/src/CloudMessagePersistence.ts +4 -0
- package/src/ai-sdk/index.test.ts +2 -2
- package/src/runTelemetry.test.ts +226 -2
- package/src/runTelemetry.ts +121 -17
- package/src/tests/AssistantCloud.test.ts +22 -0
- package/src/tests/AssistantCloudRuns.test.ts +28 -0
- package/src/tests/CloudEngagementReporter.test.ts +45 -0
- package/src/tests/CloudRunReporter.test.ts +14 -2
- package/dist/tests/setup.d.ts +0 -1
- package/dist/tests/setup.js +0 -7
- package/dist/tests/setup.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Server- and client-side SDK for [Assistant Cloud](https://cloud.assistant-ui.com
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npm install @assistant-ui/react @assistant-ui/ai-sdk assistant-cloud
|
|
12
|
+
npm install @assistant-ui/react @assistant-ui/ai-sdk ai assistant-cloud
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Usage
|
|
@@ -100,7 +100,7 @@ import { withAssistantCloudTraceMetadata } from "assistant-cloud/telemetry";
|
|
|
100
100
|
export async function POST(request: Request) {
|
|
101
101
|
const { messages } = await request.json();
|
|
102
102
|
const result = streamText({
|
|
103
|
-
model: openai("gpt-
|
|
103
|
+
model: openai("gpt-6-luna"),
|
|
104
104
|
messages: await convertToModelMessages(messages),
|
|
105
105
|
telemetry: { integrations: [new OpenTelemetry()] },
|
|
106
106
|
});
|
package/dist/AssistantCloud.d.ts
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AssistantCloudConfig, AssistantCloudTelemetryConfig, SdkIdentity } from "./AssistantCloudAPI.js";
|
|
1
|
+
import { type AssistantCloudConfig, type SdkIdentity, type AssistantCloudTelemetryConfig } from "./AssistantCloudAPI.js";
|
|
3
2
|
import { AssistantCloudAuthTokens } from "./AssistantCloudAuthTokens.js";
|
|
4
|
-
import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
|
|
5
3
|
import { AssistantCloudProjects } from "./AssistantCloudProjects.js";
|
|
4
|
+
import { AssistantCloudRuns } from "./AssistantCloudRuns.js";
|
|
5
|
+
import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
|
|
6
6
|
import { AssistantCloudFiles } from "./AssistantCloudFiles.js";
|
|
7
7
|
import { AssistantCloudEvents } from "./AssistantCloudEvents.js";
|
|
8
8
|
import { AssistantCloudScores } from "./AssistantCloudScores.js";
|
|
9
|
-
//#region src/AssistantCloud.d.ts
|
|
10
9
|
export declare class AssistantCloud {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
readonly threads: AssistantCloudThreads;
|
|
11
|
+
readonly projects: AssistantCloudProjects;
|
|
12
|
+
readonly auth: {
|
|
13
|
+
tokens: AssistantCloudAuthTokens;
|
|
14
|
+
};
|
|
15
|
+
readonly runs: AssistantCloudRuns;
|
|
16
|
+
readonly files: AssistantCloudFiles;
|
|
17
|
+
readonly events: AssistantCloudEvents;
|
|
18
|
+
readonly scores: AssistantCloudScores;
|
|
19
|
+
readonly telemetry: AssistantCloudTelemetryConfig;
|
|
20
|
+
readonly registerSdk: (sdk: SdkIdentity) => void;
|
|
21
|
+
constructor(config: AssistantCloudConfig);
|
|
23
22
|
}
|
|
24
|
-
//#endregion
|
|
25
23
|
//# sourceMappingURL=AssistantCloud.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloud.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantCloud.d.ts","sourceRoot":"","sources":["../src/AssistantCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,6BAA6B,EACnC,+BAA4B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AACtE,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAClE,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAChE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EACL,oBAAoB,EAErB,kCAA+B;AAChC,OAAO,EAAE,oBAAoB,EAAE,kCAA+B;AAE9D,qBAAa,cAAc;IACzB,SAAgB,OAAO,wBAAC;IACxB,SAAgB,QAAQ,yBAAC;IACzB,SAAgB,IAAI;;MAAC;IACrB,SAAgB,IAAI,qBAAC;IACrB,SAAgB,KAAK,sBAAC;IACtB,SAAgB,MAAM,uBAAC;IACvB,SAAgB,MAAM,uBAAC;IACvB,SAAgB,SAAS,EAAE,6BAA6B,CAAC;IACzD,SAAgB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;gBAE5C,MAAM,EAAE,oBAAoB;CAuCzC"}
|
package/dist/AssistantCloud.js
CHANGED
|
@@ -4,7 +4,7 @@ import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
|
|
|
4
4
|
import { AssistantCloudProjects } from "./AssistantCloudProjects.js";
|
|
5
5
|
import { AssistantCloudRuns } from "./AssistantCloudRuns.js";
|
|
6
6
|
import { AssistantCloudFiles } from "./AssistantCloudFiles.js";
|
|
7
|
-
import { AssistantCloudEvents } from "./AssistantCloudEvents.js";
|
|
7
|
+
import { AssistantCloudEvents, clearPendingAssistantCloudEvents } from "./AssistantCloudEvents.js";
|
|
8
8
|
import { AssistantCloudScores } from "./AssistantCloudScores.js";
|
|
9
9
|
//#region src/AssistantCloud.ts
|
|
10
10
|
var AssistantCloud = class {
|
|
@@ -21,10 +21,15 @@ var AssistantCloud = class {
|
|
|
21
21
|
const api = new AssistantCloudAPI(config);
|
|
22
22
|
this.registerSdk = api.registerSdk;
|
|
23
23
|
const t = config.telemetry;
|
|
24
|
-
|
|
24
|
+
const telemetry = t === false ? { enabled: false } : t === true || t === void 0 ? { enabled: true } : {
|
|
25
25
|
...t,
|
|
26
26
|
enabled: t.enabled !== false
|
|
27
27
|
};
|
|
28
|
+
this.telemetry = new Proxy(telemetry, { set: (target, property, value) => {
|
|
29
|
+
const updated = Reflect.set(target, property, value);
|
|
30
|
+
if ((property === "enabled" || property === "events") && (target.enabled === false || target.events === false)) clearPendingAssistantCloudEvents(this.events);
|
|
31
|
+
return updated;
|
|
32
|
+
} });
|
|
28
33
|
this.threads = new AssistantCloudThreads(api);
|
|
29
34
|
this.projects = new AssistantCloudProjects(api);
|
|
30
35
|
this.auth = { tokens: new AssistantCloudAuthTokens(api) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloud.js","names":[],"sources":["../src/AssistantCloud.ts"],"sourcesContent":["import {\n AssistantCloudAPI,\n type AssistantCloudConfig,\n type SdkIdentity,\n type AssistantCloudTelemetryConfig,\n} from \"./AssistantCloudAPI\";\nimport { AssistantCloudAuthTokens } from \"./AssistantCloudAuthTokens\";\nimport { AssistantCloudProjects } from \"./AssistantCloudProjects\";\nimport { AssistantCloudRuns } from \"./AssistantCloudRuns\";\nimport { AssistantCloudThreads } from \"./AssistantCloudThreads\";\nimport { AssistantCloudFiles } from \"./AssistantCloudFiles\";\nimport {
|
|
1
|
+
{"version":3,"file":"AssistantCloud.js","names":[],"sources":["../src/AssistantCloud.ts"],"sourcesContent":["import {\n AssistantCloudAPI,\n type AssistantCloudConfig,\n type SdkIdentity,\n type AssistantCloudTelemetryConfig,\n} from \"./AssistantCloudAPI\";\nimport { AssistantCloudAuthTokens } from \"./AssistantCloudAuthTokens\";\nimport { AssistantCloudProjects } from \"./AssistantCloudProjects\";\nimport { AssistantCloudRuns } from \"./AssistantCloudRuns\";\nimport { AssistantCloudThreads } from \"./AssistantCloudThreads\";\nimport { AssistantCloudFiles } from \"./AssistantCloudFiles\";\nimport {\n AssistantCloudEvents,\n clearPendingAssistantCloudEvents,\n} from \"./AssistantCloudEvents\";\nimport { AssistantCloudScores } from \"./AssistantCloudScores\";\n\nexport class AssistantCloud {\n public readonly threads;\n public readonly projects;\n public readonly auth;\n public readonly runs;\n public readonly files;\n public readonly events;\n public readonly scores;\n public readonly telemetry: AssistantCloudTelemetryConfig;\n public readonly registerSdk: (sdk: SdkIdentity) => void;\n\n constructor(config: AssistantCloudConfig) {\n const api = new AssistantCloudAPI(config);\n this.registerSdk = api.registerSdk;\n const t = config.telemetry;\n const telemetry =\n t === false\n ? { enabled: false }\n : t === true || t === undefined\n ? { enabled: true }\n : {\n ...t,\n enabled: t.enabled !== false,\n };\n this.telemetry = new Proxy(telemetry, {\n set: (target, property, value) => {\n const updated = Reflect.set(target, property, value);\n if (\n (property === \"enabled\" || property === \"events\") &&\n (target.enabled === false || target.events === false)\n ) {\n clearPendingAssistantCloudEvents(this.events);\n }\n return updated;\n },\n });\n\n this.threads = new AssistantCloudThreads(api);\n this.projects = new AssistantCloudProjects(api);\n this.auth = {\n tokens: new AssistantCloudAuthTokens(api),\n };\n this.runs = new AssistantCloudRuns(api);\n this.files = new AssistantCloudFiles(api);\n this.events = new AssistantCloudEvents(\n api,\n () => this.telemetry.enabled !== false && this.telemetry.events !== false,\n );\n this.scores = new AssistantCloudScores(api);\n }\n}\n"],"mappings":";;;;;;;;;AAiBA,IAAa,iBAAb,MAA4B;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,QAA8B;EACxC,MAAM,MAAM,IAAI,kBAAkB,MAAM;EACxC,KAAK,cAAc,IAAI;EACvB,MAAM,IAAI,OAAO;EACjB,MAAM,YACJ,MAAM,QACF,EAAE,SAAS,MAAM,IACjB,MAAM,QAAQ,MAAM,KAAA,IAClB,EAAE,SAAS,KAAK,IAChB;GACE,GAAG;GACH,SAAS,EAAE,YAAY;EACzB;EACR,KAAK,YAAY,IAAI,MAAM,WAAW,EACpC,MAAM,QAAQ,UAAU,UAAU;GAChC,MAAM,UAAU,QAAQ,IAAI,QAAQ,UAAU,KAAK;GACnD,KACG,aAAa,aAAa,aAAa,cACvC,OAAO,YAAY,SAAS,OAAO,WAAW,QAE/C,iCAAiC,KAAK,MAAM;GAE9C,OAAO;EACT,EACF,CAAC;EAED,KAAK,UAAU,IAAI,sBAAsB,GAAG;EAC5C,KAAK,WAAW,IAAI,uBAAuB,GAAG;EAC9C,KAAK,OAAO,EACV,QAAQ,IAAI,yBAAyB,GAAG,EAC1C;EACA,KAAK,OAAO,IAAI,mBAAmB,GAAG;EACtC,KAAK,QAAQ,IAAI,oBAAoB,GAAG;EACxC,KAAK,SAAS,IAAI,qBAChB,WACM,KAAK,UAAU,YAAY,SAAS,KAAK,UAAU,WAAW,KACtE;EACA,KAAK,SAAS,IAAI,qBAAqB,GAAG;CAC5C;AACF"}
|
|
@@ -1,82 +1,85 @@
|
|
|
1
|
-
import { AssistantCloudAuthStrategy } from "./AssistantCloudAuthStrategy.js";
|
|
2
|
-
import { AssistantCloudRunReport } from "./AssistantCloudRuns.js";
|
|
3
|
-
//#region src/AssistantCloudAPI.d.ts
|
|
1
|
+
import { type AssistantCloudAuthStrategy } from "./AssistantCloudAuthStrategy.js";
|
|
2
|
+
import type { AssistantCloudRunReport } from "./AssistantCloudRuns.js";
|
|
4
3
|
export type SdkIdentity = {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
name: string;
|
|
5
|
+
version: string;
|
|
7
6
|
};
|
|
8
7
|
export type AssistantCloudTelemetryConfig = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Enables Assistant Cloud telemetry. Defaults to `true`. Set to `false` to
|
|
10
|
+
* disable both run reports and engagement events.
|
|
11
|
+
*/
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Enables Assistant Cloud engagement events. Defaults to `true` when
|
|
15
|
+
* telemetry is enabled. Set to `false` to keep run reports while disabling
|
|
16
|
+
* engagement events.
|
|
17
|
+
*/
|
|
18
|
+
events?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Stores the messages of runtimes whose backend keeps the transcript (LangGraph, LangChain, Google ADK, custom external stores), so the dashboard can show them. Defaults to `true` when telemetry is enabled. Set to `false` to keep run reports and events without storing those messages.
|
|
21
|
+
*/
|
|
22
|
+
messages?: boolean;
|
|
23
|
+
release?: string;
|
|
24
|
+
environment?: string;
|
|
25
|
+
tags?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Called before each telemetry report is sent.
|
|
28
|
+
* Return a modified report to enrich it (e.g. add `model_id`),
|
|
29
|
+
* or return `null` to skip the report.
|
|
30
|
+
*/
|
|
31
|
+
beforeReport?: (report: AssistantCloudRunReport) => AssistantCloudRunReport | null;
|
|
29
32
|
};
|
|
30
33
|
export type AssistantCloudConfig = ({
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
authToken: () => Promise<string | null>;
|
|
33
36
|
} | {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
baseUrl?: string;
|
|
38
|
+
apiKey: string;
|
|
39
|
+
userId: string;
|
|
40
|
+
workspaceId: string;
|
|
38
41
|
} | {
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
baseUrl: string;
|
|
43
|
+
anonymous: true;
|
|
41
44
|
}) & {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Client-side run telemetry reporting. Default: `true`.
|
|
47
|
+
*
|
|
48
|
+
* When enabled, the SDK automatically reports run metadata (status, step
|
|
49
|
+
* count, tool calls, and token usage) to Assistant Cloud after each
|
|
50
|
+
* assistant message is saved. Reports can also include assistant output,
|
|
51
|
+
* tool arguments and results, errors, and metadata, which may contain
|
|
52
|
+
* sensitive content. Use `beforeReport` to redact or drop reports, or
|
|
53
|
+
* `telemetry: false` to disable reporting.
|
|
54
|
+
*
|
|
55
|
+
* - `true` / `undefined` — enabled with defaults
|
|
56
|
+
* - `false` — disabled
|
|
57
|
+
* - `{ beforeReport }` — enabled with a hook to enrich or filter reports
|
|
58
|
+
*/
|
|
59
|
+
telemetry?: boolean | AssistantCloudTelemetryConfig;
|
|
57
60
|
};
|
|
58
61
|
export declare class CloudAPIError extends Error {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
readonly status: number;
|
|
63
|
+
readonly code?: string;
|
|
64
|
+
readonly details?: Record<string, unknown>;
|
|
65
|
+
constructor(message: string, status: number, code?: string, details?: Record<string, unknown>);
|
|
63
66
|
}
|
|
64
67
|
type MakeRequestOptions = {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
method?: "POST" | "PUT" | "DELETE" | undefined;
|
|
69
|
+
headers?: Record<string, string> | undefined;
|
|
70
|
+
query?: Record<string, string | number | boolean> | undefined;
|
|
71
|
+
body?: object | undefined;
|
|
72
|
+
keepalive?: boolean | undefined;
|
|
70
73
|
};
|
|
71
74
|
export declare class AssistantCloudAPI {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
_auth: AssistantCloudAuthStrategy;
|
|
76
|
+
_baseUrl: string;
|
|
77
|
+
readonly registerSdk: (sdk: SdkIdentity) => void;
|
|
78
|
+
readonly sdkHeader: () => string;
|
|
79
|
+
constructor(config: AssistantCloudConfig);
|
|
80
|
+
initializeAuth(): Promise<boolean>;
|
|
81
|
+
makeRawRequest(endpoint: string, options?: MakeRequestOptions): Promise<Response>;
|
|
82
|
+
makeRequest(endpoint: string, options?: MakeRequestOptions): Promise<any>;
|
|
80
83
|
}
|
|
81
|
-
|
|
84
|
+
export {};
|
|
82
85
|
//# sourceMappingURL=AssistantCloudAPI.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAPI.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantCloudAPI.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAKhC,wCAAqC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,gCAA6B;AAGpE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,uBAAuB,KAC5B,uBAAuB,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAC/B;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzC,GACD;IACE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CACJ,GAAG;IACF;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,6BAA6B,CAAC;CACrD,CAAC;AAEF,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGhD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQpC;AAED,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC,CAAC;AAIF,qBAAa,iBAAiB;IACrB,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,SAAC;IAChB,SAAgB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACxD,SAAgB,SAAS,EAAE,MAAM,MAAM,CAAC;gBAE5B,MAAM,EAAE,oBAAoB;IAuC3B,cAAc;IAId,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB;IAkErB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;CAa5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAPI.js","names":[],"sources":["../src/AssistantCloudAPI.ts"],"sourcesContent":["import {\n type AssistantCloudAuthStrategy,\n AssistantCloudJWTAuthStrategy,\n AssistantCloudAPIKeyAuthStrategy,\n AssistantCloudAnonymousAuthStrategy,\n normalizeBaseUrl,\n} from \"./AssistantCloudAuthStrategy\";\nimport type { AssistantCloudRunReport } from \"./AssistantCloudRuns\";\nimport { ASSISTANT_CLOUD_VERSION } from \"./version\";\n\nexport type SdkIdentity = {\n name: string;\n version: string;\n};\n\nexport type AssistantCloudTelemetryConfig = {\n /**\n * Enables Assistant Cloud telemetry. Defaults to `true`. Set to `false` to\n * disable both run reports and engagement events.\n */\n enabled?: boolean;\n /**\n * Enables Assistant Cloud engagement events. Defaults to `true` when\n * telemetry is enabled. Set to `false` to keep run reports while disabling\n * engagement events.\n */\n events?: boolean;\n release?: string;\n environment?: string;\n tags?: string[];\n /**\n * Called before each telemetry report is sent.\n * Return a modified report to enrich it (e.g. add `model_id`),\n * or return `null` to skip the report.\n */\n beforeReport?: (\n report: AssistantCloudRunReport,\n ) => AssistantCloudRunReport | null;\n};\n\nexport type AssistantCloudConfig = (\n | {\n baseUrl: string;\n authToken: () => Promise<string | null>;\n }\n | {\n baseUrl?: string;\n apiKey: string;\n userId: string;\n workspaceId: string;\n }\n | {\n baseUrl: string;\n anonymous: true;\n }\n) & {\n /**\n * Client-side run telemetry reporting. Default: `true`.\n *\n * When enabled, the SDK automatically reports run metadata (status, step\n * count, tool calls, and token usage) to Assistant Cloud after each\n * assistant message is saved. Reports can also include assistant output,\n * tool arguments and results, errors, and metadata, which may contain\n * sensitive content. Use `beforeReport` to redact or drop reports, or\n * `telemetry: false` to disable reporting.\n *\n * - `true` / `undefined` — enabled with defaults\n * - `false` — disabled\n * - `{ beforeReport }` — enabled with a hook to enrich or filter reports\n */\n telemetry?: boolean | AssistantCloudTelemetryConfig;\n};\n\nexport class CloudAPIError extends Error {\n public readonly status: number;\n public readonly code?: string;\n public readonly details?: Record<string, unknown>;\n\n constructor(\n message: string,\n status: number,\n code?: string,\n details?: Record<string, unknown>,\n ) {\n super(message);\n this.status = status;\n if (code !== undefined) this.code = code;\n if (details !== undefined) this.details = details;\n this.name = \"CloudAPIError\";\n }\n}\n\ntype MakeRequestOptions = {\n method?: \"POST\" | \"PUT\" | \"DELETE\" | undefined;\n headers?: Record<string, string> | undefined;\n query?: Record<string, string | number | boolean> | undefined;\n body?: object | undefined;\n keepalive?: boolean | undefined;\n};\n\nconst HEADER_TOKEN = /^[\\x21-\\x7e]+$/;\n\nexport class AssistantCloudAPI {\n public _auth: AssistantCloudAuthStrategy;\n public _baseUrl;\n public readonly registerSdk: (sdk: SdkIdentity) => void;\n public readonly sdkHeader: () => string;\n\n constructor(config: AssistantCloudConfig) {\n const sdks = new Map<string, SdkIdentity>();\n this.registerSdk = (sdk) => {\n const name = sdk.name.trim();\n const version = sdk.version.trim();\n if (!HEADER_TOKEN.test(name) || !HEADER_TOKEN.test(version)) return;\n sdks.set(`${name}/${version}`, { name, version });\n };\n this.sdkHeader = () =>\n [\n `assistant-cloud/${ASSISTANT_CLOUD_VERSION}`,\n ...Array.from(\n sdks.values(),\n ({ name, version }) => `${name}/${version}`,\n ),\n ].join(\" \");\n\n if (\"authToken\" in config) {\n this._baseUrl = normalizeBaseUrl(config.baseUrl);\n this._auth = new AssistantCloudJWTAuthStrategy(config.authToken);\n } else if (\"apiKey\" in config) {\n this._baseUrl = normalizeBaseUrl(\n config.baseUrl ?? \"https://backend.assistant-api.com\",\n );\n this._auth = new AssistantCloudAPIKeyAuthStrategy(\n config.apiKey,\n config.userId,\n config.workspaceId,\n );\n } else if (\"anonymous\" in config) {\n this._baseUrl = normalizeBaseUrl(config.baseUrl);\n this._auth = new AssistantCloudAnonymousAuthStrategy(this._baseUrl);\n } else {\n throw new Error(\n \"Invalid configuration: Must provide authToken, apiKey, or anonymous configuration\",\n );\n }\n }\n\n public async initializeAuth() {\n return !!(await this._auth.getAuthHeaders());\n }\n\n public async makeRawRequest(\n endpoint: string,\n options: MakeRequestOptions = {},\n ) {\n const authHeaders = await this._auth.getAuthHeaders();\n if (!authHeaders) throw new Error(\"Authorization failed\");\n\n const headers = {\n ...authHeaders,\n ...options.headers,\n \"Content-Type\": \"application/json\",\n \"Aui-Sdk\": this.sdkHeader(),\n };\n\n const queryParams = new URLSearchParams();\n if (options.query) {\n for (const [key, value] of Object.entries(options.query)) {\n if (value === false) continue;\n if (value === true) {\n queryParams.set(key, \"true\");\n } else {\n queryParams.set(key, value.toString());\n }\n }\n }\n\n const url = new URL(`${this._baseUrl}/v1${endpoint}`);\n url.search = queryParams.toString();\n\n const response = await fetch(url, {\n method: options.method ?? \"GET\",\n headers,\n body: options.body ? JSON.stringify(options.body) : null,\n ...(options.keepalive ? { keepalive: true } : {}),\n });\n\n this._auth.readAuthHeaders(response.headers);\n\n if (!response.ok) {\n const text = await response.text();\n let message: string | undefined;\n let code: string | undefined;\n let details: Record<string, unknown> | undefined;\n try {\n const body = JSON.parse(text) as unknown;\n if (typeof body === \"object\" && body !== null && !Array.isArray(body)) {\n const record = body as Record<string, unknown>;\n if (typeof record.message === \"string\" && record.message.length > 0) {\n message = record.message;\n }\n if (typeof record.error === \"string\") {\n code = record.error;\n details = { ...record };\n delete details.error;\n }\n }\n } catch {}\n throw new CloudAPIError(\n message ?? `Request failed with status ${response.status}, ${text}`,\n response.status,\n code,\n details,\n );\n }\n\n return response;\n }\n\n public async makeRequest(endpoint: string, options: MakeRequestOptions = {}) {\n const response = await this.makeRawRequest(endpoint, options);\n if (\n response.status === 204 ||\n response.headers.get(\"content-length\") === \"0\"\n )\n return undefined;\n\n const text = await response.text();\n if (text.trim() === \"\") return undefined;\n\n return JSON.parse(text);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssistantCloudAPI.js","names":[],"sources":["../src/AssistantCloudAPI.ts"],"sourcesContent":["import {\n type AssistantCloudAuthStrategy,\n AssistantCloudJWTAuthStrategy,\n AssistantCloudAPIKeyAuthStrategy,\n AssistantCloudAnonymousAuthStrategy,\n normalizeBaseUrl,\n} from \"./AssistantCloudAuthStrategy\";\nimport type { AssistantCloudRunReport } from \"./AssistantCloudRuns\";\nimport { ASSISTANT_CLOUD_VERSION } from \"./version\";\n\nexport type SdkIdentity = {\n name: string;\n version: string;\n};\n\nexport type AssistantCloudTelemetryConfig = {\n /**\n * Enables Assistant Cloud telemetry. Defaults to `true`. Set to `false` to\n * disable both run reports and engagement events.\n */\n enabled?: boolean;\n /**\n * Enables Assistant Cloud engagement events. Defaults to `true` when\n * telemetry is enabled. Set to `false` to keep run reports while disabling\n * engagement events.\n */\n events?: boolean;\n /**\n * Stores the messages of runtimes whose backend keeps the transcript (LangGraph, LangChain, Google ADK, custom external stores), so the dashboard can show them. Defaults to `true` when telemetry is enabled. Set to `false` to keep run reports and events without storing those messages.\n */\n messages?: boolean;\n release?: string;\n environment?: string;\n tags?: string[];\n /**\n * Called before each telemetry report is sent.\n * Return a modified report to enrich it (e.g. add `model_id`),\n * or return `null` to skip the report.\n */\n beforeReport?: (\n report: AssistantCloudRunReport,\n ) => AssistantCloudRunReport | null;\n};\n\nexport type AssistantCloudConfig = (\n | {\n baseUrl: string;\n authToken: () => Promise<string | null>;\n }\n | {\n baseUrl?: string;\n apiKey: string;\n userId: string;\n workspaceId: string;\n }\n | {\n baseUrl: string;\n anonymous: true;\n }\n) & {\n /**\n * Client-side run telemetry reporting. Default: `true`.\n *\n * When enabled, the SDK automatically reports run metadata (status, step\n * count, tool calls, and token usage) to Assistant Cloud after each\n * assistant message is saved. Reports can also include assistant output,\n * tool arguments and results, errors, and metadata, which may contain\n * sensitive content. Use `beforeReport` to redact or drop reports, or\n * `telemetry: false` to disable reporting.\n *\n * - `true` / `undefined` — enabled with defaults\n * - `false` — disabled\n * - `{ beforeReport }` — enabled with a hook to enrich or filter reports\n */\n telemetry?: boolean | AssistantCloudTelemetryConfig;\n};\n\nexport class CloudAPIError extends Error {\n public readonly status: number;\n public readonly code?: string;\n public readonly details?: Record<string, unknown>;\n\n constructor(\n message: string,\n status: number,\n code?: string,\n details?: Record<string, unknown>,\n ) {\n super(message);\n this.status = status;\n if (code !== undefined) this.code = code;\n if (details !== undefined) this.details = details;\n this.name = \"CloudAPIError\";\n }\n}\n\ntype MakeRequestOptions = {\n method?: \"POST\" | \"PUT\" | \"DELETE\" | undefined;\n headers?: Record<string, string> | undefined;\n query?: Record<string, string | number | boolean> | undefined;\n body?: object | undefined;\n keepalive?: boolean | undefined;\n};\n\nconst HEADER_TOKEN = /^[\\x21-\\x7e]+$/;\n\nexport class AssistantCloudAPI {\n public _auth: AssistantCloudAuthStrategy;\n public _baseUrl;\n public readonly registerSdk: (sdk: SdkIdentity) => void;\n public readonly sdkHeader: () => string;\n\n constructor(config: AssistantCloudConfig) {\n const sdks = new Map<string, SdkIdentity>();\n this.registerSdk = (sdk) => {\n const name = sdk.name.trim();\n const version = sdk.version.trim();\n if (!HEADER_TOKEN.test(name) || !HEADER_TOKEN.test(version)) return;\n sdks.set(`${name}/${version}`, { name, version });\n };\n this.sdkHeader = () =>\n [\n `assistant-cloud/${ASSISTANT_CLOUD_VERSION}`,\n ...Array.from(\n sdks.values(),\n ({ name, version }) => `${name}/${version}`,\n ),\n ].join(\" \");\n\n if (\"authToken\" in config) {\n this._baseUrl = normalizeBaseUrl(config.baseUrl);\n this._auth = new AssistantCloudJWTAuthStrategy(config.authToken);\n } else if (\"apiKey\" in config) {\n this._baseUrl = normalizeBaseUrl(\n config.baseUrl ?? \"https://backend.assistant-api.com\",\n );\n this._auth = new AssistantCloudAPIKeyAuthStrategy(\n config.apiKey,\n config.userId,\n config.workspaceId,\n );\n } else if (\"anonymous\" in config) {\n this._baseUrl = normalizeBaseUrl(config.baseUrl);\n this._auth = new AssistantCloudAnonymousAuthStrategy(this._baseUrl);\n } else {\n throw new Error(\n \"Invalid configuration: Must provide authToken, apiKey, or anonymous configuration\",\n );\n }\n }\n\n public async initializeAuth() {\n return !!(await this._auth.getAuthHeaders());\n }\n\n public async makeRawRequest(\n endpoint: string,\n options: MakeRequestOptions = {},\n ) {\n const authHeaders = await this._auth.getAuthHeaders();\n if (!authHeaders) throw new Error(\"Authorization failed\");\n\n const headers = {\n ...authHeaders,\n ...options.headers,\n \"Content-Type\": \"application/json\",\n \"Aui-Sdk\": this.sdkHeader(),\n };\n\n const queryParams = new URLSearchParams();\n if (options.query) {\n for (const [key, value] of Object.entries(options.query)) {\n if (value === false) continue;\n if (value === true) {\n queryParams.set(key, \"true\");\n } else {\n queryParams.set(key, value.toString());\n }\n }\n }\n\n const url = new URL(`${this._baseUrl}/v1${endpoint}`);\n url.search = queryParams.toString();\n\n const response = await fetch(url, {\n method: options.method ?? \"GET\",\n headers,\n body: options.body ? JSON.stringify(options.body) : null,\n ...(options.keepalive ? { keepalive: true } : {}),\n });\n\n this._auth.readAuthHeaders(response.headers);\n\n if (!response.ok) {\n const text = await response.text();\n let message: string | undefined;\n let code: string | undefined;\n let details: Record<string, unknown> | undefined;\n try {\n const body = JSON.parse(text) as unknown;\n if (typeof body === \"object\" && body !== null && !Array.isArray(body)) {\n const record = body as Record<string, unknown>;\n if (typeof record.message === \"string\" && record.message.length > 0) {\n message = record.message;\n }\n if (typeof record.error === \"string\") {\n code = record.error;\n details = { ...record };\n delete details.error;\n }\n }\n } catch {}\n throw new CloudAPIError(\n message ?? `Request failed with status ${response.status}, ${text}`,\n response.status,\n code,\n details,\n );\n }\n\n return response;\n }\n\n public async makeRequest(endpoint: string, options: MakeRequestOptions = {}) {\n const response = await this.makeRawRequest(endpoint, options);\n if (\n response.status === 204 ||\n response.headers.get(\"content-length\") === \"0\"\n )\n return undefined;\n\n const text = await response.text();\n if (text.trim() === \"\") return undefined;\n\n return JSON.parse(text);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,37 +1,35 @@
|
|
|
1
|
-
//#region src/AssistantCloudAuthStrategy.d.ts
|
|
2
1
|
export type AssistantCloudAuthStrategy = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
readonly strategy: "anon" | "jwt" | "api-key";
|
|
3
|
+
getAuthHeaders(): Promise<Record<string, string> | false>;
|
|
4
|
+
readAuthHeaders(headers: Headers): void;
|
|
6
5
|
};
|
|
7
6
|
export declare class AssistantCloudJWTAuthStrategy implements AssistantCloudAuthStrategy {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
#private;
|
|
8
|
+
readonly strategy = "jwt";
|
|
9
|
+
private cachedToken;
|
|
10
|
+
private tokenExpiry;
|
|
11
|
+
private tokenRequest;
|
|
12
|
+
constructor(authTokenCallback: () => Promise<string | null>);
|
|
13
|
+
getAuthHeaders(): Promise<Record<string, string> | false>;
|
|
14
|
+
private fetchAuthHeaders;
|
|
15
|
+
readAuthHeaders(headers: Headers): void;
|
|
17
16
|
}
|
|
18
17
|
export declare class AssistantCloudAPIKeyAuthStrategy implements AssistantCloudAuthStrategy {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
#private;
|
|
19
|
+
readonly strategy = "api-key";
|
|
20
|
+
constructor(apiKey: string, userId: string, workspaceId: string);
|
|
21
|
+
getAuthHeaders(): Promise<Record<string, string>>;
|
|
22
|
+
readAuthHeaders(): void;
|
|
24
23
|
}
|
|
25
24
|
export declare const normalizeBaseUrl: (baseUrl: string) => string;
|
|
26
25
|
/** The refresh token of the anonymous identity this browser holds for `baseUrl`, or null when it has none. */
|
|
27
26
|
export declare const readAnonymousRefreshToken: (baseUrl: string) => string | null;
|
|
28
27
|
export declare class AssistantCloudAnonymousAuthStrategy implements AssistantCloudAuthStrategy {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
readonly strategy = "anon";
|
|
29
|
+
private baseUrl;
|
|
30
|
+
private jwtStrategy;
|
|
31
|
+
constructor(baseUrl: string);
|
|
32
|
+
getAuthHeaders(): Promise<Record<string, string> | false>;
|
|
33
|
+
readAuthHeaders(headers: Headers): void;
|
|
35
34
|
}
|
|
36
|
-
//#endregion
|
|
37
35
|
//# sourceMappingURL=AssistantCloudAuthStrategy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthStrategy.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthStrategy.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthStrategy.ts"],"names":[],"mappings":"AAkCA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1D,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC,CAAC;AAkFF,qBAAa,6BAA8B,YAAW,0BAA0B;;IAC9E,SAAgB,QAAQ,SAAS;IAEjC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAwD;gBAGhE,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI9C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;YA0BxD,gBAAgB;IAWvB,eAAe,CAAC,OAAO,EAAE,OAAO;CAaxC;AAED,qBAAa,gCAAiC,YAAW,0BAA0B;;IACjF,SAAgB,QAAQ,aAAa;gBAMzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMlD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAQvD,eAAe;CAGvB;AAoDD,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAGlD,CAAC;AAEF,8GAA8G;AAC9G,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,IAKpE,CAAC;AAmEF,qBAAa,mCAAoC,YAAW,0BAA0B;IACpF,SAAgB,QAAQ,UAAU;IAElC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,EAAE,MAAM;IAwFd,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAI/D,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAG/C"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { AssistantCloudAPI } from "./AssistantCloudAPI.js";
|
|
2
|
-
//#region src/AssistantCloudAuthTokens.d.ts
|
|
1
|
+
import type { AssistantCloudAPI } from "./AssistantCloudAPI.js";
|
|
3
2
|
type AssistantCloudAuthTokensCreateResponse = {
|
|
4
|
-
|
|
3
|
+
token: string;
|
|
5
4
|
};
|
|
6
5
|
export declare class AssistantCloudAuthTokens {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
private cloud;
|
|
7
|
+
constructor(cloud: AssistantCloudAPI);
|
|
8
|
+
create(): Promise<AssistantCloudAuthTokensCreateResponse>;
|
|
10
9
|
}
|
|
11
|
-
|
|
10
|
+
export {};
|
|
12
11
|
//# sourceMappingURL=AssistantCloudAuthTokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthTokens.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthTokens.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,+BAA4B;AAG7D,KAAK,sCAAsC,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAoB;gBAErB,KAAK,EAAE,iBAAiB;IAIvB,MAAM,IAAI,OAAO,CAAC,sCAAsC,CAAC;CAQvE"}
|
|
@@ -1,31 +1,38 @@
|
|
|
1
|
-
import { AssistantCloudAPI } from "./AssistantCloudAPI.js";
|
|
2
|
-
//#region src/AssistantCloudEvents.d.ts
|
|
1
|
+
import type { AssistantCloudAPI } from "./AssistantCloudAPI.js";
|
|
3
2
|
export type AssistantCloudEventKind = "message_sent" | "message_edited" | "run_stopped" | "message_regenerated" | "message_copied" | "branch_switched" | "suggestions_shown" | "suggestion_clicked" | "attachment_added" | "attachment_failed" | "thread_switched" | "tool_approved" | "tool_rejected" | "speech_started" | "voice_started" | "error_shown";
|
|
4
3
|
export type AssistantCloudEvent = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
kind: AssistantCloudEventKind;
|
|
5
|
+
thread_id?: string | undefined;
|
|
6
|
+
message_id?: string | undefined;
|
|
7
|
+
run_id?: string | undefined;
|
|
8
|
+
value?: number | undefined;
|
|
9
|
+
props?: Readonly<Record<string, string | number | boolean>> | undefined;
|
|
11
10
|
};
|
|
11
|
+
export declare const clearPendingAssistantCloudEvents: (events: AssistantCloudEvents) => void;
|
|
12
12
|
export declare class AssistantCloudEvents {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
private buffer;
|
|
14
|
+
private timer;
|
|
15
|
+
private flushing;
|
|
16
|
+
private retryTimer;
|
|
17
|
+
private resolveRetryDelay;
|
|
18
|
+
private bestEffortRequested;
|
|
19
|
+
private generation;
|
|
20
|
+
private readonly cloud;
|
|
21
|
+
private readonly isEnabled;
|
|
22
|
+
private listening;
|
|
23
|
+
constructor(cloud: AssistantCloudAPI, isEnabled: () => boolean);
|
|
24
|
+
track(event: AssistantCloudEvent): void;
|
|
25
|
+
private listen;
|
|
26
|
+
private unlisten;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
private clearPending;
|
|
29
|
+
private onVisibilityChange;
|
|
30
|
+
private flushBestEffort;
|
|
31
|
+
private flush;
|
|
32
|
+
private flushPending;
|
|
33
|
+
private waitForRetry;
|
|
34
|
+
private interruptRetryDelay;
|
|
35
|
+
private scheduleFlush;
|
|
36
|
+
private clearFlushTimer;
|
|
29
37
|
}
|
|
30
|
-
//#endregion
|
|
31
38
|
//# sourceMappingURL=AssistantCloudEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudEvents.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantCloudEvents.d.ts","sourceRoot":"","sources":["../src/AssistantCloudEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,+BAA4B;AAE7D,MAAM,MAAM,uBAAuB,GAC/B,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CACzE,CAAC;AAQF,eAAO,MAAM,gCAAgC,GAC3C,QAAQ,oBAAoB,KAC3B,IAEF,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C,OAAO,CAAC,SAAS,CAAS;gBAEd,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO;IAMvD,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAa9C,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,QAAQ;IAOT,OAAO,IAAI,IAAI;IAMtB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,kBAAkB,CAIxB;IAEF,OAAO,CAAC,eAAe,CAMrB;IAEF,OAAO,CAAC,KAAK,CAsBX;YAEY,YAAY;IAkC1B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;CAKxB"}
|