@copilotkit/runtime 1.7.0 → 1.7.1-next.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/CHANGELOG.md +7 -0
- package/dist/{chunk-KFTZCVAE.mjs → chunk-5PFBYGDX.mjs} +2 -2
- package/dist/{chunk-66YYMUU2.mjs → chunk-ANTSN7W3.mjs} +136 -20
- package/dist/chunk-ANTSN7W3.mjs.map +1 -0
- package/dist/{chunk-BYQ7M4HT.mjs → chunk-LOGYVH7X.mjs} +2 -2
- package/dist/{chunk-7X5R75DH.mjs → chunk-SJPSYQ4P.mjs} +2 -2
- package/dist/{copilot-runtime-5103c7e7.d.ts → copilot-runtime-eb953402.d.ts} +78 -46
- package/dist/index.d.ts +1 -1
- package/dist/index.js +135 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +135 -19
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +4 -4
- package/dist/lib/integrations/index.d.ts +2 -2
- package/dist/lib/integrations/index.js +2 -2
- package/dist/lib/integrations/index.js.map +1 -1
- package/dist/lib/integrations/index.mjs +4 -4
- package/dist/lib/integrations/nest/index.d.ts +1 -1
- package/dist/lib/integrations/nest/index.js +2 -2
- package/dist/lib/integrations/nest/index.js.map +1 -1
- package/dist/lib/integrations/nest/index.mjs +2 -2
- package/dist/lib/integrations/node-express/index.d.ts +1 -1
- package/dist/lib/integrations/node-express/index.js +2 -2
- package/dist/lib/integrations/node-express/index.js.map +1 -1
- package/dist/lib/integrations/node-express/index.mjs +2 -2
- package/dist/lib/integrations/node-http/index.d.ts +1 -1
- package/dist/lib/integrations/node-http/index.js +2 -2
- package/dist/lib/integrations/node-http/index.js.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs +1 -1
- package/package.json +2 -2
- package/src/graphql/resolvers/copilot.resolver.ts +1 -1
- package/src/lib/logger.ts +0 -48
- package/src/lib/observability.ts +73 -0
- package/src/lib/runtime/copilot-runtime.ts +182 -22
- package/dist/chunk-66YYMUU2.mjs.map +0 -1
- /package/dist/{chunk-KFTZCVAE.mjs.map → chunk-5PFBYGDX.mjs.map} +0 -0
- /package/dist/{chunk-BYQ7M4HT.mjs.map → chunk-LOGYVH7X.mjs.map} +0 -0
- /package/dist/{chunk-7X5R75DH.mjs.map → chunk-SJPSYQ4P.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
copilotRuntimeNodeHttpEndpoint,
|
|
3
3
|
getRuntimeInstanceTelemetryInfo,
|
|
4
4
|
telemetry_client_default
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ANTSN7W3.mjs";
|
|
6
6
|
import {
|
|
7
7
|
__name
|
|
8
8
|
} from "./chunk-FHD4JECV.mjs";
|
|
@@ -22,4 +22,4 @@ __name(copilotRuntimeNodeExpressEndpoint, "copilotRuntimeNodeExpressEndpoint");
|
|
|
22
22
|
export {
|
|
23
23
|
copilotRuntimeNodeExpressEndpoint
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-5PFBYGDX.mjs.map
|
|
@@ -39,7 +39,7 @@ var require_package = __commonJS({
|
|
|
39
39
|
publishConfig: {
|
|
40
40
|
access: "public"
|
|
41
41
|
},
|
|
42
|
-
version: "1.7.0",
|
|
42
|
+
version: "1.7.1-next.0",
|
|
43
43
|
sideEffects: false,
|
|
44
44
|
main: "./dist/index.js",
|
|
45
45
|
module: "./dist/index.mjs",
|
|
@@ -2712,7 +2712,7 @@ var CopilotRuntime = class {
|
|
|
2712
2712
|
onBeforeRequest;
|
|
2713
2713
|
onAfterRequest;
|
|
2714
2714
|
delegateAgentProcessingToServiceAdapter;
|
|
2715
|
-
|
|
2715
|
+
observability;
|
|
2716
2716
|
constructor(params) {
|
|
2717
2717
|
var _a, _b;
|
|
2718
2718
|
if ((params == null ? void 0 : params.actions) && (params == null ? void 0 : params.remoteEndpoints)) {
|
|
@@ -2729,11 +2729,11 @@ var CopilotRuntime = class {
|
|
|
2729
2729
|
this.onBeforeRequest = (_a = params == null ? void 0 : params.middleware) == null ? void 0 : _a.onBeforeRequest;
|
|
2730
2730
|
this.onAfterRequest = (_b = params == null ? void 0 : params.middleware) == null ? void 0 : _b.onAfterRequest;
|
|
2731
2731
|
this.delegateAgentProcessingToServiceAdapter = (params == null ? void 0 : params.delegateAgentProcessingToServiceAdapter) || false;
|
|
2732
|
-
this.
|
|
2732
|
+
this.observability = params == null ? void 0 : params.observability_c;
|
|
2733
2733
|
}
|
|
2734
2734
|
async processRuntimeRequest(request) {
|
|
2735
2735
|
var _a, _b, _c, _d, _e;
|
|
2736
|
-
const { serviceAdapter, messages: rawMessages, actions: clientSideActionsInput, threadId, runId, outputMessagesPromise, graphqlContext, forwardedParameters, url, extensions, agentSession, agentStates } = request;
|
|
2736
|
+
const { serviceAdapter, messages: rawMessages, actions: clientSideActionsInput, threadId, runId, outputMessagesPromise, graphqlContext, forwardedParameters, url, extensions, agentSession, agentStates, publicApiKey } = request;
|
|
2737
2737
|
const eventSource = new RuntimeEventSource();
|
|
2738
2738
|
const requestStartTime = Date.now();
|
|
2739
2739
|
const streamedChunks = [];
|
|
@@ -2751,7 +2751,7 @@ please use an LLM adapter instead.`
|
|
|
2751
2751
|
const messages = rawMessages.filter((message) => !message.agentStateMessage);
|
|
2752
2752
|
const inputMessages = convertGqlInputToMessages(messages);
|
|
2753
2753
|
const serverSideActions = await this.getServerSideActions(request);
|
|
2754
|
-
if ((_a = this.
|
|
2754
|
+
if (((_a = this.observability) == null ? void 0 : _a.enabled) && publicApiKey) {
|
|
2755
2755
|
try {
|
|
2756
2756
|
const requestData = {
|
|
2757
2757
|
threadId,
|
|
@@ -2763,7 +2763,7 @@ please use an LLM adapter instead.`
|
|
|
2763
2763
|
timestamp: requestStartTime,
|
|
2764
2764
|
provider: this.detectProvider(serviceAdapter)
|
|
2765
2765
|
};
|
|
2766
|
-
await this.
|
|
2766
|
+
await this.observability.hooks.handleRequest(requestData);
|
|
2767
2767
|
} catch (error) {
|
|
2768
2768
|
console.error("Error logging LLM request:", error);
|
|
2769
2769
|
}
|
|
@@ -2811,16 +2811,15 @@ please use an LLM adapter instead.`
|
|
|
2811
2811
|
});
|
|
2812
2812
|
}).catch((_error) => {
|
|
2813
2813
|
});
|
|
2814
|
-
if ((_c = this.
|
|
2814
|
+
if (((_c = this.observability) == null ? void 0 : _c.enabled) && publicApiKey) {
|
|
2815
2815
|
try {
|
|
2816
2816
|
outputMessagesPromise.then((outputMessages) => {
|
|
2817
|
-
var _a2;
|
|
2818
2817
|
const responseData = {
|
|
2819
2818
|
threadId: result.threadId,
|
|
2820
2819
|
runId: result.runId,
|
|
2821
2820
|
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
2822
2821
|
// Use collected chunks for progressive mode or outputMessages for regular mode
|
|
2823
|
-
output: this.
|
|
2822
|
+
output: this.observability.progressive ? streamedChunks : outputMessages,
|
|
2824
2823
|
latency: Date.now() - requestStartTime,
|
|
2825
2824
|
timestamp: Date.now(),
|
|
2826
2825
|
provider: this.detectProvider(serviceAdapter),
|
|
@@ -2828,7 +2827,7 @@ please use an LLM adapter instead.`
|
|
|
2828
2827
|
isFinalResponse: true
|
|
2829
2828
|
};
|
|
2830
2829
|
try {
|
|
2831
|
-
|
|
2830
|
+
this.observability.hooks.handleResponse(responseData);
|
|
2832
2831
|
} catch (logError) {
|
|
2833
2832
|
console.error("Error logging LLM response:", logError);
|
|
2834
2833
|
}
|
|
@@ -2839,7 +2838,7 @@ please use an LLM adapter instead.`
|
|
|
2839
2838
|
console.error("Error setting up logging for LLM response:", error);
|
|
2840
2839
|
}
|
|
2841
2840
|
}
|
|
2842
|
-
if (((_d = this.
|
|
2841
|
+
if (((_d = this.observability) == null ? void 0 : _d.enabled) && this.observability.progressive && publicApiKey) {
|
|
2843
2842
|
const originalStream = eventSource.stream.bind(eventSource);
|
|
2844
2843
|
eventSource.stream = async (callback) => {
|
|
2845
2844
|
await originalStream(async (eventStream$) => {
|
|
@@ -2859,8 +2858,7 @@ please use an LLM adapter instead.`
|
|
|
2859
2858
|
isProgressiveChunk: true
|
|
2860
2859
|
};
|
|
2861
2860
|
Promise.resolve().then(() => {
|
|
2862
|
-
|
|
2863
|
-
(_a2 = this.logging) == null ? void 0 : _a2.logger.logResponse(progressiveData);
|
|
2861
|
+
this.observability.hooks.handleResponse(progressiveData);
|
|
2864
2862
|
}).catch((error) => {
|
|
2865
2863
|
console.error("Error in progressive logging:", error);
|
|
2866
2864
|
});
|
|
@@ -2886,7 +2884,7 @@ please use an LLM adapter instead.`
|
|
|
2886
2884
|
extensions: result.extensions
|
|
2887
2885
|
};
|
|
2888
2886
|
} catch (error) {
|
|
2889
|
-
if ((_e = this.
|
|
2887
|
+
if (((_e = this.observability) == null ? void 0 : _e.enabled) && publicApiKey) {
|
|
2890
2888
|
try {
|
|
2891
2889
|
const errorData = {
|
|
2892
2890
|
threadId,
|
|
@@ -2897,7 +2895,7 @@ please use an LLM adapter instead.`
|
|
|
2897
2895
|
latency: Date.now() - requestStartTime,
|
|
2898
2896
|
provider: this.detectProvider(serviceAdapter)
|
|
2899
2897
|
};
|
|
2900
|
-
await this.
|
|
2898
|
+
await this.observability.hooks.handleError(errorData);
|
|
2901
2899
|
} catch (logError) {
|
|
2902
2900
|
console.error("Error logging LLM error:", logError);
|
|
2903
2901
|
}
|
|
@@ -3065,9 +3063,11 @@ please use an LLM adapter instead.`
|
|
|
3065
3063
|
}
|
|
3066
3064
|
}
|
|
3067
3065
|
async processAgentRequest(request) {
|
|
3068
|
-
var _a;
|
|
3069
|
-
const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession, threadId: threadIdFromRequest, metaEvents } = request;
|
|
3066
|
+
var _a, _b, _c, _d, _e;
|
|
3067
|
+
const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession, threadId: threadIdFromRequest, metaEvents, publicApiKey, forwardedParameters } = request;
|
|
3070
3068
|
const { agentName, nodeName } = agentSession;
|
|
3069
|
+
const requestStartTime = Date.now();
|
|
3070
|
+
const streamedChunks = [];
|
|
3071
3071
|
const threadId = threadIdFromRequest ?? agentSession.threadId;
|
|
3072
3072
|
const serverSideActions = await this.getServerSideActions(request);
|
|
3073
3073
|
const messages = convertGqlInputToMessages(rawMessages);
|
|
@@ -3090,7 +3090,26 @@ please use an LLM adapter instead.`
|
|
|
3090
3090
|
...availableActionsForCurrentAgent,
|
|
3091
3091
|
...request.actions
|
|
3092
3092
|
]);
|
|
3093
|
-
|
|
3093
|
+
if (((_a = this.observability) == null ? void 0 : _a.enabled) && publicApiKey) {
|
|
3094
|
+
try {
|
|
3095
|
+
const requestData = {
|
|
3096
|
+
threadId,
|
|
3097
|
+
runId: void 0,
|
|
3098
|
+
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
3099
|
+
messages,
|
|
3100
|
+
actions: allAvailableActions,
|
|
3101
|
+
forwardedParameters,
|
|
3102
|
+
timestamp: requestStartTime,
|
|
3103
|
+
provider: "agent",
|
|
3104
|
+
agentName,
|
|
3105
|
+
nodeName
|
|
3106
|
+
};
|
|
3107
|
+
await this.observability.hooks.handleRequest(requestData);
|
|
3108
|
+
} catch (error) {
|
|
3109
|
+
console.error("Error logging agent request:", error);
|
|
3110
|
+
}
|
|
3111
|
+
}
|
|
3112
|
+
await ((_b = this.onBeforeRequest) == null ? void 0 : _b.call(this, {
|
|
3094
3113
|
threadId,
|
|
3095
3114
|
runId: void 0,
|
|
3096
3115
|
inputMessages: messages,
|
|
@@ -3105,17 +3124,96 @@ please use an LLM adapter instead.`
|
|
|
3105
3124
|
metaEvents,
|
|
3106
3125
|
actionInputsWithoutAgents: allAvailableActions
|
|
3107
3126
|
});
|
|
3127
|
+
if (((_c = this.observability) == null ? void 0 : _c.enabled) && this.observability.progressive && publicApiKey) {
|
|
3128
|
+
const originalStream = eventSource.stream.bind(eventSource);
|
|
3129
|
+
eventSource.stream = async (callback) => {
|
|
3130
|
+
await originalStream(async (eventStream$) => {
|
|
3131
|
+
eventStream$.subscribe({
|
|
3132
|
+
next: (event) => {
|
|
3133
|
+
if (event.type === RuntimeEventTypes.TextMessageContent) {
|
|
3134
|
+
streamedChunks.push(event.content);
|
|
3135
|
+
try {
|
|
3136
|
+
const progressiveData = {
|
|
3137
|
+
threadId: threadId || "",
|
|
3138
|
+
runId: void 0,
|
|
3139
|
+
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
3140
|
+
output: event.content,
|
|
3141
|
+
latency: Date.now() - requestStartTime,
|
|
3142
|
+
timestamp: Date.now(),
|
|
3143
|
+
provider: "agent",
|
|
3144
|
+
isProgressiveChunk: true,
|
|
3145
|
+
agentName,
|
|
3146
|
+
nodeName
|
|
3147
|
+
};
|
|
3148
|
+
Promise.resolve().then(() => {
|
|
3149
|
+
this.observability.hooks.handleResponse(progressiveData);
|
|
3150
|
+
}).catch((error) => {
|
|
3151
|
+
console.error("Error in progressive agent logging:", error);
|
|
3152
|
+
});
|
|
3153
|
+
} catch (error) {
|
|
3154
|
+
console.error("Error preparing progressive agent log data:", error);
|
|
3155
|
+
}
|
|
3156
|
+
}
|
|
3157
|
+
}
|
|
3158
|
+
});
|
|
3159
|
+
await callback(eventStream$);
|
|
3160
|
+
});
|
|
3161
|
+
};
|
|
3162
|
+
}
|
|
3108
3163
|
eventSource.stream(async (eventStream$) => {
|
|
3109
3164
|
from(stream).subscribe({
|
|
3110
3165
|
next: (event) => eventStream$.next(event),
|
|
3111
3166
|
error: (err) => {
|
|
3167
|
+
var _a2;
|
|
3112
3168
|
console.error("Error in stream", err);
|
|
3169
|
+
if (((_a2 = this.observability) == null ? void 0 : _a2.enabled) && publicApiKey) {
|
|
3170
|
+
try {
|
|
3171
|
+
const errorData = {
|
|
3172
|
+
threadId,
|
|
3173
|
+
runId: void 0,
|
|
3174
|
+
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
3175
|
+
error: err instanceof Error ? err : String(err),
|
|
3176
|
+
timestamp: Date.now(),
|
|
3177
|
+
latency: Date.now() - requestStartTime,
|
|
3178
|
+
provider: "agent",
|
|
3179
|
+
agentName,
|
|
3180
|
+
nodeName
|
|
3181
|
+
};
|
|
3182
|
+
this.observability.hooks.handleError(errorData);
|
|
3183
|
+
} catch (logError) {
|
|
3184
|
+
console.error("Error logging agent error:", logError);
|
|
3185
|
+
}
|
|
3186
|
+
}
|
|
3113
3187
|
eventStream$.error(err);
|
|
3114
3188
|
eventStream$.complete();
|
|
3115
3189
|
},
|
|
3116
3190
|
complete: () => eventStream$.complete()
|
|
3117
3191
|
});
|
|
3118
3192
|
});
|
|
3193
|
+
if (((_d = this.observability) == null ? void 0 : _d.enabled) && publicApiKey) {
|
|
3194
|
+
outputMessagesPromise.then((outputMessages) => {
|
|
3195
|
+
const responseData = {
|
|
3196
|
+
threadId,
|
|
3197
|
+
runId: void 0,
|
|
3198
|
+
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
3199
|
+
// Use collected chunks for progressive mode or outputMessages for regular mode
|
|
3200
|
+
output: this.observability.progressive ? streamedChunks : outputMessages,
|
|
3201
|
+
latency: Date.now() - requestStartTime,
|
|
3202
|
+
timestamp: Date.now(),
|
|
3203
|
+
provider: "agent",
|
|
3204
|
+
isFinalResponse: true,
|
|
3205
|
+
agentName,
|
|
3206
|
+
nodeName
|
|
3207
|
+
};
|
|
3208
|
+
try {
|
|
3209
|
+
this.observability.hooks.handleResponse(responseData);
|
|
3210
|
+
} catch (logError) {
|
|
3211
|
+
console.error("Error logging agent response:", logError);
|
|
3212
|
+
}
|
|
3213
|
+
}).catch((error) => {
|
|
3214
|
+
console.error("Failed to get output messages for agent logging:", error);
|
|
3215
|
+
});
|
|
3216
|
+
}
|
|
3119
3217
|
outputMessagesPromise.then((outputMessages) => {
|
|
3120
3218
|
var _a2;
|
|
3121
3219
|
(_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
|
|
@@ -3135,6 +3233,24 @@ please use an LLM adapter instead.`
|
|
|
3135
3233
|
actionInputsWithoutAgents: allAvailableActions
|
|
3136
3234
|
};
|
|
3137
3235
|
} catch (error) {
|
|
3236
|
+
if (((_e = this.observability) == null ? void 0 : _e.enabled) && publicApiKey) {
|
|
3237
|
+
try {
|
|
3238
|
+
const errorData = {
|
|
3239
|
+
threadId,
|
|
3240
|
+
runId: void 0,
|
|
3241
|
+
model: forwardedParameters == null ? void 0 : forwardedParameters.model,
|
|
3242
|
+
error: error instanceof Error ? error : String(error),
|
|
3243
|
+
timestamp: Date.now(),
|
|
3244
|
+
latency: Date.now() - requestStartTime,
|
|
3245
|
+
provider: "agent",
|
|
3246
|
+
agentName,
|
|
3247
|
+
nodeName
|
|
3248
|
+
};
|
|
3249
|
+
await this.observability.hooks.handleError(errorData);
|
|
3250
|
+
} catch (logError) {
|
|
3251
|
+
console.error("Error logging agent error:", logError);
|
|
3252
|
+
}
|
|
3253
|
+
}
|
|
3138
3254
|
console.error("Error getting response:", error);
|
|
3139
3255
|
throw error;
|
|
3140
3256
|
}
|
|
@@ -3753,7 +3869,7 @@ var CopilotResolver = class {
|
|
|
3753
3869
|
actions: data.frontend.actions.filter((action) => action.available !== ActionInputAvailability.disabled),
|
|
3754
3870
|
threadId: data.threadId,
|
|
3755
3871
|
runId: data.runId,
|
|
3756
|
-
publicApiKey:
|
|
3872
|
+
publicApiKey: copilotCloudPublicApiKey,
|
|
3757
3873
|
outputMessagesPromise,
|
|
3758
3874
|
graphqlContext: ctx,
|
|
3759
3875
|
forwardedParameters: data.forwardedParameters,
|
|
@@ -4441,4 +4557,4 @@ export {
|
|
|
4441
4557
|
getCommonConfig,
|
|
4442
4558
|
copilotRuntimeNodeHttpEndpoint
|
|
4443
4559
|
};
|
|
4444
|
-
//# sourceMappingURL=chunk-
|
|
4560
|
+
//# sourceMappingURL=chunk-ANTSN7W3.mjs.map
|