Evidence Receipt: Registry UI (Catalog)¶
Capability: CAP-UI-001 Agent Registry Catalog
Authority¶
- Specification: OSSA Administrative Requirements
- Runtime: Drupal (PHP)
- Extension: Config (Views) or Code (EntityListBuilder / Custom Plugins)
Acceptance Criteria¶
- Must render a list of registered OSSA agents.
- Must enforce access control (View/Edit/Delete).
- Must support bulk operations.
- Must support inline execution links (e.g., Quick Launch).
Candidate Matrix¶
| Candidate | Native | Extensible | Bulk Ops | Permissions | Cache | Inline Actions |
|---|---|---|---|---|---|---|
| Views (Core) | ✓ | Excellent (UI) | ✓ (VBO/Core) | ✓ | ✓ | Partial (Requires generic Link field or custom Field Plugin) |
| EntityListBuilder | ✓ | Good (Code) | ✓ | ✓ | ✓ | ✓ (via getDefaultOperations) |
| Custom Controller | ❌ | Poor | Manual | Manual | Manual | ✓ |
Evidence (Reasoned)¶
Capability Evaluation Matrix¶
| Drupal Capability | OSSA Requirement | Result |
|---|---|---|
EntityListBuilder::getDefaultOperations |
Contextual inline action links | Compatible |
| Core Views Table Display | Extensible administrative listing | Compatible |
| Core Views Fields | Dynamic execution links dependent on agent status | Partial (May require a thin Views Field plugin) |
| Custom Controller | Rapidly customizable HTML | Incompatible (High maintenance, subverts core patterns) |
Decision¶
Both EntityListBuilder and Views satisfy the core administrative listing requirements. However, Views provides superior configuration-driven extensibility for end-users who may want to add custom fields to the catalog. The minor gap (dynamic execution links) can be satisfied natively using a generic Views Link field or a very thin custom Views Field plugin, preventing the need for an entire custom controller. The existing custom controller must be retired.
Remaining Delta¶
- Classification:
CONFIG(Views) +EXTENSION(Thin Views Field Plugin, if dynamic logic is strictly required)
Implementation Surface¶
+ config/install/views.view.ossa_agent_catalog.yml+ src/Plugin/views/field/OssaExecutionLink.php(Only if required)
Retired Components¶
- src/Controller/AgentPluginListController.php- ai_agents_ossa.routing.yml(Removed customai_agents_ossa.plugins_overviewroute)
Native Coverage¶
- Native Coverage: 95% (Core Views)
- Extension Required: Thin Adapter (Views Field Plugin)
- Replacement Required: None
Signed by: Bluefly Governance Engine