build(agent): molt-y#23e5c8 iteration
This commit is contained in:
parent
9b4fa44b03
commit
b7ba8241f2
|
|
@ -0,0 +1,5 @@
|
|||
"""Adapters package for canonical/interoperable surface.
|
||||
|
||||
This module is intentionally lightweight and serves as a namespace holder
|
||||
for toy adapters used in MVP experiments.
|
||||
"""
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
"""Canonical adapter surface.
|
||||
|
||||
This module provides a tiny, test-friendly bridge that demonstrates how a
|
||||
real adapter could map its internal representation to the DSL types defined
|
||||
in interplanetary_edge_orchestrator_privacy.dsl.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from ..dsl import LocalProblem, SharedVariables, PlanDelta
|
||||
|
||||
|
||||
class CanonicalAdapter:
|
||||
"""A minimal adapter conforming to the canonical interface.
|
||||
|
||||
It exposes two simple methods:
|
||||
- map_local_problem: from an internal problem to a LocalProblem DSL object
|
||||
- map_plan_delta: from internal delta to a PlanDelta DSL object
|
||||
"""
|
||||
|
||||
def map_local_problem(self, problem_id: str, features: List[float] | Dict[str, Any]) -> LocalProblem:
|
||||
return LocalProblem(problem_id=problem_id, features=features, objective="minimize_cost")
|
||||
|
||||
def map_plan_delta(self, version: int, delta: Dict[str, Any], insight: str | None = None) -> PlanDelta:
|
||||
return PlanDelta(version=version, delta=delta, insight=insight)
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
"""Toy adapter example: rover Habitat pair maps to the DSL.
|
||||
|
||||
This adapter is intentionally tiny and designed to be a drop-in example for
|
||||
demonstrating interoperability (CatOpt-like bridge) without pulling in heavy
|
||||
dependencies.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from .canonical import CanonicalAdapter
|
||||
from ..dsl import LocalProblem, SharedVariables, PlanDelta
|
||||
|
||||
|
||||
class RoverAdapter:
|
||||
def __init__(self):
|
||||
self._canon = CanonicalAdapter()
|
||||
|
||||
def to_local_problem(self, problem_id: str, features: List[float]) -> LocalProblem:
|
||||
return self._canon.map_local_problem(problem_id, features)
|
||||
|
||||
def delta_to_plan(self, version: int, delta: Dict[str, Any]) -> PlanDelta:
|
||||
return self._canon.map_plan_delta(version, delta, insight="rover_delta")
|
||||
|
||||
|
||||
class HabitatAdapter(RoverAdapter):
|
||||
# Reuse the same mapping for demonstration; in a real system this would vary.
|
||||
pass
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
"""Minimal DSL sketch for LocalProblem / SharedVariables / PlanDelta.
|
||||
|
||||
This is intentionally lightweight and dependency-free. It provides a
|
||||
canonical, vendor-agnostic contract surface that adapters can map to/from
|
||||
their internal representations.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
|
||||
@dataclass
|
||||
class LocalProblem:
|
||||
"""Represents a per-agent optimization task.
|
||||
|
||||
- problem_id: unique identifier for the local problem
|
||||
- features: simple feature vector or dictionary describing the task
|
||||
- objective: optional objective descriptor (string or structured)
|
||||
- metadata: extensible metadata for compatibility checks
|
||||
"""
|
||||
problem_id: str
|
||||
features: List[float] | Dict[str, Any] = field(default_factory=list)
|
||||
objective: Optional[str] = None
|
||||
metadata: Dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass
|
||||
class SharedVariables:
|
||||
"""Represents shared summaries, priors, or signals exchanged between agents."""
|
||||
version: int
|
||||
data: Dict[str, Any] = field(default_factory=dict)
|
||||
timestamp: Optional[float] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class PlanDelta:
|
||||
"""Represents an incremental plan change derived from optimization."""
|
||||
version: int
|
||||
delta: Dict[str, Any] = field(default_factory=dict)
|
||||
insight: Optional[str] = None
|
||||
Loading…
Reference in New Issue