@assistant-ui/react 0.7.58 → 0.7.59
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/cloud/AssistantCloud.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.js +1 -1
- package/dist/cloud/AssistantCloud.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.mjs +1 -1
- package/dist/cloud/AssistantCloud.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAPI.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.js +1 -1
- package/dist/cloud/AssistantCloudAPI.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.mjs +1 -1
- package/dist/cloud/AssistantCloudAPI.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAuthStrategy.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.js +1 -1
- package/dist/cloud/AssistantCloudAuthStrategy.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.mjs +1 -1
- package/dist/cloud/AssistantCloudAuthStrategy.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.js +1 -1
- package/dist/cloud/AssistantCloudAuthTokens.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.mjs +1 -1
- package/dist/cloud/AssistantCloudAuthTokens.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.d.ts +1 -1
- package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.js +1 -1
- package/dist/cloud/AssistantCloudRuns.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.mjs +1 -1
- package/dist/cloud/AssistantCloudRuns.mjs.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +72 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs +47 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.d.ts +30 -0
- package/dist/cloud/AssistantCloudThreadMessages.d.ts.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.js +46 -0
- package/dist/cloud/AssistantCloudThreadMessages.js.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.mjs +21 -0
- package/dist/cloud/AssistantCloudThreadMessages.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.d.ts +2 -0
- package/dist/cloud/AssistantCloudThreads.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.js +8 -3
- package/dist/cloud/AssistantCloudThreads.js.map +1 -0
- package/dist/cloud/AssistantCloudThreads.mjs +30 -0
- package/dist/cloud/AssistantCloudThreads.mjs.map +1 -0
- package/dist/cloud/auiV0.d.ts +46 -0
- package/dist/cloud/auiV0.d.ts.map +1 -0
- package/dist/cloud/auiV0.js +99 -0
- package/dist/cloud/auiV0.js.map +1 -0
- package/dist/cloud/auiV0.mjs +73 -0
- package/dist/cloud/auiV0.mjs.map +1 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.js +1 -1
- package/dist/cloud/index.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.mjs +1 -1
- package/dist/cloud/index.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.d.ts +1 -1
- package/dist/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.js +16 -4
- package/dist/cloud/useCloudThreadListRuntime.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.mjs +23 -5
- package/dist/cloud/useCloudThreadListRuntime.mjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/model-context/makeAssistantTool.d.ts +2 -1
- package/dist/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/model-context/makeAssistantTool.js.map +1 -1
- package/dist/model-context/makeAssistantTool.mjs.map +1 -1
- package/dist/model-context/makeAssistantToolUI.d.ts +2 -1
- package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/makeAssistantToolUI.js.map +1 -1
- package/dist/model-context/makeAssistantToolUI.mjs.map +1 -1
- package/dist/model-context/useAssistantTool.d.ts +3 -2
- package/dist/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantTool.mjs.map +1 -1
- package/dist/model-context/useAssistantToolUI.d.ts +2 -1
- package/dist/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.mjs.map +1 -1
- package/dist/model-context/useInlineRender.d.ts +2 -1
- package/dist/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/model-context/useInlineRender.js.map +1 -1
- package/dist/model-context/useInlineRender.mjs.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +5 -4
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +2 -2
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +4 -3
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.js +1 -1
- package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.mjs +1 -1
- package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.d.ts +4 -3
- package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts +11 -3
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js +10 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs +10 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts +3 -2
- package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +2 -0
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +27 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +27 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.d.ts.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.js +14 -7
- package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.mjs +14 -7
- package/dist/runtimes/local/useLocalRuntime.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -6
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +1 -6
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/index.d.ts +0 -1
- package/dist/runtimes/remote-thread-list/index.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/index.js +1 -4
- package/dist/runtimes/remote-thread-list/index.js.map +1 -1
- package/dist/runtimes/remote-thread-list/index.mjs +0 -1
- package/dist/runtimes/remote-thread-list/index.mjs.map +1 -1
- package/dist/types/AssistantTypes.d.ts +8 -7
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/AssistantTypes.js.map +1 -1
- package/dist/types/ContentPartComponentTypes.d.ts +3 -2
- package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
- package/dist/types/ContentPartComponentTypes.js.map +1 -1
- package/dist/utils/json/fix-json.d.ts.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.js +1 -1
- package/dist/utils/json/fix-json.js.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.mjs +1 -1
- package/dist/utils/json/fix-json.mjs.map +1 -0
- package/dist/utils/json/is-json.d.ts +5 -0
- package/dist/utils/json/is-json.d.ts.map +1 -0
- package/dist/utils/json/is-json.js +56 -0
- package/dist/utils/json/is-json.js.map +1 -0
- package/dist/utils/json/is-json.mjs +29 -0
- package/dist/utils/json/is-json.mjs.map +1 -0
- package/dist/utils/json/json-value.d.ts +6 -0
- package/dist/utils/json/json-value.d.ts.map +1 -0
- package/dist/utils/json/json-value.js +19 -0
- package/dist/utils/json/json-value.js.map +1 -0
- package/dist/utils/json/json-value.mjs +1 -0
- package/dist/utils/json/json-value.mjs.map +1 -0
- package/dist/utils/json/parse-partial-json.d.ts.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.js +1 -1
- package/dist/utils/json/parse-partial-json.js.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.mjs +1 -1
- package/dist/utils/json/parse-partial-json.mjs.map +1 -0
- package/package.json +1 -1
- package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.tsx +1 -1
- package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +64 -0
- package/src/cloud/AssistantCloudThreadMessages.tsx +48 -0
- package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.tsx +10 -3
- package/src/cloud/auiV0.ts +130 -0
- package/src/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.tsx +29 -5
- package/src/index.ts +1 -0
- package/src/model-context/makeAssistantTool.tsx +2 -4
- package/src/model-context/makeAssistantToolUI.tsx +2 -4
- package/src/model-context/useAssistantTool.tsx +3 -5
- package/src/model-context/useAssistantToolUI.tsx +2 -4
- package/src/model-context/useInlineRender.tsx +2 -1
- package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +4 -2
- package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +2 -1
- package/src/runtimes/edge/createEdgeRuntimeAPI.ts +4 -4
- package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +4 -3
- package/src/runtimes/edge/streams/runResultStream.ts +1 -1
- package/src/runtimes/edge/streams/toolResultStream.ts +4 -3
- package/src/runtimes/external-store/ThreadMessageLike.tsx +24 -3
- package/src/runtimes/local/ChatModelAdapter.tsx +3 -2
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +37 -1
- package/src/runtimes/local/useLocalRuntime.tsx +14 -7
- package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +1 -6
- package/src/runtimes/remote-thread-list/index.ts +0 -1
- package/src/types/AssistantTypes.ts +11 -7
- package/src/types/ContentPartComponentTypes.tsx +3 -2
- package/src/utils/json/is-json.ts +42 -0
- package/src/utils/json/json-value.ts +13 -0
- package/dist/runtimes/edge/partial-json/fix-json.d.ts.map +0 -1
- package/dist/runtimes/edge/partial-json/fix-json.js.map +0 -1
- package/dist/runtimes/edge/partial-json/fix-json.mjs.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.d.ts.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.js.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs +0 -25
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +0 -1
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.d.ts +0 -0
- /package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.d.ts +0 -0
- /package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.d.ts +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/index.ts +0 -0
- /package/src/{runtimes/edge/partial-json → utils/json}/fix-json.ts +0 -0
- /package/src/{runtimes/edge/partial-json → utils/json}/parse-partial-json.ts +0 -0
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
Unstable_AudioContentPart,
|
|
10
10
|
} from "./AssistantTypes";
|
|
11
11
|
import { ContentPartState } from "../api/ContentPartRuntime";
|
|
12
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
|
12
13
|
|
|
13
14
|
export type EmptyContentPartProps = {
|
|
14
15
|
status: ContentPartStatus;
|
|
@@ -33,7 +34,7 @@ export type UIContentPartProps = ContentPartState & UIContentPart;
|
|
|
33
34
|
export type UIContentPartComponent = ComponentType<UIContentPartProps>;
|
|
34
35
|
|
|
35
36
|
export type ToolCallContentPartProps<
|
|
36
|
-
TArgs extends
|
|
37
|
+
TArgs extends ReadonlyJSONObject = any,
|
|
37
38
|
TResult = unknown,
|
|
38
39
|
> = ContentPartState &
|
|
39
40
|
ToolCallContentPart<TArgs, TResult> & {
|
|
@@ -41,6 +42,6 @@ export type ToolCallContentPartProps<
|
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
export type ToolCallContentPartComponent<
|
|
44
|
-
TArgs extends
|
|
45
|
+
TArgs extends ReadonlyJSONObject = any,
|
|
45
46
|
TResult = any,
|
|
46
47
|
> = ComponentType<ToolCallContentPartProps<TArgs, TResult>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ReadonlyJSONArray,
|
|
3
|
+
ReadonlyJSONObject,
|
|
4
|
+
ReadonlyJSONValue,
|
|
5
|
+
} from "./json-value";
|
|
6
|
+
|
|
7
|
+
export function isJSONValue(value: unknown): value is ReadonlyJSONValue {
|
|
8
|
+
if (
|
|
9
|
+
value === null ||
|
|
10
|
+
typeof value === "string" ||
|
|
11
|
+
typeof value === "number" ||
|
|
12
|
+
typeof value === "boolean"
|
|
13
|
+
) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
return value.every(isJSONValue);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (typeof value === "object") {
|
|
22
|
+
return Object.entries(value).every(
|
|
23
|
+
([key, val]) => typeof key === "string" && isJSONValue(val),
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function isJSONArray(value: unknown): value is ReadonlyJSONArray {
|
|
31
|
+
return Array.isArray(value) && value.every(isJSONValue);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function isJSONObject(value: unknown): value is ReadonlyJSONObject {
|
|
35
|
+
return (
|
|
36
|
+
value != null &&
|
|
37
|
+
typeof value === "object" &&
|
|
38
|
+
Object.entries(value).every(
|
|
39
|
+
([key, val]) => typeof key === "string" && isJSONValue(val),
|
|
40
|
+
)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ReadonlyJSONValue =
|
|
2
|
+
| null
|
|
3
|
+
| string
|
|
4
|
+
| number
|
|
5
|
+
| boolean
|
|
6
|
+
| ReadonlyJSONObject
|
|
7
|
+
| ReadonlyJSONArray;
|
|
8
|
+
|
|
9
|
+
export type ReadonlyJSONObject = {
|
|
10
|
+
readonly [key: string]: ReadonlyJSONValue;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type ReadonlyJSONArray = readonly ReadonlyJSONValue[];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-json.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/partial-json/fix-json.ts"],"names":[],"mappings":"AA0CA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsX7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/partial-json/fix-json.ts"],"sourcesContent":["// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n | \"ROOT\"\n | \"FINISH\"\n | \"INSIDE_STRING\"\n | \"INSIDE_STRING_ESCAPE\"\n | \"INSIDE_LITERAL\"\n | \"INSIDE_NUMBER\"\n | \"INSIDE_OBJECT_START\"\n | \"INSIDE_OBJECT_KEY\"\n | \"INSIDE_OBJECT_AFTER_KEY\"\n | \"INSIDE_OBJECT_BEFORE_VALUE\"\n | \"INSIDE_OBJECT_AFTER_VALUE\"\n | \"INSIDE_OBJECT_AFTER_COMMA\"\n | \"INSIDE_ARRAY_START\"\n | \"INSIDE_ARRAY_AFTER_VALUE\"\n | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n break;\n }\n\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n break;\n }\n\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i]!;\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n\n case \",\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"}\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"]\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !\"false\".startsWith(partialLiteral) &&\n !\"true\".startsWith(partialLiteral) &&\n !\"null\".startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CO,SAAS,QAAQ,OAAuB;AAC7C,QAAM,QAAiB,CAAC,MAAM;AAC9B,MAAI,iBAAiB;AACrB,MAAI,eAA8B;AAElC,WAAS,kBAAkB,MAAc,GAAW,WAAkB;AACpE;AACE,cAAQ,MAAM;AAAA,QACZ,KAAK,KAAK;AACR,2BAAiB;AACjB,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,eAAe;AAC1B;AAAA,QACF;AAAA,QAEA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,KAAK;AACR,2BAAiB;AACjB,yBAAe;AACf,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,gBAAgB;AAC3B;AAAA,QACF;AAAA,QAEA,KAAK,KAAK;AACR,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,eAAe;AAC1B;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,KAAK;AACR,2BAAiB;AACjB,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,eAAe;AAC1B;AAAA,QACF;AAAA,QAEA,KAAK,KAAK;AACR,2BAAiB;AACjB,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,qBAAqB;AAChC;AAAA,QACF;AAAA,QAEA,KAAK,KAAK;AACR,2BAAiB;AACjB,gBAAM,IAAI;AACV,gBAAM,KAAK,SAAS;AACpB,gBAAM,KAAK,oBAAoB;AAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAS,wBAAwB,MAAc,GAAW;AACxD,YAAQ,MAAM;AAAA,MACZ,KAAK,KAAK;AACR,cAAM,IAAI;AACV,cAAM,KAAK,2BAA2B;AACtC;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,yBAAiB;AACjB,cAAM,IAAI;AACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAS,uBAAuB,MAAc,GAAW;AACvD,YAAQ,MAAM;AAAA,MACZ,KAAK,KAAK;AACR,cAAM,IAAI;AACV,cAAM,KAAK,0BAA0B;AACrC;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,yBAAiB;AACjB,cAAM,IAAI;AACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,eAAe,MAAM,MAAM,SAAS,CAAC;AAE3C,YAAQ,cAAc;AAAA,MACpB,KAAK;AACH,0BAAkB,MAAM,GAAG,QAAQ;AACnC;AAAA,MAEF,KAAK,uBAAuB;AAC1B,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,kBAAM,KAAK,mBAAmB;AAC9B;AAAA,UACF;AAAA,UACA,KAAK,KAAK;AACR,6BAAiB;AACjB,kBAAM,IAAI;AACV;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,6BAA6B;AAChC,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,kBAAM,KAAK,mBAAmB;AAC9B;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,qBAAqB;AACxB,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,kBAAM,KAAK,yBAAyB;AACpC;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,2BAA2B;AAC9B,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,kBAAM,KAAK,4BAA4B;AAEvC;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,8BAA8B;AACjC,0BAAkB,MAAM,GAAG,2BAA2B;AACtD;AAAA,MACF;AAAA,MAEA,KAAK,6BAA6B;AAChC,gCAAwB,MAAM,CAAC;AAC/B;AAAA,MACF;AAAA,MAEA,KAAK,iBAAiB;AACpB,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,6BAAiB;AACjB;AAAA,UACF;AAAA,UAEA,KAAK,MAAM;AACT,kBAAM,KAAK,sBAAsB;AACjC;AAAA,UACF;AAAA,UAEA,SAAS;AACP,6BAAiB;AAAA,UACnB;AAAA,QACF;AAEA;AAAA,MACF;AAAA,MAEA,KAAK,sBAAsB;AACzB,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,6BAAiB;AACjB,kBAAM,IAAI;AACV;AAAA,UACF;AAAA,UAEA,SAAS;AACP,6BAAiB;AACjB,8BAAkB,MAAM,GAAG,0BAA0B;AACrD;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAAA,MAEA,KAAK,4BAA4B;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK,KAAK;AACR,kBAAM,IAAI;AACV,kBAAM,KAAK,0BAA0B;AACrC;AAAA,UACF;AAAA,UAEA,KAAK,KAAK;AACR,6BAAiB;AACjB,kBAAM,IAAI;AACV;AAAA,UACF;AAAA,UAEA,SAAS;AACP,6BAAiB;AACjB;AAAA,UACF;AAAA,QACF;AAEA;AAAA,MACF;AAAA,MAEA,KAAK,4BAA4B;AAC/B,0BAAkB,MAAM,GAAG,0BAA0B;AACrD;AAAA,MACF;AAAA,MAEA,KAAK,wBAAwB;AAC3B,cAAM,IAAI;AACV,yBAAiB;AAEjB;AAAA,MACF;AAAA,MAEA,KAAK,iBAAiB;AACpB,gBAAQ,MAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK,KAAK;AACR,6BAAiB;AACjB;AAAA,UACF;AAAA,UAEA,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK,KAAK;AACR;AAAA,UACF;AAAA,UAEA,KAAK,KAAK;AACR,kBAAM,IAAI;AAEV,gBAAI,MAAM,MAAM,SAAS,CAAC,MAAM,4BAA4B;AAC1D,qCAAuB,MAAM,CAAC;AAAA,YAChC;AAEA,gBAAI,MAAM,MAAM,SAAS,CAAC,MAAM,6BAA6B;AAC3D,sCAAwB,MAAM,CAAC;AAAA,YACjC;AAEA;AAAA,UACF;AAAA,UAEA,KAAK,KAAK;AACR,kBAAM,IAAI;AAEV,gBAAI,MAAM,MAAM,SAAS,CAAC,MAAM,6BAA6B;AAC3D,sCAAwB,MAAM,CAAC;AAAA,YACjC;AAEA;AAAA,UACF;AAAA,UAEA,KAAK,KAAK;AACR,kBAAM,IAAI;AAEV,gBAAI,MAAM,MAAM,SAAS,CAAC,MAAM,4BAA4B;AAC1D,qCAAuB,MAAM,CAAC;AAAA,YAChC;AAEA;AAAA,UACF;AAAA,UAEA,SAAS;AACP,kBAAM,IAAI;AACV;AAAA,UACF;AAAA,QACF;AAEA;AAAA,MACF;AAAA,MAEA,KAAK,kBAAkB;AACrB,cAAM,iBAAiB,MAAM,UAAU,cAAe,IAAI,CAAC;AAE3D,YACE,CAAC,QAAQ,WAAW,cAAc,KAClC,CAAC,OAAO,WAAW,cAAc,KACjC,CAAC,OAAO,WAAW,cAAc,GACjC;AACA,gBAAM,IAAI;AAEV,cAAI,MAAM,MAAM,SAAS,CAAC,MAAM,6BAA6B;AAC3D,oCAAwB,MAAM,CAAC;AAAA,UACjC,WAAW,MAAM,MAAM,SAAS,CAAC,MAAM,4BAA4B;AACjE,mCAAuB,MAAM,CAAC;AAAA,UAChC;AAAA,QACF,OAAO;AACL,2BAAiB;AAAA,QACnB;AAEA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,MAAM,MAAM,GAAG,iBAAiB,CAAC;AAE9C,WAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAM,QAAQ,MAAM,CAAC;AAErB,YAAQ,OAAO;AAAA,MACb,KAAK,iBAAiB;AACpB,kBAAU;AACV;AAAA,MACF;AAAA,MAEA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,6BAA6B;AAChC,kBAAU;AACV;AAAA,MACF;AAAA,MAEA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,4BAA4B;AAC/B,kBAAU;AACV;AAAA,MACF;AAAA,MAEA,KAAK,kBAAkB;AACrB,cAAM,iBAAiB,MAAM,UAAU,cAAe,MAAM,MAAM;AAElE,YAAI,OAAO,WAAW,cAAc,GAAG;AACrC,oBAAU,OAAO,MAAM,eAAe,MAAM;AAAA,QAC9C,WAAW,QAAQ,WAAW,cAAc,GAAG;AAC7C,oBAAU,QAAQ,MAAM,eAAe,MAAM;AAAA,QAC/C,WAAW,OAAO,WAAW,cAAc,GAAG;AAC5C,oBAAU,OAAO,MAAM,eAAe,MAAM;AAAA,QAC9C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/partial-json/fix-json.ts"],"sourcesContent":["// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n | \"ROOT\"\n | \"FINISH\"\n | \"INSIDE_STRING\"\n | \"INSIDE_STRING_ESCAPE\"\n | \"INSIDE_LITERAL\"\n | \"INSIDE_NUMBER\"\n | \"INSIDE_OBJECT_START\"\n | \"INSIDE_OBJECT_KEY\"\n | \"INSIDE_OBJECT_AFTER_KEY\"\n | \"INSIDE_OBJECT_BEFORE_VALUE\"\n | \"INSIDE_OBJECT_AFTER_VALUE\"\n | \"INSIDE_OBJECT_AFTER_COMMA\"\n | \"INSIDE_ARRAY_START\"\n | \"INSIDE_ARRAY_AFTER_VALUE\"\n | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n break;\n }\n\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n break;\n }\n\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i]!;\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n\n case \",\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"}\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"]\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !\"false\".startsWith(partialLiteral) &&\n !\"true\".startsWith(partialLiteral) &&\n !\"null\".startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-partial-json.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/partial-json/parse-partial-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,SAAU,MAAM,QAU5C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/partial-json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkB;AAClB,sBAAwB;AAEjB,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,yBAAAA,QAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,aAAO,yBAAAA,QAAM,UAAM,yBAAQ,IAAI,CAAC;AAAA,IAClC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["sjson"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/edge/partial-json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AAEjB,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,MAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,aAAO,MAAM,MAAM,QAAQ,IAAI,CAAC;AAAA,IAClC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloud.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloud.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,qBAAa,cAAc;IACzB,SAAgB,OAAO,wBAAC;IACxB,SAAgB,IAAI;;MAAC;IACrB,SAAgB,IAAI,qBAAC;gBAET,MAAM,EAAE,oBAAoB;CAQzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloud.tsx"],"sourcesContent":["import { AssistantCloudAPI, AssistantCloudConfig } from \"./AssistantCloudAPI\";\nimport { AssistantCloudAuthTokens } from \"./AssistantCloudAuthTokens\";\nimport { AssistantCloudRuns } from \"./AssistantCloudRuns\";\nimport { AssistantCloudThreads } from \"./AssistantCloudThreads\";\n\nexport class AssistantCloud {\n public readonly threads;\n public readonly auth;\n public readonly runs;\n\n constructor(config: AssistantCloudConfig) {\n const api = new AssistantCloudAPI(config);\n this.threads = new AssistantCloudThreads(api);\n this.auth = {\n tokens: new AssistantCloudAuthTokens(api),\n };\n this.runs = new AssistantCloudRuns(api);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAwD;AACxD,sCAAyC;AACzC,gCAAmC;AACnC,mCAAsC;AAE/B,IAAM,iBAAN,MAAqB;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YAAY,QAA8B;AACxC,UAAM,MAAM,IAAI,2CAAkB,MAAM;AACxC,SAAK,UAAU,IAAI,mDAAsB,GAAG;AAC5C,SAAK,OAAO;AAAA,MACV,QAAQ,IAAI,yDAAyB,GAAG;AAAA,IAC1C;AACA,SAAK,OAAO,IAAI,6CAAmB,GAAG;AAAA,EACxC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloud.tsx"],"sourcesContent":["import { AssistantCloudAPI, AssistantCloudConfig } from \"./AssistantCloudAPI\";\nimport { AssistantCloudAuthTokens } from \"./AssistantCloudAuthTokens\";\nimport { AssistantCloudRuns } from \"./AssistantCloudRuns\";\nimport { AssistantCloudThreads } from \"./AssistantCloudThreads\";\n\nexport class AssistantCloud {\n public readonly threads;\n public readonly auth;\n public readonly runs;\n\n constructor(config: AssistantCloudConfig) {\n const api = new AssistantCloudAPI(config);\n this.threads = new AssistantCloudThreads(api);\n this.auth = {\n tokens: new AssistantCloudAuthTokens(api),\n };\n this.runs = new AssistantCloudRuns(api);\n }\n}\n"],"mappings":";AAAA,SAAS,yBAA+C;AACxD,SAAS,gCAAgC;AACzC,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AAE/B,IAAM,iBAAN,MAAqB;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YAAY,QAA8B;AACxC,UAAM,MAAM,IAAI,kBAAkB,MAAM;AACxC,SAAK,UAAU,IAAI,sBAAsB,GAAG;AAC5C,SAAK,OAAO;AAAA,MACV,QAAQ,IAAI,yBAAyB,GAAG;AAAA,IAC1C;AACA,SAAK,OAAO,IAAI,mBAAmB,GAAG;AAAA,EACxC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAPI.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAPI.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,oBAAoB,GAC5B;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACvD,GACD;IACE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AASN,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;IAC5B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAC;gBAEL,MAAM,EAAE,oBAAoB;IAc3B,cAAc;IAId,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB;IAiDrB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;CAI5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAPI.tsx"],"sourcesContent":["import {\n AssistantCloudAuthStrategy,\n AssistantCloudJWTAuthStrategy,\n AssistantCloudAPIKeyAuthStrategy,\n} from \"./AssistantCloudAuthStrategy\";\n\nexport type AssistantCloudConfig =\n | {\n baseUrl: string;\n authToken: (() => Promise<string | null>) | undefined;\n }\n | {\n apiKey: string;\n userId: string;\n workspaceId: string;\n };\n\nclass CloudAPIError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"APIError\";\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};\n\nexport class AssistantCloudAPI {\n private _auth: AssistantCloudAuthStrategy;\n private _baseUrl;\n\n constructor(config: AssistantCloudConfig) {\n if (\"authToken\" in config) {\n this._baseUrl = config.baseUrl;\n this._auth = new AssistantCloudJWTAuthStrategy(config.authToken);\n } else {\n this._baseUrl = \"https://backend.assistant-api.com\";\n this._auth = new AssistantCloudAPIKeyAuthStrategy(\n config.apiKey,\n config.userId,\n config.workspaceId,\n );\n }\n }\n\n public async initializeAuth() {\n return !!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(\"Authronization failed\");\n\n const headers = {\n ...authHeaders,\n ...options.headers,\n \"Content-Type\": \"application/json\",\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 });\n\n this._auth.readAuthHeaders(response.headers);\n\n if (!response.ok) {\n const text = await response.text();\n try {\n const body = JSON.parse(text);\n throw new CloudAPIError(body.message);\n } catch {\n throw new Error(\n `Request failed with status ${response.status}, ${text}`,\n );\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 return response.json();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wCAIO;AAaP,IAAM,gBAAN,cAA4B,MAAM;AAAA,EAChC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AASO,IAAM,oBAAN,MAAwB;AAAA,EACrB;AAAA,EACA;AAAA,EAER,YAAY,QAA8B;AACxC,QAAI,eAAe,QAAQ;AACzB,WAAK,WAAW,OAAO;AACvB,WAAK,QAAQ,IAAI,gEAA8B,OAAO,SAAS;AAAA,IACjE,OAAO;AACL,WAAK,WAAW;AAChB,WAAK,QAAQ,IAAI;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,iBAAiB;AAC5B,WAAO,CAAC,CAAC,KAAK,MAAM,eAAe;AAAA,EACrC;AAAA,EAEA,MAAa,eACX,UACA,UAA8B,CAAC,GAC/B;AACA,UAAM,cAAc,MAAM,KAAK,MAAM,eAAe;AACpD,QAAI,CAAC,YAAa,OAAM,IAAI,MAAM,uBAAuB;AAEzD,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,MACH,GAAG,QAAQ;AAAA,MACX,gBAAgB;AAAA,IAClB;AAEA,UAAM,cAAc,IAAI,gBAAgB;AACxC,QAAI,QAAQ,OAAO;AACjB,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAAG;AACxD,YAAI,UAAU,MAAO;AACrB,YAAI,UAAU,MAAM;AAClB,sBAAY,IAAI,KAAK,MAAM;AAAA,QAC7B,OAAO;AACL,sBAAY,IAAI,KAAK,MAAM,SAAS,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAEA,UAAM,MAAM,IAAI,IAAI,GAAG,KAAK,QAAQ,MAAM,QAAQ,EAAE;AACpD,QAAI,SAAS,YAAY,SAAS;AAElC,UAAM,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC,QAAQ,QAAQ,UAAU;AAAA,MAC1B;AAAA,MACA,MAAM,QAAQ,OAAO,KAAK,UAAU,QAAQ,IAAI,IAAI;AAAA,IACtD,CAAC;AAED,SAAK,MAAM,gBAAgB,SAAS,OAAO;AAE3C,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAI;AACF,cAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,cAAM,IAAI,cAAc,KAAK,OAAO;AAAA,MACtC,QAAQ;AACN,cAAM,IAAI;AAAA,UACR,8BAA8B,SAAS,MAAM,KAAK,IAAI;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,YAAY,UAAkB,UAA8B,CAAC,GAAG;AAC3E,UAAM,WAAW,MAAM,KAAK,eAAe,UAAU,OAAO;AAC5D,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAPI.tsx"],"sourcesContent":["import {\n AssistantCloudAuthStrategy,\n AssistantCloudJWTAuthStrategy,\n AssistantCloudAPIKeyAuthStrategy,\n} from \"./AssistantCloudAuthStrategy\";\n\nexport type AssistantCloudConfig =\n | {\n baseUrl: string;\n authToken: (() => Promise<string | null>) | undefined;\n }\n | {\n apiKey: string;\n userId: string;\n workspaceId: string;\n };\n\nclass CloudAPIError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"APIError\";\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};\n\nexport class AssistantCloudAPI {\n private _auth: AssistantCloudAuthStrategy;\n private _baseUrl;\n\n constructor(config: AssistantCloudConfig) {\n if (\"authToken\" in config) {\n this._baseUrl = config.baseUrl;\n this._auth = new AssistantCloudJWTAuthStrategy(config.authToken);\n } else {\n this._baseUrl = \"https://backend.assistant-api.com\";\n this._auth = new AssistantCloudAPIKeyAuthStrategy(\n config.apiKey,\n config.userId,\n config.workspaceId,\n );\n }\n }\n\n public async initializeAuth() {\n return !!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(\"Authronization failed\");\n\n const headers = {\n ...authHeaders,\n ...options.headers,\n \"Content-Type\": \"application/json\",\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 });\n\n this._auth.readAuthHeaders(response.headers);\n\n if (!response.ok) {\n const text = await response.text();\n try {\n const body = JSON.parse(text);\n throw new CloudAPIError(body.message);\n } catch {\n throw new Error(\n `Request failed with status ${response.status}, ${text}`,\n );\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 return response.json();\n }\n}\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AAaP,IAAM,gBAAN,cAA4B,MAAM;AAAA,EAChC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AASO,IAAM,oBAAN,MAAwB;AAAA,EACrB;AAAA,EACA;AAAA,EAER,YAAY,QAA8B;AACxC,QAAI,eAAe,QAAQ;AACzB,WAAK,WAAW,OAAO;AACvB,WAAK,QAAQ,IAAI,8BAA8B,OAAO,SAAS;AAAA,IACjE,OAAO;AACL,WAAK,WAAW;AAChB,WAAK,QAAQ,IAAI;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,iBAAiB;AAC5B,WAAO,CAAC,CAAC,KAAK,MAAM,eAAe;AAAA,EACrC;AAAA,EAEA,MAAa,eACX,UACA,UAA8B,CAAC,GAC/B;AACA,UAAM,cAAc,MAAM,KAAK,MAAM,eAAe;AACpD,QAAI,CAAC,YAAa,OAAM,IAAI,MAAM,uBAAuB;AAEzD,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,MACH,GAAG,QAAQ;AAAA,MACX,gBAAgB;AAAA,IAClB;AAEA,UAAM,cAAc,IAAI,gBAAgB;AACxC,QAAI,QAAQ,OAAO;AACjB,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAAG;AACxD,YAAI,UAAU,MAAO;AACrB,YAAI,UAAU,MAAM;AAClB,sBAAY,IAAI,KAAK,MAAM;AAAA,QAC7B,OAAO;AACL,sBAAY,IAAI,KAAK,MAAM,SAAS,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAEA,UAAM,MAAM,IAAI,IAAI,GAAG,KAAK,QAAQ,MAAM,QAAQ,EAAE;AACpD,QAAI,SAAS,YAAY,SAAS;AAElC,UAAM,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC,QAAQ,QAAQ,UAAU;AAAA,MAC1B;AAAA,MACA,MAAM,QAAQ,OAAO,KAAK,UAAU,QAAQ,IAAI,IAAI;AAAA,IACtD,CAAC;AAED,SAAK,MAAM,gBAAgB,SAAS,OAAO;AAE3C,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAI;AACF,cAAM,OAAO,KAAK,MAAM,IAAI;AAC5B,cAAM,IAAI,cAAc,KAAK,OAAO;AAAA,MACtC,QAAQ;AACN,cAAM,IAAI;AAAA,UACR,8BAA8B,SAAS,MAAM,KAAK,IAAI;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,YAAY,UAAkB,UAA8B,CAAC,GAAG;AAC3E,UAAM,WAAW,MAAM,KAAK,eAAe,UAAU,OAAO;AAC5D,WAAO,SAAS,KAAK;AAAA,EACvB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthStrategy.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACrC,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;AAEF,qBAAa,6BACX,YAAW,0BAA0B;;IAErC,SAAgB,QAAQ,SAAS;IAEjC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAuB;gBAI9B,iBAAiB,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS;IAIzE,OAAO,CAAC,YAAY;IA0BP,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IA4B/D,eAAe,CAAC,OAAO,EAAE,OAAO;CAWxC;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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.tsx"],"sourcesContent":["export type AssistantCloudAuthStrategy = {\n readonly strategy: \"jwt\" | \"api-key\";\n getAuthHeaders(): Promise<Record<string, string> | false>;\n readAuthHeaders(headers: Headers): void;\n};\n\nexport class AssistantCloudJWTAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"jwt\";\n\n private cachedToken: string | null = null;\n private tokenExpiry: number | null = null;\n\n #authTokenCallback;\n\n constructor(authTokenCallback: (() => Promise<string | null>) | undefined) {\n this.#authTokenCallback = authTokenCallback;\n }\n\n private getJwtExpiry(jwt: string): number {\n try {\n const bodyPart = jwt.split(\".\").at(1);\n if (!bodyPart) {\n throw new Error(\"Invalid JWT format\");\n }\n\n // Base64Url decode\n const payload = Buffer.from(\n bodyPart.replace(/-/g, \"+\").replace(/_/g, \"/\"),\n \"base64\",\n ).toString();\n const payloadObj = JSON.parse(payload);\n\n const exp = payloadObj.exp;\n if (!exp || typeof exp !== \"number\") {\n throw new Error('JWT does not contain a valid \"exp\" field');\n }\n\n // Convert exp to milliseconds\n return exp * 1000;\n } catch (error) {\n throw new Error(\"Unable to determine the token expiry \" + error);\n }\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n const currentTime = Date.now();\n\n // Check if the cached token is valid for at least 30 seconds\n if (\n this.cachedToken &&\n this.tokenExpiry &&\n this.tokenExpiry - currentTime > 30 * 1000 // 30 seconds\n ) {\n return {\n Authorization: `Bearer ${this.cachedToken}`,\n };\n }\n\n // Fetch a new token\n const newToken = await this.#authTokenCallback?.();\n if (!newToken) return false;\n\n const expiry = this.getJwtExpiry(newToken);\n\n this.cachedToken = newToken;\n this.tokenExpiry = expiry;\n\n return {\n Authorization: `Bearer ${newToken}`,\n };\n }\n\n public readAuthHeaders(headers: Headers) {\n const authHeader = headers.get(\"Authorization\");\n if (!authHeader) return;\n\n const [scheme, token] = authHeader.split(\" \");\n if (scheme !== \"Bearer\" || !token)\n throw new Error(\"Invalid auth header received\");\n\n this.cachedToken = token;\n this.tokenExpiry = this.getJwtExpiry(token);\n }\n}\n\nexport class AssistantCloudAPIKeyAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"api-key\";\n\n #apiKey;\n #userId;\n #workspaceId;\n\n constructor(apiKey: string, userId: string, workspaceId: string) {\n this.#apiKey = apiKey;\n this.#userId = userId;\n this.#workspaceId = workspaceId;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string>> {\n return {\n Authorization: `Bearer ${this.#apiKey}`,\n \"Aui-User-Id\": this.#userId,\n \"Aui-Workspace-Id\": this.#workspaceId,\n };\n }\n\n public readAuthHeaders() {\n // noop\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAM,gCAAN,MAEP;AAAA,EACkB,WAAW;AAAA,EAEnB,cAA6B;AAAA,EAC7B,cAA6B;AAAA,EAErC;AAAA,EAEA,YAAY,mBAA+D;AACzE,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEQ,aAAa,KAAqB;AACxC,QAAI;AACF,YAAM,WAAW,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,oBAAoB;AAAA,MACtC;AAGA,YAAM,UAAU,OAAO;AAAA,QACrB,SAAS,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAAA,QAC7C;AAAA,MACF,EAAE,SAAS;AACX,YAAM,aAAa,KAAK,MAAM,OAAO;AAErC,YAAM,MAAM,WAAW;AACvB,UAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AAGA,aAAO,MAAM;AAAA,IACf,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,0CAA0C,KAAK;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAa,iBAA0D;AACrE,UAAM,cAAc,KAAK,IAAI;AAG7B,QACE,KAAK,eACL,KAAK,eACL,KAAK,cAAc,cAAc,KAAK,KACtC;AACA,aAAO;AAAA,QACL,eAAe,UAAU,KAAK,WAAW;AAAA,MAC3C;AAAA,IACF;AAGA,UAAM,WAAW,MAAM,KAAK,qBAAqB;AACjD,QAAI,CAAC,SAAU,QAAO;AAEtB,UAAM,SAAS,KAAK,aAAa,QAAQ;AAEzC,SAAK,cAAc;AACnB,SAAK,cAAc;AAEnB,WAAO;AAAA,MACL,eAAe,UAAU,QAAQ;AAAA,IACnC;AAAA,EACF;AAAA,EAEO,gBAAgB,SAAkB;AACvC,UAAM,aAAa,QAAQ,IAAI,eAAe;AAC9C,QAAI,CAAC,WAAY;AAEjB,UAAM,CAAC,QAAQ,KAAK,IAAI,WAAW,MAAM,GAAG;AAC5C,QAAI,WAAW,YAAY,CAAC;AAC1B,YAAM,IAAI,MAAM,8BAA8B;AAEhD,SAAK,cAAc;AACnB,SAAK,cAAc,KAAK,aAAa,KAAK;AAAA,EAC5C;AACF;AAEO,IAAM,mCAAN,MAEP;AAAA,EACkB,WAAW;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,QAAgB,QAAgB,aAAqB;AAC/D,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAa,iBAAkD;AAC7D,WAAO;AAAA,MACL,eAAe,UAAU,KAAK,OAAO;AAAA,MACrC,eAAe,KAAK;AAAA,MACpB,oBAAoB,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEO,kBAAkB;AAAA,EAEzB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.tsx"],"sourcesContent":["export type AssistantCloudAuthStrategy = {\n readonly strategy: \"jwt\" | \"api-key\";\n getAuthHeaders(): Promise<Record<string, string> | false>;\n readAuthHeaders(headers: Headers): void;\n};\n\nexport class AssistantCloudJWTAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"jwt\";\n\n private cachedToken: string | null = null;\n private tokenExpiry: number | null = null;\n\n #authTokenCallback;\n\n constructor(authTokenCallback: (() => Promise<string | null>) | undefined) {\n this.#authTokenCallback = authTokenCallback;\n }\n\n private getJwtExpiry(jwt: string): number {\n try {\n const bodyPart = jwt.split(\".\").at(1);\n if (!bodyPart) {\n throw new Error(\"Invalid JWT format\");\n }\n\n // Base64Url decode\n const payload = Buffer.from(\n bodyPart.replace(/-/g, \"+\").replace(/_/g, \"/\"),\n \"base64\",\n ).toString();\n const payloadObj = JSON.parse(payload);\n\n const exp = payloadObj.exp;\n if (!exp || typeof exp !== \"number\") {\n throw new Error('JWT does not contain a valid \"exp\" field');\n }\n\n // Convert exp to milliseconds\n return exp * 1000;\n } catch (error) {\n throw new Error(\"Unable to determine the token expiry \" + error);\n }\n }\n\n public async getAuthHeaders(): Promise<Record<string, string> | false> {\n const currentTime = Date.now();\n\n // Check if the cached token is valid for at least 30 seconds\n if (\n this.cachedToken &&\n this.tokenExpiry &&\n this.tokenExpiry - currentTime > 30 * 1000 // 30 seconds\n ) {\n return {\n Authorization: `Bearer ${this.cachedToken}`,\n };\n }\n\n // Fetch a new token\n const newToken = await this.#authTokenCallback?.();\n if (!newToken) return false;\n\n const expiry = this.getJwtExpiry(newToken);\n\n this.cachedToken = newToken;\n this.tokenExpiry = expiry;\n\n return {\n Authorization: `Bearer ${newToken}`,\n };\n }\n\n public readAuthHeaders(headers: Headers) {\n const authHeader = headers.get(\"Authorization\");\n if (!authHeader) return;\n\n const [scheme, token] = authHeader.split(\" \");\n if (scheme !== \"Bearer\" || !token)\n throw new Error(\"Invalid auth header received\");\n\n this.cachedToken = token;\n this.tokenExpiry = this.getJwtExpiry(token);\n }\n}\n\nexport class AssistantCloudAPIKeyAuthStrategy\n implements AssistantCloudAuthStrategy\n{\n public readonly strategy = \"api-key\";\n\n #apiKey;\n #userId;\n #workspaceId;\n\n constructor(apiKey: string, userId: string, workspaceId: string) {\n this.#apiKey = apiKey;\n this.#userId = userId;\n this.#workspaceId = workspaceId;\n }\n\n public async getAuthHeaders(): Promise<Record<string, string>> {\n return {\n Authorization: `Bearer ${this.#apiKey}`,\n \"Aui-User-Id\": this.#userId,\n \"Aui-Workspace-Id\": this.#workspaceId,\n };\n }\n\n public readAuthHeaders() {\n // noop\n }\n}\n"],"mappings":";AAMO,IAAM,gCAAN,MAEP;AAAA,EACkB,WAAW;AAAA,EAEnB,cAA6B;AAAA,EAC7B,cAA6B;AAAA,EAErC;AAAA,EAEA,YAAY,mBAA+D;AACzE,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEQ,aAAa,KAAqB;AACxC,QAAI;AACF,YAAM,WAAW,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC;AACpC,UAAI,CAAC,UAAU;AACb,cAAM,IAAI,MAAM,oBAAoB;AAAA,MACtC;AAGA,YAAM,UAAU,OAAO;AAAA,QACrB,SAAS,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAAA,QAC7C;AAAA,MACF,EAAE,SAAS;AACX,YAAM,aAAa,KAAK,MAAM,OAAO;AAErC,YAAM,MAAM,WAAW;AACvB,UAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AAGA,aAAO,MAAM;AAAA,IACf,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,0CAA0C,KAAK;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAa,iBAA0D;AACrE,UAAM,cAAc,KAAK,IAAI;AAG7B,QACE,KAAK,eACL,KAAK,eACL,KAAK,cAAc,cAAc,KAAK,KACtC;AACA,aAAO;AAAA,QACL,eAAe,UAAU,KAAK,WAAW;AAAA,MAC3C;AAAA,IACF;AAGA,UAAM,WAAW,MAAM,KAAK,qBAAqB;AACjD,QAAI,CAAC,SAAU,QAAO;AAEtB,UAAM,SAAS,KAAK,aAAa,QAAQ;AAEzC,SAAK,cAAc;AACnB,SAAK,cAAc;AAEnB,WAAO;AAAA,MACL,eAAe,UAAU,QAAQ;AAAA,IACnC;AAAA,EACF;AAAA,EAEO,gBAAgB,SAAkB;AACvC,UAAM,aAAa,QAAQ,IAAI,eAAe;AAC9C,QAAI,CAAC,WAAY;AAEjB,UAAM,CAAC,QAAQ,KAAK,IAAI,WAAW,MAAM,GAAG;AAC5C,QAAI,WAAW,YAAY,CAAC;AAC1B,YAAM,IAAI,MAAM,8BAA8B;AAEhD,SAAK,cAAc;AACnB,SAAK,cAAc,KAAK,aAAa,KAAK;AAAA,EAC5C;AACF;AAEO,IAAM,mCAAN,MAEP;AAAA,EACkB,WAAW;AAAA,EAE3B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,QAAgB,QAAgB,aAAqB;AAC/D,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAa,iBAAkD;AAC7D,WAAO;AAAA,MACL,eAAe,UAAU,KAAK,OAAO;AAAA,MACrC,eAAe,KAAK;AAAA,MACpB,oBAAoB,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEO,kBAAkB;AAAA,EAEzB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudAuthTokens.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.tsx"],"sourcesContent":["import { AssistantCloudAPI } from \"./AssistantCloudAPI\";\n\ntype AssistantCloudAuthTokensCreateResponse = {\n token: string;\n};\n\nexport class AssistantCloudAuthTokens {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async create(): Promise<AssistantCloudAuthTokensCreateResponse> {\n return this.cloud.makeRequest(\"/auth/tokens\", { method: \"POST\" });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAM,2BAAN,MAA+B;AAAA,EACpC,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,SAA0D;AACrE,WAAO,KAAK,MAAM,YAAY,gBAAgB,EAAE,QAAQ,OAAO,CAAC;AAAA,EAClE;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.tsx"],"sourcesContent":["import { AssistantCloudAPI } from \"./AssistantCloudAPI\";\n\ntype AssistantCloudAuthTokensCreateResponse = {\n token: string;\n};\n\nexport class AssistantCloudAuthTokens {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async create(): Promise<AssistantCloudAuthTokensCreateResponse> {\n return this.cloud.makeRequest(\"/auth/tokens\", { method: \"POST\" });\n }\n}\n"],"mappings":";AAMO,IAAM,2BAAN,MAA+B;AAAA,EACpC,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,SAA0D;AACrE,WAAO,KAAK,MAAM,YAAY,gBAAgB,EAAE,QAAQ,OAAO,CAAC;AAAA,EAClE;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudRuns.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudRuns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;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,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/B,MAAM,CACjB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,eAAe,CAAC;CAU5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudRuns.tsx"],"sourcesContent":["import { CoreMessage } from \"../../../types\";\nimport { AssistantCloudAPI } from \"./AssistantCloudAPI\";\nimport { AssistantStream, PlainTextDecoder } from \"assistant-stream\";\n\ntype AssistantCloudRunsStreamBody = {\n thread_id: string;\n assistant_id: \"system/thread_title\";\n messages: CoreMessage[];\n};\n\nexport class AssistantCloudRuns {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async stream(\n body: AssistantCloudRunsStreamBody,\n ): Promise<AssistantStream> {\n const response = await this.cloud.makeRawRequest(\"/runs/stream\", {\n method: \"POST\",\n headers: {\n Accept: \"text/plain\",\n },\n body,\n });\n return AssistantStream.fromResponse(response, new PlainTextDecoder());\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,8BAAkD;AAQ3C,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,OACX,MAC0B;AAC1B,UAAM,WAAW,MAAM,KAAK,MAAM,eAAe,gBAAgB;AAAA,MAC/D,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO,wCAAgB,aAAa,UAAU,IAAI,yCAAiB,CAAC;AAAA,EACtE;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudRuns.tsx"],"sourcesContent":["import { CoreMessage } from \"../../../types\";\nimport { AssistantCloudAPI } from \"./AssistantCloudAPI\";\nimport { AssistantStream, PlainTextDecoder } from \"assistant-stream\";\n\ntype AssistantCloudRunsStreamBody = {\n thread_id: string;\n assistant_id: \"system/thread_title\";\n messages: CoreMessage[];\n};\n\nexport class AssistantCloudRuns {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async stream(\n body: AssistantCloudRunsStreamBody,\n ): Promise<AssistantStream> {\n const response = await this.cloud.makeRawRequest(\"/runs/stream\", {\n method: \"POST\",\n headers: {\n Accept: \"text/plain\",\n },\n body,\n });\n return AssistantStream.fromResponse(response, new PlainTextDecoder());\n }\n}\n"],"mappings":";AAEA,SAAS,iBAAiB,wBAAwB;AAQ3C,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,OACX,MAC0B;AAC1B,UAAM,WAAW,MAAM,KAAK,MAAM,eAAe,gBAAgB;AAAA,MAC/D,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,IACF,CAAC;AACD,WAAO,gBAAgB,aAAa,UAAU,IAAI,iBAAiB,CAAC;AAAA,EACtE;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantCloudThreads.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudThreads.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,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,EAAE,MAAM,CAAC;IACd,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;IACpB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/B,IAAI,CACf,KAAK,CAAC,EAAE,8BAA8B,GACrC,OAAO,CAAC,iCAAiC,CAAC;IAIhC,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;CAGrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudThreads.tsx"],"sourcesContent":["import { AssistantCloudAPI } from \"./AssistantCloudAPI\";\n\ntype AssistantCloudThreadsListQuery = {\n is_archived?: boolean;\n limit?: number;\n after?: string;\n};\n\ntype CloudThread = {\n title: string;\n last_message_at: Date;\n metadata: unknown;\n external_id: string | null;\n id: string;\n project_id: string;\n created_at: Date;\n updated_at: Date;\n workspace_id: string;\n is_archived: boolean;\n};\n\ntype AssistantCloudThreadsListResponse = {\n threads: CloudThread[];\n};\n\ntype AssistantCloudThreadsCreateBody = {\n title: string;\n last_message_at: Date;\n metadata?: unknown | undefined;\n external_id?: string | undefined;\n};\n\ntype AssistantCloudThreadsCreateResponse = {\n thread_id: string;\n};\n\ntype AssistantCloudThreadsUpdateBody = {\n title?: string | undefined;\n last_message_at?: Date | undefined;\n metadata?: unknown | undefined;\n is_archived?: boolean | undefined;\n};\n\nexport class AssistantCloudThreads {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async list(\n query?: AssistantCloudThreadsListQuery,\n ): Promise<AssistantCloudThreadsListResponse> {\n return this.cloud.makeRequest(\"/threads\", { query });\n }\n\n public async create(\n body: AssistantCloudThreadsCreateBody,\n ): Promise<AssistantCloudThreadsCreateResponse> {\n return this.cloud.makeRequest(\"/threads\", { method: \"POST\", body });\n }\n\n public async update(\n threadId: string,\n body: AssistantCloudThreadsUpdateBody,\n ): Promise<void> {\n return this.cloud.makeRequest(`/threads/${threadId}`, {\n method: \"PUT\",\n body,\n });\n }\n\n public async delete(threadId: string): Promise<void> {\n return this.cloud.makeRequest(`/threads/${threadId}`, { method: \"DELETE\" });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,KACX,OAC4C;AAC5C,WAAO,KAAK,MAAM,YAAY,YAAY,EAAE,MAAM,CAAC;AAAA,EACrD;AAAA,EAEA,MAAa,OACX,MAC8C;AAC9C,WAAO,KAAK,MAAM,YAAY,YAAY,EAAE,QAAQ,QAAQ,KAAK,CAAC;AAAA,EACpE;AAAA,EAEA,MAAa,OACX,UACA,MACe;AACf,WAAO,KAAK,MAAM,YAAY,YAAY,QAAQ,IAAI;AAAA,MACpD,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,OAAO,UAAiC;AACnD,WAAO,KAAK,MAAM,YAAY,YAAY,QAAQ,IAAI,EAAE,QAAQ,SAAS,CAAC;AAAA,EAC5E;AACF;","names":[]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// src/runtimes/remote-thread-list/cloud/AssistantCloudThreads.tsx
|
|
2
|
-
var AssistantCloudThreads = class {
|
|
3
|
-
constructor(cloud) {
|
|
4
|
-
this.cloud = cloud;
|
|
5
|
-
}
|
|
6
|
-
async list(query) {
|
|
7
|
-
return this.cloud.makeRequest("/threads", { query });
|
|
8
|
-
}
|
|
9
|
-
async create(body) {
|
|
10
|
-
return this.cloud.makeRequest("/threads", { method: "POST", body });
|
|
11
|
-
}
|
|
12
|
-
async update(threadId, body) {
|
|
13
|
-
return this.cloud.makeRequest(`/threads/${threadId}`, {
|
|
14
|
-
method: "PUT",
|
|
15
|
-
body
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
async delete(threadId) {
|
|
19
|
-
return this.cloud.makeRequest(`/threads/${threadId}`, { method: "DELETE" });
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
export {
|
|
23
|
-
AssistantCloudThreads
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=AssistantCloudThreads.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/AssistantCloudThreads.tsx"],"sourcesContent":["import { AssistantCloudAPI } from \"./AssistantCloudAPI\";\n\ntype AssistantCloudThreadsListQuery = {\n is_archived?: boolean;\n limit?: number;\n after?: string;\n};\n\ntype CloudThread = {\n title: string;\n last_message_at: Date;\n metadata: unknown;\n external_id: string | null;\n id: string;\n project_id: string;\n created_at: Date;\n updated_at: Date;\n workspace_id: string;\n is_archived: boolean;\n};\n\ntype AssistantCloudThreadsListResponse = {\n threads: CloudThread[];\n};\n\ntype AssistantCloudThreadsCreateBody = {\n title: string;\n last_message_at: Date;\n metadata?: unknown | undefined;\n external_id?: string | undefined;\n};\n\ntype AssistantCloudThreadsCreateResponse = {\n thread_id: string;\n};\n\ntype AssistantCloudThreadsUpdateBody = {\n title?: string | undefined;\n last_message_at?: Date | undefined;\n metadata?: unknown | undefined;\n is_archived?: boolean | undefined;\n};\n\nexport class AssistantCloudThreads {\n constructor(private cloud: AssistantCloudAPI) {}\n\n public async list(\n query?: AssistantCloudThreadsListQuery,\n ): Promise<AssistantCloudThreadsListResponse> {\n return this.cloud.makeRequest(\"/threads\", { query });\n }\n\n public async create(\n body: AssistantCloudThreadsCreateBody,\n ): Promise<AssistantCloudThreadsCreateResponse> {\n return this.cloud.makeRequest(\"/threads\", { method: \"POST\", body });\n }\n\n public async update(\n threadId: string,\n body: AssistantCloudThreadsUpdateBody,\n ): Promise<void> {\n return this.cloud.makeRequest(`/threads/${threadId}`, {\n method: \"PUT\",\n body,\n });\n }\n\n public async delete(threadId: string): Promise<void> {\n return this.cloud.makeRequest(`/threads/${threadId}`, { method: \"DELETE\" });\n }\n}\n"],"mappings":";AA2CO,IAAM,wBAAN,MAA4B;AAAA,EACjC,YAAoB,OAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,MAAa,KACX,OAC4C;AAC5C,WAAO,KAAK,MAAM,YAAY,YAAY,EAAE,MAAM,CAAC;AAAA,EACrD;AAAA,EAEA,MAAa,OACX,MAC8C;AAC9C,WAAO,KAAK,MAAM,YAAY,YAAY,EAAE,QAAQ,QAAQ,KAAK,CAAC;AAAA,EACpE;AAAA,EAEA,MAAa,OACX,UACA,MACe;AACf,WAAO,KAAK,MAAM,YAAY,YAAY,QAAQ,IAAI;AAAA,MACpD,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,OAAO,UAAiC;AACnD,WAAO,KAAK,MAAM,YAAY,YAAY,QAAQ,IAAI,EAAE,QAAQ,SAAS,CAAC;AAAA,EAC5E;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/index.ts"],"sourcesContent":["export { useCloudThreadListRuntime } from \"./useCloudThreadListRuntime\";\nexport { AssistantCloud } from \"./AssistantCloud\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAA0C;AAC1C,4BAA+B;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/index.ts"],"sourcesContent":["export { useCloudThreadListRuntime } from \"./useCloudThreadListRuntime\";\nexport { AssistantCloud } from \"./AssistantCloud\";\n"],"mappings":";AAAA,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCloudThreadListRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,cAAc,CAAC;IAEtB,WAAW,EAAE,MAAM,gBAAgB,CAAC;IAEpC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,CAAC;AAWF,eAAO,MAAM,yBAAyB,YAAa,sBAAsB,qBA8ExE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { AssistantRuntime } from \"../../../api\";\nimport { RemoteThreadListSubscriber } from \"../types\";\nimport { toCoreMessages } from \"../../edge\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nconst beginnable = <T,>(callback: () => Promise<T>) => {\n let task: Promise<T> | undefined = undefined;\n\n return () => {\n if (task === undefined) task = callback();\n return task;\n };\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const [subscribers] = useState(() => new Set<RemoteThreadListSubscriber>());\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n\n initialize: async (threadId: string) => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const t = await createTask;\n const external_id = t ? t.externalId : undefined;\n const { thread_id: remoteId } =\n await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n\n const dispose = runtime.threads\n .getById(threadId)\n .unstable_on(\"run-end\", () => {\n dispose();\n\n const messages = runtime.threads\n .getById(threadId)\n .getState().messages;\n const begin = beginnable(() => {\n return adapterRef.current.cloud.runs.stream({\n thread_id: remoteId,\n assistant_id: \"system/thread_title\",\n messages: toCoreMessages(messages),\n });\n });\n for (const subscriber of subscribers) {\n subscriber.onGenerateTitle(remoteId, begin);\n }\n });\n\n return { externalId: external_id, remoteId: remoteId };\n },\n\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n subscribe: (callback) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA4C;AAC5C,wCAA2C;AAI3C,kBAA+B;AAe/B,IAAM,aAAa,CAAK,aAA+B;AACrD,MAAI,OAA+B;AAEnC,SAAO,MAAM;AACX,QAAI,SAAS,OAAW,QAAO,SAAS;AACxC,WAAO;AAAA,EACT;AACF;AAEO,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,iBAAa,qBAAO,OAAO;AACjC,8BAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,CAAC,WAAW,QAAI,uBAAS,MAAM,oBAAI,IAAgC,CAAC;AAE1E,QAAM,cAAU,8DAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IAEA,YAAY,OAAO,aAAqB;AACtC,YAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,YAAM,IAAI,MAAM;AAChB,YAAM,cAAc,IAAI,EAAE,aAAa;AACvC,YAAM,EAAE,WAAW,SAAS,IAC1B,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,QAC5C,OAAO;AAAA,QACP,iBAAiB,oBAAI,KAAK;AAAA,QAC1B;AAAA,MACF,CAAC;AAEH,YAAM,UAAU,QAAQ,QACrB,QAAQ,QAAQ,EAChB,YAAY,WAAW,MAAM;AAC5B,gBAAQ;AAER,cAAM,WAAW,QAAQ,QACtB,QAAQ,QAAQ,EAChB,SAAS,EAAE;AACd,cAAM,QAAQ,WAAW,MAAM;AAC7B,iBAAO,WAAW,QAAQ,MAAM,KAAK,OAAO;AAAA,YAC1C,WAAW;AAAA,YACX,cAAc;AAAA,YACd,cAAU,4BAAe,QAAQ;AAAA,UACnC,CAAC;AAAA,QACH,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,gBAAgB,UAAU,KAAK;AAAA,QAC5C;AAAA,MACF,CAAC;AAEH,aAAO,EAAE,YAAY,aAAa,SAAmB;AAAA,IACvD;AAAA,IAEA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,WAAW,CAAC,aAAa;AACvB,kBAAY,IAAI,QAAQ;AACxB,aAAO,MAAM;AACX,oBAAY,OAAO,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { AssistantRuntime } from \"../../../api\";\nimport { RemoteThreadListSubscriber } from \"../types\";\nimport { toCoreMessages } from \"../../edge\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nconst beginnable = <T,>(callback: () => Promise<T>) => {\n let task: Promise<T> | undefined = undefined;\n\n return () => {\n if (task === undefined) task = callback();\n return task;\n };\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const [subscribers] = useState(() => new Set<RemoteThreadListSubscriber>());\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n\n initialize: async (threadId: string) => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const t = await createTask;\n const external_id = t ? t.externalId : undefined;\n const { thread_id: remoteId } =\n await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n\n const dispose = runtime.threads\n .getById(threadId)\n .unstable_on(\"run-end\", () => {\n dispose();\n\n const messages = runtime.threads\n .getById(threadId)\n .getState().messages;\n const begin = beginnable(() => {\n return adapterRef.current.cloud.runs.stream({\n thread_id: remoteId,\n assistant_id: \"system/thread_title\",\n messages: toCoreMessages(messages),\n });\n });\n for (const subscriber of subscribers) {\n subscriber.onGenerateTitle(remoteId, begin);\n }\n });\n\n return { externalId: external_id, remoteId: remoteId };\n },\n\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n subscribe: (callback) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;AAEA,SAAS,WAAW,QAAQ,gBAAgB;AAC5C,SAAS,kCAAkC;AAI3C,SAAS,sBAAsB;AAe/B,IAAM,aAAa,CAAK,aAA+B;AACrD,MAAI,OAA+B;AAEnC,SAAO,MAAM;AACX,QAAI,SAAS,OAAW,QAAO,SAAS;AACxC,WAAO;AAAA,EACT;AACF;AAEO,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,aAAa,OAAO,OAAO;AACjC,YAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,CAAC,WAAW,IAAI,SAAS,MAAM,oBAAI,IAAgC,CAAC;AAE1E,QAAM,UAAU,2BAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IAEA,YAAY,OAAO,aAAqB;AACtC,YAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,YAAM,IAAI,MAAM;AAChB,YAAM,cAAc,IAAI,EAAE,aAAa;AACvC,YAAM,EAAE,WAAW,SAAS,IAC1B,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,QAC5C,OAAO;AAAA,QACP,iBAAiB,oBAAI,KAAK;AAAA,QAC1B;AAAA,MACF,CAAC;AAEH,YAAM,UAAU,QAAQ,QACrB,QAAQ,QAAQ,EAChB,YAAY,WAAW,MAAM;AAC5B,gBAAQ;AAER,cAAM,WAAW,QAAQ,QACtB,QAAQ,QAAQ,EAChB,SAAS,EAAE;AACd,cAAM,QAAQ,WAAW,MAAM;AAC7B,iBAAO,WAAW,QAAQ,MAAM,KAAK,OAAO;AAAA,YAC1C,WAAW;AAAA,YACX,cAAc;AAAA,YACd,UAAU,eAAe,QAAQ;AAAA,UACnC,CAAC;AAAA,QACH,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,gBAAgB,UAAU,KAAK;AAAA,QAC5C;AAAA,MACF,CAAC;AAEH,aAAO,EAAE,YAAY,aAAa,SAAmB;AAAA,IACvD;AAAA,IAEA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,WAAW,CAAC,aAAa;AACvB,kBAAY,IAAI,QAAQ;AACxB,aAAO,MAAM;AACX,oBAAY,OAAO,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|