File size: 1,352 Bytes
39371ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { chromium } from 'playwright';
import assert from 'node:assert/strict';
import fs from 'node:fs/promises';

const context = await chromium.launchPersistentContext('../validation/agent-browser-profile/dev', {
  executablePath: '/usr/bin/chromium', headless: true,
  args: ['--enable-unsafe-webgpu', '--use-angle=vulkan', '--enable-features=Vulkan', '--disable-vulkan-surface'],
});
try {
  const page = await context.newPage();
  page.on('pageerror', error => console.log('PAGEERROR', error.message));
  await page.goto('http://127.0.0.1:5173/?source=local');
  await page.waitForFunction(() => window.browserPi); await page.evaluate(() => window.browserPi.ready);
  await page.evaluate(() => window.browserPi.load());
  await page.evaluate(() => window.browserPi.rpc('new_chat'));
  const state = await page.evaluate(() => window.browserPi.prompt('Use bash to calculate 17 * 23. Give the result.'));
  console.log(JSON.stringify(state.messages));
  assert(state.messages.some(m => m.role === 'toolResult' && m.toolName === 'bash' && !m.isError && m.content.some(c => c.text?.includes('391'))));
  await fs.writeFile('../validation/agent-browser-dev.json', JSON.stringify({ passed: true, messages: state.messages }, null, 2));
  console.log('Development server: real model → Pi → bash → 391 passed.');
} finally { await context.close(); }