[GH-ISSUE #20] Introduce provider-neutral analysis capabilities and sessions #15

Closed
opened 2026-10-15 18:19:56 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @morluto on GitHub (Jul 12, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/20

Goal

Generalize the application layer before adding another engine, retaining Hopper as the sole production provider initially.

Scope

Define AnalysisProvider, ProviderSession, capabilities, requests, responses, and errors; isolate Hopper DTOs; support discovery, typed unavailability, multiple artifacts, and multiple provider sessions; preserve CLI/MCP compatibility.

Acceptance criteria

  • Workflows do not import Hopper-specific types.
  • Hopper passes provider conformance.
  • Routing is deterministic and visible in evidence.
  • Provider-specific enrichment remains possible.

Roadmap expansion

This remains the provider-architecture epic.

Child work

Evidence creation must receive provider identity. Domain and application contracts must not encode Hopper. Capability descriptors declare availability, schema version, boundedness, exhaustiveness, side effects, and limitations. A second production provider remains blocked until these contracts pass conformance.

Originally created by @morluto on GitHub (Jul 12, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/20 ## Goal Generalize the application layer before adding another engine, retaining Hopper as the sole production provider initially. ## Scope Define `AnalysisProvider`, `ProviderSession`, capabilities, requests, responses, and errors; isolate Hopper DTOs; support discovery, typed unavailability, multiple artifacts, and multiple provider sessions; preserve CLI/MCP compatibility. ## Acceptance criteria - Workflows do not import Hopper-specific types. - Hopper passes provider conformance. - Routing is deterministic and visible in evidence. - Provider-specific enrichment remains possible. ## Roadmap expansion This remains the provider-architecture epic. ### Child work - [x] #52 - [x] #53 - [x] #49 - [x] #45 Evidence creation must receive provider identity. Domain and application contracts must not encode Hopper. Capability descriptors declare availability, schema version, boundedness, exhaustiveness, side effects, and limitations. A second production provider remains blocked until these contracts pass conformance.
Author
Owner

@morluto commented on GitHub (Jul 17, 2026):

Completed on current . The provider-neutral boundary is now represented by , , , and , with both Hopper and Ghidra production adapters and provider-binding/conformance coverage. Remaining provider-specific capability additions are tracked separately, so this architecture issue no longer needs to remain open.

<!-- gh-comment-id:5001516505 --> @morluto commented on GitHub (Jul 17, 2026): Completed on current . The provider-neutral boundary is now represented by , , , and , with both Hopper and Ghidra production adapters and provider-binding/conformance coverage. Remaining provider-specific capability additions are tracked separately, so this architecture issue no longer needs to remain open.
Author
Owner

@morluto commented on GitHub (Jul 17, 2026):

Correction to the preceding comment: completed on current main. The provider-neutral boundary is represented by src/application/AnalysisProvider.ts, AnalysisProviderRegistry.ts, SessionProviderRouter.ts, and CompositeProvider.ts, with Hopper and Ghidra production adapters plus provider-binding and conformance coverage.

<!-- gh-comment-id:5001526240 --> @morluto commented on GitHub (Jul 17, 2026): Correction to the preceding comment: completed on current main. The provider-neutral boundary is represented by src/application/AnalysisProvider.ts, AnalysisProviderRegistry.ts, SessionProviderRouter.ts, and CompositeProvider.ts, with Hopper and Ghidra production adapters plus provider-binding and conformance coverage.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#15
No description provided.