feat(context): implement pluggable scope chain resolution extension API

This commit is contained in:
2026-04-19 01:19:35 +00:00
committed by Forgejo
parent f5f75e65c2
commit 31518aa8ef
4 changed files with 179 additions and 1 deletions
+11
View File
@@ -0,0 +1,11 @@
"""Example scope chain resolvers."""
from examples.scope_resolvers.git_issue_resolver import (
GitIssueResolver,
create_git_issue_resolver,
)
__all__ = [
"GitIssueResolver",
"create_git_issue_resolver",
]
@@ -0,0 +1,43 @@
"""Example scope chain resolver for Git issue references."""
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from cleveragents.domain.contexts import (
ScopeChainResolver,
ScopeResolutionContext,
)
class GitIssueResolver:
"""Example resolver for Git issue scope references."""
def __init__(self, repo_path: str | None = None) -> None:
"""Initialize the resolver."""
self.repo_path = repo_path or "."
def resolve(
self,
scope: str,
context: ScopeResolutionContext,
) -> list[str]:
"""Resolve a Git issue scope reference."""
if not scope.startswith("issue:"):
return []
try:
issue_id = scope[6:]
if not issue_id:
return []
fragment_id = f"git_issue_{issue_id}"
return [fragment_id]
except Exception:
return []
def create_git_issue_resolver() -> GitIssueResolver:
"""Factory function for creating a GitIssueResolver instance."""
return GitIssueResolver()