@copilotkit/runtime 1.6.0-next.1 → 1.6.0-next.10

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/__snapshots__/schema/schema.graphql +1 -0
  3. package/dist/{chunk-CCQ73DAH.mjs → chunk-3ORZOFAL.mjs} +2 -2
  4. package/dist/{chunk-CHDIEE43.mjs → chunk-5NJDGEB3.mjs} +87 -44
  5. package/dist/chunk-5NJDGEB3.mjs.map +1 -0
  6. package/dist/{chunk-A25FIW7J.mjs → chunk-6XDMOAOM.mjs} +2 -2
  7. package/dist/{chunk-OS5YD32G.mjs → chunk-FZJAYGIR.mjs} +45 -12
  8. package/dist/chunk-FZJAYGIR.mjs.map +1 -0
  9. package/dist/{chunk-C7GTLEVO.mjs → chunk-JUWN34MZ.mjs} +2 -2
  10. package/dist/{copilot-runtime-67033bfa.d.ts → copilot-runtime-15bfc4f4.d.ts} +2 -2
  11. package/dist/graphql/types/converted/index.d.ts +1 -1
  12. package/dist/{groq-adapter-9d15c927.d.ts → groq-adapter-fb9aa3ab.d.ts} +1 -1
  13. package/dist/{index-f6d1f30b.d.ts → index-5bec5424.d.ts} +2 -1
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.js +199 -123
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +5 -5
  18. package/dist/{langserve-7cc5be48.d.ts → langserve-6f7af8d3.d.ts} +1 -1
  19. package/dist/lib/index.d.ts +4 -4
  20. package/dist/lib/index.js +192 -116
  21. package/dist/lib/index.js.map +1 -1
  22. package/dist/lib/index.mjs +5 -5
  23. package/dist/lib/integrations/index.d.ts +4 -4
  24. package/dist/lib/integrations/index.js +5 -3
  25. package/dist/lib/integrations/index.js.map +1 -1
  26. package/dist/lib/integrations/index.mjs +5 -5
  27. package/dist/lib/integrations/nest/index.d.ts +3 -3
  28. package/dist/lib/integrations/nest/index.js +5 -3
  29. package/dist/lib/integrations/nest/index.js.map +1 -1
  30. package/dist/lib/integrations/nest/index.mjs +3 -3
  31. package/dist/lib/integrations/node-express/index.d.ts +3 -3
  32. package/dist/lib/integrations/node-express/index.js +5 -3
  33. package/dist/lib/integrations/node-express/index.js.map +1 -1
  34. package/dist/lib/integrations/node-express/index.mjs +3 -3
  35. package/dist/lib/integrations/node-http/index.d.ts +3 -3
  36. package/dist/lib/integrations/node-http/index.js +5 -3
  37. package/dist/lib/integrations/node-http/index.js.map +1 -1
  38. package/dist/lib/integrations/node-http/index.mjs +2 -2
  39. package/dist/service-adapters/index.d.ts +4 -4
  40. package/dist/service-adapters/index.js +70 -37
  41. package/dist/service-adapters/index.js.map +1 -1
  42. package/dist/service-adapters/index.mjs +1 -1
  43. package/package.json +5 -4
  44. package/src/agents/langgraph/event-source.ts +21 -5
  45. package/src/graphql/types/enums.ts +1 -0
  46. package/src/lib/runtime/__tests__/remote-action-constructors.test.ts +236 -0
  47. package/src/lib/runtime/copilot-runtime.ts +9 -3
  48. package/src/lib/runtime/remote-action-constructors.ts +9 -7
  49. package/src/lib/runtime/remote-lg-action.ts +35 -7
  50. package/src/service-adapters/conversion.ts +39 -46
  51. package/src/service-adapters/groq/groq-adapter.ts +6 -3
  52. package/src/service-adapters/openai/openai-adapter.ts +1 -1
  53. package/src/service-adapters/openai/openai-assistant-adapter.ts +1 -1
  54. package/src/service-adapters/openai/utils.ts +39 -13
  55. package/src/service-adapters/unify/unify-adapter.ts +1 -1
  56. package/tsconfig.json +3 -2
  57. package/dist/chunk-CHDIEE43.mjs.map +0 -1
  58. package/dist/chunk-OS5YD32G.mjs.map +0 -1
  59. /package/dist/{chunk-CCQ73DAH.mjs.map → chunk-3ORZOFAL.mjs.map} +0 -0
  60. /package/dist/{chunk-A25FIW7J.mjs.map → chunk-6XDMOAOM.mjs.map} +0 -0
  61. /package/dist/{chunk-C7GTLEVO.mjs.map → chunk-JUWN34MZ.mjs.map} +0 -0
@@ -1,12 +1,14 @@
1
1
  import { Message } from "../../graphql/types/converted";
2
2
  import { ActionInput } from "../../graphql/inputs/action.input";
3
3
  import {
4
+ ChatCompletionAssistantMessageParam,
4
5
  ChatCompletionMessageParam,
6
+ ChatCompletionSystemMessageParam,
5
7
  ChatCompletionTool,
6
8
  ChatCompletionUserMessageParam,
7
- ChatCompletionAssistantMessageParam,
8
- ChatCompletionSystemMessageParam,
9
- } from "openai/resources";
9
+ ChatCompletionDeveloperMessageParam,
10
+ } from "openai/resources/chat";
11
+ import { parseJson } from "@copilotkit/shared";
10
12
 
