worker: exercise project reviewer internal spawn
This commit is contained in:
@@ -842,13 +842,42 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const INTERNAL_REVIEWER_PROFILE: &str = r#"
|
||||||
|
slug = "reviewer"
|
||||||
|
scope = "workspace_read"
|
||||||
|
|
||||||
|
[model]
|
||||||
|
scheme = "anthropic"
|
||||||
|
model_id = "reviewer-model"
|
||||||
|
|
||||||
|
[model.auth]
|
||||||
|
kind = "none"
|
||||||
|
|
||||||
|
[engine]
|
||||||
|
instruction = "$yoi/reviewer"
|
||||||
|
language = "Reviewerish"
|
||||||
|
max_tokens = 3333
|
||||||
|
|
||||||
|
[feature.ticket]
|
||||||
|
enabled = true
|
||||||
|
thread = true
|
||||||
|
|
||||||
|
[feature.memory]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[memory]
|
||||||
|
extract_threshold = 4000
|
||||||
|
"#;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn reviewer_profile_spawns_as_workspace_aware_internal_session() {
|
async fn reviewer_profile_spawns_as_workspace_aware_internal_session() {
|
||||||
let workspace_root = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
||||||
.join("../..")
|
|
||||||
.canonicalize()
|
|
||||||
.unwrap();
|
|
||||||
let runtime = TempDir::new().unwrap();
|
let runtime = TempDir::new().unwrap();
|
||||||
|
let workspace_root = runtime.path().join("project");
|
||||||
|
let available_profiles = write_project_profile_registry(
|
||||||
|
&workspace_root,
|
||||||
|
Some("reviewer"),
|
||||||
|
&[("reviewer", "reviewer.toml", INTERNAL_REVIEWER_PROFILE)],
|
||||||
|
);
|
||||||
let mut manifest = parent_manifest(&workspace_root, None);
|
let mut manifest = parent_manifest(&workspace_root, None);
|
||||||
manifest.delegation_scope = ScopeConfig {
|
manifest.delegation_scope = ScopeConfig {
|
||||||
allow: vec![abs_rule(&workspace_root, Permission::Write)],
|
allow: vec![abs_rule(&workspace_root, Permission::Write)],
|
||||||
@@ -882,7 +911,7 @@ mod tests {
|
|||||||
registry.clone(),
|
registry.clone(),
|
||||||
manifest.clone(),
|
manifest.clone(),
|
||||||
prompt_loader,
|
prompt_loader,
|
||||||
AvailableProfiles::discover(&workspace_root),
|
available_profiles,
|
||||||
spawner_scope.clone(),
|
spawner_scope.clone(),
|
||||||
DelegationScope::from_config(&manifest.delegation_scope).unwrap(),
|
DelegationScope::from_config(&manifest.delegation_scope).unwrap(),
|
||||||
)
|
)
|
||||||
@@ -895,7 +924,7 @@ mod tests {
|
|||||||
}));
|
}));
|
||||||
let input = serde_json::json!({
|
let input = serde_json::json!({
|
||||||
"name": "reviewer-child",
|
"name": "reviewer-child",
|
||||||
"profile": "builtin:reviewer",
|
"profile": "project:reviewer",
|
||||||
"instruction": "$workspace/custom-reviewer",
|
"instruction": "$workspace/custom-reviewer",
|
||||||
"task": "review immutable commit",
|
"task": "review immutable commit",
|
||||||
"scope": [{
|
"scope": [{
|
||||||
|
|||||||
Reference in New Issue
Block a user