@copilotkit/runtime 0.38.0-mme-alpha.1 → 1.0.0-beta.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/.turbo/turbo-build.log +41 -41
- package/CHANGELOG.md +9 -14
- package/dist/{chunk-4RGXTUS4.mjs → chunk-2PJG3NAC.mjs} +2 -2
- package/dist/{chunk-DX2KAJBF.mjs → chunk-6YGDE3YI.mjs} +52 -2
- package/dist/chunk-6YGDE3YI.mjs.map +1 -0
- package/dist/{chunk-XI3HBDMA.mjs → chunk-JBDOA7MK.mjs} +22 -11
- package/dist/chunk-JBDOA7MK.mjs.map +1 -0
- package/dist/{chunk-NXFMYCNF.mjs → chunk-JIKPSUGQ.mjs} +36 -21
- package/dist/chunk-JIKPSUGQ.mjs.map +1 -0
- package/dist/{index-1eb2e9b1.d.ts → index-0e75acd2.d.ts} +63 -17
- package/dist/index.d.ts +4 -4
- package/dist/index.js +110 -40
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -6
- package/dist/index.mjs.map +1 -1
- package/dist/{langchain-adapter-54784d29.d.ts → langchain-adapter-a02d1d38.d.ts} +4 -4
- package/dist/{langserve-63794237.d.ts → langserve-75ebbc38.d.ts} +1 -2
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +110 -40
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +4 -6
- package/dist/lib/integrations/index.d.ts +3 -3
- package/dist/lib/integrations/index.js +67 -1
- package/dist/lib/integrations/index.js.map +1 -1
- package/dist/lib/integrations/index.mjs +2 -2
- package/dist/lib/integrations/node-http/index.d.ts +2 -2
- package/dist/lib/integrations/node-http/index.js +67 -1
- package/dist/lib/integrations/node-http/index.js.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs +1 -1
- package/dist/{pages-router-b88114e9.d.ts → pages-router-e81920d5.d.ts} +1 -1
- package/dist/service-adapters/index.d.ts +2 -2
- package/dist/service-adapters/index.js +28 -17
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +1 -1
- package/package.json +4 -4
- package/src/graphql/resolvers/copilot.resolver.ts +67 -0
- package/src/lib/copilot-runtime.ts +106 -32
- package/src/lib/integrations/shared.ts +1 -1
- package/src/service-adapters/experimental/groq/groq-adapter.ts +3 -1
- package/src/service-adapters/experimental/ollama/ollama-adapter.ts +3 -1
- package/src/service-adapters/google/google-genai-adapter.ts +3 -1
- package/src/service-adapters/langchain/langchain-adapter.ts +8 -9
- package/src/service-adapters/openai/openai-adapter.ts +8 -7
- package/src/service-adapters/openai/openai-assistant-adapter.ts +6 -8
- package/src/service-adapters/service-adapter.ts +1 -2
- package/dist/chunk-DX2KAJBF.mjs.map +0 -1
- package/dist/chunk-NXFMYCNF.mjs.map +0 -1
- package/dist/chunk-XI3HBDMA.mjs.map +0 -1
- /package/dist/{chunk-4RGXTUS4.mjs.map → chunk-2PJG3NAC.mjs.map} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/runtime@0.
|
|
2
|
+
> @copilotkit/runtime@1.0.0-beta.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/runtime
|
|
3
3
|
> tsup --clean
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts, src/lib/index.ts, src/service-adapters/index.ts, src/utils/index.ts, src/lib/cloud/index.ts, src/lib/integrations/index.ts, src/graphql/types/base/index.ts, src/graphql/types/converted/index.ts, src/lib/integrations/node-http/index.ts
|
|
@@ -10,76 +10,76 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
-
[32mCJS[39m [1mdist/index.js [22m[32m87.09 KB[39m
|
|
14
|
-
[32mCJS[39m [1mdist/lib/index.js [22m[32m86.74 KB[39m
|
|
15
|
-
[32mCJS[39m [1mdist/service-adapters/index.js [22m[32m32.32 KB[39m
|
|
16
|
-
[32mCJS[39m [1mdist/utils/index.js [22m[32m6.32 KB[39m
|
|
17
|
-
[32mCJS[39m [1mdist/lib/cloud/index.js [22m[32m787.00 B[39m
|
|
18
|
-
[32mCJS[39m [1mdist/lib/integrations/index.js [22m[32m49.54 KB[39m
|
|
19
|
-
[32mCJS[39m [1mdist/lib/integrations/node-http/index.js [22m[32m47.88 KB[39m
|
|
20
13
|
[32mCJS[39m [1mdist/graphql/types/base/index.js [22m[32m2.44 KB[39m
|
|
21
|
-
[32mCJS[39m [1mdist/index.js.map [22m[32m134.90 KB[39m
|
|
22
|
-
[32mCJS[39m [1mdist/lib/index.js.map [22m[32m135.24 KB[39m
|
|
23
|
-
[32mCJS[39m [1mdist/service-adapters/index.js.map [22m[32m61.49 KB[39m
|
|
24
|
-
[32mCJS[39m [1mdist/utils/index.js.map [22m[32m5.63 KB[39m
|
|
25
|
-
[32mCJS[39m [1mdist/lib/cloud/index.js.map [22m[32m217.00 B[39m
|
|
26
|
-
[32mCJS[39m [1mdist/lib/integrations/index.js.map [22m[32m59.88 KB[39m
|
|
27
|
-
[32mCJS[39m [1mdist/lib/integrations/node-http/index.js.map [22m[32m56.98 KB[39m
|
|
28
14
|
[32mCJS[39m [1mdist/graphql/types/converted/index.js [22m[32m3.04 KB[39m
|
|
15
|
+
[32mCJS[39m [1mdist/index.js [22m[32m90.21 KB[39m
|
|
16
|
+
[32mCJS[39m [1mdist/lib/index.js [22m[32m89.86 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/service-adapters/index.js [22m[32m32.69 KB[39m
|
|
18
|
+
[32mCJS[39m [1mdist/utils/index.js [22m[32m6.32 KB[39m
|
|
19
|
+
[32mCJS[39m [1mdist/lib/cloud/index.js [22m[32m787.00 B[39m
|
|
20
|
+
[32mCJS[39m [1mdist/lib/integrations/index.js [22m[32m52.20 KB[39m
|
|
21
|
+
[32mCJS[39m [1mdist/lib/integrations/node-http/index.js [22m[32m50.54 KB[39m
|
|
29
22
|
[32mCJS[39m [1mdist/graphql/types/base/index.js.map [22m[32m645.00 B[39m
|
|
30
23
|
[32mCJS[39m [1mdist/graphql/types/converted/index.js.map [22m[32m1.76 KB[39m
|
|
31
|
-
[32mCJS[39m
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
24
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m141.53 KB[39m
|
|
25
|
+
[32mCJS[39m [1mdist/lib/index.js.map [22m[32m141.87 KB[39m
|
|
26
|
+
[32mCJS[39m [1mdist/service-adapters/index.js.map [22m[32m62.05 KB[39m
|
|
27
|
+
[32mCJS[39m [1mdist/utils/index.js.map [22m[32m5.63 KB[39m
|
|
28
|
+
[32mCJS[39m [1mdist/lib/cloud/index.js.map [22m[32m217.00 B[39m
|
|
29
|
+
[32mCJS[39m [1mdist/lib/integrations/index.js.map [22m[32m64.90 KB[39m
|
|
30
|
+
[32mCJS[39m [1mdist/lib/integrations/node-http/index.js.map [22m[32m61.99 KB[39m
|
|
31
|
+
[32mCJS[39m ⚡️ Build success in 216ms
|
|
32
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m1.22 KB[39m
|
|
33
|
+
[32mESM[39m [1mdist/lib/index.mjs [22m[32m1007.00 B[39m
|
|
36
34
|
[32mESM[39m [1mdist/service-adapters/index.mjs [22m[32m427.00 B[39m
|
|
37
|
-
[32mESM[39m [1mdist/chunk-XI3HBDMA.mjs [22m[32m20.99 KB[39m
|
|
38
35
|
[32mESM[39m [1mdist/utils/index.mjs [22m[32m315.00 B[39m
|
|
39
36
|
[32mESM[39m [1mdist/lib/cloud/index.mjs [22m[32m34.00 B[39m
|
|
40
37
|
[32mESM[39m [1mdist/lib/integrations/index.mjs [22m[32m664.00 B[39m
|
|
41
|
-
[32mESM[39m [1mdist/chunk-
|
|
42
|
-
[32mESM[39m [1mdist/chunk-
|
|
38
|
+
[32mESM[39m [1mdist/chunk-JIKPSUGQ.mjs [22m[32m4.67 KB[39m
|
|
39
|
+
[32mESM[39m [1mdist/chunk-JBDOA7MK.mjs [22m[32m21.31 KB[39m
|
|
40
|
+
[32mESM[39m [1mdist/chunk-2PJG3NAC.mjs [22m[32m1.41 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/chunk-6YGDE3YI.mjs [22m[32m44.14 KB[39m
|
|
43
42
|
[32mESM[39m [1mdist/chunk-FRK6BXXV.mjs [22m[32m7.85 KB[39m
|
|
44
43
|
[32mESM[39m [1mdist/chunk-BYB2LNMK.mjs [22m[32m4.91 KB[39m
|
|
45
|
-
[32mESM[39m [1mdist/graphql/types/base/index.mjs [22m[32m159.00 B[39m
|
|
46
|
-
[32mESM[39m [1mdist/graphql/types/converted/index.mjs [22m[32m283.00 B[39m
|
|
47
44
|
[32mESM[39m [1mdist/chunk-OZMCHYYR.mjs [22m[32m645.00 B[39m
|
|
48
45
|
[32mESM[39m [1mdist/chunk-6NZ4UMOD.mjs [22m[32m1.36 KB[39m
|
|
49
46
|
[32mESM[39m [1mdist/chunk-RHQLCJGG.mjs [22m[32m194.00 B[39m
|
|
50
|
-
[32mESM[39m [1mdist/lib/integrations/node-http/index.mjs
|
|
51
|
-
[32mESM[39m [1mdist/index.mjs.map [22m[
|
|
52
|
-
[32mESM[39m [1mdist/chunk-NXFMYCNF.mjs.map [22m[32m11.76 KB[39m
|
|
47
|
+
[32mESM[39m [1mdist/lib/integrations/node-http/index.mjs [22m[32m349.00 B[39m
|
|
48
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m216.00 B[39m
|
|
53
49
|
[32mESM[39m [1mdist/lib/index.mjs.map [22m[32m71.00 B[39m
|
|
54
50
|
[32mESM[39m [1mdist/service-adapters/index.mjs.map [22m[32m71.00 B[39m
|
|
55
51
|
[32mESM[39m [1mdist/utils/index.mjs.map [22m[32m71.00 B[39m
|
|
56
|
-
[32mESM[39m [1mdist/chunk-XI3HBDMA.mjs.map [22m[32m44.81 KB[39m
|
|
57
52
|
[32mESM[39m [1mdist/lib/cloud/index.mjs.map [22m[32m71.00 B[39m
|
|
58
53
|
[32mESM[39m [1mdist/lib/integrations/index.mjs.map [22m[32m71.00 B[39m
|
|
59
|
-
[32mESM[39m [1mdist/
|
|
54
|
+
[32mESM[39m [1mdist/graphql/types/base/index.mjs [22m[32m159.00 B[39m
|
|
55
|
+
[32mESM[39m [1mdist/chunk-JIKPSUGQ.mjs.map [22m[32m13.94 KB[39m
|
|
56
|
+
[32mESM[39m [1mdist/chunk-JBDOA7MK.mjs.map [22m[32m45.36 KB[39m
|
|
57
|
+
[32mESM[39m [1mdist/chunk-2PJG3NAC.mjs.map [22m[32m2.79 KB[39m
|
|
58
|
+
[32mESM[39m [1mdist/chunk-6YGDE3YI.mjs.map [22m[32m58.33 KB[39m
|
|
60
59
|
[32mESM[39m [1mdist/chunk-FRK6BXXV.mjs.map [22m[32m14.76 KB[39m
|
|
61
|
-
[32mESM[39m [1mdist/chunk-DX2KAJBF.mjs.map [22m[32m54.44 KB[39m
|
|
62
60
|
[32mESM[39m [1mdist/chunk-BYB2LNMK.mjs.map [22m[32m5.63 KB[39m
|
|
63
|
-
[32mESM[39m [1mdist/graphql/types/base/index.mjs.map [22m[32m71.00 B[39m
|
|
64
|
-
[32mESM[39m [1mdist/graphql/types/converted/index.mjs.map [22m[32m71.00 B[39m
|
|
65
61
|
[32mESM[39m [1mdist/chunk-OZMCHYYR.mjs.map [22m[32m1.18 KB[39m
|
|
66
62
|
[32mESM[39m [1mdist/chunk-6NZ4UMOD.mjs.map [22m[32m645.00 B[39m
|
|
67
63
|
[32mESM[39m [1mdist/chunk-RHQLCJGG.mjs.map [22m[32m71.00 B[39m
|
|
68
|
-
[32mESM[39m
|
|
64
|
+
[32mESM[39m [1mdist/graphql/types/converted/index.mjs [22m[32m283.00 B[39m
|
|
65
|
+
[32mESM[39m [1mdist/lib/integrations/node-http/index.mjs.map [22m[32m71.00 B[39m
|
|
66
|
+
[32mESM[39m [1mdist/graphql/types/base/index.mjs.map [22m[32m71.00 B[39m
|
|
67
|
+
[32mESM[39m [1mdist/graphql/types/converted/index.mjs.map [22m[32m71.00 B[39m
|
|
68
|
+
[32mESM[39m ⚡️ Build success in 219ms
|
|
69
69
|
[34mDTS[39m Build start
|
|
70
|
-
[32mDTS[39m ⚡️ Build success in
|
|
71
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m1.
|
|
70
|
+
[32mDTS[39m ⚡️ Build success in 7048ms
|
|
71
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m1.28 KB[39m
|
|
72
72
|
[32mDTS[39m [1mdist/lib/cloud/index.d.ts [22m[32m116.00 B[39m
|
|
73
73
|
[32mDTS[39m [1mdist/graphql/types/base/index.d.ts [22m[32m92.00 B[39m
|
|
74
|
-
[32mDTS[39m [1mdist/lib/index.d.ts [22m[32m1.
|
|
74
|
+
[32mDTS[39m [1mdist/lib/index.d.ts [22m[32m1.11 KB[39m
|
|
75
75
|
[32mDTS[39m [1mdist/service-adapters/index.d.ts [22m[32m543.00 B[39m
|
|
76
76
|
[32mDTS[39m [1mdist/utils/index.d.ts [22m[32m172.00 B[39m
|
|
77
77
|
[32mDTS[39m [1mdist/lib/integrations/index.d.ts [22m[32m688.00 B[39m
|
|
78
78
|
[32mDTS[39m [1mdist/lib/integrations/node-http/index.d.ts [22m[32m338.00 B[39m
|
|
79
79
|
[32mDTS[39m [1mdist/graphql/types/converted/index.d.ts [22m[32m153.00 B[39m
|
|
80
|
-
[32mDTS[39m [1mdist/index-
|
|
81
|
-
[32mDTS[39m [1mdist/langchain-adapter-
|
|
82
|
-
[32mDTS[39m [1mdist/pages-router-
|
|
80
|
+
[32mDTS[39m [1mdist/index-0e75acd2.d.ts [22m[32m7.66 KB[39m
|
|
81
|
+
[32mDTS[39m [1mdist/langchain-adapter-a02d1d38.d.ts [22m[32m5.74 KB[39m
|
|
82
|
+
[32mDTS[39m [1mdist/pages-router-e81920d5.d.ts [22m[32m891.00 B[39m
|
|
83
83
|
[32mDTS[39m [1mdist/failed-response-status-reasons-0ab19e06.d.ts [22m[32m1.41 KB[39m
|
|
84
|
-
[32mDTS[39m [1mdist/langserve-
|
|
84
|
+
[32mDTS[39m [1mdist/langserve-75ebbc38.d.ts [22m[32m3.59 KB[39m
|
|
85
85
|
[32mDTS[39m [1mdist/index-aa091e3c.d.ts [22m[32m1.33 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
# @copilotkit/runtime
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 1.0.0-beta.0
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Major Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- V1.0 Release Candidate
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
## 0.38.0-mme-alpha.0
|
|
15
|
-
|
|
16
|
-
### Minor Changes
|
|
17
|
-
|
|
18
|
-
- GraphQL based protocol
|
|
9
|
+
- A robust new protocol between the frontend and the Copilot Runtime
|
|
10
|
+
- Support for Copilot Cloud
|
|
11
|
+
- Generative UI
|
|
12
|
+
- Support for LangChain universal tool calling
|
|
13
|
+
- OpenAI assistant API streaming
|
|
19
14
|
|
|
20
15
|
### Patch Changes
|
|
21
16
|
|
|
22
17
|
- Updated dependencies
|
|
23
|
-
- @copilotkit/shared@0.
|
|
18
|
+
- @copilotkit/shared@1.0.0-beta.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getCommonConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6YGDE3YI.mjs";
|
|
4
4
|
import {
|
|
5
5
|
__name
|
|
6
6
|
} from "./chunk-RHQLCJGG.mjs";
|
|
@@ -51,4 +51,4 @@ export {
|
|
|
51
51
|
config,
|
|
52
52
|
copilotRuntimeNextJSPagesRouterEndpoint
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-2PJG3NAC.mjs.map
|
|
@@ -8,6 +8,11 @@ import {
|
|
|
8
8
|
SuccessResponseStatus,
|
|
9
9
|
UnknownErrorResponse
|
|
10
10
|
} from "./chunk-BYB2LNMK.mjs";
|
|
11
|
+
import {
|
|
12
|
+
ActionExecutionMessage,
|
|
13
|
+
ResultMessage,
|
|
14
|
+
TextMessage
|
|
15
|
+
} from "./chunk-OZMCHYYR.mjs";
|
|
11
16
|
import {
|
|
12
17
|
BaseMessage
|
|
13
18
|
} from "./chunk-6NZ4UMOD.mjs";
|
|
@@ -869,6 +874,13 @@ var CopilotResolver = class {
|
|
|
869
874
|
const responseStatus$ = new ReplaySubject2();
|
|
870
875
|
const interruptStreaming$ = new ReplaySubject2();
|
|
871
876
|
const guardrailsResult$ = new ReplaySubject2();
|
|
877
|
+
let outputMessages = [];
|
|
878
|
+
let resolveOutputMessagesPromise;
|
|
879
|
+
let rejectOutputMessagesPromise;
|
|
880
|
+
const outputMessagesPromise = new Promise((resolve, reject) => {
|
|
881
|
+
resolveOutputMessagesPromise = resolve;
|
|
882
|
+
rejectOutputMessagesPromise = reject;
|
|
883
|
+
});
|
|
872
884
|
logger2.debug("Processing");
|
|
873
885
|
const { eventSource, threadId = nanoid(), runId, actions } = await copilotRuntime.process({
|
|
874
886
|
serviceAdapter,
|
|
@@ -876,7 +888,9 @@ var CopilotResolver = class {
|
|
|
876
888
|
actions: data.frontend.actions,
|
|
877
889
|
threadId: data.threadId,
|
|
878
890
|
runId: data.runId,
|
|
879
|
-
publicApiKey: void 0
|
|
891
|
+
publicApiKey: void 0,
|
|
892
|
+
properties: ctx.properties || {},
|
|
893
|
+
outputMessagesPromise
|
|
880
894
|
});
|
|
881
895
|
logger2.debug("Event source created, creating response");
|
|
882
896
|
const response = {
|
|
@@ -907,6 +921,15 @@ var CopilotResolver = class {
|
|
|
907
921
|
interruptStreaming$.next({
|
|
908
922
|
reason: `Interrupted due to Guardrails validation failure. Reason: ${result.reason}`
|
|
909
923
|
});
|
|
924
|
+
outputMessages = [
|
|
925
|
+
plainToInstance(TextMessage, {
|
|
926
|
+
id: nanoid(),
|
|
927
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
928
|
+
content: result.reason,
|
|
929
|
+
role: MessageRole.assistant
|
|
930
|
+
})
|
|
931
|
+
];
|
|
932
|
+
resolveOutputMessagesPromise(outputMessages);
|
|
910
933
|
}
|
|
911
934
|
},
|
|
912
935
|
onError: (err) => {
|
|
@@ -919,6 +942,7 @@ var CopilotResolver = class {
|
|
|
919
942
|
interruptStreaming$.next({
|
|
920
943
|
reason: `Interrupted due to unknown error in guardrails validation`
|
|
921
944
|
});
|
|
945
|
+
rejectOutputMessagesPromise(err);
|
|
922
946
|
}
|
|
923
947
|
});
|
|
924
948
|
}
|
|
@@ -954,6 +978,7 @@ var CopilotResolver = class {
|
|
|
954
978
|
role: MessageRole.assistant,
|
|
955
979
|
content: new Repeater(async (pushTextChunk, stopStreamingText) => {
|
|
956
980
|
logger2.debug("Text message content repeater created");
|
|
981
|
+
const textChunks = [];
|
|
957
982
|
let textSubscription;
|
|
958
983
|
interruptStreaming$.pipe(shareReplay(), take(1), tap(({ reason, messageId: messageId2 }) => {
|
|
959
984
|
logger2.debug({
|
|
@@ -974,6 +999,7 @@ var CopilotResolver = class {
|
|
|
974
999
|
next: async (e) => {
|
|
975
1000
|
if (e.type == RuntimeEventTypes.TextMessageContent) {
|
|
976
1001
|
await pushTextChunk(e.content);
|
|
1002
|
+
textChunks.push(e.content);
|
|
977
1003
|
}
|
|
978
1004
|
},
|
|
979
1005
|
error: (err) => {
|
|
@@ -992,6 +1018,12 @@ var CopilotResolver = class {
|
|
|
992
1018
|
streamingTextStatus.next(new SuccessMessageStatus());
|
|
993
1019
|
stopStreamingText();
|
|
994
1020
|
textSubscription == null ? void 0 : textSubscription.unsubscribe();
|
|
1021
|
+
outputMessages.push(plainToInstance(TextMessage, {
|
|
1022
|
+
id: messageId,
|
|
1023
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
1024
|
+
content: textChunks.join(""),
|
|
1025
|
+
role: MessageRole.assistant
|
|
1026
|
+
}));
|
|
995
1027
|
}
|
|
996
1028
|
});
|
|
997
1029
|
})
|
|
@@ -1009,11 +1041,13 @@ var CopilotResolver = class {
|
|
|
1009
1041
|
scope: event.scope,
|
|
1010
1042
|
arguments: new Repeater(async (pushArgumentsChunk, stopStreamingArguments) => {
|
|
1011
1043
|
logger2.debug("Action execution argument stream created");
|
|
1044
|
+
const argumentChunks = [];
|
|
1012
1045
|
let actionExecutionArgumentSubscription;
|
|
1013
1046
|
actionExecutionArgumentSubscription = actionExecutionArgumentStream.subscribe({
|
|
1014
1047
|
next: async (e) => {
|
|
1015
1048
|
if (e.type == RuntimeEventTypes.ActionExecutionArgs) {
|
|
1016
1049
|
await pushArgumentsChunk(e.args);
|
|
1050
|
+
argumentChunks.push(e.args);
|
|
1017
1051
|
}
|
|
1018
1052
|
},
|
|
1019
1053
|
error: (err) => {
|
|
@@ -1031,6 +1065,13 @@ var CopilotResolver = class {
|
|
|
1031
1065
|
streamingArgumentsStatus.next(new SuccessMessageStatus());
|
|
1032
1066
|
stopStreamingArguments();
|
|
1033
1067
|
actionExecutionArgumentSubscription == null ? void 0 : actionExecutionArgumentSubscription.unsubscribe();
|
|
1068
|
+
outputMessages.push(plainToInstance(ActionExecutionMessage, {
|
|
1069
|
+
id: event.actionExecutionId,
|
|
1070
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
1071
|
+
name: event.actionName,
|
|
1072
|
+
scope: event.scope,
|
|
1073
|
+
arguments: argumentChunks.join("")
|
|
1074
|
+
}));
|
|
1034
1075
|
}
|
|
1035
1076
|
});
|
|
1036
1077
|
})
|
|
@@ -1048,6 +1089,13 @@ var CopilotResolver = class {
|
|
|
1048
1089
|
actionName: event.actionName,
|
|
1049
1090
|
result: event.result
|
|
1050
1091
|
});
|
|
1092
|
+
outputMessages.push(plainToInstance(ResultMessage, {
|
|
1093
|
+
id: nanoid(),
|
|
1094
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
1095
|
+
actionExecutionId: event.actionExecutionId,
|
|
1096
|
+
actionName: event.actionName,
|
|
1097
|
+
result: event.result
|
|
1098
|
+
}));
|
|
1051
1099
|
break;
|
|
1052
1100
|
}
|
|
1053
1101
|
},
|
|
@@ -1060,6 +1108,7 @@ var CopilotResolver = class {
|
|
|
1060
1108
|
}));
|
|
1061
1109
|
eventStreamSubscription == null ? void 0 : eventStreamSubscription.unsubscribe();
|
|
1062
1110
|
stopStreamingMessages();
|
|
1111
|
+
rejectOutputMessagesPromise(err);
|
|
1063
1112
|
},
|
|
1064
1113
|
complete: async () => {
|
|
1065
1114
|
var _a2;
|
|
@@ -1071,6 +1120,7 @@ var CopilotResolver = class {
|
|
|
1071
1120
|
responseStatus$.next(new SuccessResponseStatus());
|
|
1072
1121
|
eventStreamSubscription == null ? void 0 : eventStreamSubscription.unsubscribe();
|
|
1073
1122
|
stopStreamingMessages();
|
|
1123
|
+
resolveOutputMessagesPromise(outputMessages);
|
|
1074
1124
|
}
|
|
1075
1125
|
});
|
|
1076
1126
|
})
|
|
@@ -1210,4 +1260,4 @@ export {
|
|
|
1210
1260
|
getCommonConfig,
|
|
1211
1261
|
copilotRuntimeNodeHttpEndpoint
|
|
1212
1262
|
};
|
|
1213
|
-
//# sourceMappingURL=chunk-
|
|
1263
|
+
//# sourceMappingURL=chunk-6YGDE3YI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/integrations/node-http/index.ts","../src/lib/integrations/shared.ts","../src/graphql/resolvers/copilot.resolver.ts","../src/graphql/inputs/generate-copilot-response.input.ts","../src/graphql/inputs/message.input.ts","../src/graphql/types/enums.ts","../src/graphql/inputs/frontend.input.ts","../src/graphql/inputs/action.input.ts","../src/graphql/inputs/cloud.input.ts","../src/graphql/inputs/cloud-guardrails.input.ts","../src/graphql/types/copilot-response.type.ts","../src/graphql/types/message-status.type.ts","../src/service-adapters/events.ts","../src/lib/logger.ts"],"sourcesContent":["import { createYoga } from \"graphql-yoga\";\nimport { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\n\nexport function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServerOptions) {\n const commonConfig = getCommonConfig(options);\n const logger = commonConfig.logging;\n logger.debug(\"Creating Node HTTP endpoint\");\n\n const yoga = createYoga({\n ...commonConfig,\n graphqlEndpoint: options.endpoint,\n });\n\n return yoga;\n}\n","import { YogaInitialContext } from \"graphql-yoga\";\nimport { buildSchemaSync } from \"type-graphql\";\nimport { CopilotResolver } from \"../../graphql/resolvers/copilot.resolver\";\nimport { useDeferStream } from \"@graphql-yoga/plugin-defer-stream\";\nimport { CopilotRuntime } from \"../copilot-runtime\";\nimport { CopilotServiceAdapter } from \"../../service-adapters\";\nimport { CopilotCloudOptions } from \"../cloud\";\nimport { LogLevel, createLogger } from \"../../lib/logger\";\nimport { createYoga } from \"graphql-yoga\";\n\nconst logger = createLogger();\n\ntype AnyPrimitive = string | boolean | number | null;\nexport type CopilotRequestContextProperties = Record<\n string,\n AnyPrimitive | Record<string, AnyPrimitive>\n>;\n\nexport type GraphQLContext = YogaInitialContext & {\n _copilotkit: CreateCopilotRuntimeServerOptions;\n properties: CopilotRequestContextProperties;\n logger: typeof logger;\n};\n\nexport interface CreateCopilotRuntimeServerOptions {\n runtime: CopilotRuntime<any>;\n serviceAdapter: CopilotServiceAdapter;\n endpoint: string;\n baseUrl?: string;\n cloud?: CopilotCloudOptions;\n properties?: CopilotRequestContextProperties;\n logLevel?: LogLevel;\n}\n\nexport async function createContext(\n initialContext: YogaInitialContext,\n copilotKitContext: CreateCopilotRuntimeServerOptions,\n contextLogger: typeof logger,\n properties: CopilotRequestContextProperties = {},\n): Promise<Partial<GraphQLContext>> {\n logger.debug({ copilotKitContext }, \"Creating GraphQL context\");\n const ctx: GraphQLContext = {\n ...initialContext,\n _copilotkit: {\n ...copilotKitContext,\n },\n properties: { ...properties },\n logger: contextLogger,\n };\n return ctx;\n}\n\nexport function buildSchema(\n options: {\n emitSchemaFile?: string;\n } = {},\n) {\n logger.debug(\"Building GraphQL schema...\");\n const schema = buildSchemaSync({\n resolvers: [CopilotResolver],\n emitSchemaFile: options.emitSchemaFile,\n });\n logger.debug(\"GraphQL schema built successfully\");\n return schema;\n}\n\nexport type CommonConfig = {\n logging: typeof logger;\n schema: ReturnType<typeof buildSchema>;\n plugins: Parameters<typeof createYoga>[0][\"plugins\"];\n context: (ctx: YogaInitialContext) => Promise<Partial<GraphQLContext>>;\n};\n\nexport function getCommonConfig(options: CreateCopilotRuntimeServerOptions): CommonConfig {\n const logLevel = (process.env.LOG_LEVEL as LogLevel) || (options.logLevel as LogLevel) || \"error\";\n const logger = createLogger({ level: logLevel, component: \"getCommonConfig\" });\n logger.debug(\"Getting common config\");\n\n const contextLogger = createLogger({ level: logLevel });\n\n return {\n logging: createLogger({ component: \"Yoga GraphQL\", level: logLevel }),\n schema: buildSchema(),\n plugins: [useDeferStream()],\n context: (ctx: YogaInitialContext): Promise<Partial<GraphQLContext>> =>\n createContext(ctx, options, contextLogger, options.properties),\n };\n}\n","import { Arg, Ctx, Mutation, Query, Resolver } from \"type-graphql\";\nimport {\n ReplaySubject,\n Subject,\n Subscription,\n finalize,\n firstValueFrom,\n shareReplay,\n skipWhile,\n take,\n takeWhile,\n tap,\n} from \"rxjs\";\nimport { GenerateCopilotResponseInput } from \"../inputs/generate-copilot-response.input\";\nimport { CopilotResponse } from \"../types/copilot-response.type\";\nimport { MessageRole } from \"../types/enums\";\nimport { Repeater } from \"graphql-yoga\";\nimport type { CopilotRequestContextProperties, GraphQLContext } from \"../../lib/integrations\";\nimport { nanoid } from \"nanoid\";\nimport { RuntimeEvent, RuntimeEventTypes } from \"../../service-adapters/events\";\nimport {\n FailedMessageStatus,\n MessageStatusUnion,\n SuccessMessageStatus,\n} from \"../types/message-status.type\";\nimport { ResponseStatusUnion, SuccessResponseStatus } from \"../types/response-status.type\";\nimport { GraphQLJSONObject } from \"graphql-scalars\";\nimport { plainToInstance } from \"class-transformer\";\nimport { GuardrailsResult, GuardrailsResultStatus } from \"../types/guardrails-result.type\";\nimport { GraphQLError } from \"graphql\";\nimport {\n GuardrailsValidationFailureResponse,\n MessageStreamInterruptedResponse,\n UnknownErrorResponse,\n} from \"../../utils\";\nimport { ActionExecutionMessage, Message, ResultMessage, TextMessage } from \"../types/converted\";\n\nconst invokeGuardrails = async ({\n baseUrl,\n copilotCloudPublicApiKey,\n data,\n onResult,\n onError,\n}: {\n baseUrl: string;\n copilotCloudPublicApiKey: string;\n data: GenerateCopilotResponseInput;\n onResult: (result: GuardrailsResult) => void;\n onError: (err: Error) => void;\n}) => {\n if (\n data.messages.length &&\n data.messages[data.messages.length - 1].textMessage?.role === MessageRole.user\n ) {\n const messages = data.messages\n .filter(\n (m) =>\n m.textMessage !== undefined &&\n (m.textMessage.role === MessageRole.user || m.textMessage.role === MessageRole.assistant),\n )\n .map((m) => ({\n role: m.textMessage!.role,\n content: m.textMessage.content,\n }));\n\n const lastMessage = messages[messages.length - 1];\n const restOfMessages = messages.slice(0, -1);\n\n const body = {\n input: lastMessage.content,\n validTopics: data.cloud.guardrails.inputValidationRules.allowList,\n invalidTopics: data.cloud.guardrails.inputValidationRules.denyList,\n messages: restOfMessages,\n };\n\n const guardrailsResult = await fetch(`${baseUrl}/guardrails/validate`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotCloud-Public-API-Key\": copilotCloudPublicApiKey,\n },\n body: JSON.stringify(body),\n });\n\n if (guardrailsResult.ok) {\n const resultJson: GuardrailsResult = await guardrailsResult.json();\n onResult(resultJson);\n } else {\n onError(await guardrailsResult.json());\n }\n }\n};\n\n@Resolver(() => CopilotResponse)\nexport class CopilotResolver {\n @Query(() => String)\n async hello() {\n return \"Hello World\";\n }\n\n @Mutation(() => CopilotResponse)\n async generateCopilotResponse(\n @Ctx() ctx: GraphQLContext,\n @Arg(\"data\") data: GenerateCopilotResponseInput,\n @Arg(\"properties\", () => GraphQLJSONObject, { nullable: true })\n properties?: CopilotRequestContextProperties,\n ) {\n let logger = ctx.logger.child({ component: \"CopilotResolver.generateCopilotResponse\" });\n logger.debug({ data }, \"Generating Copilot response\");\n\n const copilotRuntime = ctx._copilotkit.runtime;\n const serviceAdapter = ctx._copilotkit.serviceAdapter;\n\n if (properties) {\n logger.debug(\"Properties provided, merging with context properties\");\n ctx.properties = { ...ctx.properties, ...properties };\n }\n\n let copilotCloudPublicApiKey: string | null = null;\n let copilotCloudBaseUrl: string;\n\n if (data.cloud) {\n logger = logger.child({ cloud: true });\n logger.debug(\"Cloud configuration provided, checking for public API key in headers\");\n const key = ctx.request.headers.get(\"x-copilotcloud-public-api-key\");\n if (key) {\n logger.debug(\"Public API key found in headers\");\n copilotCloudPublicApiKey = key;\n } else {\n logger.error(\"Public API key not found in headers\");\n throw new GraphQLError(\"X-CopilotCloud-Public-API-Key header is required\");\n }\n\n if (process.env.COPILOT_CLOUD_BASE_URL) {\n copilotCloudBaseUrl = process.env.COPILOT_CLOUD_BASE_URL;\n } else if (ctx._copilotkit.baseUrl) {\n copilotCloudBaseUrl = ctx._copilotkit.baseUrl;\n } else {\n copilotCloudBaseUrl = \"https://api.cloud.copilotkit.ai\";\n }\n\n logger = logger.child({ copilotCloudBaseUrl });\n }\n logger.debug(\"Setting up subjects\");\n const responseStatus$ = new ReplaySubject<typeof ResponseStatusUnion>();\n const interruptStreaming$ = new ReplaySubject<{ reason: string; messageId?: string }>();\n const guardrailsResult$ = new ReplaySubject<GuardrailsResult>();\n\n let outputMessages: Message[] = [];\n let resolveOutputMessagesPromise: (messages: Message[]) => void;\n let rejectOutputMessagesPromise: (err: Error) => void;\n\n const outputMessagesPromise = new Promise<Message[]>((resolve, reject) => {\n resolveOutputMessagesPromise = resolve;\n rejectOutputMessagesPromise = reject;\n });\n\n logger.debug(\"Processing\");\n const {\n eventSource,\n threadId = nanoid(),\n runId,\n actions,\n } = await copilotRuntime.process({\n serviceAdapter,\n messages: data.messages,\n actions: data.frontend.actions,\n threadId: data.threadId,\n runId: data.runId,\n publicApiKey: undefined,\n properties: ctx.properties || {},\n outputMessagesPromise,\n });\n\n logger.debug(\"Event source created, creating response\");\n\n const response = {\n threadId,\n runId,\n status: firstValueFrom(responseStatus$),\n messages: new Repeater(async (pushMessage, stopStreamingMessages) => {\n logger.debug(\"Messages repeater created\");\n\n if (data.cloud?.guardrails) {\n logger = logger.child({ guardrails: true });\n logger.debug(\"Guardrails is enabled, validating input\");\n\n invokeGuardrails({\n baseUrl: copilotCloudBaseUrl,\n copilotCloudPublicApiKey,\n data,\n onResult: (result) => {\n logger.debug({ status: result.status }, \"Guardrails validation done\");\n guardrailsResult$.next(result);\n\n // Guardrails validation failed\n if (result.status === \"denied\") {\n // send the reason to the client and interrupt streaming\n responseStatus$.next(\n new GuardrailsValidationFailureResponse({ guardrailsReason: result.reason }),\n );\n interruptStreaming$.next({\n reason: `Interrupted due to Guardrails validation failure. Reason: ${result.reason}`,\n });\n\n // resolve messages promise to the middleware\n outputMessages = [\n plainToInstance(TextMessage, {\n id: nanoid(),\n createdAt: new Date(),\n content: result.reason,\n role: MessageRole.assistant,\n }),\n ];\n resolveOutputMessagesPromise(outputMessages);\n }\n },\n onError: (err) => {\n logger.error({ err }, \"Error in guardrails validation\");\n responseStatus$.next(\n new UnknownErrorResponse({\n description: `An unknown error has occurred in the guardrails validation`,\n }),\n );\n interruptStreaming$.next({\n reason: `Interrupted due to unknown error in guardrails validation`,\n });\n\n // reject the middleware promise\n rejectOutputMessagesPromise(err);\n },\n });\n }\n\n let eventStreamSubscription: Subscription;\n\n // run and process the event stream\n const eventStream = eventSource\n .process({\n serversideActions: actions,\n guardrailsResult$: data.cloud?.guardrails ? guardrailsResult$ : null,\n })\n .pipe(\n // shareReplay() ensures that later subscribers will see the whole stream instead of\n // just the events that were emitted after the subscriber was added.\n shareReplay(),\n finalize(() => {\n logger.debug(\"Event stream finalized\");\n }),\n );\n\n logger.debug(\"Event stream created, subscribing to event stream\");\n\n eventStreamSubscription = eventStream.subscribe({\n next: async (event) => {\n switch (event.type) {\n ////////////////////////////////\n // TextMessageStart\n ////////////////////////////////\n case RuntimeEventTypes.TextMessageStart:\n // create a sub stream that contains the message content\n const textMessageContentStream = eventStream.pipe(\n // skip until this message start event\n skipWhile((e) => e !== event),\n // take until the message end event\n takeWhile((e) => e.type != RuntimeEventTypes.TextMessageEnd),\n );\n\n // signal when we are done streaming\n const streamingTextStatus = new Subject<typeof MessageStatusUnion>();\n\n const messageId = nanoid();\n\n // push the new message\n pushMessage({\n id: messageId,\n status: firstValueFrom(streamingTextStatus),\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: new Repeater(async (pushTextChunk, stopStreamingText) => {\n logger.debug(\"Text message content repeater created\");\n\n const textChunks: string[] = [];\n let textSubscription: Subscription;\n\n interruptStreaming$\n .pipe(\n shareReplay(),\n take(1),\n tap(({ reason, messageId }) => {\n logger.debug({ reason, messageId }, \"Text streaming interrupted\");\n\n streamingTextStatus.next(\n plainToInstance(FailedMessageStatus, { reason }),\n );\n\n responseStatus$.next(new MessageStreamInterruptedResponse({ messageId }));\n stopStreamingText();\n textSubscription?.unsubscribe();\n }),\n )\n .subscribe();\n\n logger.debug(\"Subscribing to text message content stream\");\n\n textSubscription = textMessageContentStream.subscribe({\n next: async (e: RuntimeEvent) => {\n if (e.type == RuntimeEventTypes.TextMessageContent) {\n await pushTextChunk(e.content);\n textChunks.push(e.content);\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in text message content stream\");\n interruptStreaming$.next({\n reason: \"Error streaming message content\",\n messageId,\n });\n stopStreamingText();\n textSubscription?.unsubscribe();\n },\n complete: () => {\n logger.debug(\"Text message content stream completed\");\n streamingTextStatus.next(new SuccessMessageStatus());\n stopStreamingText();\n textSubscription?.unsubscribe();\n\n outputMessages.push(\n plainToInstance(TextMessage, {\n id: messageId,\n createdAt: new Date(),\n content: textChunks.join(\"\"),\n role: MessageRole.assistant,\n }),\n );\n },\n });\n }),\n });\n break;\n ////////////////////////////////\n // ActionExecutionStart\n ////////////////////////////////\n case RuntimeEventTypes.ActionExecutionStart:\n logger.debug(\"Action execution start event received\");\n const actionExecutionArgumentStream = eventStream.pipe(\n skipWhile((e) => e !== event),\n takeWhile((e) => e.type != RuntimeEventTypes.ActionExecutionEnd),\n );\n const streamingArgumentsStatus = new Subject<typeof MessageStatusUnion>();\n pushMessage({\n id: event.actionExecutionId,\n status: firstValueFrom(streamingArgumentsStatus),\n createdAt: new Date(),\n name: event.actionName,\n scope: event.scope!,\n arguments: new Repeater(async (pushArgumentsChunk, stopStreamingArguments) => {\n logger.debug(\"Action execution argument stream created\");\n\n const argumentChunks: string[] = [];\n let actionExecutionArgumentSubscription: Subscription;\n\n actionExecutionArgumentSubscription = actionExecutionArgumentStream.subscribe({\n next: async (e: RuntimeEvent) => {\n if (e.type == RuntimeEventTypes.ActionExecutionArgs) {\n await pushArgumentsChunk(e.args);\n argumentChunks.push(e.args);\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in action execution argument stream\");\n streamingArgumentsStatus.next(\n plainToInstance(FailedMessageStatus, {\n reason:\n \"An unknown error has occurred in the action execution argument stream\",\n }),\n );\n stopStreamingArguments();\n actionExecutionArgumentSubscription?.unsubscribe();\n },\n complete: () => {\n logger.debug(\"Action execution argument stream completed\");\n streamingArgumentsStatus.next(new SuccessMessageStatus());\n stopStreamingArguments();\n actionExecutionArgumentSubscription?.unsubscribe();\n\n outputMessages.push(\n plainToInstance(ActionExecutionMessage, {\n id: event.actionExecutionId,\n createdAt: new Date(),\n name: event.actionName,\n scope: event.scope!,\n arguments: argumentChunks.join(\"\"),\n }),\n );\n },\n });\n }),\n });\n break;\n ////////////////////////////////\n // ActionExecutionResult\n ////////////////////////////////\n case RuntimeEventTypes.ActionExecutionResult:\n logger.debug({ result: event.result }, \"Action execution result event received\");\n pushMessage({\n id: nanoid(),\n status: new SuccessMessageStatus(),\n createdAt: new Date(),\n actionExecutionId: event.actionExecutionId,\n actionName: event.actionName,\n result: event.result,\n });\n\n outputMessages.push(\n plainToInstance(ResultMessage, {\n id: nanoid(),\n createdAt: new Date(),\n actionExecutionId: event.actionExecutionId,\n actionName: event.actionName,\n result: event.result,\n }),\n );\n break;\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in event stream\");\n responseStatus$.next(\n new UnknownErrorResponse({\n description: `An unknown error has occurred in the event stream`,\n }),\n );\n eventStreamSubscription?.unsubscribe();\n stopStreamingMessages();\n\n rejectOutputMessagesPromise(err);\n },\n complete: async () => {\n logger.debug(\"Event stream completed\");\n if (data.cloud?.guardrails) {\n logger.debug(\"Guardrails is enabled, waiting for guardrails result\");\n await firstValueFrom(guardrailsResult$);\n }\n responseStatus$.next(new SuccessResponseStatus());\n eventStreamSubscription?.unsubscribe();\n stopStreamingMessages();\n\n resolveOutputMessagesPromise(outputMessages);\n },\n });\n }),\n };\n\n return response;\n }\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { MessageInput } from \"./message.input\";\nimport { FrontendInput } from \"./frontend.input\";\nimport { CloudInput } from \"./cloud.input\";\n\n@InputType()\nexport class GenerateCopilotResponseInput {\n @Field(() => String, { nullable: true })\n threadId?: string;\n\n @Field(() => String, { nullable: true })\n runId?: string;\n\n @Field(() => [MessageInput])\n messages: MessageInput[];\n\n @Field(() => FrontendInput)\n frontend: FrontendInput;\n\n @Field(() => CloudInput, { nullable: true })\n cloud?: CloudInput;\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { MessageRole, ActionExecutionScope } from \"../types/enums\";\nimport { BaseMessage } from \"../types/base\";\n\n// GraphQL does not support union types in inputs, so we need to use\n// optional fields for the different subtypes.\n@InputType()\nexport class MessageInput extends BaseMessage {\n @Field(() => TextMessageInput, { nullable: true })\n textMessage?: TextMessageInput;\n\n @Field(() => ActionExecutionMessageInput, { nullable: true })\n actionExecutionMessage?: ActionExecutionMessageInput;\n\n @Field(() => ResultMessageInput, { nullable: true })\n resultMessage?: ResultMessageInput;\n}\n\n@InputType()\nexport class TextMessageInput {\n @Field(() => String)\n content: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n}\n\n@InputType()\nexport class ActionExecutionMessageInput {\n @Field(() => String)\n name: string;\n\n @Field(() => String)\n arguments: string;\n\n @Field(() => ActionExecutionScope)\n scope: ActionExecutionScope;\n}\n\n@InputType()\nexport class ResultMessageInput {\n @Field(() => String)\n actionExecutionId: string;\n\n @Field(() => String)\n actionName: string;\n\n @Field(() => String)\n result: string;\n}\n","import { registerEnumType } from \"type-graphql\";\n\nexport enum MessageRole {\n user = \"user\",\n assistant = \"assistant\",\n system = \"system\",\n}\n\nexport enum ActionExecutionScope {\n server = \"server\",\n client = \"client\",\n}\n\nregisterEnumType(MessageRole, {\n name: \"MessageRole\",\n description: \"The role of the message\",\n});\n\nregisterEnumType(ActionExecutionScope, {\n name: \"ActionExecutionScope\",\n description: \"The scope of the action\",\n});\n","import { Field, InputType } from \"type-graphql\";\nimport { ActionInput } from \"./action.input\";\n\n@InputType()\nexport class FrontendInput {\n @Field(() => String, { nullable: true })\n toDeprecate_fullContext?: string;\n\n @Field(() => [ActionInput])\n actions: ActionInput[];\n}\n","import { Field, InputType } from \"type-graphql\";\n\n@InputType()\nexport class ActionInput {\n @Field(() => String)\n name: string;\n\n @Field(() => String)\n description: string;\n\n @Field(() => String)\n jsonSchema: string;\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { GuardrailsInput } from \"./cloud-guardrails.input\";\n\n@InputType()\nexport class CloudInput {\n @Field(() => GuardrailsInput, { nullable: true })\n guardrails?: GuardrailsInput;\n}\n","import { Field, InputType } from \"type-graphql\";\n\n@InputType()\nexport class GuardrailsRuleInput {\n @Field(() => [String], { nullable: true })\n allowList?: string[] = [];\n\n @Field(() => [String], { nullable: true })\n denyList?: string[] = [];\n}\n\n@InputType()\nexport class GuardrailsInput {\n @Field(() => GuardrailsRuleInput, { nullable: true })\n inputValidationRules: GuardrailsRuleInput = { allowList: [], denyList: [] };\n}\n","import { Field, InterfaceType, ObjectType } from \"type-graphql\";\nimport { MessageRole, ActionExecutionScope } from \"./enums\";\nimport { MessageStatusUnion } from \"./message-status.type\";\nimport { ResponseStatusUnion } from \"./response-status.type\";\n\n@InterfaceType({\n resolveType(value) {\n if (value.hasOwnProperty(\"content\")) {\n return TextMessageOutput;\n } else if (value.hasOwnProperty(\"name\")) {\n return ActionExecutionMessageOutput;\n } else if (value.hasOwnProperty(\"result\")) {\n return ResultMessageOutput;\n }\n return undefined;\n },\n})\nabstract class BaseMessageOutput {\n @Field(() => String)\n id: string;\n\n @Field(() => Date)\n createdAt: Date;\n\n @Field(() => MessageStatusUnion)\n status: typeof MessageStatusUnion;\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class TextMessageOutput {\n @Field(() => MessageRole)\n role: MessageRole;\n\n @Field(() => [String])\n content: string[];\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class ActionExecutionMessageOutput {\n @Field(() => String)\n name: string;\n\n @Field(() => ActionExecutionScope)\n scope: ActionExecutionScope;\n\n @Field(() => [String])\n arguments: string[];\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class ResultMessageOutput {\n @Field(() => String)\n actionExecutionId: string;\n\n @Field(() => String)\n actionName: string;\n\n @Field(() => String)\n result: string;\n}\n\n@ObjectType()\nexport class CopilotResponse {\n @Field(() => String)\n threadId!: string;\n\n @Field(() => ResponseStatusUnion)\n status: typeof ResponseStatusUnion;\n\n @Field({ nullable: true })\n runId?: string;\n\n @Field(() => [BaseMessageOutput])\n messages: (typeof BaseMessageOutput)[];\n}\n","import { Field, ObjectType, createUnionType, registerEnumType } from \"type-graphql\";\n\nexport enum MessageStatusCode {\n Pending = \"pending\",\n Success = \"success\",\n Failed = \"failed\",\n}\n\nregisterEnumType(MessageStatusCode, {\n name: \"MessageStatusCode\",\n});\n\n@ObjectType()\nclass BaseMessageStatus {\n @Field(() => MessageStatusCode)\n code: MessageStatusCode;\n}\n\n@ObjectType()\nexport class PendingMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Pending;\n}\n\n@ObjectType()\nexport class SuccessMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Success;\n}\n\n@ObjectType()\nexport class FailedMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Failed;\n\n @Field(() => String)\n reason: string;\n}\n\nexport const MessageStatusUnion = createUnionType({\n name: \"MessageStatus\",\n types: () => [PendingMessageStatus, SuccessMessageStatus, FailedMessageStatus] as const,\n});\n","import { Action } from \"@copilotkit/shared\";\nimport { of, concat, map, scan, concatMap, ReplaySubject, Subject, firstValueFrom } from \"rxjs\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\n\nexport enum RuntimeEventTypes {\n TextMessageStart = \"TextMessageStart\",\n TextMessageContent = \"TextMessageContent\",\n TextMessageEnd = \"TextMessageEnd\",\n ActionExecutionStart = \"ActionExecutionStart\",\n ActionExecutionArgs = \"ActionExecutionArgs\",\n ActionExecutionEnd = \"ActionExecutionEnd\",\n ActionExecutionResult = \"ActionExecutionResult\",\n}\n\ntype FunctionCallScope = \"client\" | \"server\";\n\nexport type RuntimeEvent =\n | { type: RuntimeEventTypes.TextMessageStart; messageId: string }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n scope?: FunctionCallScope;\n }\n | { type: RuntimeEventTypes.ActionExecutionArgs; args: string }\n | { type: RuntimeEventTypes.ActionExecutionEnd }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n };\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n constructor() {\n super();\n }\n\n sendTextMessageStart(messageId: string) {\n this.next({ type: RuntimeEventTypes.TextMessageStart, messageId });\n }\n\n sendTextMessageContent(content: string) {\n this.next({ type: RuntimeEventTypes.TextMessageContent, content });\n }\n\n sendTextMessageEnd() {\n this.next({ type: RuntimeEventTypes.TextMessageEnd });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart(messageId);\n this.sendTextMessageContent(content);\n this.sendTextMessageEnd();\n }\n\n sendActionExecutionStart(actionExecutionId: string, actionName: string) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n });\n }\n\n sendActionExecutionArgs(args: string) {\n this.next({ type: RuntimeEventTypes.ActionExecutionArgs, args });\n }\n\n sendActionExecutionEnd() {\n this.next({ type: RuntimeEventTypes.ActionExecutionEnd });\n }\n\n sendActionExecution(actionExecutionId: string, toolName: string, args: string) {\n this.sendActionExecutionStart(actionExecutionId, toolName);\n this.sendActionExecutionArgs(args);\n this.sendActionExecutionEnd();\n }\n\n sendActionExecutionResult(actionExecutionId: string, actionName: string, result: string) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n\n process({\n serversideActions,\n guardrailsResult$,\n }: {\n serversideActions: Action<any>[];\n guardrailsResult$?: Subject<GuardrailsResult>;\n }) {\n this.callback(this.eventStream$).catch((error) => {\n console.error(\"Error in event source callback\", error);\n });\n return this.eventStream$.pipe(\n // mark tools for server side execution\n map((event) => {\n if (event.type === RuntimeEventTypes.ActionExecutionStart) {\n event.scope = serversideActions.find((action) => action.name === event.actionName)\n ? \"server\"\n : \"client\";\n }\n return event;\n }),\n // track state\n scan(\n (acc, event) => {\n if (event.type === RuntimeEventTypes.ActionExecutionStart) {\n acc.callActionServerSide = event.scope === \"server\";\n acc.args = \"\";\n acc.actionExecutionId = event.actionExecutionId;\n if (acc.callActionServerSide) {\n acc.action = serversideActions.find((action) => action.name === event.actionName);\n }\n } else if (event.type === RuntimeEventTypes.ActionExecutionArgs) {\n acc.args += event.args;\n }\n\n acc.event = event;\n return acc;\n },\n {\n event: null,\n callActionServerSide: false,\n args: \"\",\n actionExecutionId: null,\n action: null,\n } as RuntimeEventWithState,\n ),\n concatMap((eventWithState) => {\n if (\n eventWithState.event!.type === RuntimeEventTypes.ActionExecutionEnd &&\n eventWithState.callActionServerSide\n ) {\n const toolCallEventStream$ = new RuntimeEventSubject();\n executeAction(\n toolCallEventStream$,\n guardrailsResult$ ? guardrailsResult$ : null,\n eventWithState.action!,\n eventWithState.args,\n eventWithState.actionExecutionId,\n ).catch((error) => {\n console.error(error);\n });\n return concat(of(eventWithState.event!), toolCallEventStream$);\n } else {\n return of(eventWithState.event!);\n }\n }),\n );\n }\n}\n\nasync function executeAction(\n eventStream$: RuntimeEventSubject,\n guardrailsResult$: Subject<GuardrailsResult> | null,\n action: Action<any>,\n actionArguments: string,\n actionExecutionId: string,\n) {\n if (guardrailsResult$) {\n const { status } = await firstValueFrom(guardrailsResult$);\n\n if (status === \"denied\") {\n eventStream$.complete();\n return;\n }\n }\n\n // Prepare arguments for function calling\n let args: Record<string, any>[] = [];\n if (actionArguments) {\n args = JSON.parse(actionArguments);\n }\n\n // call the function\n const result = await action.handler(args);\n\n await streamLangChainResponse({\n result,\n eventStream$,\n actionExecution: {\n name: action.name,\n id: actionExecutionId,\n },\n });\n}\n","import createPinoLogger from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport type CopilotRuntimeLogger = ReturnType<typeof createLogger>;\n\nexport function createLogger(options?: { level?: LogLevel; component?: string }) {\n const { level, component } = options || {};\n const stream = pretty({ colorize: true });\n\n const logger = createPinoLogger(\n {\n level: process.env.LOG_LEVEL || level || \"error\",\n redact: {\n paths: [\"pid\", \"hostname\"],\n remove: true,\n },\n },\n stream,\n );\n\n if (component) {\n return logger.child({ component });\n } else {\n return logger;\n }\n}\n"],"mappings":"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","names":["createYoga","buildSchemaSync","Arg","Ctx","Mutation","Query","Resolver","ReplaySubject","Subject","finalize","firstValueFrom","shareReplay","skipWhile","take","takeWhile","tap","Field","InputType","Field","InputType","registerEnumType","MessageRole","ActionExecutionScope","name","description","MessageInput","BaseMessage","textMessage","actionExecutionMessage","resultMessage","Field","TextMessageInput","nullable","ActionExecutionMessageInput","ResultMessageInput","InputType","content","role","String","MessageRole","name","arguments","scope","ActionExecutionScope","actionExecutionId","actionName","result","Field","InputType","Field","InputType","ActionInput","name","description","jsonSchema","Field","String","InputType","FrontendInput","toDeprecate_fullContext","actions","Field","String","nullable","ActionInput","InputType","Field","InputType","Field","InputType","GuardrailsRuleInput","allowList","denyList","Field","String","nullable","InputType","GuardrailsInput","inputValidationRules","CloudInput","guardrails","Field","GuardrailsInput","nullable","InputType","GenerateCopilotResponseInput","threadId","runId","messages","frontend","cloud","Field","String","nullable","MessageInput","FrontendInput","CloudInput","InputType","Field","InterfaceType","ObjectType","Field","ObjectType","createUnionType","registerEnumType","MessageStatusCode","registerEnumType","name","BaseMessageStatus","code","Field","ObjectType","PendingMessageStatus","SuccessMessageStatus","FailedMessageStatus","reason","String","MessageStatusUnion","createUnionType","types","BaseMessageOutput","id","createdAt","status","Field","String","Date","MessageStatusUnion","InterfaceType","resolveType","value","hasOwnProperty","TextMessageOutput","ActionExecutionMessageOutput","ResultMessageOutput","undefined","role","content","MessageRole","ObjectType","implements","name","scope","arguments","ActionExecutionScope","actionExecutionId","actionName","result","CopilotResponse","threadId","runId","messages","ResponseStatusUnion","nullable","Repeater","nanoid","of","concat","map","scan","concatMap","ReplaySubject","firstValueFrom","RuntimeEventTypes","RuntimeEventSubject","ReplaySubject","constructor","sendTextMessageStart","messageId","next","type","sendTextMessageContent","content","sendTextMessageEnd","sendTextMessage","sendActionExecutionStart","actionExecutionId","actionName","sendActionExecutionArgs","args","sendActionExecutionEnd","sendActionExecution","toolName","sendActionExecutionResult","result","RuntimeEventSource","eventStream$","callback","stream","process","serversideActions","guardrailsResult$","catch","error","console","pipe","map","event","scope","find","action","name","scan","acc","callActionServerSide","concatMap","eventWithState","toolCallEventStream$","executeAction","concat","of","actionArguments","status","firstValueFrom","complete","JSON","parse","handler","streamLangChainResponse","actionExecution","id","GraphQLJSONObject","plainToInstance","GraphQLError","invokeGuardrails","baseUrl","copilotCloudPublicApiKey","data","onResult","onError","messages","length","textMessage","role","MessageRole","user","filter","m","undefined","assistant","map","content","lastMessage","restOfMessages","slice","body","input","validTopics","cloud","guardrails","inputValidationRules","allowList","invalidTopics","denyList","guardrailsResult","fetch","method","headers","JSON","stringify","ok","resultJson","json","CopilotResolver","hello","generateCopilotResponse","ctx","properties","logger","child","component","debug","copilotRuntime","_copilotkit","runtime","serviceAdapter","copilotCloudBaseUrl","key","request","get","error","GraphQLError","process","env","COPILOT_CLOUD_BASE_URL","responseStatus$","ReplaySubject","interruptStreaming$","guardrailsResult$","outputMessages","resolveOutputMessagesPromise","rejectOutputMessagesPromise","outputMessagesPromise","Promise","resolve","reject","eventSource","threadId","nanoid","runId","actions","frontend","publicApiKey","response","status","firstValueFrom","Repeater","pushMessage","stopStreamingMessages","result","next","GuardrailsValidationFailureResponse","guardrailsReason","reason","plainToInstance","TextMessage","id","createdAt","Date","err","UnknownErrorResponse","description","eventStreamSubscription","eventStream","serversideActions","pipe","shareReplay","finalize","subscribe","event","type","RuntimeEventTypes","TextMessageStart","textMessageContentStream","skipWhile","e","takeWhile","TextMessageEnd","streamingTextStatus","Subject","messageId","pushTextChunk","stopStreamingText","textChunks","textSubscription","take","tap","FailedMessageStatus","MessageStreamInterruptedResponse","unsubscribe","TextMessageContent","push","complete","SuccessMessageStatus","join","ActionExecutionStart","actionExecutionArgumentStream","ActionExecutionEnd","streamingArgumentsStatus","actionExecutionId","name","actionName","scope","arguments","pushArgumentsChunk","stopStreamingArguments","argumentChunks","actionExecutionArgumentSubscription","ActionExecutionArgs","args","ActionExecutionMessage","ActionExecutionResult","ResultMessage","SuccessResponseStatus","Query","String","Mutation","CopilotResponse","Ctx","Arg","GraphQLJSONObject","nullable","Resolver","useDeferStream","createPinoLogger","pretty","createLogger","options","level","component","stream","pretty","colorize","logger","createPinoLogger","process","env","LOG_LEVEL","redact","paths","remove","child","logger","createLogger","createContext","initialContext","copilotKitContext","contextLogger","properties","debug","ctx","_copilotkit","buildSchema","options","schema","buildSchemaSync","resolvers","CopilotResolver","emitSchemaFile","getCommonConfig","logLevel","process","env","LOG_LEVEL","level","component","logging","plugins","useDeferStream","context","copilotRuntimeNodeHttpEndpoint","options","commonConfig","getCommonConfig","logger","logging","debug","yoga","createYoga","graphqlEndpoint","endpoint"]}
|
|
@@ -162,6 +162,7 @@ function convertSystemMessageToAssistantAPI(message) {
|
|
|
162
162
|
__name(convertSystemMessageToAssistantAPI, "convertSystemMessageToAssistantAPI");
|
|
163
163
|
|
|
164
164
|
// src/service-adapters/openai/openai-adapter.ts
|
|
165
|
+
import { nanoid } from "nanoid";
|
|
165
166
|
var DEFAULT_MODEL = "gpt-4o";
|
|
166
167
|
var OpenAIAdapter = class {
|
|
167
168
|
model = DEFAULT_MODEL;
|
|
@@ -175,7 +176,8 @@ var OpenAIAdapter = class {
|
|
|
175
176
|
this.model = params.model;
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
|
-
async process(
|
|
179
|
+
async process(request) {
|
|
180
|
+
const { threadId, model = this.model, messages, actions, eventSource } = request;
|
|
179
181
|
const tools = actions.map(convertActionInputToOpenAITool);
|
|
180
182
|
let openaiMessages = messages.map(convertMessageToOpenAIMessage);
|
|
181
183
|
openaiMessages = limitMessagesToTokenCount(openaiMessages, tools, model);
|
|
@@ -222,7 +224,9 @@ var OpenAIAdapter = class {
|
|
|
222
224
|
}
|
|
223
225
|
eventStream$.complete();
|
|
224
226
|
});
|
|
225
|
-
return {
|
|
227
|
+
return {
|
|
228
|
+
threadId: threadId || nanoid()
|
|
229
|
+
};
|
|
226
230
|
}
|
|
227
231
|
};
|
|
228
232
|
__name(OpenAIAdapter, "OpenAIAdapter");
|
|
@@ -240,8 +244,9 @@ var OpenAIAssistantAdapter = class {
|
|
|
240
244
|
this.fileSearchEnabled = params.fileSearchEnabled === false || true;
|
|
241
245
|
this.assistantId = params.assistantId;
|
|
242
246
|
}
|
|
243
|
-
async process(
|
|
244
|
-
|
|
247
|
+
async process(request) {
|
|
248
|
+
const { messages, actions, eventSource, runId } = request;
|
|
249
|
+
let threadId = request.threadId || (await this.openai.beta.threads.create()).id;
|
|
245
250
|
const lastMessage = messages.at(-1);
|
|
246
251
|
let nextRunId = void 0;
|
|
247
252
|
if (lastMessage instanceof ResultMessage && runId) {
|
|
@@ -466,7 +471,7 @@ function tryParseJson(str) {
|
|
|
466
471
|
__name(tryParseJson, "tryParseJson");
|
|
467
472
|
|
|
468
473
|
// src/service-adapters/google/google-genai-adapter.ts
|
|
469
|
-
import { nanoid } from "nanoid";
|
|
474
|
+
import { nanoid as nanoid2 } from "nanoid";
|
|
470
475
|
var GoogleGenerativeAIAdapter = class {
|
|
471
476
|
model;
|
|
472
477
|
constructor(options) {
|
|
@@ -533,7 +538,7 @@ var GoogleGenerativeAIAdapter = class {
|
|
|
533
538
|
}
|
|
534
539
|
if (!isTextMessage) {
|
|
535
540
|
isTextMessage = true;
|
|
536
|
-
eventStream$.sendTextMessageStart(
|
|
541
|
+
eventStream$.sendTextMessageStart(nanoid2());
|
|
537
542
|
}
|
|
538
543
|
eventStream$.sendTextMessageContent(chunkText);
|
|
539
544
|
}
|
|
@@ -543,12 +548,14 @@ var GoogleGenerativeAIAdapter = class {
|
|
|
543
548
|
let calls = (await result.response).functionCalls();
|
|
544
549
|
if (calls) {
|
|
545
550
|
for (let call of calls) {
|
|
546
|
-
eventStream$.sendActionExecution(
|
|
551
|
+
eventStream$.sendActionExecution(nanoid2(), call.name, JSON.stringify(replaceNewlinesInObject(call.args)));
|
|
547
552
|
}
|
|
548
553
|
}
|
|
549
554
|
eventStream$.complete();
|
|
550
555
|
});
|
|
551
|
-
return {
|
|
556
|
+
return {
|
|
557
|
+
threadId: request.threadId || nanoid2()
|
|
558
|
+
};
|
|
552
559
|
}
|
|
553
560
|
};
|
|
554
561
|
__name(GoogleGenerativeAIAdapter, "GoogleGenerativeAIAdapter");
|
|
@@ -571,6 +578,7 @@ function replaceNewlinesInObject(obj) {
|
|
|
571
578
|
__name(replaceNewlinesInObject, "replaceNewlinesInObject");
|
|
572
579
|
|
|
573
580
|
// src/service-adapters/langchain/langchain-adapter.ts
|
|
581
|
+
import { nanoid as nanoid3 } from "nanoid";
|
|
574
582
|
var LangChainAdapter = class {
|
|
575
583
|
options;
|
|
576
584
|
/**
|
|
@@ -579,7 +587,8 @@ var LangChainAdapter = class {
|
|
|
579
587
|
constructor(options) {
|
|
580
588
|
this.options = options;
|
|
581
589
|
}
|
|
582
|
-
async process(
|
|
590
|
+
async process(request) {
|
|
591
|
+
const { eventSource, model, actions, messages, threadId, runId } = request;
|
|
583
592
|
const result = await this.options.chainFn({
|
|
584
593
|
messages: messages.map(convertMessageToLangChainMessage),
|
|
585
594
|
tools: actions.map(convertActionInputToLangChainTool),
|
|
@@ -593,7 +602,9 @@ var LangChainAdapter = class {
|
|
|
593
602
|
eventStream$
|
|
594
603
|
});
|
|
595
604
|
});
|
|
596
|
-
return {
|
|
605
|
+
return {
|
|
606
|
+
threadId: threadId || nanoid3()
|
|
607
|
+
};
|
|
597
608
|
}
|
|
598
609
|
};
|
|
599
610
|
__name(LangChainAdapter, "LangChainAdapter");
|
|
@@ -683,4 +694,4 @@ export {
|
|
|
683
694
|
LangChainAdapter,
|
|
684
695
|
RemoteChain
|
|
685
696
|
};
|
|
686
|
-
//# sourceMappingURL=chunk-
|
|
697
|
+
//# sourceMappingURL=chunk-JBDOA7MK.mjs.map
|