worker: allow companion to manage workers
This commit is contained in:
@@ -999,7 +999,8 @@ fn apply_role_profile(
|
|||||||
value["feature"]["memory"] = serde_json::json!({ "enabled": memory });
|
value["feature"]["memory"] = serde_json::json!({ "enabled": memory });
|
||||||
value["feature"]["web"] = serde_json::json!({ "enabled": web });
|
value["feature"]["web"] = serde_json::json!({ "enabled": web });
|
||||||
value["feature"]["sub_worker"] = serde_json::json!({ "enabled": sub_worker });
|
value["feature"]["sub_worker"] = serde_json::json!({ "enabled": sub_worker });
|
||||||
value["feature"]["worker"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
value["feature"]["worker"] =
|
||||||
|
serde_json::json!({ "enabled": matches!(slug, "companion" | "orchestrator") });
|
||||||
value["feature"]["manage_workdir"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
value["feature"]["manage_workdir"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
||||||
let ticket = match slug {
|
let ticket = match slug {
|
||||||
"companion" => serde_json::json!({ "enabled": true, "authoring": true, "thread": true }),
|
"companion" => serde_json::json!({ "enabled": true, "authoring": true, "thread": true }),
|
||||||
@@ -1459,7 +1460,7 @@ mod tests {
|
|||||||
let companion = resolve("companion");
|
let companion = resolve("companion");
|
||||||
assert!(companion.feature.task.enabled);
|
assert!(companion.feature.task.enabled);
|
||||||
assert!(companion.feature.sub_worker.enabled);
|
assert!(companion.feature.sub_worker.enabled);
|
||||||
assert!(!companion.feature.worker.enabled);
|
assert!(companion.feature.worker.enabled);
|
||||||
assert!(companion.scope.allow.is_empty());
|
assert!(companion.scope.allow.is_empty());
|
||||||
assert!(companion.scope.deny.is_empty());
|
assert!(companion.scope.deny.is_empty());
|
||||||
assert!(companion.delegation_scope.allow.is_empty());
|
assert!(companion.delegation_scope.allow.is_empty());
|
||||||
|
|||||||
@@ -3988,6 +3988,23 @@ mod tests {
|
|||||||
assert!(manifest.feature.worker.enabled);
|
assert!(manifest.feature.worker.enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn embedded_companion_profile_enables_worker_management() {
|
||||||
|
let root = tempfile::tempdir().unwrap();
|
||||||
|
let selector = ProfileSelector::Builtin("builtin:companion".to_string());
|
||||||
|
let archive = builtin_profile_source_archive(&selector)
|
||||||
|
.unwrap()
|
||||||
|
.verify()
|
||||||
|
.unwrap();
|
||||||
|
let manifest = archive
|
||||||
|
.resolve_profile("builtin:companion", root.path(), "companion-test-worker")
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert!(manifest.feature.worker.enabled);
|
||||||
|
assert!(manifest.feature.sub_worker.enabled);
|
||||||
|
assert!(!manifest.feature.manage_workdir.enabled);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn embedded_builtin_decodal_profiles_resolve_through_archive() {
|
fn embedded_builtin_decodal_profiles_resolve_through_archive() {
|
||||||
let root = tempfile::tempdir().unwrap();
|
let root = tempfile::tempdir().unwrap();
|
||||||
@@ -4033,7 +4050,10 @@ mod tests {
|
|||||||
.resolve_profile(&selector_key, root.path(), "embedded-test-worker")
|
.resolve_profile(&selector_key, root.path(), "embedded-test-worker")
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(manifest.worker.name, "embedded-test-worker");
|
assert_eq!(manifest.worker.name, "embedded-test-worker");
|
||||||
assert_eq!(manifest.model.ref_.as_deref(), Some("codex-oauth/gpt-5.5"));
|
assert_eq!(
|
||||||
|
manifest.model.ref_.as_deref(),
|
||||||
|
Some("codex-oauth/gpt-5.6-sol")
|
||||||
|
);
|
||||||
if selector_key == "builtin:memory-consolidation" {
|
if selector_key == "builtin:memory-consolidation" {
|
||||||
assert!(manifest.feature.memory.enabled);
|
assert!(manifest.feature.memory.enabled);
|
||||||
assert!(manifest.feature.memory.staging);
|
assert!(manifest.feature.memory.staging);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import "./base.dcdl" // {
|
|||||||
memory = { enabled = true; };
|
memory = { enabled = true; };
|
||||||
web = { enabled = true; };
|
web = { enabled = true; };
|
||||||
sub_worker = { enabled = true; };
|
sub_worker = { enabled = true; };
|
||||||
worker = { enabled = false; };
|
worker = { enabled = true; };
|
||||||
ticket = { enabled = true; authoring = true; thread = true; };
|
ticket = { enabled = true; authoring = true; thread = true; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user