@copilotkit/core 1.68.3 → 1.69.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/dist/index.cjs +67 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +11 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +67 -5
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +83 -10
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -2938,6 +2938,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2938
2938
|
this.core = core;
|
|
2939
2939
|
_defineProperty(this, "stateByRun", /* @__PURE__ */ new Map());
|
|
2940
2940
|
_defineProperty(this, "messageToRun", /* @__PURE__ */ new Map());
|
|
2941
|
+
_defineProperty(this, "rawEventByMessage", /* @__PURE__ */ new Map());
|
|
2941
2942
|
_defineProperty(this, "activeRun", /* @__PURE__ */ new Map());
|
|
2942
2943
|
_defineProperty(this, "agentSubscriptions", /* @__PURE__ */ new Map());
|
|
2943
2944
|
_defineProperty(this, "pendingContinuations", /* @__PURE__ */ new WeakMap());
|
|
@@ -2990,16 +2991,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2990
2991
|
};
|
|
2991
2992
|
};
|
|
2992
2993
|
const { unsubscribe } = agent.subscribe({
|
|
2993
|
-
onRunStartedEvent: ({ input, state }) => {
|
|
2994
|
+
onRunStartedEvent: ({ event, input, state }) => {
|
|
2994
2995
|
if (revoked) return;
|
|
2995
2996
|
const pendingForAgent = this.pendingContinuations.get(agent);
|
|
2996
2997
|
const internalContinuation = [...pendingForAgent !== null && pendingForAgent !== void 0 ? pendingForAgent : []].find((pending) => pending.expectedInput === input);
|
|
2997
2998
|
internalContinuation === null || internalContinuation === void 0 || internalContinuation.cancel();
|
|
2998
|
-
if (
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
2999
|
+
if (internalContinuation) {
|
|
3000
|
+
var _ref, _internalContinuation;
|
|
3001
|
+
subRunId = (_ref = (_internalContinuation = internalContinuation.expectedRunId) !== null && _internalContinuation !== void 0 ? _internalContinuation : event.runId) !== null && _ref !== void 0 ? _ref : input.runId;
|
|
3002
|
+
} else if (runFinished && input.runId === subRunId && !isContinuation(input) && (event.runId == null || event.runId === subRunId)) subRunId = (0, _ag_ui_client.randomUUID)();
|
|
3003
|
+
else subRunId = event.runId || input.runId;
|
|
3003
3004
|
runFinished = false;
|
|
3004
3005
|
this.handleRunStarted(agent, effectiveInput(input), state);
|
|
3005
3006
|
},
|
|
@@ -3021,13 +3022,22 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3021
3022
|
if (revoked) return;
|
|
3022
3023
|
this.handleStateDelta(agent, event, effectiveInput(input), state);
|
|
3023
3024
|
},
|
|
3025
|
+
onTextMessageStartEvent: ({ event, input }) => {
|
|
3026
|
+
if (revoked) return;
|
|
3027
|
+
this.handleTextMessageStart(agent, event, effectiveInput(input));
|
|
3028
|
+
},
|
|
3024
3029
|
onMessagesSnapshotEvent: ({ event, input, messages }) => {
|
|
3025
3030
|
if (revoked) return;
|
|
3026
3031
|
this.handleMessagesSnapshot(agent, event, effectiveInput(input), messages);
|
|
3032
|
+
this.pruneRawEvents(agent.agentId, input.threadId, event.messages, effectiveInput(input));
|
|
3027
3033
|
},
|
|
3028
3034
|
onNewMessage: ({ message, input }) => {
|
|
3029
3035
|
if (revoked) return;
|
|
3030
3036
|
this.handleNewMessage(agent, message, input ? effectiveInput(input) : void 0);
|
|
3037
|
+
},
|
|
3038
|
+
onMessagesChanged: ({ messages, input }) => {
|
|
3039
|
+
if (revoked) return;
|
|
3040
|
+
if (!input) this.pruneRawEvents(agent.agentId, agent.threadId, messages);
|
|
3031
3041
|
}
|
|
3032
3042
|
});
|
|
3033
3043
|
this.agentSubscriptions.set(agentId, () => {
|
|
@@ -3045,6 +3055,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3045
3055
|
unsubscribe();
|
|
3046
3056
|
this.agentSubscriptions.delete(agentId);
|
|
3047
3057
|
}
|
|
3058
|
+
this.rawEventByMessage.delete(agentId);
|
|
3048
3059
|
}
|
|
3049
3060
|
/**
|
|
3050
3061
|
* Get state for a specific run
|
|
@@ -3064,6 +3075,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3064
3075
|
return (_this$messageToRun$ge = this.messageToRun.get(agentId)) === null || _this$messageToRun$ge === void 0 || (_this$messageToRun$ge = _this$messageToRun$ge.get(threadId)) === null || _this$messageToRun$ge === void 0 ? void 0 : _this$messageToRun$ge.get(messageId);
|
|
3065
3076
|
}
|
|
3066
3077
|
/**
|
|
3078
|
+
* Get direct text-start metadata associated with a message.
|
|
3079
|
+
*/
|
|
3080
|
+
getRawEventForMessage(agentId, threadId, messageId) {
|
|
3081
|
+
var _this$rawEventByMessa;
|
|
3082
|
+
const rawEvent = (_this$rawEventByMessa = this.rawEventByMessage.get(agentId)) === null || _this$rawEventByMessa === void 0 || (_this$rawEventByMessa = _this$rawEventByMessa.get(threadId)) === null || _this$rawEventByMessa === void 0 ? void 0 : _this$rawEventByMessa.get(messageId);
|
|
3083
|
+
return rawEvent === void 0 ? void 0 : (0, _ag_ui_client.structuredClone_)(rawEvent);
|
|
3084
|
+
}
|
|
3085
|
+
/**
|
|
3067
3086
|
* Get all states for an agent's thread
|
|
3068
3087
|
*/
|
|
3069
3088
|
getStatesForThread(agentId, threadId) {
|
|
@@ -3117,12 +3136,34 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3117
3136
|
this.saveState(agent.agentId, threadId, runId, state);
|
|
3118
3137
|
}
|
|
3119
3138
|
/**
|
|
3139
|
+
* Capture only defined metadata from a normalized direct text-start event.
|
|
3140
|
+
*/
|
|
3141
|
+
handleTextMessageStart(agent, event, input) {
|
|
3142
|
+
if (!agent.agentId) return;
|
|
3143
|
+
const { threadId } = input;
|
|
3144
|
+
if (event.rawEvent === void 0) {
|
|
3145
|
+
var _this$rawEventByMessa2, _this$rawEventByMessa4;
|
|
3146
|
+
const threadEvents = (_this$rawEventByMessa2 = this.rawEventByMessage.get(agent.agentId)) === null || _this$rawEventByMessa2 === void 0 ? void 0 : _this$rawEventByMessa2.get(threadId);
|
|
3147
|
+
threadEvents === null || threadEvents === void 0 || threadEvents.delete(event.messageId);
|
|
3148
|
+
if ((threadEvents === null || threadEvents === void 0 ? void 0 : threadEvents.size) === 0) {
|
|
3149
|
+
var _this$rawEventByMessa3;
|
|
3150
|
+
(_this$rawEventByMessa3 = this.rawEventByMessage.get(agent.agentId)) === null || _this$rawEventByMessa3 === void 0 || _this$rawEventByMessa3.delete(threadId);
|
|
3151
|
+
}
|
|
3152
|
+
if (((_this$rawEventByMessa4 = this.rawEventByMessage.get(agent.agentId)) === null || _this$rawEventByMessa4 === void 0 ? void 0 : _this$rawEventByMessa4.size) === 0) this.rawEventByMessage.delete(agent.agentId);
|
|
3153
|
+
return;
|
|
3154
|
+
}
|
|
3155
|
+
if (!this.rawEventByMessage.has(agent.agentId)) this.rawEventByMessage.set(agent.agentId, /* @__PURE__ */ new Map());
|
|
3156
|
+
const agentEvents = this.rawEventByMessage.get(agent.agentId);
|
|
3157
|
+
if (!agentEvents.has(threadId)) agentEvents.set(threadId, /* @__PURE__ */ new Map());
|
|
3158
|
+
agentEvents.get(threadId).set(event.messageId, event.rawEvent);
|
|
3159
|
+
}
|
|
3160
|
+
/**
|
|
3120
3161
|
* Handle messages snapshot event
|
|
3121
3162
|
*/
|
|
3122
3163
|
handleMessagesSnapshot(agent, event, input, messages) {
|
|
3123
3164
|
if (!agent.agentId) return;
|
|
3124
3165
|
const { threadId, runId } = input;
|
|
3125
|
-
for (const message of event.messages) this.associateMessageWithRun(agent.agentId, threadId, message.id, runId);
|
|
3166
|
+
for (const message of event.messages) if (this.getRunIdForMessage(agent.agentId, threadId, message.id) === void 0) this.associateMessageWithRun(agent.agentId, threadId, message.id, runId);
|
|
3126
3167
|
}
|
|
3127
3168
|
/**
|
|
3128
3169
|
* Handle new message event
|
|
@@ -3157,20 +3198,36 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3157
3198
|
if (!agentMessages.has(threadId)) agentMessages.set(threadId, /* @__PURE__ */ new Map());
|
|
3158
3199
|
agentMessages.get(threadId).set(messageId, runId);
|
|
3159
3200
|
}
|
|
3201
|
+
pruneRawEvents(agentId, fallbackThreadId, messages, input) {
|
|
3202
|
+
var _input$threadId, _this$rawEventByMessa5, _this$rawEventByMessa7;
|
|
3203
|
+
const threadId = (_input$threadId = input === null || input === void 0 ? void 0 : input.threadId) !== null && _input$threadId !== void 0 ? _input$threadId : fallbackThreadId;
|
|
3204
|
+
if (!threadId) return;
|
|
3205
|
+
const threadEvents = (_this$rawEventByMessa5 = this.rawEventByMessage.get(agentId)) === null || _this$rawEventByMessa5 === void 0 ? void 0 : _this$rawEventByMessa5.get(threadId);
|
|
3206
|
+
if (!threadEvents) return;
|
|
3207
|
+
const messageIds = new Set(messages.map((message) => message.id));
|
|
3208
|
+
for (const messageId of threadEvents.keys()) if (!messageIds.has(messageId)) threadEvents.delete(messageId);
|
|
3209
|
+
if (threadEvents.size === 0) {
|
|
3210
|
+
var _this$rawEventByMessa6;
|
|
3211
|
+
(_this$rawEventByMessa6 = this.rawEventByMessage.get(agentId)) === null || _this$rawEventByMessa6 === void 0 || _this$rawEventByMessa6.delete(threadId);
|
|
3212
|
+
}
|
|
3213
|
+
if (((_this$rawEventByMessa7 = this.rawEventByMessage.get(agentId)) === null || _this$rawEventByMessa7 === void 0 ? void 0 : _this$rawEventByMessa7.size) === 0) this.rawEventByMessage.delete(agentId);
|
|
3214
|
+
}
|
|
3160
3215
|
/**
|
|
3161
3216
|
* Clear all state for an agent
|
|
3162
3217
|
*/
|
|
3163
3218
|
clearAgentState(agentId) {
|
|
3164
3219
|
this.stateByRun.delete(agentId);
|
|
3165
3220
|
this.messageToRun.delete(agentId);
|
|
3221
|
+
this.rawEventByMessage.delete(agentId);
|
|
3166
3222
|
}
|
|
3167
3223
|
/**
|
|
3168
3224
|
* Clear all state for a thread
|
|
3169
3225
|
*/
|
|
3170
3226
|
clearThreadState(agentId, threadId) {
|
|
3171
|
-
var _this$stateByRun$get4, _this$messageToRun$ge2;
|
|
3227
|
+
var _this$stateByRun$get4, _this$messageToRun$ge2, _this$rawEventByMessa8;
|
|
3172
3228
|
(_this$stateByRun$get4 = this.stateByRun.get(agentId)) === null || _this$stateByRun$get4 === void 0 || _this$stateByRun$get4.delete(threadId);
|
|
3173
3229
|
(_this$messageToRun$ge2 = this.messageToRun.get(agentId)) === null || _this$messageToRun$ge2 === void 0 || _this$messageToRun$ge2.delete(threadId);
|
|
3230
|
+
(_this$rawEventByMessa8 = this.rawEventByMessage.get(agentId)) === null || _this$rawEventByMessa8 === void 0 || _this$rawEventByMessa8.delete(threadId);
|
|
3174
3231
|
}
|
|
3175
3232
|
};
|
|
3176
3233
|
|
|
@@ -5016,6 +5073,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5016
5073
|
getRunIdForMessage(agentId, threadId, messageId) {
|
|
5017
5074
|
return this.stateManager.getRunIdForMessage(agentId, threadId, messageId);
|
|
5018
5075
|
}
|
|
5076
|
+
getRawEventForMessage(agentId, threadId, messageId) {
|
|
5077
|
+
return this.stateManager.getRawEventForMessage(agentId, threadId, messageId);
|
|
5078
|
+
}
|
|
5019
5079
|
getRunIdsForThread(agentId, threadId) {
|
|
5020
5080
|
return this.stateManager.getRunIdsForThread(agentId, threadId);
|
|
5021
5081
|
}
|
|
@@ -5301,6 +5361,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5301
5361
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
5302
5362
|
}
|
|
5303
5363
|
/**
|
|
5364
|
+
* REST `/threads` is agent-scoped. The Phoenix `user_meta` channel is not.
|
|
5365
|
+
* Drop live upserts that belong to a different agent, or one Inspector
|
|
5366
|
+
* `all-agents` flatten shows the same thread twice until a hard refresh.
|
|
5367
|
+
*/
|
|
5368
|
+
function threadMetadataTargetsAgent(payload, agentId) {
|
|
5369
|
+
if (!agentId || payload.operation === "deleted") return true;
|
|
5370
|
+
const threadAgentId = optionalString(payload.thread.agentId);
|
|
5371
|
+
return !threadAgentId || threadAgentId === agentId;
|
|
5372
|
+
}
|
|
5373
|
+
/**
|
|
5304
5374
|
* Converts gateway run-activity payloads into the internal TypeScript shape.
|
|
5305
5375
|
*/
|
|
5306
5376
|
function normalizeThreadRunActivityNotification(payload) {
|
|
@@ -5733,13 +5803,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5733
5803
|
}))), ɵobservePhoenixJoinOutcome$(channel$).pipe((0, rxjs_operators.filter)((outcome) => outcome.type !== "joined"), (0, rxjs_operators.map)((outcome) => outcome.type === "timeout" ? threadSocketEvents.joinTimedOut({ sessionId: action.sessionId }) : threadSocketEvents.joinFailed({ sessionId: action.sessionId })))).pipe((0, rxjs_operators.takeUntil)((0, rxjs.merge)(shutdown$, fatalSocketShutdown$)));
|
|
5734
5804
|
});
|
|
5735
5805
|
}))),
|
|
5736
|
-
createEffect((actions$, state$) => actions$.pipe(ofType(threadSocketEvents.metadataReceived), (0, rxjs_operators.withLatestFrom)(state$), (0, rxjs_operators.filter)(([action, state]) =>
|
|
5806
|
+
createEffect((actions$, state$) => actions$.pipe(ofType(threadSocketEvents.metadataReceived), (0, rxjs_operators.withLatestFrom)(state$), (0, rxjs_operators.filter)(([action, state]) => {
|
|
5737
5807
|
var _state$context4;
|
|
5808
|
+
return action.sessionId === state.sessionId && threadMetadataTargetsAgent(action.payload, (_state$context4 = state.context) === null || _state$context4 === void 0 ? void 0 : _state$context4.agentId);
|
|
5809
|
+
}), (0, rxjs_operators.map)(([action, state]) => {
|
|
5810
|
+
var _state$context5;
|
|
5738
5811
|
if (action.payload.operation === "deleted") return threadDomainEvents.threadDeleted({
|
|
5739
5812
|
sessionId: action.sessionId,
|
|
5740
5813
|
threadId: action.payload.deleted.id
|
|
5741
5814
|
});
|
|
5742
|
-
if (action.payload.operation === "archived" && !((_state$
|
|
5815
|
+
if (action.payload.operation === "archived" && !((_state$context5 = state.context) === null || _state$context5 === void 0 ? void 0 : _state$context5.includeArchived)) return threadDomainEvents.threadDeleted({
|
|
5743
5816
|
sessionId: action.sessionId,
|
|
5744
5817
|
threadId: action.payload.threadId
|
|
5745
5818
|
});
|