@kapeta/local-cluster-service 0.70.11 → 0.70.12
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/CHANGELOG.md +7 -0
- package/dist/cjs/src/storm/PageGenerator.js +7 -2
- package/dist/cjs/src/storm/routes.js +0 -38
- package/dist/esm/src/storm/PageGenerator.js +7 -2
- package/dist/esm/src/storm/routes.js +0 -38
- package/package.json +1 -1
- package/src/storm/PageGenerator.ts +9 -3
- package/src/storm/routes.ts +0 -39
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.70.12](https://github.com/kapetacom/local-cluster-service/compare/v0.70.11...v0.70.12) (2024-09-13)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* wait for image resources on disk [CORE-3467] ([#249](https://github.com/kapetacom/local-cluster-service/issues/249)) ([934d9f4](https://github.com/kapetacom/local-cluster-service/commit/934d9f400ae917559a4ede08d3f3e5644b3b5053))
|
7
|
+
|
1
8
|
## [0.70.11](https://github.com/kapetacom/local-cluster-service/compare/v0.70.10...v0.70.11) (2024-09-12)
|
2
9
|
|
3
10
|
|
@@ -242,13 +242,18 @@ class PageQueue extends node_events_1.EventEmitter {
|
|
242
242
|
}
|
243
243
|
this.images.set(prompt.url, prompt.description);
|
244
244
|
const result = await stormClient_1.stormClient.createImage(`Create an image for the url "${prompt.url}" with this description: ${prompt.description}`.trim());
|
245
|
-
|
245
|
+
let imageEvent = null;
|
246
246
|
result.on('data', (event) => {
|
247
247
|
if (event.type === 'IMAGE') {
|
248
|
-
|
248
|
+
imageEvent = event;
|
249
249
|
}
|
250
250
|
});
|
251
251
|
await result.waitForDone();
|
252
|
+
if (!imageEvent) {
|
253
|
+
throw new Error('No image was generated');
|
254
|
+
}
|
255
|
+
await (0, page_utils_1.writeImageToDisk)(this.systemId, imageEvent, prompt);
|
256
|
+
this.emit('image', imageEvent, prompt);
|
252
257
|
}
|
253
258
|
async generate(prompt, conversationId) {
|
254
259
|
const screenStream = await stormClient_1.stormClient.createUIPage(prompt, conversationId);
|
@@ -118,18 +118,6 @@ router.post('/ui/screen', async (req, res) => {
|
|
118
118
|
});
|
119
119
|
const promises = [];
|
120
120
|
queue.on('page', (data) => (systemId ? sendPageEvent(systemId, data, res) : undefined));
|
121
|
-
queue.on('image', async (screenData, prompt) => {
|
122
|
-
if (!systemId) {
|
123
|
-
return;
|
124
|
-
}
|
125
|
-
try {
|
126
|
-
await handleImageEvent(systemId, screenData, prompt);
|
127
|
-
}
|
128
|
-
catch (e) {
|
129
|
-
console.error('Failed to handle image event', e);
|
130
|
-
throw e;
|
131
|
-
}
|
132
|
-
});
|
133
121
|
queue.on('error', (err) => {
|
134
122
|
console.error('Failed to process page', err);
|
135
123
|
sendError(err, res);
|
@@ -212,15 +200,6 @@ router.post('/:handle/ui/iterative', async (req, res) => {
|
|
212
200
|
pageQueue.cancel();
|
213
201
|
});
|
214
202
|
pageQueue.on('page', (screenData) => sendPageEvent(landingPagesStream.getConversationId(), screenData, res));
|
215
|
-
pageQueue.on('image', async (screenData, prompt) => {
|
216
|
-
try {
|
217
|
-
await handleImageEvent(landingPagesStream.getConversationId(), screenData, prompt);
|
218
|
-
}
|
219
|
-
catch (e) {
|
220
|
-
console.error('Failed to handle image event', e);
|
221
|
-
throw e;
|
222
|
-
}
|
223
|
-
});
|
224
203
|
pageQueue.on('event', (screenData) => {
|
225
204
|
sendEvent(res, screenData);
|
226
205
|
});
|
@@ -374,15 +353,6 @@ router.post('/:handle/ui', async (req, res) => {
|
|
374
353
|
queue.cancel();
|
375
354
|
});
|
376
355
|
queue.on('page', (screenData) => sendPageEvent(outerConversationId, screenData, res));
|
377
|
-
queue.on('image', async (screenData, prompt) => {
|
378
|
-
try {
|
379
|
-
await handleImageEvent(outerConversationId, screenData, prompt);
|
380
|
-
}
|
381
|
-
catch (e) {
|
382
|
-
console.error('Failed to handle image event', e);
|
383
|
-
throw e;
|
384
|
-
}
|
385
|
-
});
|
386
356
|
queue.on('event', (screenData) => {
|
387
357
|
sendEvent(res, screenData);
|
388
358
|
});
|
@@ -722,12 +692,4 @@ async function sendPageEvent(mainConversationId, data, res) {
|
|
722
692
|
}
|
723
693
|
sendEvent(res, convertPageEvent(data, data.payload.conversationId, mainConversationId));
|
724
694
|
}
|
725
|
-
async function handleImageEvent(mainConversationId, data, prompt) {
|
726
|
-
try {
|
727
|
-
await (0, page_utils_1.writeImageToDisk)(mainConversationId, data, prompt);
|
728
|
-
}
|
729
|
-
catch (err) {
|
730
|
-
console.error('Failed to write image to disk', err);
|
731
|
-
}
|
732
|
-
}
|
733
695
|
exports.default = router;
|
@@ -242,13 +242,18 @@ class PageQueue extends node_events_1.EventEmitter {
|
|
242
242
|
}
|
243
243
|
this.images.set(prompt.url, prompt.description);
|
244
244
|
const result = await stormClient_1.stormClient.createImage(`Create an image for the url "${prompt.url}" with this description: ${prompt.description}`.trim());
|
245
|
-
|
245
|
+
let imageEvent = null;
|
246
246
|
result.on('data', (event) => {
|
247
247
|
if (event.type === 'IMAGE') {
|
248
|
-
|
248
|
+
imageEvent = event;
|
249
249
|
}
|
250
250
|
});
|
251
251
|
await result.waitForDone();
|
252
|
+
if (!imageEvent) {
|
253
|
+
throw new Error('No image was generated');
|
254
|
+
}
|
255
|
+
await (0, page_utils_1.writeImageToDisk)(this.systemId, imageEvent, prompt);
|
256
|
+
this.emit('image', imageEvent, prompt);
|
252
257
|
}
|
253
258
|
async generate(prompt, conversationId) {
|
254
259
|
const screenStream = await stormClient_1.stormClient.createUIPage(prompt, conversationId);
|
@@ -118,18 +118,6 @@ router.post('/ui/screen', async (req, res) => {
|
|
118
118
|
});
|
119
119
|
const promises = [];
|
120
120
|
queue.on('page', (data) => (systemId ? sendPageEvent(systemId, data, res) : undefined));
|
121
|
-
queue.on('image', async (screenData, prompt) => {
|
122
|
-
if (!systemId) {
|
123
|
-
return;
|
124
|
-
}
|
125
|
-
try {
|
126
|
-
await handleImageEvent(systemId, screenData, prompt);
|
127
|
-
}
|
128
|
-
catch (e) {
|
129
|
-
console.error('Failed to handle image event', e);
|
130
|
-
throw e;
|
131
|
-
}
|
132
|
-
});
|
133
121
|
queue.on('error', (err) => {
|
134
122
|
console.error('Failed to process page', err);
|
135
123
|
sendError(err, res);
|
@@ -212,15 +200,6 @@ router.post('/:handle/ui/iterative', async (req, res) => {
|
|
212
200
|
pageQueue.cancel();
|
213
201
|
});
|
214
202
|
pageQueue.on('page', (screenData) => sendPageEvent(landingPagesStream.getConversationId(), screenData, res));
|
215
|
-
pageQueue.on('image', async (screenData, prompt) => {
|
216
|
-
try {
|
217
|
-
await handleImageEvent(landingPagesStream.getConversationId(), screenData, prompt);
|
218
|
-
}
|
219
|
-
catch (e) {
|
220
|
-
console.error('Failed to handle image event', e);
|
221
|
-
throw e;
|
222
|
-
}
|
223
|
-
});
|
224
203
|
pageQueue.on('event', (screenData) => {
|
225
204
|
sendEvent(res, screenData);
|
226
205
|
});
|
@@ -374,15 +353,6 @@ router.post('/:handle/ui', async (req, res) => {
|
|
374
353
|
queue.cancel();
|
375
354
|
});
|
376
355
|
queue.on('page', (screenData) => sendPageEvent(outerConversationId, screenData, res));
|
377
|
-
queue.on('image', async (screenData, prompt) => {
|
378
|
-
try {
|
379
|
-
await handleImageEvent(outerConversationId, screenData, prompt);
|
380
|
-
}
|
381
|
-
catch (e) {
|
382
|
-
console.error('Failed to handle image event', e);
|
383
|
-
throw e;
|
384
|
-
}
|
385
|
-
});
|
386
356
|
queue.on('event', (screenData) => {
|
387
357
|
sendEvent(res, screenData);
|
388
358
|
});
|
@@ -722,12 +692,4 @@ async function sendPageEvent(mainConversationId, data, res) {
|
|
722
692
|
}
|
723
693
|
sendEvent(res, convertPageEvent(data, data.payload.conversationId, mainConversationId));
|
724
694
|
}
|
725
|
-
async function handleImageEvent(mainConversationId, data, prompt) {
|
726
|
-
try {
|
727
|
-
await (0, page_utils_1.writeImageToDisk)(mainConversationId, data, prompt);
|
728
|
-
}
|
729
|
-
catch (err) {
|
730
|
-
console.error('Failed to write image to disk', err);
|
731
|
-
}
|
732
|
-
}
|
733
695
|
exports.default = router;
|
package/package.json
CHANGED
@@ -9,7 +9,7 @@ import { ReferenceClassification, StormEvent, StormEventPage, StormImage, UIShel
|
|
9
9
|
import { EventEmitter } from 'node:events';
|
10
10
|
import PQueue from 'p-queue';
|
11
11
|
|
12
|
-
import { hasPageOnDisk, normalizePath } from './page-utils';
|
12
|
+
import { hasPageOnDisk, normalizePath, writeImageToDisk } from './page-utils';
|
13
13
|
import * as mimetypes from 'mime-types';
|
14
14
|
|
15
15
|
export interface ImagePrompt {
|
@@ -270,14 +270,20 @@ export class PageQueue extends EventEmitter {
|
|
270
270
|
`Create an image for the url "${prompt.url}" with this description: ${prompt.description}`.trim()
|
271
271
|
);
|
272
272
|
|
273
|
-
|
273
|
+
let imageEvent: StormImage | null = null;
|
274
274
|
result.on('data', (event: StormEvent) => {
|
275
275
|
if (event.type === 'IMAGE') {
|
276
|
-
|
276
|
+
imageEvent = event;
|
277
277
|
}
|
278
278
|
});
|
279
279
|
|
280
280
|
await result.waitForDone();
|
281
|
+
if (!imageEvent) {
|
282
|
+
throw new Error('No image was generated');
|
283
|
+
}
|
284
|
+
|
285
|
+
await writeImageToDisk(this.systemId, imageEvent, prompt);
|
286
|
+
this.emit('image', imageEvent, prompt);
|
281
287
|
}
|
282
288
|
|
283
289
|
public async generate(prompt: UIPagePrompt, conversationId: string) {
|
package/src/storm/routes.ts
CHANGED
@@ -41,7 +41,6 @@ import {
|
|
41
41
|
resolveReadPath,
|
42
42
|
SystemIdHeader,
|
43
43
|
writeAssetToDisk,
|
44
|
-
writeImageToDisk,
|
45
44
|
writePageToDisk,
|
46
45
|
} from './page-utils';
|
47
46
|
import { UIServer } from './UIServer';
|
@@ -165,18 +164,6 @@ router.post('/ui/screen', async (req: KapetaBodyRequest, res: Response) => {
|
|
165
164
|
|
166
165
|
queue.on('page', (data) => (systemId ? sendPageEvent(systemId, data, res) : undefined));
|
167
166
|
|
168
|
-
queue.on('image', async (screenData, prompt) => {
|
169
|
-
if (!systemId) {
|
170
|
-
return;
|
171
|
-
}
|
172
|
-
try {
|
173
|
-
await handleImageEvent(systemId, screenData, prompt);
|
174
|
-
} catch (e) {
|
175
|
-
console.error('Failed to handle image event', e);
|
176
|
-
throw e;
|
177
|
-
}
|
178
|
-
});
|
179
|
-
|
180
167
|
queue.on('error', (err) => {
|
181
168
|
console.error('Failed to process page', err);
|
182
169
|
sendError(err as any, res);
|
@@ -275,15 +262,6 @@ router.post('/:handle/ui/iterative', async (req: KapetaBodyRequest, res: Respons
|
|
275
262
|
sendPageEvent(landingPagesStream.getConversationId(), screenData, res)
|
276
263
|
);
|
277
264
|
|
278
|
-
pageQueue.on('image', async (screenData, prompt) => {
|
279
|
-
try {
|
280
|
-
await handleImageEvent(landingPagesStream.getConversationId(), screenData, prompt);
|
281
|
-
} catch (e) {
|
282
|
-
console.error('Failed to handle image event', e);
|
283
|
-
throw e;
|
284
|
-
}
|
285
|
-
});
|
286
|
-
|
287
265
|
pageQueue.on('event', (screenData: StormEvent) => {
|
288
266
|
sendEvent(res, screenData);
|
289
267
|
});
|
@@ -470,15 +448,6 @@ router.post('/:handle/ui', async (req: KapetaBodyRequest, res: Response) => {
|
|
470
448
|
|
471
449
|
queue.on('page', (screenData: StormEventPage) => sendPageEvent(outerConversationId, screenData, res));
|
472
450
|
|
473
|
-
queue.on('image', async (screenData, prompt) => {
|
474
|
-
try {
|
475
|
-
await handleImageEvent(outerConversationId, screenData, prompt);
|
476
|
-
} catch (e) {
|
477
|
-
console.error('Failed to handle image event', e);
|
478
|
-
throw e;
|
479
|
-
}
|
480
|
-
});
|
481
|
-
|
482
451
|
queue.on('event', (screenData: StormEvent) => {
|
483
452
|
sendEvent(res, screenData);
|
484
453
|
});
|
@@ -883,12 +852,4 @@ async function sendPageEvent(mainConversationId: string, data: StormEventPage, r
|
|
883
852
|
sendEvent(res, convertPageEvent(data, data.payload.conversationId, mainConversationId));
|
884
853
|
}
|
885
854
|
|
886
|
-
async function handleImageEvent(mainConversationId: string, data: StormImage, prompt: ImagePrompt) {
|
887
|
-
try {
|
888
|
-
await writeImageToDisk(mainConversationId, data, prompt);
|
889
|
-
} catch (err) {
|
890
|
-
console.error('Failed to write image to disk', err);
|
891
|
-
}
|
892
|
-
}
|
893
|
-
|
894
855
|
export default router;
|