(self, config: Optional[OpenSpaceConfig] = None)
| 78 | |
| 79 | class OpenSpace: |
| 80 | def __init__(self, config: Optional[OpenSpaceConfig] = None): |
| 81 | self.config = config or OpenSpaceConfig() |
| 82 | |
| 83 | self._llm_client: Optional[LLMClient] = None |
| 84 | self._grounding_client: Optional[GroundingClient] = None |
| 85 | self._grounding_config = None # GroundingConfig reference for skill settings |
| 86 | self._grounding_agent: Optional[GroundingAgent] = None |
| 87 | self._recording_manager: Optional[RecordingManager] = None |
| 88 | self._skill_registry: Optional[SkillRegistry] = None |
| 89 | self._skill_store: Optional[SkillStore] = None |
| 90 | self._execution_analyzer: Optional[ExecutionAnalyzer] = None |
| 91 | self._skill_evolver: Optional[SkillEvolver] = None |
| 92 | self._execution_count: int = 0 # For periodic metric-based evolution |
| 93 | self._last_evolved_skills: List[Dict[str, Any]] = [] # Tracks skills evolved during last execute() |
| 94 | |
| 95 | self._initialized = False |
| 96 | self._running = False |
| 97 | self._task_done = asyncio.Event() |
| 98 | self._task_done.set() # Initially not running, so "done" |
| 99 | |
| 100 | logger.debug("OpenSpace instance created") |
| 101 | |
| 102 | async def initialize(self) -> None: |
| 103 | if self._initialized: |
nothing calls this directly
no test coverage detected