@agents24/react 0.2.27 → 0.2.28
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.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +10 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -929,11 +929,11 @@ function reconcileModelTurnParts(parts, event) {
|
|
|
929
929
|
const terminal = eventName === "run.completed" || eventName === "run.failed" || eventName === "run.cancelled";
|
|
930
930
|
const modelTurnId = typeof payload.model_turn_id === "string" ? payload.model_turn_id : null;
|
|
931
931
|
let next = parts;
|
|
932
|
-
if (
|
|
932
|
+
if (["run.snapshot", "run.waiting", "run.interrupted", "run.paused", "assistant.completed"].includes(eventName) || terminal) {
|
|
933
933
|
next = next.filter((part) => part.kind !== "model-turn");
|
|
934
934
|
} else if (eventName === "assistant.delta" && typeof payload.content === "string" && payload.content) {
|
|
935
935
|
next = next.filter((part) => part.kind !== "model-turn" || part.turnKind !== "agent");
|
|
936
|
-
} else if (eventName
|
|
936
|
+
} else if (eventName === "tool.started") {
|
|
937
937
|
next = next.filter((part) => part.kind !== "model-turn" || part.turnKind !== "agent");
|
|
938
938
|
} else if ((eventName === "model.turn.failed" || eventName === "model.turn.completed" && payload.outcome !== "tool_calls") && modelTurnId) {
|
|
939
939
|
next = next.filter((part) => part.kind !== "model-turn" || part.modelTurnId !== modelTurnId);
|
|
@@ -984,12 +984,24 @@ function applyCanonicalRuntimeEvent(state, event) {
|
|
|
984
984
|
const distinctSegment = Boolean(segmentId && segmentId !== `${runId}:0`);
|
|
985
985
|
const messageId = distinctSegment ? `${runId || "run"}-assistant-${segmentId}` : state.streamingMessageId || `${runId || "run"}-assistant`;
|
|
986
986
|
const terminal = eventName === "run.completed" || eventName === "run.failed" || eventName === "run.cancelled";
|
|
987
|
-
const
|
|
988
|
-
const
|
|
987
|
+
const snapshotStatus = eventName === "run.snapshot" ? event.payload?.status : null;
|
|
988
|
+
const paused = eventName === "run.paused" || snapshotStatus === "paused" || projection.parts.some((part) => part.kind === "hitl" && part.status === "pending");
|
|
989
|
+
const retainedSuspension = !eventName.startsWith("run.") && !["model.turn.started", "assistant.delta", "tool.started"].includes(eventName) && (state.runState === "waiting" || state.runState === "interrupted") ? state.runState : null;
|
|
990
|
+
const suspension = eventName === "run.waiting" || snapshotStatus === "waiting" ? "waiting" : eventName === "run.interrupted" || snapshotStatus === "interrupted" ? "interrupted" : retainedSuspension;
|
|
989
991
|
const cancelling = eventName === "run.cancelling" || String(event.payload?.status || "") === "cancelling";
|
|
990
992
|
const existing = state.messages.find((message) => message.role === "assistant" && message.id === messageId) || (!distinctSegment ? state.messages.find((message) => message.role === "assistant" && Boolean(runId && message.runId === runId)) : void 0);
|
|
991
993
|
const sealedAfterTerminal = responseCompleted && !state.activeRunId && ["completed", "failed", "cancelled"].includes(state.runState) && existing?.runId === runId;
|
|
992
994
|
const payload = event.payload || {};
|
|
995
|
+
const wait = payload.capacity_wait;
|
|
996
|
+
const capacityWait = wait && typeof wait.reason === "string" ? {
|
|
997
|
+
reason: wait.reason,
|
|
998
|
+
...typeof wait.retry_at === "string" ? { retryAt: wait.retry_at } : {},
|
|
999
|
+
...typeof wait.deadline === "string" ? { deadline: wait.deadline } : {}
|
|
1000
|
+
} : state.runState === "waiting" ? existing?.activity?.capacityWait : void 0;
|
|
1001
|
+
const activity = terminal || paused || responseCompleted || existing?.responseCompletion ? void 0 : {
|
|
1002
|
+
status: suspension || (cancelling ? "cancelling" : "running"),
|
|
1003
|
+
...suspension === "waiting" && capacityWait ? { capacityWait } : {}
|
|
1004
|
+
};
|
|
993
1005
|
const eventThreadId = typeof payload.thread_id === "string" && payload.thread_id.trim() ? payload.thread_id.trim() : null;
|
|
994
1006
|
const contextApplies = (!state.activeThreadId || !eventThreadId || eventThreadId === state.activeThreadId) && (!state.activeRunId || !runId || runId === state.activeRunId);
|
|
995
1007
|
const contextPayload = payload.context_window && typeof payload.context_window === "object" ? { ...payload.context_window, run_id: runId } : payload.context_window;
|
|
@@ -1024,6 +1036,7 @@ function applyCanonicalRuntimeEvent(state, event) {
|
|
|
1024
1036
|
content,
|
|
1025
1037
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1026
1038
|
isFinal: terminal || responseCompleted,
|
|
1039
|
+
activity,
|
|
1027
1040
|
responseCompletion: completion,
|
|
1028
1041
|
parts
|
|
1029
1042
|
}),
|
|
@@ -1033,6 +1046,7 @@ function applyCanonicalRuntimeEvent(state, event) {
|
|
|
1033
1046
|
content,
|
|
1034
1047
|
parts,
|
|
1035
1048
|
isFinal: terminal || responseCompleted || message.isFinal,
|
|
1049
|
+
activity,
|
|
1036
1050
|
responseCompletion: completion || message.responseCompletion
|
|
1037
1051
|
})
|
|
1038
1052
|
});
|
|
@@ -1042,10 +1056,12 @@ function applyCanonicalRuntimeEvent(state, event) {
|
|
|
1042
1056
|
return {
|
|
1043
1057
|
...message,
|
|
1044
1058
|
isFinal: true,
|
|
1059
|
+
activity: void 0,
|
|
1045
1060
|
responseCompletion: completion,
|
|
1046
1061
|
...segment ? { durableId: segment.message_id } : {}
|
|
1047
1062
|
};
|
|
1048
1063
|
});
|
|
1064
|
+
if (terminal || distinctSegment) messages = messages.map((message) => message.role === "assistant" && message.runId === runId && message.activity && (terminal || message.id !== (existing?.id || messageId)) ? { ...message, activity: void 0 } : message);
|
|
1049
1065
|
const activityStatus = suspension || (paused ? "paused" : cancelling ? "cancelling" : "running");
|
|
1050
1066
|
const terminalThread = runId && !sealedAfterTerminal ? {
|
|
1051
1067
|
active_run: terminal ? null : {
|