feat(engine): typed-extension runtime (WP-0014 T2)

engine/extension.py: Extension contract (id/provides/declares_types/depends_on/
conflicts_with + bound hooks), ExtensionRuntime (register-with-verification,
activate = dependency closure + conflict + type-collision checks rejecting
impossible profiles), and ActiveExtensions with deterministic (topological, id-tie)
hook dispatch — transform hooks chain, collect hooks gather. 9 tests green,
coverage floor held, pyflakes clean. Marks T2 done.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 00:11:18 +02:00
parent 9b7f86ba69
commit b48a99d3c2
4 changed files with 287 additions and 2 deletions

View File

@@ -5,7 +5,22 @@ is *one shard*: it is consumed by the orchestrator only via its `EngineShardAdap
imports the derived tier (`union`/`projection`).
"""
from shard_wiki.engine.extension import (
ActiveExtensions,
Extension,
ExtensionError,
ExtensionRuntime,
Hook,
)
from shard_wiki.engine.kernel import EngineKernel
from shard_wiki.engine.links import extract_wikilinks
__all__ = ["EngineKernel", "extract_wikilinks"]
__all__ = [
"EngineKernel",
"extract_wikilinks",
"Hook",
"Extension",
"ExtensionError",
"ExtensionRuntime",
"ActiveExtensions",
]