@mochabug/adapt-sdk 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +873 -0
  3. package/dist/api.d.ts +1605 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.spec.d.ts +2 -0
  6. package/dist/api.spec.d.ts.map +1 -0
  7. package/dist/cjs/api.cjs +2 -0
  8. package/dist/cjs/api.cjs.map +7 -0
  9. package/dist/cjs/frontend.cjs +2 -0
  10. package/dist/cjs/frontend.cjs.map +7 -0
  11. package/dist/cjs/mime.cjs +2 -0
  12. package/dist/cjs/mime.cjs.map +7 -0
  13. package/dist/cjs/router.cjs +2 -0
  14. package/dist/cjs/router.cjs.map +7 -0
  15. package/dist/cjs/types.cjs +2 -0
  16. package/dist/cjs/types.cjs.map +7 -0
  17. package/dist/esm/api.mjs +2 -0
  18. package/dist/esm/api.mjs.map +7 -0
  19. package/dist/esm/frontend.mjs +2 -0
  20. package/dist/esm/frontend.mjs.map +7 -0
  21. package/dist/esm/mime.mjs +2 -0
  22. package/dist/esm/mime.mjs.map +7 -0
  23. package/dist/esm/router.mjs +2 -0
  24. package/dist/esm/router.mjs.map +7 -0
  25. package/dist/esm/types.mjs +1 -0
  26. package/dist/esm/types.mjs.map +7 -0
  27. package/dist/frontend.d.ts +10 -0
  28. package/dist/frontend.d.ts.map +1 -0
  29. package/dist/genproto/buf/validate/validate_pb.d.ts +8491 -0
  30. package/dist/genproto/buf/validate/validate_pb.d.ts.map +1 -0
  31. package/dist/genproto/google/api/annotations_pb.d.ts +14 -0
  32. package/dist/genproto/google/api/annotations_pb.d.ts.map +1 -0
  33. package/dist/genproto/google/api/client_pb.d.ts +1432 -0
  34. package/dist/genproto/google/api/client_pb.d.ts.map +1 -0
  35. package/dist/genproto/google/api/http_pb.d.ts +843 -0
  36. package/dist/genproto/google/api/http_pb.d.ts.map +1 -0
  37. package/dist/genproto/google/api/launch_stage_pb.d.ts +94 -0
  38. package/dist/genproto/google/api/launch_stage_pb.d.ts.map +1 -0
  39. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts +1006 -0
  40. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts.map +1 -0
  41. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts +77 -0
  42. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts.map +1 -0
  43. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts +401 -0
  44. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts.map +1 -0
  45. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts +69 -0
  46. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts.map +1 -0
  47. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts +430 -0
  48. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts.map +1 -0
  49. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts +198 -0
  50. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts.map +1 -0
  51. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts +161 -0
  52. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts.map +1 -0
  53. package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts +305 -0
  54. package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts.map +1 -0
  55. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts +77 -0
  56. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts.map +1 -0
  57. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts +120 -0
  58. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts.map +1 -0
  59. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts +99 -0
  60. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts.map +1 -0
  61. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts +347 -0
  62. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts.map +1 -0
  63. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts +64 -0
  64. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts.map +1 -0
  65. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts +1282 -0
  66. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts.map +1 -0
  67. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts +388 -0
  68. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts.map +1 -0
  69. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts +805 -0
  70. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts.map +1 -0
  71. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts +238 -0
  72. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts.map +1 -0
  73. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts +241 -0
  74. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts.map +1 -0
  75. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts +539 -0
  76. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts.map +1 -0
  77. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts +190 -0
  78. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts.map +1 -0
  79. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts +269 -0
  80. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts.map +1 -0
  81. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts +339 -0
  82. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts.map +1 -0
  83. package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts +2721 -0
  84. package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts.map +1 -0
  85. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts +872 -0
  86. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts.map +1 -0
  87. package/dist/grpcweb.d.ts +8 -0
  88. package/dist/grpcweb.d.ts.map +1 -0
  89. package/dist/mime.d.ts +11 -0
  90. package/dist/mime.d.ts.map +1 -0
  91. package/dist/router.d.ts +503 -0
  92. package/dist/router.d.ts.map +1 -0
  93. package/dist/router.spec.d.ts +2 -0
  94. package/dist/router.spec.d.ts.map +1 -0
  95. package/dist/signal-api.spec.d.ts +17 -0
  96. package/dist/signal-api.spec.d.ts.map +1 -0
  97. package/dist/types.d.ts +149 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/package.json +80 -0
