context.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from cyber_agent.application import ContextMaterial, ContextResourceDescriptor
  2. from cyber_agent.application.models import stable_hash
  3. class ReferenceContextProvider:
  4. def __init__(self) -> None:
  5. self.list_calls = 0
  6. self.resolve_calls = 0
  7. self.content = {
  8. "source": "reference-fixture",
  9. "topic": "agent framework responsibilities",
  10. }
  11. async def list_context(self, request):
  12. self.list_calls += 1
  13. return [ContextResourceDescriptor(
  14. application_ref=request.application_ref,
  15. root_trace_id=request.root_trace_id,
  16. trace_id=request.trace_id,
  17. uid=request.uid,
  18. role_id=request.role_id,
  19. source_id="reference-brief",
  20. source_version="1",
  21. content_hash=stable_hash(self.content),
  22. kind="creative_brief",
  23. summary="Reference creative brief",
  24. inheritance="inheritable",
  25. estimated_chars=len(str(self.content)),
  26. )]
  27. async def resolve_context(self, request, descriptor):
  28. self.resolve_calls += 1
  29. del request
  30. return ContextMaterial(descriptor=descriptor, content=self.content)