Skip to content

Plugin Stuff Round 3#651

Merged
lbedner merged 1 commit intomainfrom
plugin-stuff-round3
Apr 29, 2026
Merged

Plugin Stuff Round 3#651
lbedner merged 1 commit intomainfrom
plugin-stuff-round3

Conversation

@lbedner
Copy link
Copy Markdown
Owner

@lbedner lbedner commented Apr 29, 2026

No description provided.

Copilot AI review requested due to automatic review settings April 29, 2026 14:41
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces an R3 “plugin options” layer that moves bracket-syntax parsing (e.g. auth[org,postgres], ai[sqlite,openai]) into a generic, declarative OptionSpec model on PluginSpec, and uses those declarations to drive auto-required components during service resolution.

Changes:

  • Add aegis/core/option_spec.py with OptionSpec/OptionMode, generic parse_options(), and compute_auto_requires().
  • Declare bracket-syntax options directly on service specs (auth, ai, insights) and refactor the per-service parser modules into thin shims.
  • Update ServiceResolver to apply spec-driven auto_requires and normalize bracketed component variants (e.g. prefer database[postgres] over database), plus add focused tests for the generic option parser.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
aegis/core/option_spec.py New generic option declaration + parsing + auto-requires utilities for bracket syntax.
aegis/core/plugin_spec.py Adds PluginSpec.options to carry declarative bracket-syntax option specs.
aegis/core/services.py Defines OptionSpec lists for auth/ai/insights service specs (incl. auto_requires).
aegis/core/service_resolver.py Replaces per-service auto-requires logic with spec-driven auto-requires and variant normalization.
aegis/core/ai_service_parser.py Converts AI parser into a back-compat shim around the generic parser.
aegis/core/auth_service_parser.py Converts auth parser into a back-compat shim around the generic parser.
aegis/core/insights_service_parser.py Converts insights parser into a back-compat shim around the generic parser.
aegis/core/components.py Doc update clarifying why kw_only=True is required for the ComponentSpec alias.
tests/core/test_option_spec.py New unit tests locking in the generic option parser contract.
tests/core/test_insights_service_parser.py Updates assertions to match the new generic error wording.

Comment thread aegis/core/service_resolver.py
@lbedner lbedner force-pushed the plugin-stuff-round3 branch from c861334 to 908eba1 Compare April 29, 2026 19:31
@lbedner lbedner merged commit 67d4869 into main Apr 29, 2026
8 checks passed
@lbedner lbedner deleted the plugin-stuff-round3 branch April 29, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants