Proposed fix
This commit is contained in:
@@ -89,15 +89,16 @@ export async function executor(
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
ui.write("proposed-change", {
|
const msg = ui.create("proposed-change", {
|
||||||
toolCallId,
|
toolCallId,
|
||||||
change: updateFileContents,
|
change: updateFileContents,
|
||||||
planItem,
|
planItem,
|
||||||
});
|
});
|
||||||
|
msg.additional_kwargs["message_id"] = aiMessage.id;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
messages: [aiMessage],
|
messages: [aiMessage],
|
||||||
ui: ui.collect as OpenCodeUpdate["ui"],
|
ui: [msg],
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,11 +55,12 @@ export async function planner(
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
ui.write("code-plan", {
|
const msg = ui.create("code-plan", {
|
||||||
toolCallId,
|
toolCallId,
|
||||||
executedPlans,
|
executedPlans,
|
||||||
remainingPlans,
|
remainingPlans,
|
||||||
});
|
});
|
||||||
|
msg.additional_kwargs["message_id"] = aiMessage.id;
|
||||||
|
|
||||||
const toolMessage: ToolMessage = {
|
const toolMessage: ToolMessage = {
|
||||||
type: "tool",
|
type: "tool",
|
||||||
@@ -70,7 +71,7 @@ export async function planner(
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
messages: [aiMessage, toolMessage],
|
messages: [aiMessage, toolMessage],
|
||||||
ui: ui.collect as OpenCodeUpdate["ui"],
|
ui: [msg],
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,29 +18,28 @@ function CustomComponent({
|
|||||||
const [apiUrl] = useQueryParam("apiUrl", StringParam);
|
const [apiUrl] = useQueryParam("apiUrl", StringParam);
|
||||||
const meta = thread.getMessagesMetadata(message);
|
const meta = thread.getMessagesMetadata(message);
|
||||||
const seenState = meta?.firstSeenState;
|
const seenState = meta?.firstSeenState;
|
||||||
const customComponent = seenState?.values.ui
|
const customComponents = seenState?.values.ui
|
||||||
?.slice()
|
?.slice()
|
||||||
.reverse()
|
.filter(
|
||||||
.find(
|
|
||||||
({ additional_kwargs }) =>
|
({ additional_kwargs }) =>
|
||||||
additional_kwargs.run_id === seenState.metadata?.run_id,
|
additional_kwargs.run_id === seenState.metadata?.run_id &&
|
||||||
|
(!additional_kwargs.message_id ||
|
||||||
|
additional_kwargs.message_id === message.id),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!customComponent) {
|
if (!customComponents?.length) return null;
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div key={message.id}>
|
<div key={message.id}>
|
||||||
{customComponent && (
|
{customComponents.map((customComponent) => (
|
||||||
<LoadExternalComponent
|
<LoadExternalComponent
|
||||||
|
key={customComponent.id}
|
||||||
apiUrl={apiUrl ?? undefined}
|
apiUrl={apiUrl ?? undefined}
|
||||||
assistantId="agent"
|
assistantId="agent"
|
||||||
stream={thread}
|
stream={thread}
|
||||||
message={customComponent}
|
message={customComponent}
|
||||||
meta={{ ui: customComponent }}
|
meta={{ ui: customComponent }}
|
||||||
/>
|
/>
|
||||||
)}
|
))}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user