11
13
  export function limitMessagesToTokenCount(
12
14
  messages: any[],
@@ -24,7 +26,7 @@ export function limitMessagesToTokenCount(
24
26
  maxTokens -= toolsNumTokens;
25
27
 
26
28
  for (const message of messages) {
27
- if (message.role === "system") {
29
+ if (["system", "developer"].includes(message.role)) {
28
30
  const numTokens = countMessageTokens(model, message);
29
31
  maxTokens -= numTokens;
30
32
 
@@ -38,7 +40,7 @@ export function limitMessagesToTokenCount(
38
40
 
39
41
  const reversedMessages = [...messages].reverse();
40
42
  for (const message of reversedMessages) {
41
- if (message.role === "system") {
43
+ if (["system", "developer"].includes(message.role)) {
42
44
  result.unshift(message);
43
45
  continue;
44
46
  } else if (cutoff) {
@@ -63,9 +65,23 @@ export function maxTokensForOpenAIModel(model: string): number {
63
65
  const DEFAULT_MAX_TOKENS = 128000;
64
66
 
65
67
  const maxTokensByModel: { [key: string]: number } = {
68
+ // o1
69
+ o1: 200000,
70
+ "o1-2024-12-17": 200000,
71
+ "o1-mini": 128000,
72
+ "o1-mini-2024-09-12": 128000,
73
+ "o1-preview": 128000,
74
+ "o1-preview-2024-09-12": 128000,
75
+ // o3-mini
76
+ "o3-mini": 200000,
77
+ "o3-mini-2025-01-31": 200000,
66
78
  // GPT-4
67
79
  "gpt-4o": 128000,
80
+ "chatgpt-4o-latest": 128000,
81
+ "gpt-4o-2024-08-06": 128000,
68
82
  "gpt-4o-2024-05-13": 128000,
83
+ "gpt-4o-mini": 128000,
84
+ "gpt-4o-mini-2024-07-18": 128000,
69
85
  "gpt-4-turbo": 128000,
70
86
  "gpt-4-turbo-2024-04-09": 128000,
71
87
  "gpt-4-0125-preview": 128000,
@@ -113,20 +129,30 @@ export function convertActionInputToOpenAITool(action: ActionInput): ChatComplet
113
129
  function: {
114
130
  name: action.name,
115
131
  description: action.description,
116
- parameters: JSON.parse(action.jsonSchema),
132
+ parameters: parseJson(action.jsonSchema, {}),
117
133
  },
118
134
  };
119
135
  }
120
136
 
121
- export function convertMessageToOpenAIMessage(message: Message): ChatCompletionMessageParam {
137
+ type UsedMessageParams =
138
+ | ChatCompletionUserMessageParam
139
+ | ChatCompletionAssistantMessageParam
140
+ | ChatCompletionDeveloperMessageParam
141
+ | ChatCompletionSystemMessageParam;
142
+ export function convertMessageToOpenAIMessage(
143
+ message: Message,
144
+ options?: { keepSystemRole: boolean },
145
+ ): ChatCompletionMessageParam {
146
+ const { keepSystemRole } = options || { keepSystemRole: false };
122
147
  if (message.isTextMessage()) {
148
+ let role = message.role as UsedMessageParams["role"];
149
+ if (message.role === "system" && !keepSystemRole) {
150
+ role = "developer";
151
+ }
123
152
  return {
124
- role: message.role as ChatCompletionUserMessageParam["role"],
153
+ role,
125
154
  content: message.content,
126
- } satisfies
127
- | ChatCompletionUserMessageParam
128
- | ChatCompletionAssistantMessageParam
129
- | ChatCompletionSystemMessageParam;
155
+ } satisfies UsedMessageParams;
130
156
  } else if (message.isActionExecutionMessage()) {
131
157
  return {
132
158
  role: "assistant",
@@ -153,7 +179,7 @@ export function convertMessageToOpenAIMessage(message: Message): ChatCompletionM
153
179
  export function convertSystemMessageToAssistantAPI(message: ChatCompletionMessageParam) {
154
180
  return {
155
181
  ...message,
156
- ...(message.role === "system" && {
182
+ ...(["system", "developer"].includes(message.role) && {
157
183
  role: "assistant",
158
184
  content: "THE FOLLOWING MESSAGE IS A SYSTEM MESSAGE: " + message.content,
159
185
  }),
@@ -56,7 +56,7 @@ export class UnifyAdapter implements CopilotServiceAdapter {
56
56
  });
57
57
  const forwardedParameters = request.forwardedParameters;
58
58
 
59
- const messages = request.messages.map(convertMessageToOpenAIMessage);
59
+ const messages = request.messages.map((m) => convertMessageToOpenAIMessage(m));
60
60
 
61
61
  const stream = await openai.chat.completions.create({
62
62
  model: this.model,
package/tsconfig.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "extends": "../../utilities/tsconfig/base.json",
3
3
  "compilerOptions": {
4
+ "types": ["node", "jest"],
4
5
  "lib": ["es2017", "dom"],
5
6
  "emitDecoratorMetadata": true,
6
7
  "experimentalDecorators": true,
7
8
  "strict": false,
8
9
  "resolveJsonModule": true
9
10
  },
10
- "include": ["./src/**/*.ts"],
11
- "exclude": ["dist", "build", "node_modules", "**/*.test.ts", "**/*.test.tsx", "**/__tests__/*"]
11
+ "include": ["./src/**/*.ts", "./src/**/*.test.ts", "./src/**/__tests__/*"],
12
+ "exclude": ["dist", "build", "node_modules"]
12
13
  }