731
732
case ActionType.ChatInputCompleted: {
733
>
const activeTurn = state.activeTurn;
reducer.ts
734
>
const existing = activeTurn
735
>
? findOpenInputRequestPart(activeTurn.responseParts, action.requestId)
736
: undefined;
738
return state;
739
}
740
>
const { index, part } = existing;
reducer.ts
741
>
const finalAnswers = { ...(part.request.answers ?? {}), ...(action.answers ?? {}) };
742
>
const responseParts = [...activeTurn.responseParts];
743
>
responseParts[index] = {
744
>
...part,
745
>
request: {
746
>
...part.request,
747
>
answers: Object.keys(finalAnswers).length > 0 ? finalAnswers : undefined,
748
>
},
749
>
response: action.response,
750
>
};
751
>
const next: ChatState = {
752
>
...state,
753
>
activeTurn: {
754
>
...activeTurn,
755
>
responseParts,
756
>
},
757
>
};
758
>
return {
759
>
...next,
760
>
status: summaryStatus(next),
761
>
modifiedAt: new Date(Date.now()).toISOString(),
762
>
};
763
>
}
764
765
// ── Pending Messages ──────────────────────────────────────────────────