@copilotkit/runtime 1.8.11 → 1.8.12-next.1

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 (42) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{chunk-LNG6GETF.mjs → chunk-4NX7XJUN.mjs} +2 -2
  3. package/dist/{chunk-VTW33IV3.mjs → chunk-4VQCEN2S.mjs} +2 -2
  4. package/dist/{chunk-C4YF3HSK.mjs → chunk-BFSBAHMC.mjs} +7 -7
  5. package/dist/chunk-BFSBAHMC.mjs.map +1 -0
  6. package/dist/{chunk-RTHOFK2V.mjs → chunk-DEXQNM4P.mjs} +2 -2
  7. package/dist/{chunk-EY6RUVB7.mjs → chunk-Y4H3U52G.mjs} +12 -4
  8. package/dist/chunk-Y4H3U52G.mjs.map +1 -0
  9. package/dist/{groq-adapter-4848f8e8.d.ts → groq-adapter-25a2bd35.d.ts} +16 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +12 -4
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +10 -10
  14. package/dist/lib/index.d.ts +1 -1
  15. package/dist/lib/index.js +11 -3
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/index.mjs +6 -6
  18. package/dist/lib/integrations/index.js +1 -1
  19. package/dist/lib/integrations/index.js.map +1 -1
  20. package/dist/lib/integrations/index.mjs +5 -5
  21. package/dist/lib/integrations/nest/index.js +1 -1
  22. package/dist/lib/integrations/nest/index.js.map +1 -1
  23. package/dist/lib/integrations/nest/index.mjs +3 -3
  24. package/dist/lib/integrations/node-express/index.js +1 -1
  25. package/dist/lib/integrations/node-express/index.js.map +1 -1
  26. package/dist/lib/integrations/node-express/index.mjs +3 -3
  27. package/dist/lib/integrations/node-http/index.js +1 -1
  28. package/dist/lib/integrations/node-http/index.js.map +1 -1
  29. package/dist/lib/integrations/node-http/index.mjs +2 -2
  30. package/dist/service-adapters/index.d.ts +1 -1
  31. package/dist/service-adapters/index.js +11 -3
  32. package/dist/service-adapters/index.js.map +1 -1
  33. package/dist/service-adapters/index.mjs +1 -1
  34. package/package.json +2 -2
  35. package/src/service-adapters/anthropic/anthropic-adapter.ts +1 -1
  36. package/src/service-adapters/openai/openai-adapter.ts +14 -1
  37. package/src/service-adapters/openai/openai-assistant-adapter.ts +11 -1
  38. package/dist/chunk-C4YF3HSK.mjs.map +0 -1
  39. package/dist/chunk-EY6RUVB7.mjs.map +0 -1
  40. /package/dist/{chunk-LNG6GETF.mjs.map → chunk-4NX7XJUN.mjs.map} +0 -0
  41. /package/dist/{chunk-VTW33IV3.mjs.map → chunk-4VQCEN2S.mjs.map} +0 -0
  42. /package/dist/{chunk-RTHOFK2V.mjs.map → chunk-DEXQNM4P.mjs.map} +0 -0
@@ -84,6 +84,14 @@ export interface OpenAIAdapterParams {
84
84
  * @default false
85
85
  */
86
86
  disableParallelToolCalls?: boolean;
87
+
88
+ /**
89
+ * Whether to keep the role in system messages as "System".
90
+ * By default, it is converted to "developer", which is used by newer OpenAI models
91
+ *
92
+ * @default false
93
+ */
94
+ keepSystemRole?: boolean;
87
95
  }
88
96
 
89
97
  export class OpenAIAdapter implements CopilotServiceAdapter {
@@ -91,6 +99,8 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
91
99
 
92
100
  private disableParallelToolCalls: boolean = false;
93
101
  private _openai: OpenAI;
102
+ private keepSystemRole: boolean = false;
103
+
94
104
  public get openai(): OpenAI {
95
105
  return this._openai;
96
106
  }
@@ -101,6 +111,7 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
101
111
  this.model = params.model;
102
112
  }
103
113
  this.disableParallelToolCalls = params?.disableParallelToolCalls || false;
114
+ this.keepSystemRole = params?.keepSystemRole ?? false;
104
115
  }
105
116
 
106
117
  async process(
@@ -117,7 +128,9 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
117
128
  const tools = actions.map(convertActionInputToOpenAITool);
118
129
  const threadId = threadIdFromRequest ?? randomUUID();
119
130
 
120
- let openaiMessages = messages.map((m) => convertMessageToOpenAIMessage(m));
131
+ let openaiMessages = messages.map((m) =>
132
+ convertMessageToOpenAIMessage(m, { keepSystemRole: this.keepSystemRole }),
133
+ );
121
134
  openaiMessages = limitMessagesToTokenCount(openaiMessages, tools, model);
122
135
 
123
136
  let toolChoice: any = forwardedParameters?.toolChoice;
@@ -73,6 +73,14 @@ export interface OpenAIAssistantAdapterParams {
73
73
  * @default false
74
74
  */
75
75
  disableParallelToolCalls?: boolean;
76
+
77
+ /**
78
+ * Whether to keep the role in system messages as "System".
79
+ * By default, it is converted to "developer", which is used by newer OpenAI models
80
+ *
81
+ * @default false
82
+ */
83
+ keepSystemRole?: boolean;
76
84
  }
77
85
 
78
86
  export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
@@ -81,6 +89,7 @@ export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
81
89
  private assistantId: string;
82
90
  private fileSearchEnabled: boolean;
83
91
  private disableParallelToolCalls: boolean;
92
+ private keepSystemRole: boolean = false;
84
93
 
85
94
  constructor(params: OpenAIAssistantAdapterParams) {
86
95
  this.openai = params.openai || new OpenAI({});
@@ -88,6 +97,7 @@ export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
88
97
  this.fileSearchEnabled = params.fileSearchEnabled === false || true;
89
98
  this.assistantId = params.assistantId;
90
99
  this.disableParallelToolCalls = params?.disableParallelToolCalls || false;
100
+ this.keepSystemRole = params?.keepSystemRole ?? false;
91
101
  }
92
102
 
93
103
  async process(
@@ -198,7 +208,7 @@ export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
198
208
 
199
209
  // get the latest user message
200
210
  const userMessage = messages
201
- .map((m) => convertMessageToOpenAIMessage(m))
211
+ .map((m) => convertMessageToOpenAIMessage(m, { keepSystemRole: this.keepSystemRole }))
202
212
  .map(convertSystemMessageToAssistantAPI)
203
213
  .at(-1);
204
214