feat(compare): add workspace response collector

This commit is contained in:
CoderLambert
2026-09-14 10:29:24 +08:00
parent 6853b593d0
commit ca850b3b67
@@ -0,0 +1,26 @@
const pendingCollections = new Map();
export function collectFromProviders({ providers, postToFrame }) {
const requestId = crypto.randomUUID();
const promise = Promise.all(
providers.map((providerId) => new Promise((resolve) => {
pendingCollections.set(`${requestId}:${providerId}`, resolve);
postToFrame(providerId, {
type: "AI_PARALLEL_COLLECT_RESPONSE",
requestId
});
}))
);
return promise;
}
export function resolveCollectedResponse(message) {
const key = `${message.requestId}:${message.providerId}`;
const resolve = pendingCollections.get(key);
if (!resolve) return false;
pendingCollections.delete(key);
resolve(message.response || null);
return true;
}