@mochabug/adapt-builder 0.1.11 → 0.2.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.
@@ -1,5 +1,4 @@
1
1
  import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
- import type { SignalData, SignalDataJson } from "./signal_data_pb";
3
2
  import type { SignalFormat, SignalFormatJson } from "./signal_format_pb";
4
3
  import type { Message } from "@bufbuild/protobuf";
5
4
  /**
@@ -15,8 +14,8 @@ export declare const file_mochabugapis_adapt_graph_signal_binding: GenFile;
15
14
  * various compatible formats. For example, a text display component might accept strings,
16
15
  * numbers, dates, and booleans, while an image viewer might accept image/* MIME types.
17
16
  *
18
- * The binding can be connected to a signal reference or assigned a constant value.
19
- * Runtime validation ensures the bound signal's format matches one of the accepted formats.
17
+ * The binding is connected via a reference — either to a signal in the graph or to a
18
+ * project-level constant. Validation ensures the format matches one of the accepted formats.
20
19
  *
21
20
  * @generated from message mochabugapis.adapt.graph.SignalBinding
22
21
  */
@@ -120,64 +119,32 @@ export type SignalBinding = Message<"mochabugapis.adapt.graph.SignalBinding"> &
120
119
  */
121
120
  accepts: SignalFormat[];
122
121
  /**
123
- * The actual binding - either a reference to another signal or a constant value.
124
- * Not required if the binding is marked as optional.
122
+ * Reference to another signal in the graph, or a project-level constant.
125
123
  *
126
- * When required (optional = false):
127
- * - Exactly one of 'reference' or 'constant' must be set
128
- * - If neither is set, ERROR_UNBOUND will be raised
124
+ * Signal reference format: <vertex_id>/<transmitter_name>/<signal_name>
125
+ * - vertex_id: 4-character alphanumeric identifier (lowercase)
126
+ * - transmitter_name: ECMAScript identifier for the output transmitter
127
+ * - signal_name: ECMAScript identifier for the specific signal
128
+ *
129
+ * Constant reference format: constant/<constant_name>
130
+ * - constant_name: ECMAScript identifier for the project-level constant
129
131
  *
130
- * When optional (optional = true):
131
- * - May be unset (neither reference nor constant)
132
- * - Vertex must handle the unbound case gracefully
132
+ * Examples:
133
+ * - "a1b2/output/temperature" (signal reference)
134
+ * - "xyz9/results/processedData" (signal reference)
135
+ * - "constant/apiKey" (constant reference)
136
+ * - "constant/threshold" (constant reference)
137
+ *
138
+ * Signal references are resolved during execution by reading from the
139
+ * referenced transmitter. Constant references are baked into the published
140
+ * run and must be valid at publish time.
133
141
  *
134
- * @generated from oneof mochabugapis.adapt.graph.SignalBinding.binding
142
+ * The referenced signal's or constant's format must match one of the
143
+ * accepted formats. Validation occurs at graph construction time.
144
+ *
145
+ * @generated from field: string reference = 6;
135
146
  */
