Lines 1-37javascript
1import { spawn, spawnSync } from 'node:child_process';
2import { createRequire } from 'node:module';
3import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
4import http from 'node:http';
5import os from 'node:os';
6import path from 'node:path';
7import { once } from 'node:events';
9const require = createRequire(import.meta.url);
10const { chromium } = require('playwright');
12const root = process.cwd();
13const temp = await mkdtemp(path.join(os.tmpdir(), 'oaf-consumer-browser-'));
14const workspace = path.join(temp, 'workspace');
15const home = path.join(temp, 'home');
16const data = path.join(workspace, '.local');
17const password = 'correct horse battery staple';
MediumSecret Pattern
Hardcoded password in scripts/consumer-browser-smoke.mjs
scripts/consumer-browser-smoke.mjsView on unpkg · L17 18const screenshots = path.join(root, '.scratch', 'ui-redesign');
23 await mkdir(path.join(workspace, 'src'), { recursive: true });
24 await mkdir(home, { recursive: true });
25 await mkdir(screenshots, { recursive: true });
26 await writeFile(path.join(workspace, 'package.json'), JSON.stringify({ name: 'consumer-browser-target' }, null, 2));
27 await writeFile(path.join(workspace, 'AGENTS.md'), 'Use local context handoffs and proposal-gated memory.');
28 await writeFile(path.join(workspace, 'src', 'app.js'), 'export function launchSmoke(){ return "ready"; }\n');
29 await writeFile(path.join(workspace, 'src', 'huge.js'), Array.from({ length: 500 }, (_, index) => `export function helper${index}(){ return "local proof ${index}"; }`).join('\n'));
30 await mkdir(path.join(workspace, 'memory'), { recursive: true });
31 await writeFile(path.join(workspace, 'memory', 'status.md'), 'Decision: project:memory-recall release_status ready supersedes draft.');
32 await writeFile(path.join(workspace, '.gitignore'), '.local/\n');
33 runJson(process.execPath, ['apps/cli/oaf.mjs', 'memory', 'remember', '--root', workspace, '--sqlite', '.local/memory.sqlite', '--subject', 'project:memory-recall', '--predicate', 'release_status', '--object', 'draft', '--source', 'workspace://memory/status.md', '--format', 'json']);
34 runJson(process.execPath, ['apps/cli/oaf.mjs', 'memory', 'remember', '--root', workspace, '--sqlite', '.local/memory.sqlite', '--subject', 'project:memory-recall', '--predicate', 'release_status', '--object', 'ready', '--supersedes-subject', 'project:memory-recall', '--supersedes-predicate', 'release_status', '--source', 'workspace://memory/status.md', '--format', 'json']);
35 run('git', ['init'], workspace);
36 run('git', ['config', 'user.email', 'browser-smoke@example.invalid'], workspace);
37 run('git', ['config', 'user.name', 'Browser Smoke'], workspace);