@assistant-ui/react 0.8.19 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/ThreadRuntime.d.ts.map +1 -1
- package/dist/api/ThreadRuntime.js +3 -1
- package/dist/api/ThreadRuntime.js.map +1 -1
- package/dist/api/ThreadRuntime.mjs +3 -1
- package/dist/api/ThreadRuntime.mjs.map +1 -1
- package/dist/cloud/AssistantCloudRuns.d.ts +2 -2
- package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -1
- package/dist/cloud/AssistantCloudRuns.js.map +1 -1
- package/dist/cloud/AssistantCloudRuns.mjs.map +1 -1
- package/dist/cloud/auiV0.d.ts +1 -2
- package/dist/cloud/auiV0.d.ts.map +1 -1
- package/dist/cloud/auiV0.js.map +1 -1
- package/dist/cloud/auiV0.mjs.map +1 -1
- package/dist/context/react/AttachmentContext.d.ts +108 -108
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +4 -4
- package/dist/internal.js.map +1 -1
- package/dist/internal.mjs +3 -3
- package/dist/internal.mjs.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js +3 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +3 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js +2 -2
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
- package/dist/runtimes/index.d.ts +1 -2
- package/dist/runtimes/index.d.ts.map +1 -1
- package/dist/runtimes/index.js +6 -5
- package/dist/runtimes/index.js.map +1 -1
- package/dist/runtimes/index.mjs +7 -3
- package/dist/runtimes/index.mjs.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +3 -3
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +4 -4
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/cloud.js +2 -2
- package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/cloud.mjs +2 -2
- package/dist/runtimes/remote-thread-list/adapter/cloud.mjs.map +1 -1
- package/dist/runtimes/{edge/streams → streams}/toolResultStream.d.ts +1 -1
- package/dist/runtimes/streams/toolResultStream.d.ts.map +1 -0
- package/dist/runtimes/{edge/streams → streams}/toolResultStream.js +1 -1
- package/dist/runtimes/streams/toolResultStream.js.map +1 -0
- package/dist/runtimes/{edge/streams → streams}/toolResultStream.mjs +1 -1
- package/dist/runtimes/streams/toolResultStream.mjs.map +1 -0
- package/dist/runtimes/utils/MessageRepository.d.ts +2 -2
- package/dist/runtimes/utils/MessageRepository.d.ts.map +1 -1
- package/dist/runtimes/utils/MessageRepository.js +1 -5
- package/dist/runtimes/utils/MessageRepository.js.map +1 -1
- package/dist/runtimes/utils/MessageRepository.mjs +1 -5
- package/dist/runtimes/utils/MessageRepository.mjs.map +1 -1
- package/dist/types/AssistantTypes.d.ts +3 -60
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/AssistantTypes.js.map +1 -1
- package/dist/types/AttachmentTypes.d.ts +3 -3
- package/dist/types/AttachmentTypes.d.ts.map +1 -1
- package/dist/types/AttachmentTypes.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -8
- package/src/api/ThreadRuntime.ts +2 -0
- package/src/cloud/AssistantCloudRuns.tsx +2 -2
- package/src/cloud/auiV0.ts +1 -2
- package/src/index.ts +0 -2
- package/src/internal.ts +1 -1
- package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +2 -0
- package/src/runtimes/external-store/ThreadMessageLike.tsx +1 -1
- package/src/runtimes/index.ts +4 -2
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +4 -4
- package/src/runtimes/remote-thread-list/adapter/cloud.tsx +1 -2
- package/src/runtimes/{edge/streams → streams}/toolResultStream.ts +1 -1
- package/src/runtimes/utils/MessageRepository.tsx +3 -7
- package/src/tests/MessageRepository.test.ts +7 -10
- package/src/types/AssistantTypes.ts +3 -81
- package/src/types/AttachmentTypes.ts +3 -3
- package/src/types/index.ts +0 -9
- package/dist/edge.d.ts +0 -2
- package/dist/edge.d.ts.map +0 -1
- package/dist/edge.js +0 -33
- package/dist/edge.js.map +0 -1
- package/dist/edge.mjs +0 -10
- package/dist/edge.mjs.map +0 -1
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +0 -9
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts.map +0 -1
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +0 -58
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js.map +0 -1
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs +0 -35
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs.map +0 -1
- package/dist/runtimes/dangerous-in-browser/index.d.ts +0 -2
- package/dist/runtimes/dangerous-in-browser/index.d.ts.map +0 -1
- package/dist/runtimes/dangerous-in-browser/index.js +0 -31
- package/dist/runtimes/dangerous-in-browser/index.js.map +0 -1
- package/dist/runtimes/dangerous-in-browser/index.mjs +0 -8
- package/dist/runtimes/dangerous-in-browser/index.mjs.map +0 -1
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts +0 -5
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +0 -1
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +0 -40
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +0 -1
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +0 -18
- package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +0 -1
- package/dist/runtimes/edge/EdgeModelAdapter.d.ts +0 -48
- package/dist/runtimes/edge/EdgeModelAdapter.d.ts.map +0 -1
- package/dist/runtimes/edge/EdgeModelAdapter.js +0 -127
- package/dist/runtimes/edge/EdgeModelAdapter.js.map +0 -1
- package/dist/runtimes/edge/EdgeModelAdapter.mjs +0 -94
- package/dist/runtimes/edge/EdgeModelAdapter.mjs.map +0 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +0 -345
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +0 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +0 -106
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +0 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +0 -84
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +0 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.d.ts +0 -8
- package/dist/runtimes/edge/converters/fromCoreMessage.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.js +0 -89
- package/dist/runtimes/edge/converters/fromCoreMessage.js.map +0 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs +0 -63
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts +0 -8
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +0 -149
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +0 -124
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts +0 -4
- package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelTools.js +0 -41
- package/dist/runtimes/edge/converters/fromLanguageModelTools.js.map +0 -1
- package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs +0 -16
- package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs.map +0 -1
- package/dist/runtimes/edge/converters/index.d.ts +0 -35
- package/dist/runtimes/edge/converters/index.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/index.js +0 -50
- package/dist/runtimes/edge/converters/index.js.map +0 -1
- package/dist/runtimes/edge/converters/index.mjs +0 -24
- package/dist/runtimes/edge/converters/index.mjs.map +0 -1
- package/dist/runtimes/edge/converters/toCoreMessages.d.ts +0 -12
- package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/toCoreMessages.js +0 -74
- package/dist/runtimes/edge/converters/toCoreMessages.js.map +0 -1
- package/dist/runtimes/edge/converters/toCoreMessages.mjs +0 -48
- package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts +0 -6
- package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelMessages.js +0 -168
- package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +0 -143
- package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts +0 -4
- package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelTools.js +0 -50
- package/dist/runtimes/edge/converters/toLanguageModelTools.js.map +0 -1
- package/dist/runtimes/edge/converters/toLanguageModelTools.mjs +0 -15
- package/dist/runtimes/edge/converters/toLanguageModelTools.mjs.map +0 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +0 -36
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +0 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js +0 -179
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +0 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +0 -156
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +0 -1
- package/dist/runtimes/edge/index.d.ts +0 -6
- package/dist/runtimes/edge/index.d.ts.map +0 -1
- package/dist/runtimes/edge/index.js +0 -40
- package/dist/runtimes/edge/index.js.map +0 -1
- package/dist/runtimes/edge/index.mjs +0 -11
- package/dist/runtimes/edge/index.mjs.map +0 -1
- package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +0 -1
- package/dist/runtimes/edge/streams/toolResultStream.js.map +0 -1
- package/dist/runtimes/edge/streams/toolResultStream.mjs.map +0 -1
- package/dist/runtimes/edge/useEdgeRuntime.d.ts +0 -5
- package/dist/runtimes/edge/useEdgeRuntime.d.ts.map +0 -1
- package/dist/runtimes/edge/useEdgeRuntime.js +0 -41
- package/dist/runtimes/edge/useEdgeRuntime.js.map +0 -1
- package/dist/runtimes/edge/useEdgeRuntime.mjs +0 -17
- package/dist/runtimes/edge/useEdgeRuntime.mjs.map +0 -1
- package/dist/utils/json/parse-partial-json.d.ts +0 -4
- package/dist/utils/json/parse-partial-json.d.ts.map +0 -1
- package/dist/utils/json/parse-partial-json.js +0 -90
- package/dist/utils/json/parse-partial-json.js.map +0 -1
- package/dist/utils/json/parse-partial-json.mjs +0 -54
- package/dist/utils/json/parse-partial-json.mjs.map +0 -1
- package/edge/README.md +0 -1
- package/edge/package.json +0 -5
- package/src/edge.ts +0 -4
- package/src/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.ts +0 -42
- package/src/runtimes/dangerous-in-browser/index.ts +0 -4
- package/src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts +0 -21
- package/src/runtimes/edge/EdgeModelAdapter.ts +0 -188
- package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +0 -109
- package/src/runtimes/edge/converters/fromCoreMessage.ts +0 -76
- package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +0 -149
- package/src/runtimes/edge/converters/fromLanguageModelTools.ts +0 -16
- package/src/runtimes/edge/converters/index.ts +0 -41
- package/src/runtimes/edge/converters/toCoreMessages.ts +0 -64
- package/src/runtimes/edge/converters/toLanguageModelMessages.ts +0 -184
- package/src/runtimes/edge/converters/toLanguageModelTools.ts +0 -18
- package/src/runtimes/edge/createEdgeRuntimeAPI.ts +0 -234
- package/src/runtimes/edge/index.ts +0 -7
- package/src/runtimes/edge/useEdgeRuntime.ts +0 -17
- package/src/utils/json/parse-partial-json.ts +0 -74
@@ -1,41 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
"use client";
|
3
|
-
var __defProp = Object.defineProperty;
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
-
var __export = (target, all) => {
|
8
|
-
for (var name in all)
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
10
|
-
};
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
13
|
-
for (let key of __getOwnPropNames(from))
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
|
-
}
|
17
|
-
return to;
|
18
|
-
};
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
20
|
-
|
21
|
-
// src/runtimes/edge/useEdgeRuntime.ts
|
22
|
-
var useEdgeRuntime_exports = {};
|
23
|
-
__export(useEdgeRuntime_exports, {
|
24
|
-
useEdgeRuntime: () => useEdgeRuntime
|
25
|
-
});
|
26
|
-
module.exports = __toCommonJS(useEdgeRuntime_exports);
|
27
|
-
var import__ = require("../index.js");
|
28
|
-
var import_EdgeModelAdapter = require("./EdgeModelAdapter.js");
|
29
|
-
var import_LocalRuntimeOptions = require("../local/LocalRuntimeOptions.js");
|
30
|
-
var useEdgeRuntime = (options) => {
|
31
|
-
const { localRuntimeOptions, otherOptions } = (0, import_LocalRuntimeOptions.splitLocalRuntimeOptions)(options);
|
32
|
-
return (0, import__.useLocalRuntime)(
|
33
|
-
new import_EdgeModelAdapter.EdgeModelAdapter(otherOptions),
|
34
|
-
localRuntimeOptions
|
35
|
-
);
|
36
|
-
};
|
37
|
-
// Annotate the CommonJS export names for ESM import in node:
|
38
|
-
0 && (module.exports = {
|
39
|
-
useEdgeRuntime
|
40
|
-
});
|
41
|
-
//# sourceMappingURL=useEdgeRuntime.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeModelAdapterOptions, EdgeModelAdapter } from \"./EdgeModelAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeModelAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeModelAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAqD;AACrD,8BAA0D;AAC1D,iCAAyC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAElC,aAAO;AAAA,IACL,IAAI,yCAAiB,YAAY;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
|
3
|
-
// src/runtimes/edge/useEdgeRuntime.ts
|
4
|
-
import { useLocalRuntime } from "../index.mjs";
|
5
|
-
import { EdgeModelAdapter } from "./EdgeModelAdapter.mjs";
|
6
|
-
import { splitLocalRuntimeOptions } from "../local/LocalRuntimeOptions.mjs";
|
7
|
-
var useEdgeRuntime = (options) => {
|
8
|
-
const { localRuntimeOptions, otherOptions } = splitLocalRuntimeOptions(options);
|
9
|
-
return useLocalRuntime(
|
10
|
-
new EdgeModelAdapter(otherOptions),
|
11
|
-
localRuntimeOptions
|
12
|
-
);
|
13
|
-
};
|
14
|
-
export {
|
15
|
-
useEdgeRuntime
|
16
|
-
};
|
17
|
-
//# sourceMappingURL=useEdgeRuntime.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeModelAdapterOptions, EdgeModelAdapter } from \"./EdgeModelAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeModelAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeModelAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;AAEA,SAA8B,uBAAuB;AACrD,SAAkC,wBAAwB;AAC1D,SAAS,gCAAgC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAElC,SAAO;AAAA,IACL,IAAI,iBAAiB,YAAY;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parse-partial-json.d.ts","sourceRoot":"","sources":["../../../src/utils/json/parse-partial-json.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,QAa5C,CAAC;AA8CF,eAAO,MAAM,sBAAsB,GAAI,WAAW,MAAM,EAAE,sBAKzD,CAAC"}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __create = Object.create;
|
3
|
-
var __defProp = Object.defineProperty;
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
-
var __export = (target, all) => {
|
9
|
-
for (var name in all)
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
11
|
-
};
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
14
|
-
for (let key of __getOwnPropNames(from))
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
17
|
-
}
|
18
|
-
return to;
|
19
|
-
};
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
26
|
-
mod
|
27
|
-
));
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
|
-
|
30
|
-
// src/utils/json/parse-partial-json.ts
|
31
|
-
var parse_partial_json_exports = {};
|
32
|
-
__export(parse_partial_json_exports, {
|
33
|
-
parsePartialJson: () => parsePartialJson,
|
34
|
-
useToolArgsFieldStatus: () => useToolArgsFieldStatus
|
35
|
-
});
|
36
|
-
module.exports = __toCommonJS(parse_partial_json_exports);
|
37
|
-
var import_secure_json_parse = __toESM(require("secure-json-parse"));
|
38
|
-
var import_fix_json = require("./fix-json.js");
|
39
|
-
var import_context = require("../../context/index.js");
|
40
|
-
var PARTIAL_JSON_COUNT_SYMBOL = Symbol("partial-json-count");
|
41
|
-
var parsePartialJson = (json) => {
|
42
|
-
try {
|
43
|
-
return import_secure_json_parse.default.parse(json);
|
44
|
-
} catch {
|
45
|
-
try {
|
46
|
-
const [fixedJson, partialCount] = (0, import_fix_json.fixJson)(json);
|
47
|
-
const res = import_secure_json_parse.default.parse(fixedJson);
|
48
|
-
res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;
|
49
|
-
return res;
|
50
|
-
} catch {
|
51
|
-
return void 0;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
};
|
55
|
-
var COMPLETE_STATUS = Object.freeze({ type: "complete" });
|
56
|
-
var getFieldStatus = (lastState, args, fieldPath, partialCount) => {
|
57
|
-
if (fieldPath.length === 0) return lastState;
|
58
|
-
if (typeof args !== "object" || args === null) return COMPLETE_STATUS;
|
59
|
-
const path = fieldPath.at(-1);
|
60
|
-
if (!Object.prototype.hasOwnProperty.call(args, path)) {
|
61
|
-
return lastState;
|
62
|
-
}
|
63
|
-
const argsKeys = Object.keys(args);
|
64
|
-
const isLast = argsKeys[argsKeys.length - 1] === path;
|
65
|
-
if (!isLast) return COMPLETE_STATUS;
|
66
|
-
return getFieldStatus(
|
67
|
-
lastState,
|
68
|
-
args[path],
|
69
|
-
fieldPath.slice(0, -1),
|
70
|
-
partialCount - 1
|
71
|
-
);
|
72
|
-
};
|
73
|
-
var getToolArgsFieldStatus = (status, args, fieldPath) => {
|
74
|
-
const partialCount = args[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;
|
75
|
-
if (partialCount === 0) return COMPLETE_STATUS;
|
76
|
-
const lastState = status.type !== "requires-action" ? status : COMPLETE_STATUS;
|
77
|
-
return getFieldStatus(lastState, args, fieldPath, partialCount);
|
78
|
-
};
|
79
|
-
var useToolArgsFieldStatus = (fieldPath) => {
|
80
|
-
return (0, import_context.useContentPart)((p) => {
|
81
|
-
if (p.type !== "tool-call") throw new Error("not a tool call");
|
82
|
-
return getToolArgsFieldStatus(p.status, p.args, fieldPath);
|
83
|
-
});
|
84
|
-
};
|
85
|
-
// Annotate the CommonJS export names for ESM import in node:
|
86
|
-
0 && (module.exports = {
|
87
|
-
parsePartialJson,
|
88
|
-
useToolArgsFieldStatus
|
89
|
-
});
|
90
|
-
//# sourceMappingURL=parse-partial-json.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPart } from \"../../context\";\n\nconst PARTIAL_JSON_COUNT_SYMBOL = Symbol(\"partial-json-count\");\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n const [fixedJson, partialCount] = fixJson(json);\n const res = sjson.parse(fixedJson);\n res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;\n return res;\n } catch {\n return undefined;\n }\n }\n};\n\nconst COMPLETE_STATUS = Object.freeze({ type: \"complete\" });\n\nconst getFieldStatus = (\n lastState: ContentPartStatus,\n args: unknown,\n fieldPath: string[],\n partialCount: number,\n): ContentPartStatus => {\n if (fieldPath.length === 0) return lastState;\n if (typeof args !== \"object\" || args === null) return COMPLETE_STATUS;\n\n const path = fieldPath.at(-1)!;\n\n // If the expected property does not exist, mark as incomplete\n if (!Object.prototype.hasOwnProperty.call(args, path)) {\n return lastState;\n }\n\n const argsKeys = Object.keys(args);\n const isLast = argsKeys[argsKeys.length - 1] === path;\n if (!isLast) return COMPLETE_STATUS;\n\n return getFieldStatus(\n lastState,\n (args as Record<string, unknown>)[path],\n fieldPath.slice(0, -1),\n partialCount - 1,\n );\n};\n\nconst getToolArgsFieldStatus = (\n status: ToolCallContentPartStatus,\n args: Record<string, unknown>,\n fieldPath: string[],\n): ContentPartStatus => {\n const partialCount = (args as any)[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;\n if (partialCount === 0) return COMPLETE_STATUS;\n\n const lastState: ContentPartStatus =\n status.type !== \"requires-action\" ? status : COMPLETE_STATUS;\n\n return getFieldStatus(lastState, args, fieldPath, partialCount);\n};\n\nexport const useToolArgsFieldStatus = (fieldPath: string[]) => {\n return useContentPart((p) => {\n if (p.type !== \"tool-call\") throw new Error(\"not a tool call\");\n return getToolArgsFieldStatus(p.status, p.args, fieldPath);\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkB;AAClB,sBAAwB;AAKxB,qBAA+B;AAE/B,IAAM,4BAA4B,OAAO,oBAAoB;AACtD,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,yBAAAA,QAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,YAAM,CAAC,WAAW,YAAY,QAAI,yBAAQ,IAAI;AAC9C,YAAM,MAAM,yBAAAA,QAAM,MAAM,SAAS;AACjC,UAAI,yBAAyB,IAAI;AACjC,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB,OAAO,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,IAAM,iBAAiB,CACrB,WACA,MACA,WACA,iBACsB;AACtB,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,SAAS,YAAY,SAAS,KAAM,QAAO;AAEtD,QAAM,OAAO,UAAU,GAAG,EAAE;AAG5B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACrD,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,OAAO,KAAK,IAAI;AACjC,QAAM,SAAS,SAAS,SAAS,SAAS,CAAC,MAAM;AACjD,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO;AAAA,IACL;AAAA,IACC,KAAiC,IAAI;AAAA,IACtC,UAAU,MAAM,GAAG,EAAE;AAAA,IACrB,eAAe;AAAA,EACjB;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,MACA,cACsB;AACtB,QAAM,eAAgB,KAAa,yBAAyB,KAAK;AACjE,MAAI,iBAAiB,EAAG,QAAO;AAE/B,QAAM,YACJ,OAAO,SAAS,oBAAoB,SAAS;AAE/C,SAAO,eAAe,WAAW,MAAM,WAAW,YAAY;AAChE;AAEO,IAAM,yBAAyB,CAAC,cAAwB;AAC7D,aAAO,+BAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS,YAAa,OAAM,IAAI,MAAM,iBAAiB;AAC7D,WAAO,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS;AAAA,EAC3D,CAAC;AACH;","names":["sjson"]}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
// src/utils/json/parse-partial-json.ts
|
2
|
-
import sjson from "secure-json-parse";
|
3
|
-
import { fixJson } from "./fix-json.mjs";
|
4
|
-
import { useContentPart } from "../../context/index.mjs";
|
5
|
-
var PARTIAL_JSON_COUNT_SYMBOL = Symbol("partial-json-count");
|
6
|
-
var parsePartialJson = (json) => {
|
7
|
-
try {
|
8
|
-
return sjson.parse(json);
|
9
|
-
} catch {
|
10
|
-
try {
|
11
|
-
const [fixedJson, partialCount] = fixJson(json);
|
12
|
-
const res = sjson.parse(fixedJson);
|
13
|
-
res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;
|
14
|
-
return res;
|
15
|
-
} catch {
|
16
|
-
return void 0;
|
17
|
-
}
|
18
|
-
}
|
19
|
-
};
|
20
|
-
var COMPLETE_STATUS = Object.freeze({ type: "complete" });
|
21
|
-
var getFieldStatus = (lastState, args, fieldPath, partialCount) => {
|
22
|
-
if (fieldPath.length === 0) return lastState;
|
23
|
-
if (typeof args !== "object" || args === null) return COMPLETE_STATUS;
|
24
|
-
const path = fieldPath.at(-1);
|
25
|
-
if (!Object.prototype.hasOwnProperty.call(args, path)) {
|
26
|
-
return lastState;
|
27
|
-
}
|
28
|
-
const argsKeys = Object.keys(args);
|
29
|
-
const isLast = argsKeys[argsKeys.length - 1] === path;
|
30
|
-
if (!isLast) return COMPLETE_STATUS;
|
31
|
-
return getFieldStatus(
|
32
|
-
lastState,
|
33
|
-
args[path],
|
34
|
-
fieldPath.slice(0, -1),
|
35
|
-
partialCount - 1
|
36
|
-
);
|
37
|
-
};
|
38
|
-
var getToolArgsFieldStatus = (status, args, fieldPath) => {
|
39
|
-
const partialCount = args[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;
|
40
|
-
if (partialCount === 0) return COMPLETE_STATUS;
|
41
|
-
const lastState = status.type !== "requires-action" ? status : COMPLETE_STATUS;
|
42
|
-
return getFieldStatus(lastState, args, fieldPath, partialCount);
|
43
|
-
};
|
44
|
-
var useToolArgsFieldStatus = (fieldPath) => {
|
45
|
-
return useContentPart((p) => {
|
46
|
-
if (p.type !== "tool-call") throw new Error("not a tool call");
|
47
|
-
return getToolArgsFieldStatus(p.status, p.args, fieldPath);
|
48
|
-
});
|
49
|
-
};
|
50
|
-
export {
|
51
|
-
parsePartialJson,
|
52
|
-
useToolArgsFieldStatus
|
53
|
-
};
|
54
|
-
//# sourceMappingURL=parse-partial-json.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPart } from \"../../context\";\n\nconst PARTIAL_JSON_COUNT_SYMBOL = Symbol(\"partial-json-count\");\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n const [fixedJson, partialCount] = fixJson(json);\n const res = sjson.parse(fixedJson);\n res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;\n return res;\n } catch {\n return undefined;\n }\n }\n};\n\nconst COMPLETE_STATUS = Object.freeze({ type: \"complete\" });\n\nconst getFieldStatus = (\n lastState: ContentPartStatus,\n args: unknown,\n fieldPath: string[],\n partialCount: number,\n): ContentPartStatus => {\n if (fieldPath.length === 0) return lastState;\n if (typeof args !== \"object\" || args === null) return COMPLETE_STATUS;\n\n const path = fieldPath.at(-1)!;\n\n // If the expected property does not exist, mark as incomplete\n if (!Object.prototype.hasOwnProperty.call(args, path)) {\n return lastState;\n }\n\n const argsKeys = Object.keys(args);\n const isLast = argsKeys[argsKeys.length - 1] === path;\n if (!isLast) return COMPLETE_STATUS;\n\n return getFieldStatus(\n lastState,\n (args as Record<string, unknown>)[path],\n fieldPath.slice(0, -1),\n partialCount - 1,\n );\n};\n\nconst getToolArgsFieldStatus = (\n status: ToolCallContentPartStatus,\n args: Record<string, unknown>,\n fieldPath: string[],\n): ContentPartStatus => {\n const partialCount = (args as any)[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;\n if (partialCount === 0) return COMPLETE_STATUS;\n\n const lastState: ContentPartStatus =\n status.type !== \"requires-action\" ? status : COMPLETE_STATUS;\n\n return getFieldStatus(lastState, args, fieldPath, partialCount);\n};\n\nexport const useToolArgsFieldStatus = (fieldPath: string[]) => {\n return useContentPart((p) => {\n if (p.type !== \"tool-call\") throw new Error(\"not a tool call\");\n return getToolArgsFieldStatus(p.status, p.args, fieldPath);\n });\n};\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AAKxB,SAAS,sBAAsB;AAE/B,IAAM,4BAA4B,OAAO,oBAAoB;AACtD,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,MAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,YAAM,CAAC,WAAW,YAAY,IAAI,QAAQ,IAAI;AAC9C,YAAM,MAAM,MAAM,MAAM,SAAS;AACjC,UAAI,yBAAyB,IAAI;AACjC,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB,OAAO,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,IAAM,iBAAiB,CACrB,WACA,MACA,WACA,iBACsB;AACtB,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,SAAS,YAAY,SAAS,KAAM,QAAO;AAEtD,QAAM,OAAO,UAAU,GAAG,EAAE;AAG5B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACrD,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,OAAO,KAAK,IAAI;AACjC,QAAM,SAAS,SAAS,SAAS,SAAS,CAAC,MAAM;AACjD,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO;AAAA,IACL;AAAA,IACC,KAAiC,IAAI;AAAA,IACtC,UAAU,MAAM,GAAG,EAAE;AAAA,IACrB,eAAe;AAAA,EACjB;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,MACA,cACsB;AACtB,QAAM,eAAgB,KAAa,yBAAyB,KAAK;AACjE,MAAI,iBAAiB,EAAG,QAAO;AAE/B,QAAM,YACJ,OAAO,SAAS,oBAAoB,SAAS;AAE/C,SAAO,eAAe,WAAW,MAAM,WAAW,YAAY;AAChE;AAEO,IAAM,yBAAyB,CAAC,cAAwB;AAC7D,SAAO,eAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS,YAAa,OAAM,IAAI,MAAM,iBAAiB;AAC7D,WAAO,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS;AAAA,EAC3D,CAAC;AACH;","names":[]}
|
package/edge/README.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
This directory exists to support subpath imports for TypeScript projects using --moduleResolution node.
|
package/edge/package.json
DELETED
package/src/edge.ts
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
ChatModelAdapter,
|
3
|
-
ChatModelRunOptions,
|
4
|
-
} from "../local/ChatModelAdapter";
|
5
|
-
import { toCoreMessages } from "../edge/converters/toCoreMessages";
|
6
|
-
import { toLanguageModelTools } from "../edge/converters/toLanguageModelTools";
|
7
|
-
import { EdgeRuntimeRequestOptions } from "../edge/EdgeRuntimeRequestOptions";
|
8
|
-
import { toolResultStream } from "../edge/streams/toolResultStream";
|
9
|
-
import { asAsyncIterable } from "../edge/EdgeModelAdapter";
|
10
|
-
import {
|
11
|
-
CreateEdgeRuntimeAPIOptions,
|
12
|
-
getEdgeRuntimeStream,
|
13
|
-
} from "../edge/createEdgeRuntimeAPI";
|
14
|
-
import { AssistantMessageAccumulator } from "assistant-stream";
|
15
|
-
|
16
|
-
export type DangerousInBrowserAdapterOptions = CreateEdgeRuntimeAPIOptions;
|
17
|
-
|
18
|
-
export class DangerousInBrowserAdapter implements ChatModelAdapter {
|
19
|
-
constructor(private options: DangerousInBrowserAdapterOptions) {}
|
20
|
-
|
21
|
-
async *run({ messages, abortSignal, context }: ChatModelRunOptions) {
|
22
|
-
const res = await getEdgeRuntimeStream({
|
23
|
-
options: this.options,
|
24
|
-
abortSignal,
|
25
|
-
requestData: {
|
26
|
-
system: context.system,
|
27
|
-
messages: toCoreMessages(messages),
|
28
|
-
tools: context.tools ? toLanguageModelTools(context.tools) : [],
|
29
|
-
...context.callSettings,
|
30
|
-
...context.config,
|
31
|
-
} satisfies EdgeRuntimeRequestOptions,
|
32
|
-
});
|
33
|
-
|
34
|
-
const stream = res
|
35
|
-
.pipeThrough(toolResultStream(context.tools, abortSignal))
|
36
|
-
.pipeThrough(new AssistantMessageAccumulator());
|
37
|
-
|
38
|
-
for await (const update of asAsyncIterable(stream)) {
|
39
|
-
yield update;
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
|
3
|
-
import { LocalRuntimeOptions, useLocalRuntime } from "..";
|
4
|
-
import { useState } from "react";
|
5
|
-
import {
|
6
|
-
DangerousInBrowserAdapter,
|
7
|
-
DangerousInBrowserAdapterOptions,
|
8
|
-
} from "./DangerousInBrowserAdapter";
|
9
|
-
import { splitLocalRuntimeOptions } from "../local/LocalRuntimeOptions";
|
10
|
-
|
11
|
-
export type DangerousInBrowserRuntimeOptions =
|
12
|
-
DangerousInBrowserAdapterOptions & LocalRuntimeOptions;
|
13
|
-
|
14
|
-
export const useDangerousInBrowserRuntime = (
|
15
|
-
options: DangerousInBrowserRuntimeOptions,
|
16
|
-
) => {
|
17
|
-
const { localRuntimeOptions, otherOptions } =
|
18
|
-
splitLocalRuntimeOptions(options);
|
19
|
-
const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));
|
20
|
-
return useLocalRuntime(adapter, localRuntimeOptions);
|
21
|
-
};
|
@@ -1,188 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
ChatModelAdapter,
|
3
|
-
ChatModelRunOptions,
|
4
|
-
} from "../local/ChatModelAdapter";
|
5
|
-
import { toCoreMessages } from "./converters/toCoreMessages";
|
6
|
-
import { toLanguageModelTools } from "./converters/toLanguageModelTools";
|
7
|
-
import { EdgeRuntimeRequestOptions } from "./EdgeRuntimeRequestOptions";
|
8
|
-
import { toolResultStream } from "./streams/toolResultStream";
|
9
|
-
import { toLanguageModelMessages } from "./converters";
|
10
|
-
import { ThreadMessage } from "../../types";
|
11
|
-
import { Tool } from "../../model-context";
|
12
|
-
import { z } from "zod";
|
13
|
-
import zodToJsonSchema from "zod-to-json-schema";
|
14
|
-
import { JSONSchema7 } from "json-schema";
|
15
|
-
import {
|
16
|
-
AssistantMessageAccumulator,
|
17
|
-
DataStreamDecoder,
|
18
|
-
} from "assistant-stream";
|
19
|
-
|
20
|
-
export function asAsyncIterable<T>(
|
21
|
-
source: ReadableStream<T>,
|
22
|
-
): AsyncIterable<T> {
|
23
|
-
return {
|
24
|
-
[Symbol.asyncIterator]: () => {
|
25
|
-
const reader = source.getReader();
|
26
|
-
return {
|
27
|
-
async next(): Promise<IteratorResult<T, undefined>> {
|
28
|
-
const { done, value } = await reader.read();
|
29
|
-
return done
|
30
|
-
? { done: true, value: undefined }
|
31
|
-
: { done: false, value };
|
32
|
-
},
|
33
|
-
};
|
34
|
-
},
|
35
|
-
};
|
36
|
-
}
|
37
|
-
|
38
|
-
type HeadersValue = Record<string, string> | Headers;
|
39
|
-
|
40
|
-
export type EdgeModelAdapterOptions = {
|
41
|
-
api: string;
|
42
|
-
|
43
|
-
// experimental_prepareRequestBody?: (options: {
|
44
|
-
// id: string;
|
45
|
-
// messages: UIMessage[];
|
46
|
-
// requestData?: JSONValue;
|
47
|
-
// requestBody?: object;
|
48
|
-
// }) => unknown;
|
49
|
-
|
50
|
-
// onToolCall?: ({
|
51
|
-
// toolCall,
|
52
|
-
// }: {
|
53
|
-
// toolCall: UIMessageToolInvocation;
|
54
|
-
// }) => void | Promise<unknown> | unknown;
|
55
|
-
|
56
|
-
/**
|
57
|
-
* Callback function to be called when the API response is received.
|
58
|
-
*/
|
59
|
-
onResponse?: (response: Response) => void | Promise<void>;
|
60
|
-
/**
|
61
|
-
* Optional callback function that is called when the assistant message is finished streaming.
|
62
|
-
*/
|
63
|
-
onFinish?: (message: ThreadMessage) => void;
|
64
|
-
/**
|
65
|
-
* Callback function to be called when an error is encountered.
|
66
|
-
*/
|
67
|
-
onError?: (error: Error) => void;
|
68
|
-
|
69
|
-
credentials?: RequestCredentials;
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Headers to be sent with the request.
|
73
|
-
* Can be a static headers object or a function that returns a Promise of headers.
|
74
|
-
*/
|
75
|
-
headers?: HeadersValue | (() => Promise<HeadersValue>);
|
76
|
-
|
77
|
-
body?: object;
|
78
|
-
|
79
|
-
/**
|
80
|
-
* @deprecated Renamed to `sendExtraMessageFields`.
|
81
|
-
*/
|
82
|
-
unstable_sendMessageIds?: boolean;
|
83
|
-
|
84
|
-
/**
|
85
|
-
* When enabled, the adapter will not strip `id` from messages in the messages array.
|
86
|
-
*/
|
87
|
-
sendExtraMessageFields?: boolean;
|
88
|
-
|
89
|
-
/**
|
90
|
-
* When enabled, the adapter will send messages in the format expected by the Vercel AI SDK Core.
|
91
|
-
* This feature will be removed in the future in favor of a better solution.
|
92
|
-
*
|
93
|
-
* `v2` sends frontend tools in a format that can be directly passed to `stremaText`
|
94
|
-
*/
|
95
|
-
unstable_AISDKInterop?: boolean | "v2" | undefined;
|
96
|
-
};
|
97
|
-
|
98
|
-
const toAISDKTools = (tools: Record<string, Tool<any, any>>) => {
|
99
|
-
return Object.fromEntries(
|
100
|
-
Object.entries(tools).map(([name, tool]) => [
|
101
|
-
name,
|
102
|
-
{
|
103
|
-
...(tool.description ? { description: tool.description } : undefined),
|
104
|
-
parameters: (tool.parameters instanceof z.ZodType
|
105
|
-
? zodToJsonSchema(tool.parameters)
|
106
|
-
: tool.parameters) as JSONSchema7,
|
107
|
-
},
|
108
|
-
]),
|
109
|
-
);
|
110
|
-
};
|
111
|
-
|
112
|
-
export class EdgeModelAdapter implements ChatModelAdapter {
|
113
|
-
constructor(private options: EdgeModelAdapterOptions) {}
|
114
|
-
|
115
|
-
async *run({
|
116
|
-
messages,
|
117
|
-
runConfig,
|
118
|
-
abortSignal,
|
119
|
-
context,
|
120
|
-
unstable_assistantMessageId,
|
121
|
-
unstable_getMessage,
|
122
|
-
}: ChatModelRunOptions) {
|
123
|
-
const headersValue =
|
124
|
-
typeof this.options.headers === "function"
|
125
|
-
? await this.options.headers()
|
126
|
-
: this.options.headers;
|
127
|
-
|
128
|
-
const headers = new Headers(headersValue);
|
129
|
-
headers.set("Content-Type", "application/json");
|
130
|
-
|
131
|
-
const result = await fetch(this.options.api, {
|
132
|
-
method: "POST",
|
133
|
-
headers,
|
134
|
-
credentials: this.options.credentials ?? "same-origin",
|
135
|
-
body: JSON.stringify({
|
136
|
-
system: context.system,
|
137
|
-
messages: this.options.unstable_AISDKInterop
|
138
|
-
? (toLanguageModelMessages(messages, {
|
139
|
-
unstable_includeId:
|
140
|
-
this.options.unstable_sendMessageIds ||
|
141
|
-
this.options.sendExtraMessageFields,
|
142
|
-
}) as EdgeRuntimeRequestOptions["messages"]) // TODO figure out a better way to do this
|
143
|
-
: toCoreMessages(messages, {
|
144
|
-
unstable_includeId:
|
145
|
-
this.options.unstable_sendMessageIds ||
|
146
|
-
this.options.sendExtraMessageFields,
|
147
|
-
}),
|
148
|
-
tools: context.tools
|
149
|
-
? this.options.unstable_AISDKInterop === "v2"
|
150
|
-
? (toAISDKTools(context.tools) as any)
|
151
|
-
: toLanguageModelTools(context.tools)
|
152
|
-
: [],
|
153
|
-
unstable_assistantMessageId,
|
154
|
-
runConfig,
|
155
|
-
...context.callSettings,
|
156
|
-
...context.config,
|
157
|
-
|
158
|
-
...this.options.body,
|
159
|
-
} satisfies EdgeRuntimeRequestOptions),
|
160
|
-
signal: abortSignal,
|
161
|
-
});
|
162
|
-
|
163
|
-
await this.options.onResponse?.(result);
|
164
|
-
|
165
|
-
try {
|
166
|
-
if (!result.ok) {
|
167
|
-
throw new Error(`Status ${result.status}: ${await result.text()}`);
|
168
|
-
}
|
169
|
-
if (!result.body) {
|
170
|
-
throw new Error("Response body is null");
|
171
|
-
}
|
172
|
-
|
173
|
-
const stream = result.body
|
174
|
-
.pipeThrough(new DataStreamDecoder())
|
175
|
-
.pipeThrough(toolResultStream(context.tools, abortSignal))
|
176
|
-
.pipeThrough(new AssistantMessageAccumulator());
|
177
|
-
|
178
|
-
for await (const update of asAsyncIterable(stream)) {
|
179
|
-
yield update;
|
180
|
-
}
|
181
|
-
|
182
|
-
this.options.onFinish?.(unstable_getMessage());
|
183
|
-
} catch (error: unknown) {
|
184
|
-
this.options.onError?.(error as Error);
|
185
|
-
throw error;
|
186
|
-
}
|
187
|
-
}
|
188
|
-
}
|
@@ -1,109 +0,0 @@
|
|
1
|
-
import { JSONSchema7 } from "json-schema";
|
2
|
-
import {
|
3
|
-
LanguageModelConfigSchema,
|
4
|
-
LanguageModelV1CallSettingsSchema,
|
5
|
-
} from "../../model-context/ModelContextTypes";
|
6
|
-
import { z } from "zod";
|
7
|
-
import { ReadonlyJSONObject } from "../../utils/json/json-value";
|
8
|
-
|
9
|
-
const LanguageModelV1FunctionToolSchema = z.object({
|
10
|
-
type: z.literal("function"),
|
11
|
-
name: z.string(),
|
12
|
-
description: z.string().optional(),
|
13
|
-
parameters: z.custom<JSONSchema7>(
|
14
|
-
(val) => typeof val === "object" && val !== null,
|
15
|
-
),
|
16
|
-
});
|
17
|
-
|
18
|
-
const TextContentPartSchema = z.object({
|
19
|
-
type: z.literal("text"),
|
20
|
-
text: z.string(),
|
21
|
-
});
|
22
|
-
|
23
|
-
const ImageContentPartSchema = z.object({
|
24
|
-
type: z.literal("image"),
|
25
|
-
image: z.string(),
|
26
|
-
});
|
27
|
-
|
28
|
-
const FileContentPartSchema = z.object({
|
29
|
-
type: z.literal("file"),
|
30
|
-
data: z.string(),
|
31
|
-
mimeType: z.string(),
|
32
|
-
});
|
33
|
-
|
34
|
-
const Unstable_AudioContentPart = z.object({
|
35
|
-
type: z.literal("audio"),
|
36
|
-
audio: z.object({
|
37
|
-
data: z.string(),
|
38
|
-
format: z.union([z.literal("mp3"), z.literal("wav")]),
|
39
|
-
}),
|
40
|
-
});
|
41
|
-
|
42
|
-
const CoreToolCallContentPartSchema = z.object({
|
43
|
-
type: z.literal("tool-call"),
|
44
|
-
toolCallId: z.string(),
|
45
|
-
toolName: z.string(),
|
46
|
-
args: z
|
47
|
-
.record(z.unknown())
|
48
|
-
.refine((c): c is ReadonlyJSONObject => c !== undefined),
|
49
|
-
result: z.unknown().optional(),
|
50
|
-
isError: z.boolean().optional(),
|
51
|
-
});
|
52
|
-
|
53
|
-
const CoreUserMessageSchema = z.object({
|
54
|
-
role: z.literal("user"),
|
55
|
-
content: z
|
56
|
-
.array(
|
57
|
-
z.discriminatedUnion("type", [
|
58
|
-
TextContentPartSchema,
|
59
|
-
ImageContentPartSchema,
|
60
|
-
FileContentPartSchema,
|
61
|
-
Unstable_AudioContentPart,
|
62
|
-
]),
|
63
|
-
)
|
64
|
-
.min(1)
|
65
|
-
.readonly(),
|
66
|
-
});
|
67
|
-
|
68
|
-
const CoreAssistantMessageSchema = z.object({
|
69
|
-
role: z.literal("assistant"),
|
70
|
-
content: z
|
71
|
-
.array(
|
72
|
-
z.discriminatedUnion("type", [
|
73
|
-
TextContentPartSchema,
|
74
|
-
CoreToolCallContentPartSchema,
|
75
|
-
]),
|
76
|
-
)
|
77
|
-
.min(1)
|
78
|
-
.readonly(),
|
79
|
-
});
|
80
|
-
|
81
|
-
const CoreSystemMessageSchema = z.object({
|
82
|
-
role: z.literal("system"),
|
83
|
-
content: z.tuple([TextContentPartSchema]).readonly(),
|
84
|
-
});
|
85
|
-
|
86
|
-
const CoreMessageSchema = z.discriminatedUnion("role", [
|
87
|
-
CoreSystemMessageSchema,
|
88
|
-
CoreUserMessageSchema,
|
89
|
-
CoreAssistantMessageSchema,
|
90
|
-
]);
|
91
|
-
|
92
|
-
export const EdgeRuntimeRequestOptionsSchema = z
|
93
|
-
.object({
|
94
|
-
system: z.string().optional(),
|
95
|
-
messages: z.array(CoreMessageSchema).min(1).readonly(),
|
96
|
-
runConfig: z
|
97
|
-
.object({
|
98
|
-
custom: z.record(z.unknown()).optional(),
|
99
|
-
})
|
100
|
-
.optional(),
|
101
|
-
tools: z.array(LanguageModelV1FunctionToolSchema).readonly().optional(),
|
102
|
-
unstable_assistantMessageId: z.string().optional(),
|
103
|
-
})
|
104
|
-
.merge(LanguageModelV1CallSettingsSchema)
|
105
|
-
.merge(LanguageModelConfigSchema);
|
106
|
-
|
107
|
-
export type EdgeRuntimeRequestOptions = z.infer<
|
108
|
-
typeof EdgeRuntimeRequestOptionsSchema
|
109
|
-
>;
|