mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-10 06:18:39 +03:00
Adds two opt-in agent tools for controlling a computer: - computer_use: pixel-based (screenshot + mouse/keyboard) via a desktop (pyautogui) or browser (playwright) backend. - browser: DOM/accessibility-based web automation (act by element ref), reliable across ANY tool-calling model, not just vision/CU-trained ones. Core enabler in the runner: a tool may return image content blocks, which are split out and delivered to the model as a follow-up user message (_split_tool_result_media), so screenshots reach any vision provider (e.g. via OpenRouter/openai-compat) without provider-specific code. Both tools are OFF by default (tools.computerUse.enable / tools.browser.enable), are not exposed to subagents, and the browser tool supports an allowed_domains allowlist. Heavy deps (pyautogui/pillow/playwright) are an optional [computer-use] extra. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
42 lines
1.5 KiB
HTML
42 lines
1.5 KiB
HTML
<!doctype html>
|
|
<html><head><meta charset="utf-8"><title>Sign up</title></head>
|
|
<body>
|
|
<h1>Create your account</h1>
|
|
<form id="f" onsubmit="return submitForm(event)">
|
|
<p><input id="name" placeholder="Full name"></p>
|
|
<p><input id="email" type="email" placeholder="Email address"></p>
|
|
<p>
|
|
<select id="country" aria-label="Country">
|
|
<option value="">-- choose country --</option>
|
|
<option value="us">United States</option>
|
|
<option value="cn">China</option>
|
|
<option value="de">Germany</option>
|
|
</select>
|
|
</p>
|
|
<fieldset>
|
|
<legend>Plan</legend>
|
|
<label><input type="radio" name="plan" value="free" aria-label="Free plan"> Free</label>
|
|
<label><input type="radio" name="plan" value="pro" aria-label="Pro plan"> Pro</label>
|
|
<label><input type="radio" name="plan" value="team" aria-label="Team plan"> Team</label>
|
|
</fieldset>
|
|
<p><label><input type="checkbox" id="agree" aria-label="Accept terms"> I accept the terms</label></p>
|
|
<button id="submit" type="submit">Create account</button>
|
|
</form>
|
|
<div id="result"></div>
|
|
<script>
|
|
function submitForm(e){
|
|
e.preventDefault();
|
|
var plan = (document.querySelector('input[name=plan]:checked') || {}).value || '';
|
|
var parts = [
|
|
document.getElementById('name').value,
|
|
document.getElementById('email').value,
|
|
document.getElementById('country').value,
|
|
plan,
|
|
document.getElementById('agree').checked ? 'agreed' : 'no'
|
|
];
|
|
document.getElementById('result').textContent = parts.join('|');
|
|
return false;
|
|
}
|
|
</script>
|
|
</body></html>
|