fix(claws): point per-mission workspace at /mission/repo + tool-inventory preamble
Two stacked issues after risk_profile was fixed: 1. Claws had file_edit + 46 other tools available, but the templates trained the agents to expect file_read/file_write (older ZeroClaw tool names). Result: agent output kept saying "I only have file_read" and dumped implementations into the context window as text. 2. Even with file_edit, the sandbox pointed at /zeroclaw-data/.zeroclaw/agents/<alias>/workspace/ — NOT /mission/repo where the checked-out mission repo actually lives. unrestricted_filesystem=false blocked agents from reaching it. Fixes: - provision_claw now takes workspace_path. mission_orchestrator passes /mission/repo — pins the per-claw workspace via agents.<alias>.workspace.path to the bind-mount path so file_edit / content_search / glob_search operate on the mission's git checkout. - phase_task_text prepends an explicit tool inventory (file_edit, content_search, glob_search, git_operations, git_forge, ...) plus a WORKSPACE line pinned at /mission/repo. Each phase directive is rewritten to reference file_edit / git_operations explicitly and to call out "do NOT paste code in your reply expecting the platform to save it."
This commit is contained in:
@@ -130,8 +130,11 @@ pub(crate) async fn build_team_with_lifecycle(
|
||||
.await?;
|
||||
let claw_id = agent.id.as_uuid();
|
||||
let risk = RuntimeProvisioner::default_risk_profile_for_role(&m.role);
|
||||
// No workspace override on the ad-hoc team-wizard path — those
|
||||
// teams aren't mission-bound so they use the default per-agent
|
||||
// workspace under <install>/agents/<alias>/workspace/.
|
||||
provisioner
|
||||
.provision_claw(claw_id, &m.model, risk)
|
||||
.provision_claw(claw_id, &m.model, risk, None)
|
||||
.await
|
||||
.map_err(|e| {
|
||||
eprintln!("teams: provision claw {claw_id} failed: {e}");
|
||||
|
||||
Reference in New Issue
Block a user