136
- binding: {
137
- /**
138
- * Reference to another signal in the graph.
139
- *
140
- * Format: <vertex_id>/<transmitter_name>/<signal_name>
141
- * - vertex_id: 4-character alphanumeric identifier (lowercase)
142
- * - transmitter_name: ECMAScript identifier for the output transmitter
143
- * - signal_name: ECMAScript identifier for the specific signal
144
- *
145
- * Examples:
146
- * - "a1b2/output/temperature"
147
- * - "xyz9/results/processedData"
148
- * - "0123/$internal/_debug"
149
- *
150
- * The referenced signal's format must match one of the accepted formats.
151
- * Validation occurs at graph construction time.
152
- *
153
- * @generated from field: string reference = 6;
154
- */
155
- value: string;
156
- case: "reference";
157
- } | {
158
- /**
159
- * Constant value to bind to this input.
160
- * The constant must be serialized in a format matching one of the accepted formats.
161
- *
162
- * For JTD schemas:
163
- * - Value must be JSON-serialized and encoded as bytes
164
- * - Must validate against at least one accepted JTD schema
165
- *
166
- * For MIME types:
167
- * - Value must be in the binary format specified by the MIME type
168
- * - Must match at least one accepted MIME type (considering wildcards)
169
- *
170
- * Validation occurs at graph construction time.
171
- *
172
- * @generated from field: mochabugapis.adapt.graph.SignalData constant = 7 [deprecated = true];
173
- * @deprecated
174
- */
175
- value: SignalData;
176
- case: "constant";
177
- } | {
178
- case: undefined;
179
- value?: undefined;
180
- };
147
+ reference: string;
181
148
  /**
182
149
  * Error state of this binding, if any.
183
150
  * Set by the graph validation system when issues are detected.
@@ -202,8 +169,8 @@ export type SignalBinding = Message<"mochabugapis.adapt.graph.SignalBinding"> &
202
169
  * various compatible formats. For example, a text display component might accept strings,
203
170
  * numbers, dates, and booleans, while an image viewer might accept image/* MIME types.
204
171
  *
205
- * The binding can be connected to a signal reference or assigned a constant value.
206
- * Runtime validation ensures the bound signal's format matches one of the accepted formats.
172
+ * The binding is connected via a reference — either to a signal in the graph or to a
173
+ * project-level constant. Validation ensures the format matches one of the accepted formats.
207
174
  *
208
175
  * @generated from message mochabugapis.adapt.graph.SignalBinding
209
176
  */