@@ -0,0 +1,161 @@
1
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { SignalFormat, SignalFormatJson } from "./signal_format_pb";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file mochabugapis/adapt/graph/signal_descriptor.proto.
6
+ */
7
+ export declare const file_mochabugapis_adapt_graph_signal_descriptor: GenFile;
8
+ /**
9
+ * SignalDescriptor defines the complete specification of a signal, including its identity
10
+ * and data format, without containing the actual signal data.
11
+ *
12
+ * A signal descriptor represents what a signal IS - its name, documentation, and the
13
+ * single, specific format it produces. This is distinct from SignalBinding, which
14
+ * represents what formats a binding point ACCEPTS.
15
+ *
16
+ * @generated from message mochabugapis.adapt.graph.SignalDescriptor
17
+ */
18
+ export type SignalDescriptor = Message<"mochabugapis.adapt.graph.SignalDescriptor"> & {
19
+ /**
20
+ * Identifier for the signal, following ECMAScript identifier naming conventions.
21
+ * Must be a valid JavaScript/TypeScript identifier to ensure compatibility with
22
+ * code generation and scripting environments.
23
+ *
24
+ * Pattern: Must start with letter, $, or _, followed by letters, digits, $, or _
25
+ * Length: 1-50 characters
26
+ *
27
+ * Examples: "temperature", "user_id", "$internal", "_privateSignal"
28
+ *
29
+ * @generated from field: string name = 1;
30
+ */
31
+ name: string;
32
+ /**
33
+ * Human-readable label for the signal, suitable for display in user interfaces.
34
+ * Should be brief and descriptive.
35
+ *
36
+ * Length: Up to 250 characters
37
+ *
38
+ * Examples: "Room Temperature", "User ID", "Processing Status"
39
+ *
40
+ * @generated from field: optional string label = 2;
41
+ */
42
+ label?: string;
43
+ /**
44
+ * Detailed description of the signal's purpose, behavior, and usage.
45
+ * Should provide context for developers and users.
46
+ *
47
+ * Length: Up to 1000 characters
48
+ *
49
+ * May include:
50
+ * - What the signal represents
51
+ * - When it's emitted
52
+ * - Expected value ranges or formats
53
+ * - Usage examples or constraints
54
+ *
55
+ * @generated from field: optional string description = 3;
56
+ */
57
+ description?: string;
58
+ /**
59
+ * Indicates whether this signal must be provided.
60
+ *
61
+ * When false or unset: Signal is required and must be present
62
+ * When true: Signal is optional and may be omitted
63
+ *
64
+ * Optional signals provide flexibility in graph construction, allowing
65
+ * vertices to function with or without certain inputs.
66
+ *
67
+ * @generated from field: optional bool optional = 4;
68
+ */
69
+ optional?: boolean;
70
+ /**
71
+ * List of formats that this signal produces. The signal will produce any signal whose
72
+ * format matches at least one entry in this list.
73
+ *
74
+ * Validation: At least one format must be specified. Maximum 50 formats to prevent
75
+ * overly complicated signals and ensure reasonable validation performance.
76
+ *
77
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalFormat formats = 5;
78
+ */
79
+ formats: SignalFormat[];
80
+ };
81
+ /**
82
+ * SignalDescriptor defines the complete specification of a signal, including its identity
83
+ * and data format, without containing the actual signal data.
84
+ *
85
+ * A signal descriptor represents what a signal IS - its name, documentation, and the
86
+ * single, specific format it produces. This is distinct from SignalBinding, which
87
+ * represents what formats a binding point ACCEPTS.
88
+ *
89
+ * @generated from message mochabugapis.adapt.graph.SignalDescriptor
90
+ */
91
+ export type SignalDescriptorJson = {
92
+ /**
93
+ * Identifier for the signal, following ECMAScript identifier naming conventions.
94
+ * Must be a valid JavaScript/TypeScript identifier to ensure compatibility with
95
+ * code generation and scripting environments.
96
+ *
97
+ * Pattern: Must start with letter, $, or _, followed by letters, digits, $, or _
98
+ * Length: 1-50 characters
99
+ *
100
+ * Examples: "temperature", "user_id", "$internal", "_privateSignal"
101
+ *
102
+ * @generated from field: string name = 1;
103
+ */
104
+ name?: string;
105
+ /**
106
+ * Human-readable label for the signal, suitable for display in user interfaces.
107
+ * Should be brief and descriptive.
108
+ *
109
+ * Length: Up to 250 characters
110
+ *
111
+ * Examples: "Room Temperature", "User ID", "Processing Status"
112
+ *
113
+ * @generated from field: optional string label = 2;
114
+ */
115
+ label?: string;
116
+ /**
117
+ * Detailed description of the signal's purpose, behavior, and usage.
118
+ * Should provide context for developers and users.
119
+ *
120
+ * Length: Up to 1000 characters
121
+ *
122
+ * May include:
123
+ * - What the signal represents
124
+ * - When it's emitted
125
+ * - Expected value ranges or formats
126
+ * - Usage examples or constraints
127
+ *
128
+ * @generated from field: optional string description = 3;
129
+ */
130
+ description?: string;
131
+ /**
132
+ * Indicates whether this signal must be provided.
133
+ *
134
+ * When false or unset: Signal is required and must be present
135
+ * When true: Signal is optional and may be omitted
136
+ *
137
+ * Optional signals provide flexibility in graph construction, allowing
138
+ * vertices to function with or without certain inputs.
139
+ *
140
+ * @generated from field: optional bool optional = 4;
141
+ */
142
+ optional?: boolean;
143
+ /**
144
+ * List of formats that this signal produces. The signal will produce any signal whose
145
+ * format matches at least one entry in this list.
146
+ *
147
+ * Validation: At least one format must be specified. Maximum 50 formats to prevent
148
+ * overly complicated signals and ensure reasonable validation performance.
149
+ *
150
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalFormat formats = 5;
151
+ */
152
+ formats?: SignalFormatJson[];
153
+ };
154
+ /**
155
+ * Describes the message mochabugapis.adapt.graph.SignalDescriptor.
156
+ * Use `create(SignalDescriptorSchema)` to create a new message.
157
+ */
158
+ export declare const SignalDescriptorSchema: GenMessage<SignalDescriptor, {
159
+ jsonType: SignalDescriptorJson;
160
+ }>;
161
+ //# sourceMappingURL=signal_descriptor_pb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal_descriptor_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,+CAA+C,EAAE,OACqf,CAAC;AAEpjB;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,2CAA2C,CAAC,GAAG;IACpF;;;;;;;;;;;OAWG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,EAAE;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAC,CACjC,CAAC"}
@@ -0,0 +1,305 @@
1
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { JTDSchema, JTDSchemaJson } from "./jtd_schema_pb";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file mochabugapis/adapt/graph/signal_format.proto.
6
+ */
7
+ export declare const file_mochabugapis_adapt_graph_signal_format: GenFile;
8
+ /**
9
+ * SignalFormat defines how signal data is structured and should be interpreted.
10
+ * All signals are binary at the transport level; this message determines the interpretation.
11
+ *
12
+ * This message is designed to be reusable across both signal descriptors (which produce
13
+ * one specific format or format family) and signal bindings (which may accept multiple formats).
14
+ *
15
+ * Format matching semantics:
16
+ * - JTD schemas use structural subsumption (handled by existing JTD subsume algorithm)
17
+ * - MIME types use pattern matching with optional wildcards
18
+ * - JTD and MIME formats are incompatible - a JTD signal cannot bind to a MIME-accepting
19
+ * binding and vice versa, even if semantically similar (e.g., application/json vs JTD)
20
+ *
21
+ * @generated from message mochabugapis.adapt.graph.SignalFormat
22
+ */
23
+ export type SignalFormat = Message<"mochabugapis.adapt.graph.SignalFormat"> & {
24
+ /**
25
+ * The format specification is mutually exclusive - a signal format is either:
26
+ * - jtd_schema: Structured JSON with schema validation (enables automatic validation,
27
+ * type inference, and platform-level tooling support)
28
+ * - mime_type: Generic binary format identification for non-JSON data
29
+ *
30
+ * Design note: While JSON data is technically "application/json" as a MIME type,
31
+ * using jtd_schema instead provides platform-level schema validation, automatic
32
+ * type checking, and better developer tooling support.
33
+ *
34
+ * @generated from oneof mochabugapis.adapt.graph.SignalFormat.format
35
+ */
36
+ format: {
37
+ /**
38
+ * Schema definition for JSON-structured signals.
39
+ * Must follow the JSON Type Definition (JTD) specification: https://www.rfc-editor.org/rfc/rfc8927
40
+ *
41
+ * The empty schema {} validates any JSON value.
42
+ *
43
+ * Common JTD primitive types:
44
+ * - "string": JSON string values
45
+ * - "float32", "float64": JSON numbers with specific precision
46
+ * - "int8", "int16", "int32": JSON numbers representing integers
47
+ * - "boolean": JSON boolean values (true/false)
48
+ * - "timestamp": ISO 8601 datetime strings (RFC 3339 format)
49
+ *
50
+ * JTD also supports complex types:
51
+ * - elements: { elements: { type: "string" } } for arrays
52
+ * - properties: { properties: { id: { type: "int32" } } } for objects
53
+ * - discriminator: For tagged unions
54
+ * - enum: For enumerated string values
55
+ * - nullable: Wraps any type to allow null
56
+ *
57
+ * Compatibility checking:
58
+ * JTD schemas are checked for structural compatibility using subsumption rules.
59
+ * A producer schema is compatible with a consumer schema if every valid value
60
+ * under the producer schema is also valid under the consumer schema.
61
+ *
62
+ * Example usage for text display binding (accepts primitive types):
63
+ * accepts = [
64
+ * { jtd_schema: { type: "string" } },
65
+ * { jtd_schema: { type: "float64" } },
66
+ * { jtd_schema: { type: "int32" } },
67
+ * { jtd_schema: { type: "boolean" } },
68
+ * { jtd_schema: { type: "timestamp" } }
69
+ * ]
70
+ *
71
+ * @generated from field: mochabugapis.adapt.graph.JTDSchema jtd_schema = 1;
72
+ */
73
+ value: JTDSchema;
74
+ case: "jtdSchema";
75
+ } | {
76
+ /**
77
+ * MIME type for binary format signals.
78
+ * Must be a concrete MIME type or a type-family wildcard, conforming to RFC 6838
79
+ * media type specifications (without parameters).
80
+ *
81
+ * Format requirements:
82
+ * - Structure: type/subtype (e.g., "image/png", "image/*")
83
+ * - Type must be concrete (alphanumeric start + allowed characters)
84
+ * - Subtype can be concrete OR wildcard "*"
85
+ * - NO parameters allowed (no semicolons or charset specifications)
86
+ * - Case-insensitive but conventionally lowercase
87
+ * - Maximum length: 255 characters (127 for type + "/" + 127 for subtype)
88
+ *
89
+ * Wildcard rules:
90
+ * Wildcards are allowed in two forms:
91
+ * ✅ "*\/*" - Universal wildcard (accepts/produces any format)
92
+ * ✅ "image/*" - Type-family wildcard (accepts/produces any image format)
93
+ * ✅ "text/*" - Type-family wildcard (accepts/produces any text format)
94
+ * ✅ "application/*" - Type-family wildcard (accepts/produces any application format)
95
+ * ✅ "image/png" - Concrete type (no wildcard)
96
+ * ❌ "*\/png" - Type wildcard with concrete subtype forbidden (semantically invalid)
97
+ * ❌ "*\/json" - Type wildcard with concrete subtype forbidden (semantically invalid)
98
+ *
99
+ * Why no parameters?
100
+ * Parameters like charset, boundary, and encoding are transport-level concerns
101
+ * in this system. All data is transmitted as binary/JSON, and character encoding
102
+ * is handled at the serialization layer, not the graph validation layer.
103
+ *
104
+ * **Character Encoding Assumption**:
105
+ * All text-based formats (text/*, application/json, application/xml, etc.) are
106
+ * assumed to use UTF-8 encoding. This is a platform-wide convention that ensures
107
+ * consistent text handling across all signal processing. When specifying text MIME
108
+ * types, charset parameters are forbidden and UTF-8 is always assumed.
109
+ *
110
+ * Examples of forbidden formats:
111
+ * ❌ "text/plain; charset=utf-8" (redundant - UTF-8 is assumed)
112
+ * ❌ "text/plain; charset=iso-8859-1" (non-UTF-8 encodings not supported)
113
+ * ❌ "application/json; format=compact"
114
+ * Instead use: "text/plain" or "application/json"
115
+ *
116
+ *
117
+ * Semantic meaning for producers vs consumers:
118
+ * - In SignalDescriptor (producer):
119
+ * - "*\/*" means "this signal's format is completely dynamic"
120
+ * - "image/*" means "this signal produces an image, format depends on runtime"
121
+ * - In SignalBinding (consumer):
122
+ * - "*\/*" means "this binding accepts any format universally"
123
+ * - "image/*" means "this binding accepts any image format"
124
+ *
125
+ * MIME type compatibility checking (subsumption rules):
126
+ * Subsumption hierarchy: Concrete ⊆ Type-family ⊆ Universal
127
+ * Example: image/png ⊆ image/* ⊆ *\/*
128
+ *
129
+ * A producer format is compatible with a consumer format if:
130
+ * - Both are concrete and equal: "image/png" ⊆ "image/png" ✅
131
+ * - Producer is concrete, consumer is type-family: "image/png" ⊆ "image/*" ✅
132
+ * - Producer is concrete, consumer is universal: "image/png" ⊆ "*\/*" ✅
133
+ * - Both are type-family of same type: "image/*" ⊆ "image/*" ✅
134
+ * - Producer is type-family, consumer is universal: "image/*" ⊆ "*\/*" ✅
135
+ * - Both are universal: "*\/*" ⊆ "*\/*" ✅
136
+ * - Producer is type-family, consumer is concrete: "image/*" ⊆ "image/png" ❌
137
+ * - Producer is universal, consumer is type-family: "*\/*" ⊆ "image/*" ❌
138
+ * - Producer is universal, consumer is concrete: "*\/*" ⊆ "image/png" ❌
139
+ * - Different types: "image/png" ⊆ "text/*" ❌
140
+ *
141
+ * Common concrete examples:
142
+ * - Images: "image/png", "image/jpeg", "image/webp", "image/gif", "image/svg+xml"
143
+ * - Documents: "application/pdf", "text/html", "text/markdown"
144
+ * - Binary: "application/octet-stream", "application/zip"
145
+ * - Text: "text/plain", "text/csv"
146
+ *
147
+ * Common wildcard examples:
148
+ * - "image/*": Any raster or vector image format
149
+ * - "text/*": Any text-based format
150
+ * - "application/*": Any application-specific binary format
151
+ * - "audio/*": Any audio format
152
+ * - "video/*": Any video format
153
+ *
154
+ * @generated from field: string mime_type = 2;
155
+ */
156
+ value: string;
157
+ case: "mimeType";
158
+ } | {
159
+ case: undefined;
160
+ value?: undefined;
161
+ };
162
+ };
163
+ /**
164
+ * SignalFormat defines how signal data is structured and should be interpreted.
165
+ * All signals are binary at the transport level; this message determines the interpretation.
166
+ *
167
+ * This message is designed to be reusable across both signal descriptors (which produce
168
+ * one specific format or format family) and signal bindings (which may accept multiple formats).
169
+ *
170
+ * Format matching semantics:
171
+ * - JTD schemas use structural subsumption (handled by existing JTD subsume algorithm)
172
+ * - MIME types use pattern matching with optional wildcards
173
+ * - JTD and MIME formats are incompatible - a JTD signal cannot bind to a MIME-accepting
174
+ * binding and vice versa, even if semantically similar (e.g., application/json vs JTD)
175
+ *
176
+ * @generated from message mochabugapis.adapt.graph.SignalFormat
177
+ */
178
+ export type SignalFormatJson = {
179
+ /**
180
+ * Schema definition for JSON-structured signals.
181
+ * Must follow the JSON Type Definition (JTD) specification: https://www.rfc-editor.org/rfc/rfc8927
182
+ *
183
+ * The empty schema {} validates any JSON value.
184
+ *
185
+ * Common JTD primitive types:
186
+ * - "string": JSON string values
187
+ * - "float32", "float64": JSON numbers with specific precision
188
+ * - "int8", "int16", "int32": JSON numbers representing integers
189
+ * - "boolean": JSON boolean values (true/false)
190
+ * - "timestamp": ISO 8601 datetime strings (RFC 3339 format)
191
+ *
192
+ * JTD also supports complex types:
193
+ * - elements: { elements: { type: "string" } } for arrays
194
+ * - properties: { properties: { id: { type: "int32" } } } for objects
195
+ * - discriminator: For tagged unions
196
+ * - enum: For enumerated string values
197
+ * - nullable: Wraps any type to allow null
198
+ *
199
+ * Compatibility checking:
200
+ * JTD schemas are checked for structural compatibility using subsumption rules.
201
+ * A producer schema is compatible with a consumer schema if every valid value
202
+ * under the producer schema is also valid under the consumer schema.
203
+ *
204
+ * Example usage for text display binding (accepts primitive types):
205
+ * accepts = [
206
+ * { jtd_schema: { type: "string" } },
207
+ * { jtd_schema: { type: "float64" } },
208
+ * { jtd_schema: { type: "int32" } },
209
+ * { jtd_schema: { type: "boolean" } },
210
+ * { jtd_schema: { type: "timestamp" } }
211
+ * ]
212
+ *
213
+ * @generated from field: mochabugapis.adapt.graph.JTDSchema jtd_schema = 1;
214
+ */
215
+ jtdSchema?: JTDSchemaJson;
216
+ /**
217
+ * MIME type for binary format signals.
218
+ * Must be a concrete MIME type or a type-family wildcard, conforming to RFC 6838
219
+ * media type specifications (without parameters).
220
+ *
221
+ * Format requirements:
222
+ * - Structure: type/subtype (e.g., "image/png", "image/*")
223
+ * - Type must be concrete (alphanumeric start + allowed characters)
224
+ * - Subtype can be concrete OR wildcard "*"
225
+ * - NO parameters allowed (no semicolons or charset specifications)
226
+ * - Case-insensitive but conventionally lowercase
227
+ * - Maximum length: 255 characters (127 for type + "/" + 127 for subtype)
228
+ *
229
+ * Wildcard rules:
230
+ * Wildcards are allowed in two forms:
231
+ * ✅ "*\/*" - Universal wildcard (accepts/produces any format)
232
+ * ✅ "image/*" - Type-family wildcard (accepts/produces any image format)
233
+ * ✅ "text/*" - Type-family wildcard (accepts/produces any text format)
234
+ * ✅ "application/*" - Type-family wildcard (accepts/produces any application format)
235
+ * ✅ "image/png" - Concrete type (no wildcard)
236
+ * ❌ "*\/png" - Type wildcard with concrete subtype forbidden (semantically invalid)
237
+ * ❌ "*\/json" - Type wildcard with concrete subtype forbidden (semantically invalid)
238
+ *
239
+ * Why no parameters?
240
+ * Parameters like charset, boundary, and encoding are transport-level concerns
241
+ * in this system. All data is transmitted as binary/JSON, and character encoding
242
+ * is handled at the serialization layer, not the graph validation layer.
243
+ *
244
+ * **Character Encoding Assumption**:
245
+ * All text-based formats (text/*, application/json, application/xml, etc.) are
246
+ * assumed to use UTF-8 encoding. This is a platform-wide convention that ensures
247
+ * consistent text handling across all signal processing. When specifying text MIME
248
+ * types, charset parameters are forbidden and UTF-8 is always assumed.
249
+ *
250
+ * Examples of forbidden formats:
251
+ * ❌ "text/plain; charset=utf-8" (redundant - UTF-8 is assumed)
252
+ * ❌ "text/plain; charset=iso-8859-1" (non-UTF-8 encodings not supported)
253
+ * ❌ "application/json; format=compact"
254
+ * Instead use: "text/plain" or "application/json"
255
+ *
256
+ *
257
+ * Semantic meaning for producers vs consumers:
258
+ * - In SignalDescriptor (producer):
259
+ * - "*\/*" means "this signal's format is completely dynamic"
260
+ * - "image/*" means "this signal produces an image, format depends on runtime"
261
+ * - In SignalBinding (consumer):
262
+ * - "*\/*" means "this binding accepts any format universally"
263
+ * - "image/*" means "this binding accepts any image format"
264
+ *
265
+ * MIME type compatibility checking (subsumption rules):
266
+ * Subsumption hierarchy: Concrete ⊆ Type-family ⊆ Universal
267
+ * Example: image/png ⊆ image/* ⊆ *\/*
268
+ *
269
+ * A producer format is compatible with a consumer format if:
270
+ * - Both are concrete and equal: "image/png" ⊆ "image/png" ✅
271
+ * - Producer is concrete, consumer is type-family: "image/png" ⊆ "image/*" ✅
272
+ * - Producer is concrete, consumer is universal: "image/png" ⊆ "*\/*" ✅
273
+ * - Both are type-family of same type: "image/*" ⊆ "image/*" ✅
274
+ * - Producer is type-family, consumer is universal: "image/*" ⊆ "*\/*" ✅
275
+ * - Both are universal: "*\/*" ⊆ "*\/*" ✅
276
+ * - Producer is type-family, consumer is concrete: "image/*" ⊆ "image/png" ❌
277
+ * - Producer is universal, consumer is type-family: "*\/*" ⊆ "image/*" ❌
278
+ * - Producer is universal, consumer is concrete: "*\/*" ⊆ "image/png" ❌
279
+ * - Different types: "image/png" ⊆ "text/*" ❌
280
+ *
281
+ * Common concrete examples:
282
+ * - Images: "image/png", "image/jpeg", "image/webp", "image/gif", "image/svg+xml"
283
+ * - Documents: "application/pdf", "text/html", "text/markdown"
284
+ * - Binary: "application/octet-stream", "application/zip"
285
+ * - Text: "text/plain", "text/csv"
286
+ *
287
+ * Common wildcard examples:
288
+ * - "image/*": Any raster or vector image format
289
+ * - "text/*": Any text-based format
290
+ * - "application/*": Any application-specific binary format
291
+ * - "audio/*": Any audio format
292
+ * - "video/*": Any video format
293
+ *
294
+ * @generated from field: string mime_type = 2;
295
+ */
296
+ mimeType?: string;
297
+ };
298
+ /**
299
+ * Describes the message mochabugapis.adapt.graph.SignalFormat.
300
+ * Use `create(SignalFormatSchema)` to create a new message.
301
+ */
302
+ export declare const SignalFormatSchema: GenMessage<SignalFormat, {
303
+ jsonType: SignalFormatJson;
304
+ }>;
305
+ //# sourceMappingURL=signal_format_pb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal_format_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/signal_format_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,2CAA2C,EAAE,OACo/B,CAAC;AAE/iC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,uCAAuC,CAAC,GAAG;IAC5E;;;;;;;;;;;OAWG;IACH,MAAM,EAAE;QACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCG;QACH,KAAK,EAAE,SAAS,CAAC;QACjB,IAAI,EAAE,WAAW,CAAC;KACnB,GAAG;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+EG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,UAAU,CAAC;KAClB,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,YAAY,EAAE;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAC,CACzB,CAAC"}
@@ -0,0 +1,77 @@
1
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { SignalDescriptor, SignalDescriptorJson } from "./signal_descriptor_pb";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file mochabugapis/adapt/graph/transceiver.proto.
6
+ */
7
+ export declare const file_mochabugapis_adapt_graph_transceiver: GenFile;
8
+ /**
9
+ * Transceiver is a dual-purpose entity capable of both emitting and receiving signals.
10
+ *
11
+ * @generated from message mochabugapis.adapt.graph.Transceiver
12
+ */
13
+ export type Transceiver = Message<"mochabugapis.adapt.graph.Transceiver"> & {
14
+ /**
15
+ * Identifier for the transceiver, following the ECMA naming pattern, limited to 50 characters.
16
+ *
17
+ * @generated from field: string name = 1;
18
+ */
19
+ name: string;
20
+ /**
21
+ * Optional descriptive text for the transceiver's purpose, up to 250 characters.
22
+ *
23
+ * @generated from field: optional string description = 2;
24
+ */
25
+ description?: string;
26
+ /**
27
+ * List of signals the transceiver handles. Can contain up to 512 unique signals.
28
+ *
29
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalDescriptor signals = 3;
30
+ */
31
+ signals: SignalDescriptor[];
32
+ /**
33
+ * Wheter or not the transceiver is a streaming transceiver.
34
+ *
35
+ * @generated from field: optional bool streaming = 4;
36
+ */
37
+ streaming?: boolean;
38
+ };
39
+ /**
40
+ * Transceiver is a dual-purpose entity capable of both emitting and receiving signals.
41
+ *
42
+ * @generated from message mochabugapis.adapt.graph.Transceiver
43
+ */
44
+ export type TransceiverJson = {
45
+ /**
46
+ * Identifier for the transceiver, following the ECMA naming pattern, limited to 50 characters.
47
+ *
48
+ * @generated from field: string name = 1;
49
+ */
50
+ name?: string;
51
+ /**
52
+ * Optional descriptive text for the transceiver's purpose, up to 250 characters.
53
+ *
54
+ * @generated from field: optional string description = 2;
55
+ */
56
+ description?: string;
57
+ /**
58
+ * List of signals the transceiver handles. Can contain up to 512 unique signals.
59
+ *
60
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalDescriptor signals = 3;
61
+ */
62
+ signals?: SignalDescriptorJson[];
63
+ /**
64
+ * Wheter or not the transceiver is a streaming transceiver.
65
+ *
66
+ * @generated from field: optional bool streaming = 4;
67
+ */
68
+ streaming?: boolean;
69
+ };
70
+ /**
71
+ * Describes the message mochabugapis.adapt.graph.Transceiver.
72
+ * Use `create(TransceiverSchema)` to create a new message.
73
+ */
74
+ export declare const TransceiverSchema: GenMessage<Transceiver, {
75
+ jsonType: TransceiverJson;
76
+ }>;
77
+ //# sourceMappingURL=transceiver_pb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transceiver_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/transceiver_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,yCAAyC,EAAE,OAC4kB,CAAC;AAEroB;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,sCAAsC,CAAC,GAAG;IAC1E;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,WAAW,EAAE;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAC,CACxB,CAAC"}
@@ -0,0 +1,120 @@
1
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { SignalDescriptor, SignalDescriptorJson } from "./signal_descriptor_pb";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file mochabugapis/adapt/graph/transmitter.proto.
6
+ */
7
+ export declare const file_mochabugapis_adapt_graph_transmitter: GenFile;
8
+ /**
9
+ * Transmitter represents an output point for a vertex, emitting multiple signals.
10
+ *
11
+ * @generated from message mochabugapis.adapt.graph.Transmitter
12
+ */
13
+ export type Transmitter = Message<"mochabugapis.adapt.graph.Transmitter"> & {
14
+ /**
15
+ * Identifier for the transmitter, following the ECMA naming pattern, limited to 50 characters.
16
+ *
17
+ * @generated from field: string name = 1;
18
+ */
19
+ name: string;
20
+ /**
21
+ * Optional descriptive text for the transmitter's purpose, up to 250 characters.
22
+ *
23
+ * @generated from field: optional string description = 2;
24
+ */
25
+ description?: string;
26
+ /**
27
+ * List of signals the transmitter can emit. Can contain up to 512 unique signals.
28
+ *
29
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalDescriptor signals = 3;
30
+ */
31
+ signals: SignalDescriptor[];
32
+ /**
33
+ * An optional mode for the transmitter, indicating its operational context.
34
+ * If not set, it defaults to the standard mode
35
+ *
36
+ * @generated from field: optional mochabugapis.adapt.graph.Transmitter.Mode mode = 4;
37
+ */
38
+ mode?: Transmitter_Mode;
39
+ };
40
+ /**
41
+ * Transmitter represents an output point for a vertex, emitting multiple signals.
42
+ *
43
+ * @generated from message mochabugapis.adapt.graph.Transmitter
44
+ */
45
+ export type TransmitterJson = {
46
+ /**
47
+ * Identifier for the transmitter, following the ECMA naming pattern, limited to 50 characters.
48
+ *
49
+ * @generated from field: string name = 1;
50
+ */
51
+ name?: string;
52
+ /**
53
+ * Optional descriptive text for the transmitter's purpose, up to 250 characters.
54
+ *
55
+ * @generated from field: optional string description = 2;
56
+ */
57
+ description?: string;
58
+ /**
59
+ * List of signals the transmitter can emit. Can contain up to 512 unique signals.
60
+ *
61
+ * @generated from field: repeated mochabugapis.adapt.graph.SignalDescriptor signals = 3;
62
+ */
63
+ signals?: SignalDescriptorJson[];
64
+ /**
65
+ * An optional mode for the transmitter, indicating its operational context.
66
+ * If not set, it defaults to the standard mode
67
+ *
68
+ * @generated from field: optional mochabugapis.adapt.graph.Transmitter.Mode mode = 4;
69
+ */
70
+ mode?: Transmitter_ModeJson;
71
+ };
72
+ /**
73
+ * Describes the message mochabugapis.adapt.graph.Transmitter.
74
+ * Use `create(TransmitterSchema)` to create a new message.
75
+ */
76
+ export declare const TransmitterSchema: GenMessage<Transmitter, {
77
+ jsonType: TransmitterJson;
78
+ }>;
79
+ /**
80
+ * The type of the transmitter.
81
+ *
82
+ * @generated from enum mochabugapis.adapt.graph.Transmitter.Mode
83
+ */
84
+ export declare enum Transmitter_Mode {
85
+ /**
86
+ * Default value indicating the mode is not explicitly set.
87
+ *
88
+ * @generated from enum value: MODE_UNSPECIFIED = 0;
89
+ */
90
+ UNSPECIFIED = 0,
91
+ /**
92
+ * Transmitter is transmitting with the standard mode. I.e. a single transmission
93
+ *
94
+ * @generated from enum value: MODE_STANDARD = 1;
95
+ */
96
+ STANDARD = 1,
97
+ /**
98
+ * Transmitter is transmitter with stream. I.e. multiple transmissions
99
+ *
100
+ * @generated from enum value: MODE_STREAM = 2;
101
+ */
102
+ STREAM = 2,
103
+ /**
104
+ * Transmitter is transmitting a failure. I.e. a single transmission with a failure flag
105
+ *
106
+ * @generated from enum value: MODE_FAILURE = 3;
107
+ */
108
+ FAILURE = 3
109
+ }
110
+ /**
111
+ * The type of the transmitter.
112
+ *
113
+ * @generated from enum mochabugapis.adapt.graph.Transmitter.Mode
114
+ */
115
+ export type Transmitter_ModeJson = "MODE_UNSPECIFIED" | "MODE_STANDARD" | "MODE_STREAM" | "MODE_FAILURE";
116
+ /**
117
+ * Describes the enum mochabugapis.adapt.graph.Transmitter.Mode.
118
+ */
119
+ export declare const Transmitter_ModeSchema: GenEnum<Transmitter_Mode, Transmitter_ModeJson>;
120
+ //# sourceMappingURL=transmitter_pb.d.ts.map