Vyasa Extension Refactor Audit and Execution Plan

Architecture Decision FrameworkURL copied

Deepening OpportunitiesURL copied

1. Extension Registration ModuleURL copied

Files:

  • vyasa/extensions.py
  • vyasa/core.py
  • vyasa/config.py
  • all vyasa/extensions_builtin/**/__init__.py

Problem:

  • ExtensionRuntime has become the interface.
  • Extensions need to know internal runtime field names.
  • The contract document promises VyasaExtensionApp, but no such module exists.

Solution:

  • Deepen vyasa/extensions.py into the only extension planning and registration module.
  • Add VyasaExtension, VyasaExtensionBase, and VyasaExtensionApp.
  • Make each extension expose exactly one EXTENSION object.
  • Call EXTENSION.register(app) during runtime assembly.
  • Keep ExtensionRuntime private to core or make it read-only after freeze.

Benefits:

  • Leverage: extension authors learn one interface.
  • Locality: capability validation and runtime assembly live in one module.
  • Tests: extension behavior is tested through registration output, not through private runtime mutation.