'use strict'; /** * Embed the harness in a Node script. * node examples/embed.js */ const path = require('path'); const Agent = require('..'); async function main() { const cwd = path.resolve(process.argv[2] || process.cwd()); await Agent.engine.load({ model: process.env.AGENT_MODEL || 'qwen3.5-4b', tools: true, device: process.env.AGENT_DEVICE || 'auto', onProgress: (p) => { if (p && p.percent != null) process.stderr.write('\r' + Math.round(p.percent) + '%'); }, }); process.stderr.write('\n'); const session = await Agent.create({ cwd, model: process.env.AGENT_MODEL || 'qwen3.5-4b', permissionMode: 'always-approve', }); session.on('agent_message_chunk', (ev) => process.stdout.write(ev.text || '')); session.on('tool_call', (ev) => process.stderr.write('\n▸ ' + ((ev.call && ev.call.name) || 'tool') + '\n')); const result = await session.prompt(process.argv.slice(3).join(' ') || 'List the workspace and summarize.'); process.stdout.write('\n[' + (result.reason || 'stop') + ']\n'); await session.dispose(); await Agent.engine.close(); } main().catch((err) => { process.stderr.write(String((err && err.stack) || err) + '\n'); process.exit(1); });