@@ -307,42 +274,32 @@ export type SignalBindingJson = {
307
274
  */
308
275
  accepts?: SignalFormatJson[];
309
276
  /**
310
- * Reference to another signal in the graph.
277
+ * Reference to another signal in the graph, or a project-level constant.
311
278
  *
312
- * Format: <vertex_id>/<transmitter_name>/<signal_name>
279
+ * Signal reference format: <vertex_id>/<transmitter_name>/<signal_name>
313
280
  * - vertex_id: 4-character alphanumeric identifier (lowercase)
314
281
  * - transmitter_name: ECMAScript identifier for the output transmitter
315
282
  * - signal_name: ECMAScript identifier for the specific signal
316
283
  *
284
+ * Constant reference format: constant/<constant_name>
285
+ * - constant_name: ECMAScript identifier for the project-level constant
286
+ *
317
287
  * Examples:
318
- * - "a1b2/output/temperature"
319
- * - "xyz9/results/processedData"
320
- * - "0123/$internal/_debug"
288
+ * - "a1b2/output/temperature" (signal reference)
289
+ * - "xyz9/results/processedData" (signal reference)
290
+ * - "constant/apiKey" (constant reference)
291
+ * - "constant/threshold" (constant reference)
292
+ *
293
+ * Signal references are resolved during execution by reading from the
294
+ * referenced transmitter. Constant references are baked into the published
295
+ * run and must be valid at publish time.
321
296
  *
322
- * The referenced signal's format must match one of the accepted formats.
323
- * Validation occurs at graph construction time.
297
+ * The referenced signal's or constant's format must match one of the
298
+ * accepted formats. Validation occurs at graph construction time.
324
299
  *
325
300
  * @generated from field: string reference = 6;
326
301
  */
327
302
  reference?: string;
328
- /**
329
- * Constant value to bind to this input.
330
- * The constant must be serialized in a format matching one of the accepted formats.
331
- *
332
- * For JTD schemas:
333
- * - Value must be JSON-serialized and encoded as bytes
334
- * - Must validate against at least one accepted JTD schema
335
- *
336
- * For MIME types:
337
- * - Value must be in the binary format specified by the MIME type
338
- * - Must match at least one accepted MIME type (considering wildcards)
339
- *
340
- * Validation occurs at graph construction time.
341
- *
342
- * @generated from field: mochabugapis.adapt.graph.SignalData constant = 7 [deprecated = true];
343
- * @deprecated
344
- */
345
- constant?: SignalDataJson;
346
303
  /**
347
304
  * Error state of this binding, if any.
348
305
  * Set by the graph validation system when issues are detected.
@@ -380,12 +337,12 @@ export declare enum SignalBinding_Error {
380
337
  */
381
338
  UNSPECIFIED = 0,
382
339
  /**
383
- * The binding is unbound (no reference or constant provided) despite being required.
340
+ * The binding is unbound (no reference provided) despite being required.
384
341
  * This occurs when:
385
342
  * - The binding is not marked as optional
386
- * - Neither 'reference' nor 'constant' is set in the binding oneof
343
+ * - The 'reference' field is not set
387
344
  *
388
- * Resolution: Provide either a signal reference or a constant value.
345
+ * Resolution: Provide a signal reference or a constant reference.
389
346
  *
390
347
  * @generated from enum value: ERROR_UNBOUND = 1;
391
348
  */
@@ -1 +1 @@
1
- {"version":3,"file":"signal_binding_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/signal_binding_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGjF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,4CAA4C,EAAE,OAC2wC,CAAC;AAEv0C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,wCAAwC,CAAC,GAAG;IAC9E;;;;;;;;;;OAUG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;;;;;;;;;;;;OAaG;IACH,OAAO,EAAE;QACP;;;;;;;;;;;;;;;;;WAiBG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,WAAW,CAAC;KACnB,GAAG;QACF;;;;;;;;;;;;;;;;WAgBG;QACH,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,UAAU,CAAC;KAClB,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAE3C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;OAUG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,EAAE;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAC,CAC3B,CAAC;AAE/D;;;;;GAKG;AACH,oBAAY,mBAAmB;IAC7B;;;;;OAKG;IACH,WAAW,IAAI;IAEf;;;;;;;;;OASG;IACH,OAAO,IAAI;IAEX;;;;;;;;;;;OAWG;IACH,cAAc,IAAI;IAElB;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,eAAe,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE/H;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAAC,mBAAmB,EAAE,uBAAuB,CAC9B,CAAC"}
1
+ {"version":3,"file":"signal_binding_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/signal_binding_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGjF,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,4CAA4C,EAAE,OACy6B,CAAC;AAEr+B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,wCAAwC,CAAC,GAAG;IAC9E;;;;;;;;;;OAUG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;OAUG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,EAAE;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAC,CAC3B,CAAC;AAE/D;;;;;GAKG;AACH,oBAAY,mBAAmB;IAC7B;;;;;OAKG;IACH,WAAW,IAAI;IAEf;;;;;;;;;OASG;IACH,OAAO,IAAI;IAEX;;;;;;;;;;;OAWG;IACH,cAAc,IAAI;IAElB;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,eAAe,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE/H;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAAC,mBAAmB,EAAE,uBAAuB,CAC9B,CAAC"}
@@ -0,0 +1,317 @@
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/user_defined_exchange_options.proto.
6
+ */
7
+ export declare const file_mochabugapis_adapt_graph_user_defined_exchange_options: GenFile;
8
+ /**
9
+ * UserDefinedExchangeOptions configures if and how users can create their own
10
+ * exchanges on a vertex at graph construction time.
11
+ *
12
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions
13
+ */
14
+ export type UserDefinedExchangeOptions = Message<"mochabugapis.adapt.graph.UserDefinedExchangeOptions"> & {
15
+ /**
16
+ * Restrictions on transmitter transceivers within user-defined exchanges.
17
+ * Unset = no restrictions beyond Exchange's own validation.
18
+ *
19
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions transmitter_options = 1;
20
+ */
21
+ transmitterOptions?: UserDefinedExchangeOptions_TransceiverOptions;
22
+ /**
23
+ * Restrictions on receiver transceivers within user-defined exchanges.
24
+ * Unset = no restrictions beyond Exchange's own validation.
25
+ *
26
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions receiver_options = 2;
27
+ */
28
+ receiverOptions?: UserDefinedExchangeOptions_TransceiverOptions;
29
+ /**
30
+ * Maximum number of user-defined exchanges allowed. Unset = no limit.
31
+ *
32
+ * @generated from field: optional int32 max_exchanges = 3;
33
+ */
34
+ maxExchanges?: number;
35
+ /**
36
+ * Minimum number of user-defined exchanges required. Unset = no minimum.
37
+ *
38
+ * @generated from field: optional int32 min_exchanges = 4;
39
+ */
40
+ minExchanges?: number;
41
+ /**
42
+ * Locks on specific plugin-defined exchanges.
43
+ *
44
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock exchange_locks = 5;
45
+ */
46
+ exchangeLocks: UserDefinedExchangeOptions_ExchangeLock[];
47
+ };
48
+ /**
49
+ * UserDefinedExchangeOptions configures if and how users can create their own
50
+ * exchanges on a vertex at graph construction time.
51
+ *
52
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions
53
+ */
54
+ export type UserDefinedExchangeOptionsJson = {
55
+ /**
56
+ * Restrictions on transmitter transceivers within user-defined exchanges.
57
+ * Unset = no restrictions beyond Exchange's own validation.
58
+ *
59
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions transmitter_options = 1;
60
+ */
61
+ transmitterOptions?: UserDefinedExchangeOptions_TransceiverOptionsJson;
62
+ /**
63
+ * Restrictions on receiver transceivers within user-defined exchanges.
64
+ * Unset = no restrictions beyond Exchange's own validation.
65
+ *
66
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions receiver_options = 2;
67
+ */
68
+ receiverOptions?: UserDefinedExchangeOptions_TransceiverOptionsJson;
69
+ /**
70
+ * Maximum number of user-defined exchanges allowed. Unset = no limit.
71
+ *
72
+ * @generated from field: optional int32 max_exchanges = 3;
73
+ */
74
+ maxExchanges?: number;
75
+ /**
76
+ * Minimum number of user-defined exchanges required. Unset = no minimum.
77
+ *
78
+ * @generated from field: optional int32 min_exchanges = 4;
79
+ */
80
+ minExchanges?: number;
81
+ /**
82
+ * Locks on specific plugin-defined exchanges.
83
+ *
84
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock exchange_locks = 5;
85
+ */
86
+ exchangeLocks?: UserDefinedExchangeOptions_ExchangeLockJson[];
87
+ };
88
+ /**
89
+ * Describes the message mochabugapis.adapt.graph.UserDefinedExchangeOptions.
90
+ * Use `create(UserDefinedExchangeOptionsSchema)` to create a new message.
91
+ */
92
+ export declare const UserDefinedExchangeOptionsSchema: GenMessage<UserDefinedExchangeOptions, {
93
+ jsonType: UserDefinedExchangeOptionsJson;
94
+ }>;
95
+ /**
96
+ * SignalLock constrains a specific signal within a transceiver.
97
+ * Presence means the signal is locked. Fields grant exceptions.
98
+ *
99
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock
100
+ */
101
+ export type UserDefinedExchangeOptions_SignalLock = Message<"mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock"> & {
102
+ /**
103
+ * Name of the signal to lock.
104
+ *
105
+ * @generated from field: string name = 1;
106
+ */
107
+ name: string;
108
+ /**
109
+ * If set, the user can modify this signal's format but their format must
110
+ * subsume this base format. If unset, the signal is fully locked.
111
+ *
112
+ * @generated from field: optional mochabugapis.adapt.graph.SignalFormat must_subsume = 2;
113
+ */
114
+ mustSubsume?: SignalFormat;
115
+ };
116
+ /**
117
+ * SignalLock constrains a specific signal within a transceiver.
118
+ * Presence means the signal is locked. Fields grant exceptions.
119
+ *
120
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock
121
+ */
122
+ export type UserDefinedExchangeOptions_SignalLockJson = {
123
+ /**
124
+ * Name of the signal to lock.
125
+ *
126
+ * @generated from field: string name = 1;
127
+ */
128
+ name?: string;
129
+ /**
130
+ * If set, the user can modify this signal's format but their format must
131
+ * subsume this base format. If unset, the signal is fully locked.
132
+ *
133
+ * @generated from field: optional mochabugapis.adapt.graph.SignalFormat must_subsume = 2;
134
+ */
135
+ mustSubsume?: SignalFormatJson;
136
+ };
137
+ /**
138
+ * Describes the message mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock.
139
+ * Use `create(UserDefinedExchangeOptions_SignalLockSchema)` to create a new message.
140
+ */
141
+ export declare const UserDefinedExchangeOptions_SignalLockSchema: GenMessage<UserDefinedExchangeOptions_SignalLock, {
142
+ jsonType: UserDefinedExchangeOptions_SignalLockJson;
143
+ }>;
144
+ /**
145
+ * TransceiverSignalLocks locks specific signals on a named transceiver.
146
+ * The transceiver itself remains modifiable unless also listed in
147
+ * TransceiverOptions.locked.
148
+ *
149
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks
150
+ */
151
+ export type UserDefinedExchangeOptions_TransceiverSignalLocks = Message<"mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks"> & {
152
+ /**
153
+ * Name of the transceiver.
154
+ *
155
+ * @generated from field: string name = 1;
156
+ */
157
+ name: string;
158
+ /**
159
+ * Per-signal constraints within this transceiver.
160
+ *
161
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock signals = 2;
162
+ */
163
+ signals: UserDefinedExchangeOptions_SignalLock[];
164
+ };
165
+ /**
166
+ * TransceiverSignalLocks locks specific signals on a named transceiver.
167
+ * The transceiver itself remains modifiable unless also listed in
168
+ * TransceiverOptions.locked.
169
+ *
170
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks
171
+ */
172
+ export type UserDefinedExchangeOptions_TransceiverSignalLocksJson = {
173
+ /**
174
+ * Name of the transceiver.
175
+ *
176
+ * @generated from field: string name = 1;
177
+ */
178
+ name?: string;
179
+ /**
180
+ * Per-signal constraints within this transceiver.
181
+ *
182
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.SignalLock signals = 2;
183
+ */
184
+ signals?: UserDefinedExchangeOptions_SignalLockJson[];
185
+ };
186
+ /**
187
+ * Describes the message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks.
188
+ * Use `create(UserDefinedExchangeOptions_TransceiverSignalLocksSchema)` to create a new message.
189
+ */
190
+ export declare const UserDefinedExchangeOptions_TransceiverSignalLocksSchema: GenMessage<UserDefinedExchangeOptions_TransceiverSignalLocks, {
191
+ jsonType: UserDefinedExchangeOptions_TransceiverSignalLocksJson;
192
+ }>;
193
+ /**
194
+ * TransceiverOptions restricts transceivers within user-defined exchanges.
195
+ *
196
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions
197
+ */
198
+ export type UserDefinedExchangeOptions_TransceiverOptions = Message<"mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions"> & {
199
+ /**
200
+ * Whether streaming transceivers are allowed.
201
+ * Unset or true = allowed. False = forbidden.
202
+ *
203
+ * @generated from field: optional bool allow_streaming = 1;
204
+ */
205
+ allowStreaming?: boolean;
206
+ /**
207
+ * Plugin-defined transceivers that users cannot modify or delete.
208
+ *
209
+ * @generated from field: repeated string locked = 2;
210
+ */
211
+ locked: string[];
212
+ /**
213
+ * Per-transceiver signal locks. Locks specific signals on specific
214
+ * transceivers while leaving the transceiver itself modifiable.
215
+ *
216
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks signal_locks = 3;
217
+ */
218
+ signalLocks: UserDefinedExchangeOptions_TransceiverSignalLocks[];
219
+ };
220
+ /**
221
+ * TransceiverOptions restricts transceivers within user-defined exchanges.
222
+ *
223
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions
224
+ */
225
+ export type UserDefinedExchangeOptions_TransceiverOptionsJson = {
226
+ /**
227
+ * Whether streaming transceivers are allowed.
228
+ * Unset or true = allowed. False = forbidden.
229
+ *
230
+ * @generated from field: optional bool allow_streaming = 1;
231
+ */
232
+ allowStreaming?: boolean;
233
+ /**
234
+ * Plugin-defined transceivers that users cannot modify or delete.
235
+ *
236
+ * @generated from field: repeated string locked = 2;
237
+ */
238
+ locked?: string[];
239
+ /**
240
+ * Per-transceiver signal locks. Locks specific signals on specific
241
+ * transceivers while leaving the transceiver itself modifiable.
242
+ *
243
+ * @generated from field: repeated mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverSignalLocks signal_locks = 3;
244
+ */
245
+ signalLocks?: UserDefinedExchangeOptions_TransceiverSignalLocksJson[];
246
+ };
247
+ /**
248
+ * Describes the message mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions.
249
+ * Use `create(UserDefinedExchangeOptions_TransceiverOptionsSchema)` to create a new message.
250
+ */
251
+ export declare const UserDefinedExchangeOptions_TransceiverOptionsSchema: GenMessage<UserDefinedExchangeOptions_TransceiverOptions, {
252
+ jsonType: UserDefinedExchangeOptions_TransceiverOptionsJson;
253
+ }>;
254
+ /**
255
+ * ExchangeLock locks a plugin-defined exchange.
256
+ * If neither transmitter_options nor receiver_options is set, the entire
257
+ * exchange is locked. If set, only the specified transceivers/signals are
258
+ * locked and users can add/remove the rest.
259
+ *
260
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock
261
+ */
262
+ export type UserDefinedExchangeOptions_ExchangeLock = Message<"mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock"> & {
263
+ /**
264
+ * Name of the exchange to lock.
265
+ *
266
+ * @generated from field: string name = 1;
267
+ */
268
+ name: string;
269
+ /**
270
+ * Locks on transmitter transceivers within this exchange.
271
+ *
272
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions transmitter_options = 2;
273
+ */
274
+ transmitterOptions?: UserDefinedExchangeOptions_TransceiverOptions;
275
+ /**
276
+ * Locks on receiver transceivers within this exchange.
277
+ *
278
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions receiver_options = 3;
279
+ */
280
+ receiverOptions?: UserDefinedExchangeOptions_TransceiverOptions;
281
+ };
282
+ /**
283
+ * ExchangeLock locks a plugin-defined exchange.
284
+ * If neither transmitter_options nor receiver_options is set, the entire
285
+ * exchange is locked. If set, only the specified transceivers/signals are
286
+ * locked and users can add/remove the rest.
287
+ *
288
+ * @generated from message mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock
289
+ */
290
+ export type UserDefinedExchangeOptions_ExchangeLockJson = {
291
+ /**
292
+ * Name of the exchange to lock.
293
+ *
294
+ * @generated from field: string name = 1;
295
+ */
296
+ name?: string;
297
+ /**
298
+ * Locks on transmitter transceivers within this exchange.
299
+ *
300
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions transmitter_options = 2;
301
+ */
302
+ transmitterOptions?: UserDefinedExchangeOptions_TransceiverOptionsJson;
303
+ /**
304
+ * Locks on receiver transceivers within this exchange.
305
+ *
306
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions.TransceiverOptions receiver_options = 3;
307
+ */
308
+ receiverOptions?: UserDefinedExchangeOptions_TransceiverOptionsJson;
309
+ };
310
+ /**
311
+ * Describes the message mochabugapis.adapt.graph.UserDefinedExchangeOptions.ExchangeLock.
312
+ * Use `create(UserDefinedExchangeOptions_ExchangeLockSchema)` to create a new message.
313
+ */
314
+ export declare const UserDefinedExchangeOptions_ExchangeLockSchema: GenMessage<UserDefinedExchangeOptions_ExchangeLock, {
315
+ jsonType: UserDefinedExchangeOptions_ExchangeLockJson;
316
+ }>;
317
+ //# sourceMappingURL=user_defined_exchange_options_pb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user_defined_exchange_options_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/user_defined_exchange_options_pb.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
2
  import type { Exchange, ExchangeJson } from "./exchange_pb";
3
3
  import type { Receiver, ReceiverJson } from "./receiver_pb";
4
4
  import type { Transmitter, TransmitterJson } from "./transmitter_pb";
5
+ import type { UserDefinedExchangeOptions, UserDefinedExchangeOptionsJson } from "./user_defined_exchange_options_pb";
5
6
  import type { Message } from "@bufbuild/protobuf";
6
7
  /**
7
8
  * Describes the file mochabugapis/adapt/graph/vertex_metadata.proto.
@@ -41,6 +42,13 @@ export type VertexMetadata = Message<"mochabugapis.adapt.graph.VertexMetadata">
41
42
  * @generated from field: repeated mochabugapis.adapt.graph.Exchange exchanges = 4;
42
43
  */
43
44
  exchanges: Exchange[];
45
+ /**
46
+ * Options for user-defined exchanges on this vertex.
47
+ * When set, users can create their own exchanges at graph construction time.
48
+ *
49
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions ude_options = 5;
50
+ */
51
+ udeOptions?: UserDefinedExchangeOptions;
44
52
  /**
45
53
  * A unix cron expression to determine when the task should run.
46
54
  *
@@ -82,6 +90,13 @@ export type VertexMetadataJson = {
82
90
  * @generated from field: repeated mochabugapis.adapt.graph.Exchange exchanges = 4;
83
91
  */
84
92
  exchanges?: ExchangeJson[];
93
+ /**
94
+ * Options for user-defined exchanges on this vertex.
95
+ * When set, users can create their own exchanges at graph construction time.
96
+ *
97
+ * @generated from field: optional mochabugapis.adapt.graph.UserDefinedExchangeOptions ude_options = 5;
98
+ */
99
+ udeOptions?: UserDefinedExchangeOptionsJson;
85
100
  /**
86
101
  * A unix cron expression to determine when the task should run.
87
102
  *
@@ -1 +1 @@
1
- {"version":3,"file":"vertex_metadata_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,6CAA6C,EAAE,OACujC,CAAC;AAEpnC;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,yCAAyC,CAAC,GAAG;IAChF;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,cAAc,EAAE;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAC,CAC7B,CAAC"}
1
+ {"version":3,"file":"vertex_metadata_pb.d.ts","sourceRoot":"","sources":["../../../../../src/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAErH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,6CAA6C,EAAE,OACmlF,CAAC;AAEhpF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,yCAAyC,CAAC,GAAG;IAChF;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAC;IAExC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,8BAA8B,CAAC;IAE5C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,cAAc,EAAE;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAC,CAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mochabug/adapt-builder",
3
- "version": "0.1.11",
3
+ "version": "0.2.1",
4
4
  "description": "This encapsulate the building an bundling logic for mochabug adapt plugins",
5
5
  "keywords": [
6
6
  "plugin",
@@ -35,17 +35,17 @@
35
35
  "dependencies": {
36
36
  "@bufbuild/protobuf": "^2.11.0",
37
37
  "@bufbuild/protovalidate": "^1.1.1",
38
- "@cloudflare/unenv-preset": "2.12.1",
38
+ "@cloudflare/unenv-preset": "2.14.0",
39
39
  "@craftamap/esbuild-plugin-html": "^0.9.0",
40
40
  "ajv": "^8.18.0",
41
41
  "chalk": "^5.6.2",
42
42
  "esbuild": "^0.27.3",
43
- "glob": "^13.0.3",
43
+ "glob": "^13.0.6",
44
44
  "ora": "^9.3.0",
45
45
  "unenv": "npm:unenv-nightly@*"
46
46
  },
47
47
  "devDependencies": {
48
- "@types/node": "^25.2.3",
48
+ "@types/node": "^25.3.2",
49
49
  "fs-extra": "^11.3.3",
50
50
  "typescript": "^5.9.3"
51
51
  }