Clarify Agentbox names and invariants

Co-authored-by: codegirl007 <codegirl-007@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-08-18 06:05:46 +00:00
co-authored by codegirl007
parent 4d2fb4a733
commit e702497996
11 changed files with 35 additions and 19 deletions
+2
View File
@@ -76,6 +76,8 @@ func greenCentroidX(screenshot []byte) (float64, error) {
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
for x := bounds.Min.X; x < bounds.Max.X; x++ {
red, green, blue, _ := renderedImage.At(x, y).RGBA()
// Match the mover's #00ff66 square. Requiring 1,000 matching pixels
// prevents a small green UI detail from passing verification.
if green > 0xc000 && red < 0x4000 && blue < 0x8000 {
xCoordinateSum += uint64(x)
greenPixelCount++
+3 -1
View File
@@ -87,12 +87,14 @@ func modelPrompt(task string, history []Step, observation Observation) (string,
return "", err
}
return "You control an interactive Linux application from screenshots. " +
"Choose exactly one safe input action, or mark done when the task is complete. " +
"Choose exactly one allowed input action, or mark done when the task is complete. " +
"Use logical key names such as RIGHT, ENTER, or ESCAPE. Keep waits under 5000 ms.\n" +
string(data), nil
}
func decisionSchema() map[string]any {
// Strict structured output requires every action property to be present,
// even when a particular action ignores most of them.
actionProperties := map[string]any{
"type": map[string]any{
"type": "string",