Skip to content

Commit

CI is green again: the agent computer landed with its five operations in the Rust scope table but not the TypeScript mirror, and with its shell and files switched on while the ability tests still expected every computer ability to be coming. The mirror lists them under agents:run, and the tests say what ships: commands run when asked for and files change on its own, while the browser and web search are still coming.

syntaqxcommitted Parent717a571Browse files
2 files+19−30/2 viewed
+12−3
7777 assert.equal(autonomyOfLevel("merge", "never"), "never");
7878 assert.equal(G1T_ABILITIES.filter((d) => d.autonomy).length, 4);
7979 const computer = sections.find((s) => s.group === "computer")!;
80− assert.ok(computer.sources[0]!.abilities.every((a) => a.status === "coming" && a.choices.length === 0 && !a.can_change));
80+ const shell = computer.sources[0]!.abilities.find((a) => a.id === "computer:shell")!;
81+ assert.equal(shell.status, "ready");
82+ assert.equal(shell.level, "asked", "commands run when asked for, until the person says otherwise");
83+ assert.deepEqual(shell.choices, ["alone", "asked", "ask", "never"]);
84+ const files = computer.sources[0]!.abilities.find((a) => a.id === "computer:files")!;
85+ assert.equal(files.level, "alone");
86+ assert.ok(files.can_change);
87+ const coming = computer.sources[0]!.abilities.filter((a) => a.id === "computer:browser" || a.id === "computer:web");
88+ assert.equal(coming.length, 2);
89+ assert.ok(coming.every((a) => a.status === "coming" && a.choices.length === 0 && !a.can_change), "the browser and web search are still coming");
8190 assert.equal(COMPUTER_ABILITIES.length, 4);
8291 });
8392
181190 const summary = abilitiesSummary(sections);
182191 assert.equal(
183192 summary,
184− "Can open pull requests, read issues in Linear, read issues in Sentry and resolve issues in Sentry on its own; imports issues in Linear and imports issues in Sentry when asked for it; asks before merging, deploying to production, editing docs and commenting in Sentry; never comments in Linear.",
193+ "Can open pull requests, change files on its computer, read issues in Linear, read issues in Sentry and resolve issues in Sentry on its own; runs commands on its computer, imports issues in Linear and imports issues in Sentry when asked for it; asks before merging, deploying to production, editing docs and commenting in Sentry; never comments in Linear.",
185194 );
186195 assert.equal(allAbilities(sections).filter((a) => a.group === "integration" && a.can_change).length, 7);
187− assert.match(abilitiesSummary(resolve()), /open pull requests on its own/);
196+ assert.match(abilitiesSummary(resolve()), /open pull requests and change files on its computer on its own/);
188197 });
+7−0
459459 ["plan_work", "agents:run"],
460460 ["message_agent", "agents:run"],
461461 ["answer_message", "agents:run"],
462+ // A workspace agent's own computer: waking it spends the workspace's
463+ // money, so the same scope covers reading and managing it.
464+ ["get_agent_computer", "agents:run"],
465+ ["wake_agent_computer", "agents:run"],
466+ ["sleep_agent_computer", "agents:run"],
467+ ["reset_agent_computer", "agents:run"],
468+ ["list_agent_computer_commands", "agents:run"],
462469 ["take_messages", "agents:run"],
463470 ["list_workflows", "workflows:read"],
464471 ["list_workflow_runs", "workflows:read"],