@copilotkit/runtime 1.6.0-next.4 → 1.6.0-next.6

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 (56) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/__snapshots__/schema/schema.graphql +1 -0
  3. package/dist/{chunk-YUCVJM6E.mjs → chunk-5HTQ3NJN.mjs} +30 -28
  4. package/dist/chunk-5HTQ3NJN.mjs.map +1 -0
  5. package/dist/{chunk-7EXH7PVD.mjs → chunk-FZJAYGIR.mjs} +43 -11
  6. package/dist/chunk-FZJAYGIR.mjs.map +1 -0
  7. package/dist/{chunk-ROFUPT7E.mjs → chunk-KOZEUHQH.mjs} +2 -2
  8. package/dist/{chunk-Z5VUD7NL.mjs → chunk-MADVAANL.mjs} +2 -2
  9. package/dist/{chunk-4FCUC27H.mjs → chunk-USK52PF7.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 +64 -30
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +10 -10
  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 +64 -30
  21. package/dist/lib/index.js.map +1 -1
  22. package/dist/lib/index.mjs +6 -6
  23. package/dist/lib/integrations/index.d.ts +4 -4
  24. package/dist/lib/integrations/index.js +3 -2
  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 +3 -2
  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 +3 -2
  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 +3 -2
  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 +42 -10
  41. package/dist/service-adapters/index.js.map +1 -1
  42. package/dist/service-adapters/index.mjs +1 -1
  43. package/package.json +3 -3
  44. package/src/graphql/types/enums.ts +1 -0
  45. package/src/lib/runtime/remote-action-constructors.ts +6 -5
  46. package/src/service-adapters/conversion.ts +39 -47
  47. package/src/service-adapters/groq/groq-adapter.ts +6 -3
  48. package/src/service-adapters/openai/openai-adapter.ts +1 -1
  49. package/src/service-adapters/openai/openai-assistant-adapter.ts +1 -1
  50. package/src/service-adapters/openai/utils.ts +37 -12
  51. package/src/service-adapters/unify/unify-adapter.ts +1 -1
  52. package/dist/chunk-7EXH7PVD.mjs.map +0 -1
  53. package/dist/chunk-YUCVJM6E.mjs.map +0 -1
  54. /package/dist/{chunk-ROFUPT7E.mjs.map → chunk-KOZEUHQH.mjs.map} +0 -0
  55. /package/dist/{chunk-Z5VUD7NL.mjs.map → chunk-MADVAANL.mjs.map} +0 -0
  56. /package/dist/{chunk-4FCUC27H.mjs.map → chunk-USK52PF7.mjs.map} +0 -0
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ var require_package = __commonJS({
44
44
  publishConfig: {
45
45
  access: "public"
46
46
  },
47
- version: "1.6.0-next.4",
47
+ version: "1.6.0-next.6",
48
48
  sideEffects: false,
49
49
  main: "./dist/index.js",
50
50
  module: "./dist/index.mjs",
@@ -97,7 +97,7 @@ var require_package = __commonJS({
97
97
  "graphql-yoga": "^5.3.1",
98
98
  "groq-sdk": "^0.5.0",
99
99
  langchain: "^0.3.3",
100
- openai: "^4.50.0",
100
+ openai: "^4.85.1",
101
101
  "partial-json": "^0.1.7",
102
102
  pino: "^9.2.0",
103
103
  "pino-pretty": "^11.2.1",
@@ -253,7 +253,10 @@ function limitMessagesToTokenCount(messages, tools, model, maxTokens) {
253
253
  }
254
254
  maxTokens -= toolsNumTokens;
255
255
  for (const message of messages) {
256
- if (message.role === "system") {
256
+ if ([
257
+ "system",
258
+ "developer"
259
+ ].includes(message.role)) {
257
260
  const numTokens = countMessageTokens(model, message);
258
261
  maxTokens -= numTokens;
259
262
  if (maxTokens < 0) {
@@ -266,7 +269,10 @@ function limitMessagesToTokenCount(messages, tools, model, maxTokens) {
266
269
  ...messages
267
270
  ].reverse();
268
271
  for (const message of reversedMessages) {
269
- if (message.role === "system") {
272
+ if ([
273
+ "system",
274
+ "developer"
275
+ ].includes(message.role)) {
270
276
  result.unshift(message);
271
277
  continue;
272
278
  } else if (cutoff) {
@@ -289,9 +295,23 @@ function maxTokensForOpenAIModel(model) {
289
295
  __name(maxTokensForOpenAIModel, "maxTokensForOpenAIModel");
290
296
  var DEFAULT_MAX_TOKENS = 128e3;
291
297
  var maxTokensByModel = {
298
+ // o1
299
+ o1: 2e5,
300
+ "o1-2024-12-17": 2e5,
301
+ "o1-mini": 128e3,
302
+ "o1-mini-2024-09-12": 128e3,
303
+ "o1-preview": 128e3,
304
+ "o1-preview-2024-09-12": 128e3,
305
+ // o3-mini
306
+ "o3-mini": 2e5,
307
+ "o3-mini-2025-01-31": 2e5,
292
308
  // GPT-4
293
309
  "gpt-4o": 128e3,
310
+ "chatgpt-4o-latest": 128e3,
311
+ "gpt-4o-2024-08-06": 128e3,
294
312
  "gpt-4o-2024-05-13": 128e3,
313
+ "gpt-4o-mini": 128e3,
314
+ "gpt-4o-mini-2024-07-18": 128e3,
295
315
  "gpt-4-turbo": 128e3,
296
316
  "gpt-4-turbo-2024-04-09": 128e3,
297
317
  "gpt-4-0125-preview": 128e3,
@@ -342,10 +362,17 @@ function convertActionInputToOpenAITool(action) {
342
362
  };
343
363
  }
344
364
  __name(convertActionInputToOpenAITool, "convertActionInputToOpenAITool");
345
- function convertMessageToOpenAIMessage(message) {
365
+ function convertMessageToOpenAIMessage(message, options) {
366
+ const { keepSystemRole } = options || {
367
+ keepSystemRole: false
368
+ };
346
369
  if (message.isTextMessage()) {
370
+ let role = message.role;
371
+ if (message.role === "system" && !keepSystemRole) {
372
+ role = "developer";
373
+ }
347
374
  return {
348
- role: message.role,
375
+ role,
349
376
  content: message.content
350
377
  };
351
378
  } else if (message.isActionExecutionMessage()) {
@@ -374,7 +401,10 @@ __name(convertMessageToOpenAIMessage, "convertMessageToOpenAIMessage");
374
401
  function convertSystemMessageToAssistantAPI(message) {
375
402
  return {
376
403
  ...message,
377
- ...message.role === "system" && {
404
+ ...[
405
+ "system",
406
+ "developer"
407
+ ].includes(message.role) && {
378
408
  role: "assistant",
379
409
  content: "THE FOLLOWING MESSAGE IS A SYSTEM MESSAGE: " + message.content
380
410
  }
@@ -403,7 +433,7 @@ var OpenAIAdapter = class {
403
433
  const { threadId: threadIdFromRequest, model = this.model, messages, actions, eventSource, forwardedParameters } = request;
404
434
  const tools = actions.map(convertActionInputToOpenAITool);
405
435
  const threadId = threadIdFromRequest ?? (0, import_shared2.randomUUID)();
406
- let openaiMessages = messages.map(convertMessageToOpenAIMessage);
436
+ let openaiMessages = messages.map((m) => convertMessageToOpenAIMessage(m));
407
437
  openaiMessages = limitMessagesToTokenCount(openaiMessages, tools, model);
408
438
  let toolChoice = forwardedParameters == null ? void 0 : forwardedParameters.toolChoice;
409
439
  if ((forwardedParameters == null ? void 0 : forwardedParameters.toolChoice) === "function") {
@@ -866,7 +896,7 @@ var OpenAIAssistantAdapter = class {
866
896
  ];
867
897
  const instructionsMessage = messages.shift();
868
898
  const instructions = instructionsMessage.isTextMessage() ? instructionsMessage.content : "";
869
- const userMessage = messages.map(convertMessageToOpenAIMessage).map(convertSystemMessageToAssistantAPI).at(-1);
899
+ const userMessage = messages.map((m) => convertMessageToOpenAIMessage(m)).map(convertSystemMessageToAssistantAPI).at(-1);
870
900
  if (userMessage.role !== "user") {
871
901
  throw new Error("No user message found");
872
902
  }
@@ -1012,7 +1042,7 @@ var UnifyAdapter = class {
1012
1042
  baseURL: "https://api.unify.ai/v0/"
1013
1043
  });
1014
1044
  const forwardedParameters = request.forwardedParameters;
1015
- const messages = request.messages.map(convertMessageToOpenAIMessage);
1045
+ const messages = request.messages.map((m) => convertMessageToOpenAIMessage(m));
1016
1046
  const stream = await openai.chat.completions.create({
1017
1047
  model: this.model,
1018
1048
  messages,
@@ -1109,7 +1139,7 @@ __name(UnifyAdapter, "UnifyAdapter");
1109
1139
  // src/service-adapters/groq/groq-adapter.ts
1110
1140
  var import_groq_sdk = require("groq-sdk");
1111
1141
  var import_shared6 = require("@copilotkit/shared");
1112
- var DEFAULT_MODEL2 = "llama3-groq-70b-8192-tool-use-preview";
1142
+ var DEFAULT_MODEL2 = "llama-3.3-70b-versatile";
1113
1143
  var GroqAdapter = class {
1114
1144
  model = DEFAULT_MODEL2;
1115
1145
  disableParallelToolCalls = false;
@@ -1127,7 +1157,9 @@ var GroqAdapter = class {
1127
1157
  async process(request) {
1128
1158
  const { threadId, model = this.model, messages, actions, eventSource, forwardedParameters } = request;
1129
1159
  const tools = actions.map(convertActionInputToOpenAITool);
1130
- let openaiMessages = messages.map(convertMessageToOpenAIMessage);
1160
+ let openaiMessages = messages.map((m) => convertMessageToOpenAIMessage(m, {
1161
+ keepSystemRole: true
1162
+ }));
1131
1163
  openaiMessages = limitMessagesToTokenCount(openaiMessages, tools, model);
1132
1164
  let toolChoice = forwardedParameters == null ? void 0 : forwardedParameters.toolChoice;
1133
1165
  if ((forwardedParameters == null ? void 0 : forwardedParameters.toolChoice) === "function") {
@@ -1850,6 +1882,7 @@ var MessageRole;
1850
1882
  MessageRole2["assistant"] = "assistant";
1851
1883
  MessageRole2["system"] = "system";
1852
1884
  MessageRole2["tool"] = "tool";
1885
+ MessageRole2["developer"] = "developer";
1853
1886
  })(MessageRole || (MessageRole = {}));
1854
1887
  var CopilotRequestType;
1855
1888
  (function(CopilotRequestType2) {
@@ -3036,10 +3069,10 @@ function constructLGCRemoteAction({ endpoint, graphqlContext, logger: logger2, m
3036
3069
  state,
3037
3070
  configurable,
3038
3071
  properties: graphqlContext.properties,
3039
- actions: actionInputsWithoutAgents.map((action) => ({
3072
+ actions: (0, import_shared15.tryMap)(actionInputsWithoutAgents, (action) => ({
3040
3073
  name: action.name,
3041
3074
  description: action.description,
3042
- parameters: (0, import_shared15.parseJson)(action.jsonSchema, "")
3075
+ parameters: JSON.parse(action.jsonSchema)
3043
3076
  })),
3044
3077
  metaEvents
3045
3078
  });
@@ -3165,10 +3198,10 @@ function constructRemoteActions({ json, url, onBeforeRequest, graphqlContext, lo
3165
3198
  state,
3166
3199
  configurable,
3167
3200
  properties: graphqlContext.properties,
3168
- actions: actionInputsWithoutAgents.map((action) => ({
3201
+ actions: (0, import_shared15.tryMap)(actionInputsWithoutAgents, (action) => ({
3169
3202
  name: action.name,
3170
3203
  description: action.description,
3171
- parameters: (0, import_shared15.parseJson)(action.jsonSchema, {})
3204
+ parameters: JSON.parse(action.jsonSchema)
3172
3205
  })),
3173
3206
  metaEvents
3174
3207
  })
@@ -3864,34 +3897,33 @@ __name(executeAction, "executeAction");
3864
3897
  var import_class_transformer2 = require("class-transformer");
3865
3898
  var import_shared19 = require("@copilotkit/shared");
3866
3899
  function convertGqlInputToMessages(inputMessages) {
3867
- const messages = [];
3868
- for (const message of inputMessages) {
3900
+ const messages = (0, import_shared19.tryMap)(inputMessages, (message) => {
3869
3901
  if (message.textMessage) {
3870
- messages.push((0, import_class_transformer2.plainToInstance)(TextMessage, {
3902
+ return (0, import_class_transformer2.plainToInstance)(TextMessage, {
3871
3903
  id: message.id,
3872
3904
  createdAt: message.createdAt,
3873
3905
  role: message.textMessage.role,
3874
3906
  content: message.textMessage.content,
3875
3907
  parentMessageId: message.textMessage.parentMessageId
3876
- }));
3908
+ });
3877
3909
  } else if (message.actionExecutionMessage) {
3878
- messages.push((0, import_class_transformer2.plainToInstance)(ActionExecutionMessage, {
3910
+ return (0, import_class_transformer2.plainToInstance)(ActionExecutionMessage, {
3879
3911
  id: message.id,
3880
3912
  createdAt: message.createdAt,
3881
3913
  name: message.actionExecutionMessage.name,
3882
- arguments: (0, import_shared19.parseJson)(message.actionExecutionMessage.arguments, {}),
3914
+ arguments: JSON.parse(message.actionExecutionMessage.arguments),
3883
3915
  parentMessageId: message.actionExecutionMessage.parentMessageId
3884
- }));
3916
+ });
3885
3917
  } else if (message.resultMessage) {
3886
- messages.push((0, import_class_transformer2.plainToInstance)(ResultMessage, {
3918
+ return (0, import_class_transformer2.plainToInstance)(ResultMessage, {
3887
3919
  id: message.id,
3888
3920
  createdAt: message.createdAt,
3889
3921
  actionExecutionId: message.resultMessage.actionExecutionId,
3890
3922
  actionName: message.resultMessage.actionName,
3891
3923
  result: message.resultMessage.result
3892
- }));
3924
+ });
3893
3925
  } else if (message.agentStateMessage) {
3894
- messages.push((0, import_class_transformer2.plainToInstance)(AgentStateMessage, {
3926
+ return (0, import_class_transformer2.plainToInstance)(AgentStateMessage, {
3895
3927
  id: message.id,
3896
3928
  threadId: message.agentStateMessage.threadId,
3897
3929
  createdAt: message.createdAt,
@@ -3900,12 +3932,14 @@ function convertGqlInputToMessages(inputMessages) {
3900
3932
  runId: message.agentStateMessage.runId,
3901
3933
  active: message.agentStateMessage.active,
3902
3934
  role: message.agentStateMessage.role,
3903
- state: (0, import_shared19.parseJson)(message.agentStateMessage.state, {}),
3935
+ state: JSON.parse(message.agentStateMessage.state),
3904
3936
  running: message.agentStateMessage.running
3905
- }));
3937
+ });
3938
+ } else {
3939
+ return null;
3906
3940
  }
3907
- }
3908
- return messages;
3941
+ });
3942
+ return messages.filter((m) => m);
3909
3943
  }
3910
3944
  __name(convertGqlInputToMessages, "convertGqlInputToMessages");
3911
3945