import Kernel from '@onkernel/sdk';
const kernel = new Kernel();
const browser = await kernel.browsers.create({
stealth: true,
start_url: 'https://www.kernel.sh/',
profile: {
name: 'parallel-task-demo',
save_changes: true,
},
});
const runTask = (executor: string, url: string) =>
kernel.browsers.playwright.execute(browser.session_id, {
executor,
code: `
await page.goto(${JSON.stringify(url)});
return { title: await page.title(), url: page.url() };
`,
timeout_sec: 10,
});
const results = await Promise.all([
runTask('lane-1', 'https://www.kernel.sh/docs/'),
runTask('lane-2', 'https://www.kernel.sh/changelog'),
]);
console.log(results.map((result) => result.result));
for (const executor of ['lane-1', 'lane-2']) {
await kernel.browsers.playwright.executors.delete(executor, {
id_or_name: browser.session_id,
close_tab: true,
});
}
await kernel.browsers.deleteByID(browser.session_id);