Files
gnome-jarvis/vendor/agent-harness/examples/embed.js
T
2026-09-11 13:41:22 -04:00

41 lines
1.2 KiB
JavaScript

'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);
});