feat(studio): store-side source filter, provenance pills, one-click recommended sources (v0.29.0)
The Store is now the centre of capability discovery — provider configuration moves out of Settings into the Store itself. Three changes work together: 1. Source filter chips next to the existing status chips: All sources / Native / MCP / n8n. Applied client-side after the hub returns results so toggling is instant. The result count and the "Clear filters" reset both account for the source filter too. 2. Per-card provenance pill (`_ProvenancePill`): shows whether each entry is native, mcp · <provider>, or n8n · <provider> so the operator can triage the source at a glance — same role the "verified" badge plays in commercial app stores. 3. `_RecommendedSourcesStrip` replaces the older `_FederationNudge`. Renders curated public MCP servers (DeepWiki, Semgrep) as one-click cards with an inline `[+ Add]` button — no Settings detour, no form. Both servers are HTTPS Streamable-HTTP, no API key, no subprocess. Useful AI was considered but its 340+ tools would drown the index — kept out of the curated list. The strip auto-hides the moment any federated entry exists. Removed the now-orphaned storeFederationNudge* ARB keys. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
b5a4c74c4b
commit
581ebbeaf7
8 changed files with 603 additions and 79 deletions
|
|
@ -471,14 +471,70 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get storeDocsErrorGeneric => 'README konnte nicht geladen werden.';
|
||||
|
||||
@override
|
||||
String get storeFederationNudgeTitle => 'Mehr Capabilities?';
|
||||
String get storeSourceLabel => 'Quelle';
|
||||
|
||||
@override
|
||||
String get storeFederationNudgeBody =>
|
||||
'MCP-Server oder n8n-Endpunkt unter Einstellungen → MCP-Clients / N8N-Endpunkte konfigurieren. Entdeckte Tools und Workflows tauchen hier als `mcp.<server>.<tool>`- und `n8n.<endpoint>.<workflow>`-Capabilities auf — jeder Anthropic-/Community-MCP-Server bringt mehrere auf einmal.';
|
||||
String get storeSourceAll => 'Alle Quellen';
|
||||
|
||||
@override
|
||||
String get storeFederationNudgeButton => 'Einstellungen öffnen';
|
||||
String get storeSourceNative => 'Nativ';
|
||||
|
||||
@override
|
||||
String get storeSourceMcp => 'MCP';
|
||||
|
||||
@override
|
||||
String get storeSourceN8n => 'n8n';
|
||||
|
||||
@override
|
||||
String get storeProvenanceNative => 'nativ';
|
||||
|
||||
@override
|
||||
String storeProvenanceMcp(String provider) {
|
||||
return 'mcp · $provider';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeProvenanceN8n(String provider) {
|
||||
return 'n8n · $provider';
|
||||
}
|
||||
|
||||
@override
|
||||
String get storeRecommendedTitle =>
|
||||
'Öffentliche Quelle hinzufügen — ein Klick';
|
||||
|
||||
@override
|
||||
String get storeRecommendedBody =>
|
||||
'Kuratierte MCP-Server über HTTPS erreichbar. Kein Subprozess, kein API-Key, kein Node. Föderierte Capabilities erscheinen sofort im Store.';
|
||||
|
||||
@override
|
||||
String get storeRecommendedAddTooltip => 'Hinzufügen und entdecken';
|
||||
|
||||
@override
|
||||
String get storeRecommendedAdding => 'Wird hinzugefügt…';
|
||||
|
||||
@override
|
||||
String get storeRecommendedDeepWikiTagline =>
|
||||
'GitHub-Repo-Doku-Suche (KI-gestützt)';
|
||||
|
||||
@override
|
||||
String get storeRecommendedSemgrepTagline =>
|
||||
'Security-Scanning für Code-Schwachstellen';
|
||||
|
||||
@override
|
||||
String storeProviderAddedToast(String name, int n) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
n,
|
||||
locale: localeName,
|
||||
other: 'föderierte Capabilities',
|
||||
one: 'föderierte Capability',
|
||||
);
|
||||
return '$name hinzugefügt — $n $_temp0.';
|
||||
}
|
||||
|
||||
@override
|
||||
String storeProviderAddFailed(String name, String error) {
|
||||
return '$name konnte nicht hinzugefügt werden: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get auditTitle => 'Protokoll';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue