(
requirement: dict[str, Any],
*,
capabilities: dict[str, dict[str, Any]],
config_layers: list[tuple[Path, dict[str, Any]]],
effective_config: dict[str, Any],
config_profile: str | None,
runtime_checks: dict[str, bool],
available_plugin_skills: set[str] | None,
multi_agent_context: dict[str, Any],
runtime_session_cap: int | None,
)
| 613 | |
| 614 | |
| 615 | def evaluate_requirement( |
| 616 | requirement: dict[str, Any], |
| 617 | *, |
| 618 | capabilities: dict[str, dict[str, Any]], |
| 619 | config_layers: list[tuple[Path, dict[str, Any]]], |
| 620 | effective_config: dict[str, Any], |
| 621 | config_profile: str | None, |
| 622 | runtime_checks: dict[str, bool], |
| 623 | available_plugin_skills: set[str] | None, |
| 624 | multi_agent_context: dict[str, Any], |
| 625 | runtime_session_cap: int | None, |
| 626 | ) -> dict[str, Any]: |
| 627 | capability_id = requirement["capability"] |
| 628 | capability = capabilities[capability_id] |
| 629 | result = { |
| 630 | "capability": capability_id, |
| 631 | "severity": requirement["severity"], |
| 632 | "reason": requirement["reason"], |
| 633 | } |
| 634 | |
| 635 | if capability["kind"] == "runtime": |
| 636 | check = capability["check"] |
| 637 | if check not in runtime_checks: |
| 638 | return {**result, "status": "unknown", "check": check} |
| 639 | actual = runtime_checks[check] |
| 640 | return {**result, "status": "pass" if actual else "fail", "actual": actual, "check": check} |
| 641 | |
| 642 | if capability["kind"] == "plugin_skills": |
| 643 | required = capability["required"] |
| 644 | required_skill_ids = [f"{capability['plugin']}:{skill}" for skill in required] |
| 645 | if available_plugin_skills is None: |
| 646 | return { |
| 647 | **result, |
| 648 | "status": "unknown", |
| 649 | "check": "available_plugin_skills", |
| 650 | "required": required_skill_ids, |
| 651 | } |
| 652 | unavailable = [ |
| 653 | f"{capability['plugin']}:{skill}" |
| 654 | for skill in required |
| 655 | if skill not in available_plugin_skills |
| 656 | ] |
| 657 | return { |
| 658 | **result, |
| 659 | "status": "fail" if unavailable else "pass", |
| 660 | "unavailable": unavailable, |
| 661 | "required": required_skill_ids, |
| 662 | } |
| 663 | |
| 664 | if capability["kind"] == "multi_agent_capacity": |
| 665 | return evaluate_multi_agent_capacity( |
| 666 | result, |
| 667 | capability, |
| 668 | config_layers=config_layers, |
| 669 | effective_config=effective_config, |
| 670 | config_profile=config_profile, |
| 671 | multi_agent_context=multi_agent_context, |
| 672 | runtime_session_cap=runtime_session_cap, |
no test coverage detected