From f91f477230b8cee9082fb3cc7a6b103f356db3a2 Mon Sep 17 00:00:00 2001 From: flemming-it Date: Thu, 7 May 2026 22:44:12 +0200 Subject: [PATCH] feat: kind+provider fields on StoreEntry (v0.12.1) Studio uses these to mark synthetic capabilities and suppress their Install button. Signed-off-by: flemming-it --- lib/src/generated/fai/v1/hub.pb.dart | 36 ++++++++++++++++++++++++ lib/src/generated/fai/v1/hub.pbjson.dart | 5 +++- pubspec.yaml | 2 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/lib/src/generated/fai/v1/hub.pb.dart b/lib/src/generated/fai/v1/hub.pb.dart index af1b326..14cfec3 100644 --- a/lib/src/generated/fai/v1/hub.pb.dart +++ b/lib/src/generated/fai/v1/hub.pb.dart @@ -2521,6 +2521,8 @@ class StoreEntry extends $pb.GeneratedMessage { $core.String? iconUrl, $core.Iterable<$core.String>? screenshotUrls, $core.String? docsUrl, + $core.String? kind, + $core.String? provider, }) { final $result = create(); if (name != null) { @@ -2577,6 +2579,12 @@ class StoreEntry extends $pb.GeneratedMessage { if (docsUrl != null) { $result.docsUrl = docsUrl; } + if (kind != null) { + $result.kind = kind; + } + if (provider != null) { + $result.provider = provider; + } return $result; } StoreEntry._() : super(); @@ -2602,6 +2610,8 @@ class StoreEntry extends $pb.GeneratedMessage { ..aOS(16, _omitFieldNames ? '' : 'iconUrl') ..pPS(17, _omitFieldNames ? '' : 'screenshotUrls') ..aOS(18, _omitFieldNames ? '' : 'docsUrl') + ..aOS(19, _omitFieldNames ? '' : 'kind') + ..aOS(20, _omitFieldNames ? '' : 'provider') ..hasRequiredFields = false ; @@ -2775,6 +2785,32 @@ class StoreEntry extends $pb.GeneratedMessage { $core.bool hasDocsUrl() => $_has(17); @$pb.TagNumber(18) void clearDocsUrl() => $_clearField(18); + + /// Origin of this entry. "native" (downloadable bundle, the + /// default for every seed.yaml entry) or "federated" (routes + /// through a bridge — MCP, n8n, …). Studio uses the value to + /// branch the install action. + @$pb.TagNumber(19) + $core.String get kind => $_getSZ(18); + @$pb.TagNumber(19) + set kind($core.String v) { $_setString(18, v); } + @$pb.TagNumber(19) + $core.bool hasKind() => $_has(18); + @$pb.TagNumber(19) + void clearKind() => $_clearField(19); + + /// Provider id for federated entries. Empty for native. + /// For MCP this is the operator's `mcp_clients[].name`. + /// Studio renders "via mcp:" so the operator sees + /// where a synthetic capability comes from. + @$pb.TagNumber(20) + $core.String get provider => $_getSZ(19); + @$pb.TagNumber(20) + set provider($core.String v) { $_setString(19, v); } + @$pb.TagNumber(20) + $core.bool hasProvider() => $_has(19); + @$pb.TagNumber(20) + void clearProvider() => $_clearField(20); } class ChannelStatusResponse extends $pb.GeneratedMessage { diff --git a/lib/src/generated/fai/v1/hub.pbjson.dart b/lib/src/generated/fai/v1/hub.pbjson.dart index a9525c7..5dd31cd 100644 --- a/lib/src/generated/fai/v1/hub.pbjson.dart +++ b/lib/src/generated/fai/v1/hub.pbjson.dart @@ -655,6 +655,8 @@ const StoreEntry$json = { {'1': 'icon_url', '3': 16, '4': 1, '5': 9, '10': 'iconUrl'}, {'1': 'screenshot_urls', '3': 17, '4': 3, '5': 9, '10': 'screenshotUrls'}, {'1': 'docs_url', '3': 18, '4': 1, '5': 9, '10': 'docsUrl'}, + {'1': 'kind', '3': 19, '4': 1, '5': 9, '10': 'kind'}, + {'1': 'provider', '3': 20, '4': 1, '5': 9, '10': 'provider'}, ], }; @@ -670,7 +672,8 @@ final $typed_data.Uint8List storeEntryDescriptor = $convert.base64Decode( 'Npb24YDCABKAlSC2Jlc3RWZXJzaW9uEhYKBnN0YXR1cxgNIAEoCVIGc3RhdHVzEhwKCWluc3Rh' 'bGxlZBgOIAEoCFIJaW5zdGFsbGVkEhoKCGZlYXR1cmVkGA8gASgIUghmZWF0dXJlZBIZCghpY2' '9uX3VybBgQIAEoCVIHaWNvblVybBInCg9zY3JlZW5zaG90X3VybHMYESADKAlSDnNjcmVlbnNo' - 'b3RVcmxzEhkKCGRvY3NfdXJsGBIgASgJUgdkb2NzVXJs'); + 'b3RVcmxzEhkKCGRvY3NfdXJsGBIgASgJUgdkb2NzVXJsEhIKBGtpbmQYEyABKAlSBGtpbmQSGg' + 'oIcHJvdmlkZXIYFCABKAlSCHByb3ZpZGVy'); @$core.Deprecated('Use channelStatusResponseDescriptor instead') const ChannelStatusResponse$json = { diff --git a/pubspec.yaml b/pubspec.yaml index a3f11dd..49f1cfc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: fai_dart_sdk description: gRPC client SDK for the F∆I Platform hub. Used by F∆I Studio and Tier-3 domain apps. -version: 0.12.0 +version: 0.12.1 publish_to: 'none' repository: https://git.flemming.ws/fai/dart-sdk