| """Kintsugi core loader — real package first, vendored copy as fallback. |
| |
| Resolution order: |
| 1. `KINTSUGI_PATH` env var pointing at a Project-Kintsugi checkout |
| 2. an installed/importable `kintsugi` package |
| 3. the vendored verbatim copy in v2/kintsugi_vendor/ |
| |
| Everything downstream imports Kintsugi symbols from THIS module, so the |
| same Rivet code runs against the real engine on a dev box and against |
| the vendor copy on a bare deployment target. |
| """ |
|
|
| import os |
| import sys |
| from pathlib import Path |
|
|
| _VENDOR = Path(__file__).parent / "kintsugi_vendor" |
|
|
| KINTSUGI_SOURCE = "unresolved" |
|
|
|
|
| def _resolve() -> None: |
| global KINTSUGI_SOURCE |
|
|
| env_path = os.environ.get("KINTSUGI_PATH") |
| if env_path and (Path(env_path) / "kintsugi" / "__init__.py").exists(): |
| sys.path.insert(0, env_path) |
| KINTSUGI_SOURCE = f"checkout:{env_path}" |
| return |
|
|
| try: |
| import kintsugi |
| KINTSUGI_SOURCE = "installed" |
| return |
| except ImportError: |
| pass |
|
|
| sys.path.insert(0, str(_VENDOR)) |
| KINTSUGI_SOURCE = f"vendor:{_VENDOR}" |
|
|
|
|
| _resolve() |
|
|
| from kintsugi.bdi import ( |
| BDIBelief, |
| BDIDesire, |
| BDIIntention, |
| BDISnapshot, |
| BDIStore, |
| BeliefStatus, |
| DesireStatus, |
| IntentionStatus, |
| ) |
| from kintsugi.skills.base import ( |
| BaseSkillChip, |
| EFEWeights, |
| SkillCapability, |
| SkillContext, |
| SkillDomain, |
| SkillRequest, |
| SkillResponse, |
| ) |
| from kintsugi.skills.dag import ( |
| DAGBuilder, |
| DAGExecutor, |
| DAGNode, |
| DAGResult, |
| SkillDAG, |
| ) |
| from kintsugi.skills.registry import SkillRegistry |
|
|
| __all__ = [ |
| "KINTSUGI_SOURCE", |
| "BDIBelief", |
| "BDIDesire", |
| "BDIIntention", |
| "BDISnapshot", |
| "BDIStore", |
| "BeliefStatus", |
| "DesireStatus", |
| "IntentionStatus", |
| "BaseSkillChip", |
| "EFEWeights", |
| "SkillCapability", |
| "SkillContext", |
| "SkillDomain", |
| "SkillRequest", |
| "SkillResponse", |
| "DAGBuilder", |
| "DAGExecutor", |
| "DAGNode", |
| "DAGResult", |
| "SkillDAG", |
| "SkillRegistry", |
| ] |
|
|