diff --git a/lib/src/generated/fai/v1/hub.pb.dart b/lib/src/generated/fai/v1/hub.pb.dart index 7104862..815b207 100644 --- a/lib/src/generated/fai/v1/hub.pb.dart +++ b/lib/src/generated/fai/v1/hub.pb.dart @@ -337,6 +337,9 @@ class CapabilityEntry extends $pb.GeneratedMessage { $core.String? moduleName, $core.String? moduleVersion, $core.String? kind, + $core.String? provider, + $core.String? sourceKind, + $core.bool? versionAdvisory, }) { final $result = create(); if (capability != null) { @@ -354,6 +357,15 @@ class CapabilityEntry extends $pb.GeneratedMessage { if (kind != null) { $result.kind = kind; } + if (provider != null) { + $result.provider = provider; + } + if (sourceKind != null) { + $result.sourceKind = sourceKind; + } + if (versionAdvisory != null) { + $result.versionAdvisory = versionAdvisory; + } return $result; } CapabilityEntry._() : super(); @@ -366,6 +378,9 @@ class CapabilityEntry extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'moduleName') ..aOS(4, _omitFieldNames ? '' : 'moduleVersion') ..aOS(5, _omitFieldNames ? '' : 'kind') + ..aOS(6, _omitFieldNames ? '' : 'provider') + ..aOS(7, _omitFieldNames ? '' : 'sourceKind') + ..aOB(8, _omitFieldNames ? '' : 'versionAdvisory') ..hasRequiredFields = false ; @@ -441,6 +456,55 @@ class CapabilityEntry extends $pb.GeneratedMessage { $core.bool hasKind() => $_has(4); @$pb.TagNumber(5) void clearKind() => $_clearField(5); + + /// Publisher identity (provider segment) of the capability. + /// Always set on registered capabilities. "fai" for legacy + /// bundles that didn't declare a provider. For federated + /// capabilities, this is the operator's service `name:` + /// (e.g. "deepwiki", "bmds.spark"). Wire-level addition for + /// the naming convention; see + /// `docs/reference/capability-namespaces.yaml`. + @$pb.TagNumber(6) + $core.String get provider => $_getSZ(5); + @$pb.TagNumber(6) + set provider($core.String v) { $_setString(5, v); } + @$pb.TagNumber(6) + $core.bool hasProvider() => $_has(5); + @$pb.TagNumber(6) + void clearProvider() => $_clearField(6); + + /// Transport that delivers this capability to the Hub. + /// Distinct from `kind` (which captures the install-vs-builtin + /// distinction) — `source_kind` records HOW the Hub reaches + /// the implementation. Studio renders this as a badge next to + /// the capability name. + /// "bundle" — installed .fai WASM bundle + /// "system" — Hub built-in (fai.system/*) + /// "mcp" — federated via an MCP service + /// "n8n" — federated via an n8n endpoint + /// "temporal" — federated via a Temporal service (e.g. SPARK) + /// "webhook" — reserved for Phase 1+ + @$pb.TagNumber(7) + $core.String get sourceKind => $_getSZ(6); + @$pb.TagNumber(7) + set sourceKind($core.String v) { $_setString(6, v); } + @$pb.TagNumber(7) + $core.bool hasSourceKind() => $_has(6); + @$pb.TagNumber(7) + void clearSourceKind() => $_clearField(7); + + /// Whether the version on this capability is advisory rather + /// than a hard contract. True for federated capabilities whose + /// upstream service does not honour semver; operator pins are + /// labels, not guarantees. Studio renders a warning badge. + @$pb.TagNumber(8) + $core.bool get versionAdvisory => $_getBF(7); + @$pb.TagNumber(8) + set versionAdvisory($core.bool v) { $_setBool(7, v); } + @$pb.TagNumber(8) + $core.bool hasVersionAdvisory() => $_has(7); + @$pb.TagNumber(8) + void clearVersionAdvisory() => $_clearField(8); } class ModuleInfoRequest extends $pb.GeneratedMessage { diff --git a/lib/src/generated/fai/v1/hub.pbjson.dart b/lib/src/generated/fai/v1/hub.pbjson.dart index 476fb4d..3188ddf 100644 --- a/lib/src/generated/fai/v1/hub.pbjson.dart +++ b/lib/src/generated/fai/v1/hub.pbjson.dart @@ -144,6 +144,9 @@ const CapabilityEntry$json = { {'1': 'module_name', '3': 3, '4': 1, '5': 9, '10': 'moduleName'}, {'1': 'module_version', '3': 4, '4': 1, '5': 9, '10': 'moduleVersion'}, {'1': 'kind', '3': 5, '4': 1, '5': 9, '10': 'kind'}, + {'1': 'provider', '3': 6, '4': 1, '5': 9, '10': 'provider'}, + {'1': 'source_kind', '3': 7, '4': 1, '5': 9, '10': 'sourceKind'}, + {'1': 'version_advisory', '3': 8, '4': 1, '5': 8, '10': 'versionAdvisory'}, ], }; @@ -152,7 +155,8 @@ final $typed_data.Uint8List capabilityEntryDescriptor = $convert.base64Decode( 'Cg9DYXBhYmlsaXR5RW50cnkSHgoKY2FwYWJpbGl0eRgBIAEoCVIKY2FwYWJpbGl0eRIYCgd2ZX' 'JzaW9uGAIgASgJUgd2ZXJzaW9uEh8KC21vZHVsZV9uYW1lGAMgASgJUgptb2R1bGVOYW1lEiUK' 'Dm1vZHVsZV92ZXJzaW9uGAQgASgJUg1tb2R1bGVWZXJzaW9uEhIKBGtpbmQYBSABKAlSBGtpbm' - 'Q='); + 'QSGgoIcHJvdmlkZXIYBiABKAlSCHByb3ZpZGVyEh8KC3NvdXJjZV9raW5kGAcgASgJUgpzb3Vy' + 'Y2VLaW5kEikKEHZlcnNpb25fYWR2aXNvcnkYCCABKAhSD3ZlcnNpb25BZHZpc29yeQ=='); @$core.Deprecated('Use moduleInfoRequestDescriptor instead') const ModuleInfoRequest$json = { diff --git a/lib/src/generated/google/protobuf/struct.pb.dart b/lib/src/generated/google/protobuf/struct.pb.dart index 5e8d591..bb1ffa3 100644 --- a/lib/src/generated/google/protobuf/struct.pb.dart +++ b/lib/src/generated/google/protobuf/struct.pb.dart @@ -20,14 +20,19 @@ export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions; export 'struct.pbenum.dart'; -/// `Struct` represents a structured data value, consisting of fields -/// which map to dynamically typed values. In some languages, `Struct` -/// might be supported by a native representation. For example, in -/// scripting languages like JS a struct is represented as an -/// object. The details of that representation are described together -/// with the proto support for the language. +/// Represents a JSON object. /// -/// The JSON representation for `Struct` is JSON object. +/// An unordered key-value map, intending to perfectly capture the semantics of a +/// JSON object. This enables parsing any arbitrary JSON payload as a message +/// field in ProtoJSON format. +/// +/// This follows RFC 8259 guidelines for interoperable JSON: notably this type +/// cannot represent large Int64 values or `NaN`/`Infinity` numbers, +/// since the JSON format generally does not support those values in its number +/// type. +/// +/// If you do not intend to parse arbitrary JSON into your message, a custom +/// typed message should be preferred instead of using this type. class Struct extends $pb.GeneratedMessage with $mixin.StructMixin { factory Struct({ $core.Iterable<$core.MapEntry<$core.String, Value>>? fields, @@ -77,12 +82,12 @@ enum Value_Kind { notSet } +/// Represents a JSON value. +/// /// `Value` represents a dynamically typed value which can be either /// null, a number, a string, a boolean, a recursive struct value, or a /// list of values. A producer of value is expected to set one of these -/// variants. Absence of any variant indicates an error. -/// -/// The JSON representation for `Value` is JSON value. +/// variants. Absence of any variant is an invalid state. class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { factory Value({ NullValue? nullValue, @@ -155,7 +160,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { Value_Kind whichKind() => _Value_KindByTag[$_whichOneof(0)]!; void clearKind() => $_clearField($_whichOneof(0)); - /// Represents a null value. + /// Represents a JSON `null`. @$pb.TagNumber(1) NullValue get nullValue => $_getN(0); @$pb.TagNumber(1) @@ -165,7 +170,10 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { @$pb.TagNumber(1) void clearNullValue() => $_clearField(1); - /// Represents a double value. + /// Represents a JSON number. Must not be `NaN`, `Infinity` or + /// `-Infinity`, since those are not supported in JSON. This also cannot + /// represent large Int64 values, since JSON format generally does not + /// support them in its number type. @$pb.TagNumber(2) $core.double get numberValue => $_getN(1); @$pb.TagNumber(2) @@ -175,7 +183,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { @$pb.TagNumber(2) void clearNumberValue() => $_clearField(2); - /// Represents a string value. + /// Represents a JSON string. @$pb.TagNumber(3) $core.String get stringValue => $_getSZ(2); @$pb.TagNumber(3) @@ -185,7 +193,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { @$pb.TagNumber(3) void clearStringValue() => $_clearField(3); - /// Represents a boolean value. + /// Represents a JSON boolean (`true` or `false` literal in JSON). @$pb.TagNumber(4) $core.bool get boolValue => $_getBF(3); @$pb.TagNumber(4) @@ -195,7 +203,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { @$pb.TagNumber(4) void clearBoolValue() => $_clearField(4); - /// Represents a structured value. + /// Represents a JSON object. @$pb.TagNumber(5) Struct get structValue => $_getN(4); @$pb.TagNumber(5) @@ -207,7 +215,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { @$pb.TagNumber(5) Struct ensureStructValue() => $_ensure(4); - /// Represents a repeated `Value`. + /// Represents a JSON array. @$pb.TagNumber(6) ListValue get listValue => $_getN(5); @$pb.TagNumber(6) @@ -220,9 +228,7 @@ class Value extends $pb.GeneratedMessage with $mixin.ValueMixin { ListValue ensureListValue() => $_ensure(5); } -/// `ListValue` is a wrapper around a repeated field of values. -/// -/// The JSON representation for `ListValue` is JSON array. +/// Represents a JSON array. class ListValue extends $pb.GeneratedMessage with $mixin.ListValueMixin { factory ListValue({ $core.Iterable? values, diff --git a/lib/src/generated/google/protobuf/struct.pbenum.dart b/lib/src/generated/google/protobuf/struct.pbenum.dart index d943f80..b9127ec 100644 --- a/lib/src/generated/google/protobuf/struct.pbenum.dart +++ b/lib/src/generated/google/protobuf/struct.pbenum.dart @@ -13,10 +13,15 @@ import 'dart:core' as $core; import 'package:protobuf/protobuf.dart' as $pb; -/// `NullValue` is a singleton enumeration to represent the null value for the -/// `Value` type union. +/// Represents a JSON `null`. /// -/// The JSON representation for `NullValue` is JSON `null`. +/// `NullValue` is a sentinel, using an enum with only one value to represent +/// the null value for the `Value` type union. +/// +/// A field of type `NullValue` with any value other than `0` is considered +/// invalid. Most ProtoJSON serializers will emit a Value with a `null_value` set +/// as a JSON `null` regardless of the integer value, and so will round trip to +/// a `0` value. class NullValue extends $pb.ProtobufEnum { /// Null value. static const NullValue NULL_VALUE = NullValue._(0, _omitEnumNames ? '' : 'NULL_VALUE');