assistant-cloud 0.1.16 → 0.1.18
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/dist/AssistantCloud.d.ts +2 -1
- package/dist/AssistantCloud.d.ts.map +1 -1
- package/dist/AssistantCloud.js +9 -1
- package/dist/AssistantCloud.js.map +1 -1
- package/dist/AssistantCloudAPI.d.ts +24 -1
- package/dist/AssistantCloudAPI.d.ts.map +1 -1
- package/dist/AssistantCloudAPI.js +3 -1
- package/dist/AssistantCloudAPI.js.map +1 -1
- package/dist/AssistantCloudAuthStrategy.d.ts.map +1 -1
- package/dist/AssistantCloudAuthStrategy.js.map +1 -1
- package/dist/AssistantCloudAuthTokens.d.ts.map +1 -1
- package/dist/AssistantCloudAuthTokens.js.map +1 -1
- package/dist/AssistantCloudFiles.d.ts.map +1 -1
- package/dist/AssistantCloudFiles.js.map +1 -1
- package/dist/AssistantCloudRuns.d.ts +51 -0
- package/dist/AssistantCloudRuns.d.ts.map +1 -1
- package/dist/AssistantCloudRuns.js +3 -0
- package/dist/AssistantCloudRuns.js.map +1 -1
- package/dist/AssistantCloudThreadMessages.d.ts +4 -0
- package/dist/AssistantCloudThreadMessages.d.ts.map +1 -1
- package/dist/AssistantCloudThreadMessages.js +3 -0
- package/dist/AssistantCloudThreadMessages.js.map +1 -1
- package/dist/AssistantCloudThreads.d.ts.map +1 -1
- package/dist/AssistantCloudThreads.js.map +1 -1
- package/dist/CloudMessagePersistence.d.ts +57 -0
- package/dist/CloudMessagePersistence.d.ts.map +1 -0
- package/dist/CloudMessagePersistence.js +103 -0
- package/dist/CloudMessagePersistence.js.map +1 -0
- package/dist/FormattedCloudPersistence.d.ts +56 -0
- package/dist/FormattedCloudPersistence.d.ts.map +1 -0
- package/dist/FormattedCloudPersistence.js +39 -0
- package/dist/FormattedCloudPersistence.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/instrumentMcpSampling.d.ts +75 -0
- package/dist/instrumentMcpSampling.d.ts.map +1 -0
- package/dist/instrumentMcpSampling.js +65 -0
- package/dist/instrumentMcpSampling.js.map +1 -0
- package/package.json +3 -3
- package/src/{AssistantCloud.tsx → AssistantCloud.ts} +14 -1
- package/src/{AssistantCloudAPI.tsx → AssistantCloudAPI.ts} +31 -3
- package/src/AssistantCloudRuns.ts +99 -0
- package/src/{AssistantCloudThreadMessages.tsx → AssistantCloudThreadMessages.ts} +15 -0
- package/src/CloudMessagePersistence.ts +123 -0
- package/src/FormattedCloudPersistence.ts +96 -0
- package/src/index.ts +13 -0
- package/src/instrumentMcpSampling.ts +109 -0
- package/src/tests/AssistantCloudAPI.test.ts +129 -0
- package/src/tests/CloudMessagePersistence.test.ts +152 -0
- package/src/tests/FormattedCloudPersistence.test.ts +134 -0
- package/src/AssistantCloudRuns.tsx +0 -44
- /package/src/{AssistantCloudAuthStrategy.tsx → AssistantCloudAuthStrategy.ts} +0 -0
- /package/src/{AssistantCloudAuthTokens.tsx → AssistantCloudAuthTokens.ts} +0 -0
- /package/src/{AssistantCloudFiles.tsx → AssistantCloudFiles.ts} +0 -0
- /package/src/{AssistantCloudThreads.tsx → AssistantCloudThreads.ts} +0 -0
package/dist/AssistantCloud.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssistantCloudConfig } from "./AssistantCloudAPI.js";
|
|
1
|
+
import { AssistantCloudConfig, AssistantCloudTelemetryConfig } from "./AssistantCloudAPI.js";
|
|
2
2
|
import { AssistantCloudAuthTokens } from "./AssistantCloudAuthTokens.js";
|
|
3
3
|
import { AssistantCloudRuns } from "./AssistantCloudRuns.js";
|
|
4
4
|
import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
|
|
@@ -10,6 +10,7 @@ export declare class AssistantCloud {
|
|
|
10
10
|
};
|
|
11
11
|
readonly runs: AssistantCloudRuns;
|
|
12
12
|
readonly files: AssistantCloudFiles;
|
|
13
|
+
readonly telemetry: AssistantCloudTelemetryConfig;
|
|
13
14
|
constructor(config: AssistantCloudConfig);
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=AssistantCloud.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloud.d.ts","sourceRoot":"","sources":["../src/AssistantCloud.
|
|
1
|
+
{"version":3,"file":"AssistantCloud.d.ts","sourceRoot":"","sources":["../src/AssistantCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,6BAA6B,EAC9B,+BAA4B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AACtE,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAChE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,qBAAa,cAAc;IACzB,SAAgB,OAAO,wBAAC;IACxB,SAAgB,IAAI;;MAAC;IACrB,SAAgB,IAAI,qBAAC;IACrB,SAAgB,KAAK,sBAAC;IACtB,SAAgB,SAAS,EAAE,6BAA6B,CAAC;gBAE7C,MAAM,EAAE,oBAAoB;CAiBzC"}
|
package/dist/AssistantCloud.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssistantCloudAPI } from "./AssistantCloudAPI.js";
|
|
1
|
+
import { AssistantCloudAPI, } from "./AssistantCloudAPI.js";
|
|
2
2
|
import { AssistantCloudAuthTokens } from "./AssistantCloudAuthTokens.js";
|
|
3
3
|
import { AssistantCloudRuns } from "./AssistantCloudRuns.js";
|
|
4
4
|
import { AssistantCloudThreads } from "./AssistantCloudThreads.js";
|
|
@@ -8,6 +8,7 @@ export class AssistantCloud {
|
|
|
8
8
|
auth;
|
|
9
9
|
runs;
|
|
10
10
|
files;
|
|
11
|
+
telemetry;
|
|
11
12
|
constructor(config) {
|
|
12
13
|
const api = new AssistantCloudAPI(config);
|
|
13
14
|
this.threads = new AssistantCloudThreads(api);
|
|
@@ -16,6 +17,13 @@ export class AssistantCloud {
|
|
|
16
17
|
};
|
|
17
18
|
this.runs = new AssistantCloudRuns(api);
|
|
18
19
|
this.files = new AssistantCloudFiles(api);
|
|
20
|
+
const t = config.telemetry;
|
|
21
|
+
this.telemetry =
|
|
22
|
+
t === false
|
|
23
|
+
? { enabled: false }
|
|
24
|
+
: t === true || t === undefined
|
|
25
|
+
? { enabled: true }
|
|
26
|
+
: { enabled: t.enabled !== false, ...t };
|
|
19
27
|
}
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=AssistantCloud.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloud.js","sourceRoot":"","sources":["../src/AssistantCloud.
|
|
1
|
+
{"version":3,"file":"AssistantCloud.js","sourceRoot":"","sources":["../src/AssistantCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAGlB,+BAA4B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AACtE,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAChE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,MAAM,OAAO,cAAc;IACT,OAAO,CAAC;IACR,IAAI,CAAC;IACL,IAAI,CAAC;IACL,KAAK,CAAC;IACN,SAAS,CAAgC;IAEzD,YAAY,MAA4B;QACtC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG;YACV,MAAM,EAAE,IAAI,wBAAwB,CAAC,GAAG,CAAC;SAC1C,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAE1C,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS;YACZ,CAAC,KAAK,KAAK;gBACT,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;gBACpB,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;oBAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { AssistantCloudAuthStrategy } from "./AssistantCloudAuthStrategy.js";
|
|
2
|
-
|
|
2
|
+
import type { AssistantCloudRunReport } from "./AssistantCloudRuns.js";
|
|
3
|
+
export type AssistantCloudTelemetryConfig = {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Called before each telemetry report is sent.
|
|
7
|
+
* Return a modified report to enrich it (e.g. add `model_id`),
|
|
8
|
+
* or return `null` to skip the report.
|
|
9
|
+
*/
|
|
10
|
+
beforeReport?: (report: AssistantCloudRunReport) => AssistantCloudRunReport | null;
|
|
11
|
+
};
|
|
12
|
+
export type AssistantCloudConfig = ({
|
|
3
13
|
baseUrl: string;
|
|
4
14
|
authToken: () => Promise<string | null>;
|
|
5
15
|
} | {
|
|
@@ -9,6 +19,19 @@ export type AssistantCloudConfig = {
|
|
|
9
19
|
} | {
|
|
10
20
|
baseUrl: string;
|
|
11
21
|
anonymous: true;
|
|
22
|
+
}) & {
|
|
23
|
+
/**
|
|
24
|
+
* Client-side run telemetry reporting. Default: `true`.
|
|
25
|
+
*
|
|
26
|
+
* When enabled, the SDK automatically reports run metadata (status, step
|
|
27
|
+
* count, tool calls, and token usage) to Assistant Cloud after each
|
|
28
|
+
* assistant message is saved. No message content is sent.
|
|
29
|
+
*
|
|
30
|
+
* - `true` / `undefined` — enabled with defaults
|
|
31
|
+
* - `false` — disabled
|
|
32
|
+
* - `{ beforeReport }` — enabled with a hook to enrich or filter reports
|
|
33
|
+
*/
|
|
34
|
+
telemetry?: boolean | AssistantCloudTelemetryConfig;
|
|
12
35
|
};
|
|
13
36
|
type MakeRequestOptions = {
|
|
14
37
|
method?: "POST" | "PUT" | "DELETE" | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAPI.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAPI.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAPI.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAI3B,wCAAqC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,gCAA6B;AAEpE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;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,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;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,6BAA6B,CAAC;CACrD,CAAC;AASF,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;CAC3B,CAAC;AAEF,qBAAa,iBAAiB;IACrB,KAAK,EAAE,0BAA0B,CAAC;IAClC,QAAQ,SAAC;gBAEJ,MAAM,EAAE,oBAAoB;IAqB3B,cAAc;IAId,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB;IAkDrB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;CAI5E"}
|
|
@@ -64,7 +64,9 @@ export class AssistantCloudAPI {
|
|
|
64
64
|
const body = JSON.parse(text);
|
|
65
65
|
throw new CloudAPIError(body.message);
|
|
66
66
|
}
|
|
67
|
-
catch {
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error instanceof CloudAPIError)
|
|
69
|
+
throw error;
|
|
68
70
|
throw new Error(`Request failed with status ${response.status}, ${text}`);
|
|
69
71
|
}
|
|
70
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAPI.js","sourceRoot":"","sources":["../src/AssistantCloudAPI.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAPI.js","sourceRoot":"","sources":["../src/AssistantCloudAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthStrategy.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthStrategy.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthStrategy.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthStrategy.ts"],"names":[],"mappings":"AAAA,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;AAgCF,qBAAa,6BACX,YAAW,0BAA0B;;IAErC,SAAgB,QAAQ,SAAS;IAEjC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAuB;gBAG9B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI9C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAsB/D,eAAe,CAAC,OAAO,EAAE,OAAO;CAYxC;AAED,qBAAa,gCACX,YAAW,0BAA0B;;IAErC,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;AAID,qBAAa,mCACX,YAAW,0BAA0B;IAErC,SAAgB,QAAQ,UAAU;IAElC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAgC;gBAEvC,OAAO,EAAE,MAAM;IA8Dd,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthStrategy.js","sourceRoot":"","sources":["../src/AssistantCloudAuthStrategy.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthStrategy.js","sourceRoot":"","sources":["../src/AssistantCloudAuthStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthTokens.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthTokens.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthTokens.d.ts","sourceRoot":"","sources":["../src/AssistantCloudAuthTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AAExD,KAAK,sCAAsC,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,wBAAwB;IACvB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/B,MAAM,IAAI,OAAO,CAAC,sCAAsC,CAAC;CAGvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthTokens.js","sourceRoot":"","sources":["../src/AssistantCloudAuthTokens.
|
|
1
|
+
{"version":3,"file":"AssistantCloudAuthTokens.js","sourceRoot":"","sources":["../src/AssistantCloudAuthTokens.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,wBAAwB;IACf;IAApB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzC,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudFiles.d.ts","sourceRoot":"","sources":["../src/AssistantCloudFiles.
|
|
1
|
+
{"version":3,"file":"AssistantCloudFiles.d.ts","sourceRoot":"","sources":["../src/AssistantCloudFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AAExD,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,qCAAqC,GAAG;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,kCAAkC,GAAG;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,mBAAmB;IAClB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/B,WAAW,CACtB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IAOlB,0BAA0B,CACrC,IAAI,EAAE,qCAAqC,GAC1C,OAAO,CAAC,kCAAkC,CAAC;CAS/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudFiles.js","sourceRoot":"","sources":["../src/AssistantCloudFiles.
|
|
1
|
+
{"version":3,"file":"AssistantCloudFiles.js","sourceRoot":"","sources":["../src/AssistantCloudFiles.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzC,KAAK,CAAC,WAAW,CACtB,IAA4B;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,0BAA0B,CACrC,IAA2C;QAE3C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,kDAAkD,EAClD;YACE,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -5,6 +5,54 @@ type AssistantCloudRunsStreamBody = {
|
|
|
5
5
|
assistant_id: "system/thread_title";
|
|
6
6
|
messages: readonly unknown[];
|
|
7
7
|
};
|
|
8
|
+
export type AssistantCloudRunReport = {
|
|
9
|
+
thread_id: string;
|
|
10
|
+
status: "completed" | "incomplete" | "error";
|
|
11
|
+
total_steps?: number;
|
|
12
|
+
tool_calls?: {
|
|
13
|
+
tool_name: string;
|
|
14
|
+
tool_call_id: string;
|
|
15
|
+
tool_args?: string;
|
|
16
|
+
tool_result?: string;
|
|
17
|
+
tool_source?: "mcp" | "frontend" | "backend";
|
|
18
|
+
start_ms?: number;
|
|
19
|
+
end_ms?: number;
|
|
20
|
+
sampling_calls?: {
|
|
21
|
+
model_id?: string;
|
|
22
|
+
input_tokens?: number;
|
|
23
|
+
output_tokens?: number;
|
|
24
|
+
duration_ms?: number;
|
|
25
|
+
}[];
|
|
26
|
+
}[];
|
|
27
|
+
steps?: {
|
|
28
|
+
input_tokens?: number;
|
|
29
|
+
output_tokens?: number;
|
|
30
|
+
tool_calls?: {
|
|
31
|
+
tool_name: string;
|
|
32
|
+
tool_call_id: string;
|
|
33
|
+
tool_args?: string;
|
|
34
|
+
tool_result?: string;
|
|
35
|
+
tool_source?: "mcp" | "frontend" | "backend";
|
|
36
|
+
start_ms?: number;
|
|
37
|
+
end_ms?: number;
|
|
38
|
+
sampling_calls?: {
|
|
39
|
+
model_id?: string;
|
|
40
|
+
input_tokens?: number;
|
|
41
|
+
output_tokens?: number;
|
|
42
|
+
duration_ms?: number;
|
|
43
|
+
}[];
|
|
44
|
+
}[];
|
|
45
|
+
start_ms?: number;
|
|
46
|
+
end_ms?: number;
|
|
47
|
+
}[];
|
|
48
|
+
input_tokens?: number;
|
|
49
|
+
output_tokens?: number;
|
|
50
|
+
model_id?: string;
|
|
51
|
+
provider_type?: string;
|
|
52
|
+
duration_ms?: number;
|
|
53
|
+
output_text?: string;
|
|
54
|
+
metadata?: Record<string, unknown>;
|
|
55
|
+
};
|
|
8
56
|
export declare class AssistantCloudRuns {
|
|
9
57
|
private cloud;
|
|
10
58
|
constructor(cloud: AssistantCloudAPI);
|
|
@@ -20,6 +68,9 @@ export declare class AssistantCloudRuns {
|
|
|
20
68
|
};
|
|
21
69
|
};
|
|
22
70
|
stream(body: AssistantCloudRunsStreamBody): Promise<AssistantStream>;
|
|
71
|
+
report(body: AssistantCloudRunReport): Promise<{
|
|
72
|
+
run_id: string;
|
|
73
|
+
}>;
|
|
23
74
|
}
|
|
24
75
|
export {};
|
|
25
76
|
//# sourceMappingURL=AssistantCloudRuns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudRuns.d.ts","sourceRoot":"","sources":["../src/AssistantCloudRuns.
|
|
1
|
+
{"version":3,"file":"AssistantCloudRuns.d.ts","sourceRoot":"","sources":["../src/AssistantCloudRuns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAErE,KAAK,4BAA4B,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,qBAAqB,CAAC;IACpC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;QAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE;YACf,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,EAAE,CAAC;KACL,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;YAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,cAAc,CAAC,EAAE;gBACf,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;gBACtB,aAAa,CAAC,EAAE,MAAM,CAAC;gBACvB,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,EAAE,CAAC;SACL,EAAE,CAAC;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAErC,8BAA8B,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;IAmB5C,MAAM,CACjB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,eAAe,CAAC;IAWd,MAAM,CACjB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAG/B"}
|
|
@@ -33,5 +33,8 @@ export class AssistantCloudRuns {
|
|
|
33
33
|
});
|
|
34
34
|
return AssistantStream.fromResponse(response, new PlainTextDecoder());
|
|
35
35
|
}
|
|
36
|
+
async report(body) {
|
|
37
|
+
return this.cloud.makeRequest("/runs", { method: "POST", body });
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
//# sourceMappingURL=AssistantCloudRuns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudRuns.js","sourceRoot":"","sources":["../src/AssistantCloudRuns.
|
|
1
|
+
{"version":3,"file":"AssistantCloudRuns.js","sourceRoot":"","sources":["../src/AssistantCloudRuns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAyDrE,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzC,8BAA8B,CAAC,WAAmB;QACvD,OAAO;YACL,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,iBAAiB;YAC5C,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACtD,OAAO;oBACL,GAAG,OAAO;oBACV,MAAM,EAAE,YAAY;iBACrB,CAAC;YACJ,CAAC;YACD,IAAI,EAAE;gBACJ,YAAY,EAAE,WAAW;gBACzB,eAAe,EAAE,0BAA0B;gBAC3C,SAAS,EAAE,eAAe;aAC3B;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,IAAkC;QAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,YAAY;aACrB;YACD,IAAI;SACL,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,IAA6B;QAE7B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;CACF"}
|
|
@@ -23,11 +23,15 @@ type AssistantCloudThreadMessageCreateBody = {
|
|
|
23
23
|
type AssistantCloudMessageCreateResponse = {
|
|
24
24
|
message_id: string;
|
|
25
25
|
};
|
|
26
|
+
type AssistantCloudThreadMessageUpdateBody = {
|
|
27
|
+
content: ReadonlyJSONObject;
|
|
28
|
+
};
|
|
26
29
|
export declare class AssistantCloudThreadMessages {
|
|
27
30
|
private cloud;
|
|
28
31
|
constructor(cloud: AssistantCloudAPI);
|
|
29
32
|
list(threadId: string, query?: AssistantCloudThreadMessageListQuery): Promise<AssistantCloudThreadMessageListResponse>;
|
|
30
33
|
create(threadId: string, body: AssistantCloudThreadMessageCreateBody): Promise<AssistantCloudMessageCreateResponse>;
|
|
34
|
+
update(threadId: string, messageId: string, body: AssistantCloudThreadMessageUpdateBody): Promise<void>;
|
|
31
35
|
}
|
|
32
36
|
export {};
|
|
33
37
|
//# sourceMappingURL=AssistantCloudThreadMessages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudThreadMessages.d.ts","sourceRoot":"","sources":["../src/AssistantCloudThreadMessages.
|
|
1
|
+
{"version":3,"file":"AssistantCloudThreadMessages.d.ts","sourceRoot":"","sources":["../src/AssistantCloudThreadMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,KAAK,oCAAoC,GAAG;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,uCAAuC,GAAG;IAC7C,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,KAAK,qCAAqC,GAAG;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,qCAAqC,GAAG;IAC3C,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/B,IAAI,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,oCAAoC,GAC3C,OAAO,CAAC,uCAAuC,CAAC;IAOtC,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qCAAqC,GAC1C,OAAO,CAAC,mCAAmC,CAAC;IAOlC,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,qCAAqC,GAC1C,OAAO,CAAC,IAAI,CAAC;CAMjB"}
|
|
@@ -9,5 +9,8 @@ export class AssistantCloudThreadMessages {
|
|
|
9
9
|
async create(threadId, body) {
|
|
10
10
|
return this.cloud.makeRequest(`/threads/${encodeURIComponent(threadId)}/messages`, { method: "POST", body });
|
|
11
11
|
}
|
|
12
|
+
async update(threadId, messageId, body) {
|
|
13
|
+
return this.cloud.makeRequest(`/threads/${encodeURIComponent(threadId)}/messages/${encodeURIComponent(messageId)}`, { method: "PUT", body });
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=AssistantCloudThreadMessages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudThreadMessages.js","sourceRoot":"","sources":["../src/AssistantCloudThreadMessages.
|
|
1
|
+
{"version":3,"file":"AssistantCloudThreadMessages.js","sourceRoot":"","sources":["../src/AssistantCloudThreadMessages.ts"],"names":[],"mappings":"AAmCA,MAAM,OAAO,4BAA4B;IACnB;IAApB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzC,KAAK,CAAC,IAAI,CACf,QAAgB,EAChB,KAA4C;QAE5C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,YAAY,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EACnD,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,QAAgB,EAChB,IAA2C;QAE3C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,YAAY,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EACnD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACzB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,QAAgB,EAChB,SAAiB,EACjB,IAA2C;QAE3C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAC3B,YAAY,kBAAkB,CAAC,QAAQ,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,EAAE,EACpF,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CACxB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudThreads.d.ts","sourceRoot":"","sources":["../src/AssistantCloudThreads.
|
|
1
|
+
{"version":3,"file":"AssistantCloudThreads.d.ts","sourceRoot":"","sources":["../src/AssistantCloudThreads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,4BAA4B,EAAE,0CAAuC;AAE9E,KAAK,8BAA8B,GAAG;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,iCAAiC,GAAG;IACvC,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,KAAK;IAFzB,SAAgB,QAAQ,EAAE,4BAA4B,CAAC;gBAEnC,KAAK,EAAE,iBAAiB;IAI/B,IAAI,CACf,KAAK,CAAC,EAAE,8BAA8B,GACrC,OAAO,CAAC,iCAAiC,CAAC;IAIhC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3C,MAAM,CACjB,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,mCAAmC,CAAC;IAIlC,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,IAAI,CAAC;IAOH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudThreads.js","sourceRoot":"","sources":["../src/AssistantCloudThreads.
|
|
1
|
+
{"version":3,"file":"AssistantCloudThreads.js","sourceRoot":"","sources":["../src/AssistantCloudThreads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,0CAAuC;AA2C9E,MAAM,OAAO,qBAAqB;IAGZ;IAFJ,QAAQ,CAA+B;IAEvD,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,KAAsC;QAEtC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,IAAqC;QAErC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,QAAgB,EAChB,IAAqC;QAErC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE;YACxE,MAAM,EAAE,KAAK;YACb,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE;YACxE,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ReadonlyJSONObject } from "assistant-stream/utils";
|
|
2
|
+
import type { AssistantCloud } from "./AssistantCloud.js";
|
|
3
|
+
/**
|
|
4
|
+
* Shared persistence logic for cloud message storage.
|
|
5
|
+
*
|
|
6
|
+
* Handles ID mapping (local → remote) and parent_id chaining for both:
|
|
7
|
+
* - AssistantCloudThreadHistoryAdapter (assistant-ui runtime)
|
|
8
|
+
* - useCloudChat (standalone AI SDK hook)
|
|
9
|
+
*
|
|
10
|
+
* The promise-based ID resolution handles concurrent appends — if message B's
|
|
11
|
+
* parent is message A, and A is still being created, we await A's promise
|
|
12
|
+
* to get its remote ID before creating B.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CloudMessagePersistence {
|
|
15
|
+
private cloud;
|
|
16
|
+
private idMapping;
|
|
17
|
+
constructor(cloud: AssistantCloud);
|
|
18
|
+
/**
|
|
19
|
+
* Persist a message to the cloud.
|
|
20
|
+
*
|
|
21
|
+
* @param threadId - Remote thread ID
|
|
22
|
+
* @param messageId - Local message ID (used for tracking)
|
|
23
|
+
* @param parentId - Local parent message ID (or null for first message)
|
|
24
|
+
* @param format - Message format (e.g., "aui/v0", "ai-sdk/v6")
|
|
25
|
+
* @param content - Message content (format-specific)
|
|
26
|
+
*/
|
|
27
|
+
append(threadId: string, messageId: string, parentId: string | null, format: string, content: ReadonlyJSONObject): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Update an already-persisted message in the cloud.
|
|
30
|
+
*/
|
|
31
|
+
update(threadId: string, messageId: string, _format: string, content: ReadonlyJSONObject): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a message has been persisted (or is currently being persisted).
|
|
34
|
+
*/
|
|
35
|
+
isPersisted(messageId: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Get the remote ID for a local message ID (resolved).
|
|
38
|
+
* Returns undefined if not persisted.
|
|
39
|
+
*/
|
|
40
|
+
getRemoteId(messageId: string): Promise<string | undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* Load messages from the cloud and populate the ID mapping.
|
|
43
|
+
*
|
|
44
|
+
* The ID mapping is populated so that `isPersisted()` returns true for
|
|
45
|
+
* loaded messages, preventing re-persistence of already-stored messages.
|
|
46
|
+
*
|
|
47
|
+
* @param threadId - Remote thread ID
|
|
48
|
+
* @param format - Optional format filter
|
|
49
|
+
* @returns Array of cloud messages
|
|
50
|
+
*/
|
|
51
|
+
load(threadId: string, format?: string): Promise<import("./AssistantCloudThreadMessages").CloudMessage[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Reset the ID mapping (call when switching threads).
|
|
54
|
+
*/
|
|
55
|
+
reset(): void;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=CloudMessagePersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloudMessagePersistence.d.ts","sourceRoot":"","sources":["../src/CloudMessagePersistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,4BAAyB;AAEvD;;;;;;;;;;GAUG;AACH,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,SAAS,CAAgD;gBAE7C,KAAK,EAAE,cAAc;IAEzC;;;;;;;;OAQG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMjE;;;;;;;;;OASG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAY5C;;OAEG;IACH,KAAK;CAGN"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared persistence logic for cloud message storage.
|
|
3
|
+
*
|
|
4
|
+
* Handles ID mapping (local → remote) and parent_id chaining for both:
|
|
5
|
+
* - AssistantCloudThreadHistoryAdapter (assistant-ui runtime)
|
|
6
|
+
* - useCloudChat (standalone AI SDK hook)
|
|
7
|
+
*
|
|
8
|
+
* The promise-based ID resolution handles concurrent appends — if message B's
|
|
9
|
+
* parent is message A, and A is still being created, we await A's promise
|
|
10
|
+
* to get its remote ID before creating B.
|
|
11
|
+
*/
|
|
12
|
+
export class CloudMessagePersistence {
|
|
13
|
+
cloud;
|
|
14
|
+
idMapping = {};
|
|
15
|
+
constructor(cloud) {
|
|
16
|
+
this.cloud = cloud;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Persist a message to the cloud.
|
|
20
|
+
*
|
|
21
|
+
* @param threadId - Remote thread ID
|
|
22
|
+
* @param messageId - Local message ID (used for tracking)
|
|
23
|
+
* @param parentId - Local parent message ID (or null for first message)
|
|
24
|
+
* @param format - Message format (e.g., "aui/v0", "ai-sdk/v6")
|
|
25
|
+
* @param content - Message content (format-specific)
|
|
26
|
+
*/
|
|
27
|
+
async append(threadId, messageId, parentId, format, content) {
|
|
28
|
+
// Resolve parent's remote ID if it exists (may be a promise if concurrent)
|
|
29
|
+
const resolvedParentId = parentId
|
|
30
|
+
? ((await this.idMapping[parentId]) ?? parentId)
|
|
31
|
+
: null;
|
|
32
|
+
const task = this.cloud.threads.messages
|
|
33
|
+
.create(threadId, {
|
|
34
|
+
parent_id: resolvedParentId,
|
|
35
|
+
format,
|
|
36
|
+
content,
|
|
37
|
+
})
|
|
38
|
+
.then(({ message_id }) => {
|
|
39
|
+
this.idMapping[messageId] = message_id;
|
|
40
|
+
return message_id;
|
|
41
|
+
})
|
|
42
|
+
.catch((err) => {
|
|
43
|
+
// Only delete if we're still the active task (avoids clobbering a retry)
|
|
44
|
+
if (this.idMapping[messageId] === task) {
|
|
45
|
+
delete this.idMapping[messageId];
|
|
46
|
+
}
|
|
47
|
+
throw err;
|
|
48
|
+
});
|
|
49
|
+
// Store the promise immediately so concurrent appends can await it
|
|
50
|
+
this.idMapping[messageId] = task;
|
|
51
|
+
return task.then(() => { });
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Update an already-persisted message in the cloud.
|
|
55
|
+
*/
|
|
56
|
+
async update(threadId, messageId, _format, content) {
|
|
57
|
+
const remoteId = await this.getRemoteId(messageId);
|
|
58
|
+
if (!remoteId)
|
|
59
|
+
return; // not persisted yet, skip
|
|
60
|
+
await this.cloud.threads.messages.update(threadId, remoteId, { content });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if a message has been persisted (or is currently being persisted).
|
|
64
|
+
*/
|
|
65
|
+
isPersisted(messageId) {
|
|
66
|
+
return messageId in this.idMapping;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the remote ID for a local message ID (resolved).
|
|
70
|
+
* Returns undefined if not persisted.
|
|
71
|
+
*/
|
|
72
|
+
async getRemoteId(messageId) {
|
|
73
|
+
const entry = this.idMapping[messageId];
|
|
74
|
+
if (!entry)
|
|
75
|
+
return undefined;
|
|
76
|
+
return entry;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Load messages from the cloud and populate the ID mapping.
|
|
80
|
+
*
|
|
81
|
+
* The ID mapping is populated so that `isPersisted()` returns true for
|
|
82
|
+
* loaded messages, preventing re-persistence of already-stored messages.
|
|
83
|
+
*
|
|
84
|
+
* @param threadId - Remote thread ID
|
|
85
|
+
* @param format - Optional format filter
|
|
86
|
+
* @returns Array of cloud messages
|
|
87
|
+
*/
|
|
88
|
+
async load(threadId, format) {
|
|
89
|
+
const { messages } = await this.cloud.threads.messages.list(threadId, format ? { format } : undefined);
|
|
90
|
+
// Populate ID mapping so isPersisted() recognizes loaded messages
|
|
91
|
+
for (const m of messages) {
|
|
92
|
+
this.idMapping[m.id] = m.id;
|
|
93
|
+
}
|
|
94
|
+
return messages;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Reset the ID mapping (call when switching threads).
|
|
98
|
+
*/
|
|
99
|
+
reset() {
|
|
100
|
+
this.idMapping = {};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=CloudMessagePersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloudMessagePersistence.js","sourceRoot":"","sources":["../src/CloudMessagePersistence.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,uBAAuB;IAGd;IAFZ,SAAS,GAA6C,EAAE,CAAC;IAEjE,YAAoB,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAE7C;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,SAAiB,EACjB,QAAuB,EACvB,MAAc,EACd,OAA2B;QAE3B,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,QAAQ;YAC/B,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;aACrC,MAAM,CAAC,QAAQ,EAAE;YAChB,SAAS,EAAE,gBAAgB;YAC3B,MAAM;YACN,OAAO;SACR,CAAC;aACD,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;YACvC,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,yEAAyE;YACzE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QAEL,mEAAmE;QACnE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,SAAiB,EACjB,OAAe,EACf,OAA2B;QAE3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,0BAA0B;QACjD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,MAAe;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACzD,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAChC,CAAC;QACF,kEAAkE;QAClE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ReadonlyJSONObject } from "assistant-stream/utils";
|
|
2
|
+
/**
|
|
3
|
+
* Format adapter shape — structurally identical to the MessageFormatAdapter
|
|
4
|
+
* in @assistant-ui/react, but defined here to avoid cross-package type moves.
|
|
5
|
+
* TypeScript's structural typing ensures these are interchangeable.
|
|
6
|
+
*/
|
|
7
|
+
export type MessageFormatAdapter<TMessage, TStorageFormat> = {
|
|
8
|
+
format: string;
|
|
9
|
+
encode(item: {
|
|
10
|
+
parentId: string | null;
|
|
11
|
+
message: TMessage;
|
|
12
|
+
}): TStorageFormat;
|
|
13
|
+
decode(stored: {
|
|
14
|
+
id: string;
|
|
15
|
+
parent_id: string | null;
|
|
16
|
+
format: string;
|
|
17
|
+
content: TStorageFormat;
|
|
18
|
+
}): {
|
|
19
|
+
parentId: string | null;
|
|
20
|
+
message: TMessage;
|
|
21
|
+
};
|
|
22
|
+
getId(message: TMessage): string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Wraps a CloudMessagePersistence instance with format-aware encode/decode.
|
|
26
|
+
*
|
|
27
|
+
* This centralizes the pattern used by both:
|
|
28
|
+
* - useCloudChat (standalone AI SDK hook)
|
|
29
|
+
* - AssistantCloudThreadHistoryAdapter.withFormat() (assistant-ui runtime)
|
|
30
|
+
*
|
|
31
|
+
* The persistence parameter is typed structurally (not by class) so callers
|
|
32
|
+
* don't need to import CloudMessagePersistence directly.
|
|
33
|
+
*/
|
|
34
|
+
export declare const createFormattedPersistence: <TMessage, TStorageFormat>(persistence: {
|
|
35
|
+
append: (threadId: string, messageId: string, parentId: string | null, format: string, content: ReadonlyJSONObject) => Promise<void>;
|
|
36
|
+
load: (threadId: string, format?: string) => Promise<any[]>;
|
|
37
|
+
isPersisted: (messageId: string) => boolean;
|
|
38
|
+
update?: (threadId: string, messageId: string, format: string, content: ReadonlyJSONObject) => Promise<void>;
|
|
39
|
+
}, adapter: MessageFormatAdapter<TMessage, TStorageFormat>) => {
|
|
40
|
+
append: (threadId: string, item: {
|
|
41
|
+
parentId: string | null;
|
|
42
|
+
message: TMessage;
|
|
43
|
+
}) => Promise<void>;
|
|
44
|
+
update: ((threadId: string, item: {
|
|
45
|
+
parentId: string | null;
|
|
46
|
+
message: TMessage;
|
|
47
|
+
}, messageId: string) => Promise<void>) | undefined;
|
|
48
|
+
load: (threadId: string) => Promise<{
|
|
49
|
+
messages: {
|
|
50
|
+
parentId: string | null;
|
|
51
|
+
message: TMessage;
|
|
52
|
+
}[];
|
|
53
|
+
}>;
|
|
54
|
+
isPersisted: (messageId: string) => boolean;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=FormattedCloudPersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormattedCloudPersistence.d.ts","sourceRoot":"","sources":["../src/FormattedCloudPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,IAAI;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,GAAG,cAAc,CAAC;IAC7E,MAAM,CAAC,MAAM,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,cAAc,CAAC;KACzB,GAAG;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;IACnD,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,EAAE,cAAc,EACjE,aAAa;IACX,MAAM,EAAE,CACN,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,EACD,SAAS,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC;uBAG3C,MAAM,QACV;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,KACnD,OAAO,CAAC,IAAI,CAAC;wBAaA,MAAM,QACV;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,aACzC,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC;qBAUG,MAAM;;sBA/Db,MAAM,GAAG,IAAI;;;;6BA+EJ,MAAM;CAC/B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a CloudMessagePersistence instance with format-aware encode/decode.
|
|
3
|
+
*
|
|
4
|
+
* This centralizes the pattern used by both:
|
|
5
|
+
* - useCloudChat (standalone AI SDK hook)
|
|
6
|
+
* - AssistantCloudThreadHistoryAdapter.withFormat() (assistant-ui runtime)
|
|
7
|
+
*
|
|
8
|
+
* The persistence parameter is typed structurally (not by class) so callers
|
|
9
|
+
* don't need to import CloudMessagePersistence directly.
|
|
10
|
+
*/
|
|
11
|
+
export const createFormattedPersistence = (persistence, adapter) => ({
|
|
12
|
+
append: async (threadId, item) => {
|
|
13
|
+
const messageId = adapter.getId(item.message);
|
|
14
|
+
const encoded = adapter.encode(item);
|
|
15
|
+
return persistence.append(threadId, messageId, item.parentId, adapter.format, encoded);
|
|
16
|
+
},
|
|
17
|
+
update: persistence.update
|
|
18
|
+
? async (threadId, item, messageId) => {
|
|
19
|
+
const encoded = adapter.encode(item);
|
|
20
|
+
return persistence.update(threadId, messageId, adapter.format, encoded);
|
|
21
|
+
}
|
|
22
|
+
: undefined,
|
|
23
|
+
load: async (threadId) => {
|
|
24
|
+
const messages = await persistence.load(threadId, adapter.format);
|
|
25
|
+
return {
|
|
26
|
+
messages: messages
|
|
27
|
+
.filter((m) => m.format === adapter.format)
|
|
28
|
+
.map((m) => adapter.decode({
|
|
29
|
+
id: m.id,
|
|
30
|
+
parent_id: m.parent_id,
|
|
31
|
+
format: m.format,
|
|
32
|
+
content: m.content,
|
|
33
|
+
}))
|
|
34
|
+
.reverse(),
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
isPersisted: (messageId) => persistence.isPersisted(messageId),
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=FormattedCloudPersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormattedCloudPersistence.js","sourceRoot":"","sources":["../src/FormattedCloudPersistence.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,WAgBC,EACD,OAAuD,EACvD,EAAE,CAAC,CAAC;IACJ,MAAM,EAAE,KAAK,EACX,QAAgB,EAChB,IAAoD,EACrC,EAAE;QACjB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,WAAW,CAAC,MAAM,CACvB,QAAQ,EACR,SAAS,EACT,IAAI,CAAC,QAAQ,EACb,OAAO,CAAC,MAAM,EACd,OAA6B,CAC9B,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,WAAW,CAAC,MAAM;QACxB,CAAC,CAAC,KAAK,EACH,QAAgB,EAChB,IAAoD,EACpD,SAAiB,EACF,EAAE;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,WAAW,CAAC,MAAO,CACxB,QAAQ,EACR,SAAS,EACT,OAAO,CAAC,MAAM,EACd,OAA6B,CAC9B,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS;IACb,IAAI,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,QAAQ,EAAE,QAAQ;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,OAAO,CAAC,MAAM,CAAC;gBACb,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAyB;aACrC,CAAC,CACH;iBACA,OAAO,EAAE;SACb,CAAC;IACJ,CAAC;IACD,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC;CACvE,CAAC,CAAC"}
|