Files
phase-memory/docs/external-adapter-packs.md

1.9 KiB

External Adapter Packs

phase-memory can resolve runtime configuration values that declare adapter mode external. Missing external adapters still fail resolution, but supplied adapter packs can satisfy the public runtime ports.

Fake External Pack

phase_memory.external_adapters.fake_external_adapter_pack() returns a local fake pack for conformance and integration tests. It provides:

  • FakeExternalGraphStore
  • FakeExternalEventLog
  • FakeExternalPolicyGateway
  • FakeTelemetryAuditSink
  • FakeMarkitectPackageCompiler
  • FakeExternalSemanticIndex
  • FakeKontextualRuntimeRegistry

The pack is not a production adapter. It is intentionally deterministic and dependency-light so that service wiring, conformance helpers, and runtime envelopes can be tested before live Markitect, Kontextual, or telemetry services exist.

Runtime Wiring

from phase_memory.external_adapters import (
    fake_external_adapter_pack,
    fake_external_runtime_config,
)
from phase_memory.service import runtime_from_config

config = fake_external_runtime_config()
pack = fake_external_adapter_pack()
runtime = runtime_from_config(config, external_adapters=pack.adapters)

resolve_runtime_adapters(config, external_adapters=pack.adapters) returns a RuntimeAdapterBundle with diagnostics. External declarations produce external_adapter_declared warnings. Missing adapters produce missing_external_adapter errors and block runtime construction.

Conformance

The fake pack passes the same public helpers expected of live adapters:

  • assert_graph_store_conformance
  • assert_event_log_conformance
  • assert_context_compiler_conformance
  • assert_policy_gateway_conformance
  • assert_audit_sink_conformance
  • assert_semantic_index_conformance
  • assert_runtime_registry_conformance

Live adapter packs should pass those helpers before being wired into a runtime or service runner.