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

58 lines
1.9 KiB
Markdown

# 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
```python
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.