agents-relay 1.0.18 → 1.0.19
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/dashboard.js +13 -1
- package/dist/relayd.js +8 -2
- package/package.json +1 -1
package/dist/dashboard.js
CHANGED
|
@@ -354,6 +354,12 @@ export function serveDashboard(store, port = 8787, bus, refreshMs = 300000, jobI
|
|
|
354
354
|
throw new Error(`Managed job ${requestedJobId ?? ''} not found`);
|
|
355
355
|
return { id: jobId, json: JSON.stringify(await store.load(jobId)) };
|
|
356
356
|
};
|
|
357
|
+
const broadcastSnapshots = async (jobIds = []) => {
|
|
358
|
+
const snapshots = await Promise.all((jobIds.length > 0 ? jobIds : [undefined]).map(requestedJobId => snapshot(requestedJobId)));
|
|
359
|
+
for (const value of snapshots)
|
|
360
|
+
for (const client of clients)
|
|
361
|
+
client.write(`data: ${value.json}\n\n`);
|
|
362
|
+
};
|
|
357
363
|
const usage = async () => {
|
|
358
364
|
if (!usageRegistry)
|
|
359
365
|
throw new Error('Account usage telemetry is unavailable');
|
|
@@ -394,7 +400,13 @@ export function serveDashboard(store, port = 8787, bus, refreshMs = 300000, jobI
|
|
|
394
400
|
}
|
|
395
401
|
res.writeHead(202);
|
|
396
402
|
res.end('Accepted');
|
|
397
|
-
queueMicrotask(() => {
|
|
403
|
+
queueMicrotask(() => {
|
|
404
|
+
void (webhook.refresh ? webhook.refresh(event) : Promise.resolve([]))
|
|
405
|
+
.then(jobIds => broadcastSnapshots(jobIds))
|
|
406
|
+
.catch(error => process.stderr.write(`warning: webhook dashboard snapshot unavailable: ${error instanceof Error ? error.message : String(error)}\n`))
|
|
407
|
+
.then(() => webhook.wake(event))
|
|
408
|
+
.catch(error => process.stderr.write(`warning: webhook wake unavailable: ${error instanceof Error ? error.message : String(error)}\n`));
|
|
409
|
+
});
|
|
398
410
|
return;
|
|
399
411
|
}
|
|
400
412
|
if (new URL(req.url ?? '/', 'http://127.0.0.1').pathname === '/api/jobs') {
|
package/dist/relayd.js
CHANGED
|
@@ -121,16 +121,22 @@ export async function runDaemon(argv) {
|
|
|
121
121
|
const webhook = secret ? {
|
|
122
122
|
secret,
|
|
123
123
|
repositories: new Set(repositories),
|
|
124
|
+
refresh: async (event) => {
|
|
125
|
+
if (!event.repository || !event.pullRequest)
|
|
126
|
+
return [];
|
|
127
|
+
const refreshed = await refreshPullRequest(event.repository, event.pullRequest);
|
|
128
|
+
return refreshed.map(item => item.job.id);
|
|
129
|
+
},
|
|
124
130
|
wake: async (event) => {
|
|
125
131
|
if (!event.repository || !event.pullRequest)
|
|
126
132
|
return;
|
|
127
133
|
try {
|
|
128
|
-
const refreshed =
|
|
134
|
+
const refreshed = cachedOverviews.filter(item => item.job.repository === event.repository && item.job.prNumber === event.pullRequest);
|
|
129
135
|
for (const item of refreshed)
|
|
130
136
|
await pool.webhookWake(bus, item.job, event.deliveryId, event.event, event.action);
|
|
131
137
|
}
|
|
132
138
|
catch (error) {
|
|
133
|
-
process.stderr.write(`warning: webhook
|
|
139
|
+
process.stderr.write(`warning: webhook wake unavailable: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
} : undefined;
|