@f-inverse/jammi-client 0.49.0 → 0.50.0

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 (51) hide show
  1. package/README.md +6 -2
  2. package/dist/gen/jammi/v1/audit_pb.d.ts +1 -1
  3. package/dist/gen/jammi/v1/audit_pb.js +1 -1
  4. package/dist/gen/jammi/v1/catalog_pb.d.ts +306 -29
  5. package/dist/gen/jammi/v1/catalog_pb.d.ts.map +1 -1
  6. package/dist/gen/jammi/v1/catalog_pb.js +65 -37
  7. package/dist/gen/jammi/v1/catalog_pb.js.map +1 -1
  8. package/dist/gen/jammi/v1/embedding_pb.d.ts +401 -43
  9. package/dist/gen/jammi/v1/embedding_pb.d.ts.map +1 -1
  10. package/dist/gen/jammi/v1/embedding_pb.js +128 -9
  11. package/dist/gen/jammi/v1/embedding_pb.js.map +1 -1
  12. package/dist/gen/jammi/v1/error_pb.d.ts +994 -24
  13. package/dist/gen/jammi/v1/error_pb.d.ts.map +1 -1
  14. package/dist/gen/jammi/v1/error_pb.js +184 -24
  15. package/dist/gen/jammi/v1/error_pb.js.map +1 -1
  16. package/dist/gen/jammi/v1/eval_pb.d.ts +1 -1
  17. package/dist/gen/jammi/v1/eval_pb.js +1 -1
  18. package/dist/gen/jammi/v1/gang_pb.d.ts +730 -0
  19. package/dist/gen/jammi/v1/gang_pb.d.ts.map +1 -0
  20. package/dist/gen/jammi/v1/gang_pb.js +268 -0
  21. package/dist/gen/jammi/v1/gang_pb.js.map +1 -0
  22. package/dist/gen/jammi/v1/inference_pb.d.ts +69 -32
  23. package/dist/gen/jammi/v1/inference_pb.d.ts.map +1 -1
  24. package/dist/gen/jammi/v1/inference_pb.js +23 -43
  25. package/dist/gen/jammi/v1/inference_pb.js.map +1 -1
  26. package/dist/gen/jammi/v1/job_pb.d.ts +774 -0
  27. package/dist/gen/jammi/v1/job_pb.d.ts.map +1 -0
  28. package/dist/gen/jammi/v1/job_pb.js +154 -0
  29. package/dist/gen/jammi/v1/job_pb.js.map +1 -0
  30. package/dist/gen/jammi/v1/lifecycle_pb.d.ts +1 -1
  31. package/dist/gen/jammi/v1/lifecycle_pb.js +1 -1
  32. package/dist/gen/jammi/v1/peer_pb.d.ts +325 -0
  33. package/dist/gen/jammi/v1/peer_pb.d.ts.map +1 -0
  34. package/dist/gen/jammi/v1/peer_pb.js +138 -0
  35. package/dist/gen/jammi/v1/peer_pb.js.map +1 -0
  36. package/dist/gen/jammi/v1/pipeline_pb.d.ts +218 -10
  37. package/dist/gen/jammi/v1/pipeline_pb.d.ts.map +1 -1
  38. package/dist/gen/jammi/v1/pipeline_pb.js +57 -11
  39. package/dist/gen/jammi/v1/pipeline_pb.js.map +1 -1
  40. package/dist/gen/jammi/v1/training_pb.d.ts +91 -345
  41. package/dist/gen/jammi/v1/training_pb.d.ts.map +1 -1
  42. package/dist/gen/jammi/v1/training_pb.js +18 -76
  43. package/dist/gen/jammi/v1/training_pb.js.map +1 -1
  44. package/dist/gen/jammi/v1/trigger_pb.d.ts +3 -1
  45. package/dist/gen/jammi/v1/trigger_pb.d.ts.map +1 -1
  46. package/dist/gen/jammi/v1/trigger_pb.js.map +1 -1
  47. package/dist/index.d.ts +6 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +3 -2
  50. package/dist/index.js.map +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,730 @@
1
+ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
+ import type { Message } from "@bufbuild/protobuf";
3
+ /**
4
+ * Describes the file jammi/v1/gang.proto.
5
+ */
6
+ export declare const file_jammi_v1_gang: GenFile;
7
+ /**
8
+ * A control frame a rank sends on its `RunRank` stream.
9
+ *
10
+ * @generated from message jammi.v1.gang.RankControl
11
+ */
12
+ export type RankControl = Message<"jammi.v1.gang.RankControl"> & {
13
+ /**
14
+ * @generated from oneof jammi.v1.gang.RankControl.control
15
+ */
16
+ control: {
17
+ /**
18
+ * @generated from field: jammi.v1.gang.Assign assign = 1;
19
+ */
20
+ value: Assign;
21
+ case: "assign";
22
+ } | {
23
+ /**
24
+ * @generated from field: jammi.v1.gang.Cancel cancel = 2;
25
+ */
26
+ value: Cancel;
27
+ case: "cancel";
28
+ } | {
29
+ /**
30
+ * The round protocol, coordinator → member (all after `Admitted`).
31
+ * The coordinator's rank-ordered fold of round `round`, followed by
32
+ * `chunk_count` `round_chunk` frames carrying its Arrow IPC bytes.
33
+ *
34
+ * @generated from field: jammi.v1.gang.RoundPayload round_result = 3;
35
+ */
36
+ value: RoundPayload;
37
+ case: "roundResult";
38
+ } | {
39
+ /**
40
+ * @generated from field: jammi.v1.gang.RoundChunk round_chunk = 4;
41
+ */
42
+ value: RoundChunk;
43
+ case: "roundChunk";
44
+ } | {
45
+ /**
46
+ * The coordinator observed every member's `RoundAck` for this round:
47
+ * apply it. A member that never receives this for a round it ACKed
48
+ * applies nothing for that round.
49
+ *
50
+ * @generated from field: jammi.v1.gang.RoundCommit round_commit = 5;
51
+ */
52
+ value: RoundCommit;
53
+ case: "roundCommit";
54
+ } | {
55
+ /**
56
+ * The round is abandoned on every rank; `detail` is the gang's fault.
57
+ *
58
+ * @generated from field: jammi.v1.gang.RoundFault round_fault = 6;
59
+ */
60
+ value: RoundFault;
61
+ case: "roundFault";
62
+ } | {
63
+ /**
64
+ * The transport every rank of this gang moves its round bytes by: the
65
+ * coordinator's decision, sent to every member once all are admitted
66
+ * and before round 0 — the first frame after `Admitted`.
67
+ *
68
+ * @generated from field: jammi.v1.gang.Bind bind = 7;
69
+ */
70
+ value: Bind;
71
+ case: "bind";
72
+ } | {
73
+ case: undefined;
74
+ value?: undefined;
75
+ };
76
+ };
77
+ /**
78
+ * Describes the message jammi.v1.gang.RankControl.
79
+ * Use `create(RankControlSchema)` to create a new message.
80
+ */
81
+ export declare const RankControlSchema: GenMessage<RankControl>;
82
+ /**
83
+ * How a gang's round bytes move (`jammi_ai::fine_tune::collective::transport`).
84
+ * The control round — agreement, fault, commit — is the same on either.
85
+ *
86
+ * @generated from message jammi.v1.gang.Bind
87
+ */
88
+ export type Bind = Message<"jammi.v1.gang.Bind"> & {
89
+ /**
90
+ * @generated from oneof jammi.v1.gang.Bind.transport
91
+ */
92
+ transport: {
93
+ /**
94
+ * The bytes ride the round frames themselves.
95
+ *
96
+ * @generated from field: jammi.v1.gang.InlineTransport inline = 1;
97
+ */
98
+ value: InlineTransport;
99
+ case: "inline";
100
+ } | {
101
+ /**
102
+ * The round frames carry descriptors only; once they agree, the bytes
103
+ * move by an NCCL all-gather among the ranks.
104
+ *
105
+ * @generated from field: jammi.v1.gang.NcclTransport nccl = 2;
106
+ */
107
+ value: NcclTransport;
108
+ case: "nccl";
109
+ } | {
110
+ case: undefined;
111
+ value?: undefined;
112
+ };
113
+ };
114
+ /**
115
+ * Describes the message jammi.v1.gang.Bind.
116
+ * Use `create(BindSchema)` to create a new message.
117
+ */
118
+ export declare const BindSchema: GenMessage<Bind>;
119
+ /**
120
+ * @generated from message jammi.v1.gang.InlineTransport
121
+ */
122
+ export type InlineTransport = Message<"jammi.v1.gang.InlineTransport"> & {};
123
+ /**
124
+ * Describes the message jammi.v1.gang.InlineTransport.
125
+ * Use `create(InlineTransportSchema)` to create a new message.
126
+ */
127
+ export declare const InlineTransportSchema: GenMessage<InlineTransport>;
128
+ /**
129
+ * @generated from message jammi.v1.gang.NcclTransport
130
+ */
131
+ export type NcclTransport = Message<"jammi.v1.gang.NcclTransport"> & {
132
+ /**
133
+ * The communicator id the coordinator minted (`ncclGetUniqueId`, 128
134
+ * bytes): the capability to join this gang's communicator.
135
+ *
136
+ * @generated from field: bytes id = 1;
137
+ */
138
+ id: Uint8Array;
139
+ };
140
+ /**
141
+ * Describes the message jammi.v1.gang.NcclTransport.
142
+ * Use `create(NcclTransportSchema)` to create a new message.
143
+ */
144
+ export declare const NcclTransportSchema: GenMessage<NcclTransport>;
145
+ /**
146
+ * The job coordinates only. No training-set identity (resolved by the
147
+ * handler from the `jobs` row) and no lease duration (the rank derives its
148
+ * own admission window from the same row). A second `Assign` on an
149
+ * already-admitted stream is a protocol violation.
150
+ *
151
+ * @generated from message jammi.v1.gang.Assign
152
+ */
153
+ export type Assign = Message<"jammi.v1.gang.Assign"> & {
154
+ /**
155
+ * @generated from field: string job_id = 1;
156
+ */
157
+ jobId: string;
158
+ /**
159
+ * @generated from field: int64 attempt = 2;
160
+ */
161
+ attempt: bigint;
162
+ /**
163
+ * @generated from field: uint32 rank = 3;
164
+ */
165
+ rank: number;
166
+ /**
167
+ * @generated from field: uint32 world = 4;
168
+ */
169
+ world: number;
170
+ /**
171
+ * @generated from field: string coordinator_instance_id = 5;
172
+ */
173
+ coordinatorInstanceId: string;
174
+ };
175
+ /**
176
+ * Describes the message jammi.v1.gang.Assign.
177
+ * Use `create(AssignSchema)` to create a new message.
178
+ */
179
+ export declare const AssignSchema: GenMessage<Assign>;
180
+ /**
181
+ * End this rank's own session cooperatively.
182
+ *
183
+ * @generated from message jammi.v1.gang.Cancel
184
+ */
185
+ export type Cancel = Message<"jammi.v1.gang.Cancel"> & {};
186
+ /**
187
+ * Describes the message jammi.v1.gang.Cancel.
188
+ * Use `create(CancelSchema)` to create a new message.
189
+ */
190
+ export declare const CancelSchema: GenMessage<Cancel>;
191
+ /**
192
+ * An event frame on a `RunRank` stream.
193
+ *
194
+ * @generated from message jammi.v1.gang.RankEvent
195
+ */
196
+ export type RankEvent = Message<"jammi.v1.gang.RankEvent"> & {
197
+ /**
198
+ * @generated from oneof jammi.v1.gang.RankEvent.event
199
+ */
200
+ event: {
201
+ /**
202
+ * @generated from field: jammi.v1.gang.Admitted admitted = 1;
203
+ */
204
+ value: Admitted;
205
+ case: "admitted";
206
+ } | {
207
+ /**
208
+ * @generated from field: jammi.v1.gang.Aborted aborted = 2;
209
+ */
210
+ value: Aborted;
211
+ case: "aborted";
212
+ } | {
213
+ /**
214
+ * @generated from field: jammi.v1.gang.Outcome outcome = 3;
215
+ */
216
+ value: Outcome;
217
+ case: "outcome";
218
+ } | {
219
+ /**
220
+ * The round protocol, member → coordinator (all after `Admitted`).
221
+ * This member's contribution to round `round`, followed by
222
+ * `chunk_count` `round_chunk` frames carrying its Arrow IPC bytes.
223
+ *
224
+ * @generated from field: jammi.v1.gang.RoundPayload round_contribution = 4;
225
+ */
226
+ value: RoundPayload;
227
+ case: "roundContribution";
228
+ } | {
229
+ /**
230
+ * @generated from field: jammi.v1.gang.RoundChunk round_chunk = 5;
231
+ */
232
+ value: RoundChunk;
233
+ case: "roundChunk";
234
+ } | {
235
+ /**
236
+ * This member holds the coordinator's result for `round`, decoded and
237
+ * UNAPPLIED, and will apply it on `RoundCommit`.
238
+ *
239
+ * @generated from field: jammi.v1.gang.RoundAck round_ack = 6;
240
+ */
241
+ value: RoundAck;
242
+ case: "roundAck";
243
+ } | {
244
+ /**
245
+ * This member abandons the round; `detail` is why.
246
+ *
247
+ * @generated from field: jammi.v1.gang.RoundFault round_fault = 7;
248
+ */
249
+ value: RoundFault;
250
+ case: "roundFault";
251
+ } | {
252
+ case: undefined;
253
+ value?: undefined;
254
+ };
255
+ };
256
+ /**
257
+ * Describes the message jammi.v1.gang.RankEvent.
258
+ * Use `create(RankEventSchema)` to create a new message.
259
+ */
260
+ export declare const RankEventSchema: GenMessage<RankEvent>;
261
+ /**
262
+ * The rank was admitted: held under re-verification until it ends `Aborted`.
263
+ *
264
+ * @generated from message jammi.v1.gang.Admitted
265
+ */
266
+ export type Admitted = Message<"jammi.v1.gang.Admitted"> & {
267
+ /**
268
+ * This member can move its round bytes by an NCCL transport: a CUDA build,
269
+ * a CUDA device, and a `[worker] collective` other than "cpu". The
270
+ * coordinator chooses NCCL for the gang only when every rank can.
271
+ *
272
+ * @generated from field: bool nccl = 1;
273
+ */
274
+ nccl: boolean;
275
+ };
276
+ /**
277
+ * Describes the message jammi.v1.gang.Admitted.
278
+ * Use `create(AdmittedSchema)` to create a new message.
279
+ */
280
+ export declare const AdmittedSchema: GenMessage<Admitted>;
281
+ /**
282
+ * @generated from message jammi.v1.gang.Aborted
283
+ */
284
+ export type Aborted = Message<"jammi.v1.gang.Aborted"> & {
285
+ /**
286
+ * @generated from field: jammi.v1.gang.AbortReason reason = 1;
287
+ */
288
+ reason: AbortReason;
289
+ };
290
+ /**
291
+ * Describes the message jammi.v1.gang.Aborted.
292
+ * Use `create(AbortedSchema)` to create a new message.
293
+ */
294
+ export declare const AbortedSchema: GenMessage<Aborted>;
295
+ /**
296
+ * The terminal outcome of a rank body's natural end. Frozen here (additive,
297
+ * costs nothing at the freeze gate — `api_freeze.rs` decodes only
298
+ * `PACKAGE`/`RPC` tokens) though this rpc's own admission stage ships neither
299
+ * this variant's producer (a rank body) nor its consumer (the coordinator's
300
+ * terminal write on receipt).
301
+ *
302
+ * @generated from message jammi.v1.gang.Outcome
303
+ */
304
+ export type Outcome = Message<"jammi.v1.gang.Outcome"> & {
305
+ /**
306
+ * @generated from oneof jammi.v1.gang.Outcome.result
307
+ */
308
+ result: {
309
+ /**
310
+ * @generated from field: jammi.v1.gang.TrainedOutcome trained = 1;
311
+ */
312
+ value: TrainedOutcome;
313
+ case: "trained";
314
+ } | {
315
+ /**
316
+ * @generated from field: jammi.v1.gang.FailedOutcome failed = 2;
317
+ */
318
+ value: FailedOutcome;
319
+ case: "failed";
320
+ } | {
321
+ case: undefined;
322
+ value?: undefined;
323
+ };
324
+ };
325
+ /**
326
+ * Describes the message jammi.v1.gang.Outcome.
327
+ * Use `create(OutcomeSchema)` to create a new message.
328
+ */
329
+ export declare const OutcomeSchema: GenMessage<Outcome>;
330
+ /**
331
+ * @generated from message jammi.v1.gang.TrainedOutcome
332
+ */
333
+ export type TrainedOutcome = Message<"jammi.v1.gang.TrainedOutcome"> & {
334
+ /**
335
+ * @generated from field: string artifact_digest = 1;
336
+ */
337
+ artifactDigest: string;
338
+ };
339
+ /**
340
+ * Describes the message jammi.v1.gang.TrainedOutcome.
341
+ * Use `create(TrainedOutcomeSchema)` to create a new message.
342
+ */
343
+ export declare const TrainedOutcomeSchema: GenMessage<TrainedOutcome>;
344
+ /**
345
+ * @generated from message jammi.v1.gang.FailedOutcome
346
+ */
347
+ export type FailedOutcome = Message<"jammi.v1.gang.FailedOutcome"> & {
348
+ /**
349
+ * @generated from field: string reason = 1;
350
+ */
351
+ reason: string;
352
+ };
353
+ /**
354
+ * Describes the message jammi.v1.gang.FailedOutcome.
355
+ * Use `create(FailedOutcomeSchema)` to create a new message.
356
+ */
357
+ export declare const FailedOutcomeSchema: GenMessage<FailedOutcome>;
358
+ /**
359
+ * `all_gather`'s per-rank row counts, wrapped so `RoundDescriptor.counts`
360
+ * distinguishes "this verb carries no counts" (absent) from "every rank
361
+ * contributes zero rows" (present, all zero).
362
+ *
363
+ * @generated from message jammi.v1.gang.Counts
364
+ */
365
+ export type Counts = Message<"jammi.v1.gang.Counts"> & {
366
+ /**
367
+ * @generated from field: repeated uint64 values = 1;
368
+ */
369
+ values: bigint[];
370
+ };
371
+ /**
372
+ * Describes the message jammi.v1.gang.Counts.
373
+ * Use `create(CountsSchema)` to create a new message.
374
+ */
375
+ export declare const CountsSchema: GenMessage<Counts>;
376
+ /**
377
+ * One tensor's shape and element type as far as a round's descriptor cares:
378
+ * the full shape for `all_reduce_sum` and `broadcast`; the TRAILING shape
379
+ * (dim 0 dropped) for `all_gather`, whose dim 0 is already `counts`.
380
+ *
381
+ * @generated from message jammi.v1.gang.TensorSignature
382
+ */
383
+ export type TensorSignature = Message<"jammi.v1.gang.TensorSignature"> & {
384
+ /**
385
+ * @generated from field: repeated uint64 dims = 1;
386
+ */
387
+ dims: bigint[];
388
+ /**
389
+ * @generated from field: jammi.v1.gang.ElementType dtype = 2;
390
+ */
391
+ dtype: ElementType;
392
+ };
393
+ /**
394
+ * Describes the message jammi.v1.gang.TensorSignature.
395
+ * Use `create(TensorSignatureSchema)` to create a new message.
396
+ */
397
+ export declare const TensorSignatureSchema: GenMessage<TensorSignature>;
398
+ /**
399
+ * One rank's declaration of what a round computes: the verb, and every
400
+ * per-call argument other than the tensor bytes that determines the round's
401
+ * result. The coordinator publishes a round ONLY once every rank's
402
+ * descriptor equals its own; a disagreement is a typed refusal on EVERY
403
+ * rank naming both descriptors, symmetric with the in-process collective.
404
+ *
405
+ * @generated from message jammi.v1.gang.RoundDescriptor
406
+ */
407
+ export type RoundDescriptor = Message<"jammi.v1.gang.RoundDescriptor"> & {
408
+ /**
409
+ * The round this rank is entering, counted from 0 on every rank. Agreed
410
+ * like every other field: a contribution from a stale round is a typed
411
+ * disagreement naming both descriptors, never folded.
412
+ *
413
+ * @generated from field: uint64 round = 7;
414
+ */
415
+ round: bigint;
416
+ /**
417
+ * @generated from field: jammi.v1.gang.RoundVerb verb = 1;
418
+ */
419
+ verb: RoundVerb;
420
+ /**
421
+ * @generated from field: uint32 world = 2;
422
+ */
423
+ world: number;
424
+ /**
425
+ * `broadcast`'s root; absent for every other verb.
426
+ *
427
+ * @generated from field: optional uint32 root = 3;
428
+ */
429
+ root?: number | undefined;
430
+ /**
431
+ * `all_gather`'s full counts vector; absent for every other verb.
432
+ *
433
+ * @generated from field: jammi.v1.gang.Counts counts = 4;
434
+ */
435
+ counts?: Counts | undefined;
436
+ /**
437
+ * @generated from field: repeated jammi.v1.gang.TensorSignature tensors = 5;
438
+ */
439
+ tensors: TensorSignature[];
440
+ /**
441
+ * An opaque digest the caller binds on every rank (a trainer binds its
442
+ * canonical trainable-variable key order); absent when nothing is bound.
443
+ * Compared like every other field: a rank bound to a different value, or
444
+ * to none, disagrees.
445
+ *
446
+ * @generated from field: optional string agreement = 6;
447
+ */
448
+ agreement?: string | undefined;
449
+ };
450
+ /**
451
+ * Describes the message jammi.v1.gang.RoundDescriptor.
452
+ * Use `create(RoundDescriptorSchema)` to create a new message.
453
+ */
454
+ export declare const RoundDescriptorSchema: GenMessage<RoundDescriptor>;
455
+ /**
456
+ * A contribution (member → coordinator) or a result (coordinator →
457
+ * member) for round `round`: the descriptor it was computed under, how many
458
+ * `RoundChunk` frames follow, and — for `all_reduce_max_flags` only, which
459
+ * carries no tensor — the control word. Every tensor's bytes travel in the
460
+ * chunks, each at most the listener's `[server.limits] max_message_bytes`.
461
+ *
462
+ * @generated from message jammi.v1.gang.RoundPayload
463
+ */
464
+ export type RoundPayload = Message<"jammi.v1.gang.RoundPayload"> & {
465
+ /**
466
+ * @generated from field: uint64 round = 1;
467
+ */
468
+ round: bigint;
469
+ /**
470
+ * @generated from field: jammi.v1.gang.RoundDescriptor descriptor = 2;
471
+ */
472
+ descriptor?: RoundDescriptor | undefined;
473
+ /**
474
+ * @generated from field: uint32 chunk_count = 3;
475
+ */
476
+ chunkCount: number;
477
+ /**
478
+ * @generated from field: uint32 flags = 4;
479
+ */
480
+ flags: number;
481
+ };
482
+ /**
483
+ * Describes the message jammi.v1.gang.RoundPayload.
484
+ * Use `create(RoundPayloadSchema)` to create a new message.
485
+ */
486
+ export declare const RoundPayloadSchema: GenMessage<RoundPayload>;
487
+ /**
488
+ * One slice of a payload's Arrow IPC bytes: chunk `index` of the
489
+ * `chunk_count` its `RoundPayload` announced, in order.
490
+ *
491
+ * @generated from message jammi.v1.gang.RoundChunk
492
+ */
493
+ export type RoundChunk = Message<"jammi.v1.gang.RoundChunk"> & {
494
+ /**
495
+ * @generated from field: uint64 round = 1;
496
+ */
497
+ round: bigint;
498
+ /**
499
+ * @generated from field: uint32 index = 2;
500
+ */
501
+ index: number;
502
+ /**
503
+ * @generated from field: bytes ipc = 3;
504
+ */
505
+ ipc: Uint8Array;
506
+ };
507
+ /**
508
+ * Describes the message jammi.v1.gang.RoundChunk.
509
+ * Use `create(RoundChunkSchema)` to create a new message.
510
+ */
511
+ export declare const RoundChunkSchema: GenMessage<RoundChunk>;
512
+ /**
513
+ * A member holds round `round`'s result, decoded and unapplied.
514
+ *
515
+ * @generated from message jammi.v1.gang.RoundAck
516
+ */
517
+ export type RoundAck = Message<"jammi.v1.gang.RoundAck"> & {
518
+ /**
519
+ * @generated from field: uint64 round = 1;
520
+ */
521
+ round: bigint;
522
+ };
523
+ /**
524
+ * Describes the message jammi.v1.gang.RoundAck.
525
+ * Use `create(RoundAckSchema)` to create a new message.
526
+ */
527
+ export declare const RoundAckSchema: GenMessage<RoundAck>;
528
+ /**
529
+ * Every member ACKed round `round`: apply it.
530
+ *
531
+ * @generated from message jammi.v1.gang.RoundCommit
532
+ */
533
+ export type RoundCommit = Message<"jammi.v1.gang.RoundCommit"> & {
534
+ /**
535
+ * @generated from field: uint64 round = 1;
536
+ */
537
+ round: bigint;
538
+ };
539
+ /**
540
+ * Describes the message jammi.v1.gang.RoundCommit.
541
+ * Use `create(RoundCommitSchema)` to create a new message.
542
+ */
543
+ export declare const RoundCommitSchema: GenMessage<RoundCommit>;
544
+ /**
545
+ * Round `round` is abandoned on every rank; `detail` is the gang's fault,
546
+ * quoted by every later refusal on the rank that receives it.
547
+ *
548
+ * @generated from message jammi.v1.gang.RoundFault
549
+ */
550
+ export type RoundFault = Message<"jammi.v1.gang.RoundFault"> & {
551
+ /**
552
+ * @generated from field: uint64 round = 1;
553
+ */
554
+ round: bigint;
555
+ /**
556
+ * @generated from field: string detail = 2;
557
+ */
558
+ detail: string;
559
+ };
560
+ /**
561
+ * Describes the message jammi.v1.gang.RoundFault.
562
+ * Use `create(RoundFaultSchema)` to create a new message.
563
+ */
564
+ export declare const RoundFaultSchema: GenMessage<RoundFault>;
565
+ /**
566
+ * Why a session ended without ever handing control to a rank body. Additive:
567
+ * a later reason joins this set; none already declared is ever renamed or
568
+ * removed.
569
+ *
570
+ * @generated from enum jammi.v1.gang.AbortReason
571
+ */
572
+ export declare enum AbortReason {
573
+ /**
574
+ * @generated from enum value: ABORT_REASON_UNSPECIFIED = 0;
575
+ */
576
+ UNSPECIFIED = 0,
577
+ /**
578
+ * This host is draining — the only host-initiated cut.
579
+ *
580
+ * @generated from enum value: ABORT_REASON_DRAIN = 1;
581
+ */
582
+ DRAIN = 1,
583
+ /**
584
+ * A row fact refuted admission (status, claimant, attempt, lease, or the
585
+ * training-set identity no longer holds) — assembly-scoped.
586
+ *
587
+ * @generated from enum value: ABORT_REASON_REFUTED = 2;
588
+ */
589
+ REFUTED = 2,
590
+ /**
591
+ * The rank itself sent `Cancel`.
592
+ *
593
+ * @generated from enum value: ABORT_REASON_CANCELLED = 3;
594
+ */
595
+ CANCELLED = 3,
596
+ /**
597
+ * The admitted session reached its park bound with no body to run.
598
+ *
599
+ * @generated from enum value: ABORT_REASON_NO_BODY = 4;
600
+ */
601
+ NO_BODY = 4,
602
+ /**
603
+ * This host's own object store faulted at re-verification — member-scoped,
604
+ * never counted against the assembly's attempt budget.
605
+ *
606
+ * @generated from enum value: ABORT_REASON_STORE_UNAVAILABLE = 5;
607
+ */
608
+ STORE_UNAVAILABLE = 5,
609
+ /**
610
+ * The catalog did not answer within tolerance — transient, assembly-scoped,
611
+ * never counted against the assembly's attempt budget.
612
+ *
613
+ * @generated from enum value: ABORT_REASON_UNAVAILABLE = 6;
614
+ */
615
+ UNAVAILABLE = 6
616
+ }
617
+ /**
618
+ * Describes the enum jammi.v1.gang.AbortReason.
619
+ */
620
+ export declare const AbortReasonSchema: GenEnum<AbortReason>;
621
+ /**
622
+ * The collective a round computes. CLOSED: a reader matches every value
623
+ * exhaustively, and `ROUND_VERB_UNSPECIFIED` (or any value it does not
624
+ * know) is refused, never treated as any verb.
625
+ *
626
+ * @generated from enum jammi.v1.gang.RoundVerb
627
+ */
628
+ export declare enum RoundVerb {
629
+ /**
630
+ * @generated from enum value: ROUND_VERB_UNSPECIFIED = 0;
631
+ */
632
+ UNSPECIFIED = 0,
633
+ /**
634
+ * @generated from enum value: ROUND_VERB_ALL_GATHER = 1;
635
+ */
636
+ ALL_GATHER = 1,
637
+ /**
638
+ * @generated from enum value: ROUND_VERB_ALL_REDUCE_SUM = 2;
639
+ */
640
+ ALL_REDUCE_SUM = 2,
641
+ /**
642
+ * @generated from enum value: ROUND_VERB_ALL_REDUCE_MAX_FLAGS = 3;
643
+ */
644
+ ALL_REDUCE_MAX_FLAGS = 3,
645
+ /**
646
+ * @generated from enum value: ROUND_VERB_BROADCAST = 4;
647
+ */
648
+ BROADCAST = 4,
649
+ /**
650
+ * @generated from enum value: ROUND_VERB_BARRIER = 5;
651
+ */
652
+ BARRIER = 5
653
+ }
654
+ /**
655
+ * Describes the enum jammi.v1.gang.RoundVerb.
656
+ */
657
+ export declare const RoundVerbSchema: GenEnum<RoundVerb>;
658
+ /**
659
+ * The element type of one tensor a round carries. The `Peer` collective
660
+ * carries exactly these three; every other element type is refused at the
661
+ * seam before a descriptor is ever built.
662
+ *
663
+ * @generated from enum jammi.v1.gang.ElementType
664
+ */
665
+ export declare enum ElementType {
666
+ /**
667
+ * @generated from enum value: ELEMENT_TYPE_UNSPECIFIED = 0;
668
+ */
669
+ UNSPECIFIED = 0,
670
+ /**
671
+ * @generated from enum value: ELEMENT_TYPE_F32 = 1;
672
+ */
673
+ F32 = 1,
674
+ /**
675
+ * @generated from enum value: ELEMENT_TYPE_F16 = 2;
676
+ */
677
+ F16 = 2,
678
+ /**
679
+ * @generated from enum value: ELEMENT_TYPE_BF16 = 3;
680
+ */
681
+ BF16 = 3
682
+ }
683
+ /**
684
+ * Describes the enum jammi.v1.gang.ElementType.
685
+ */
686
+ export declare const ElementTypeSchema: GenEnum<ElementType>;
687
+ /**
688
+ * GangService — the coordinator-to-member admission wire for a multi-host
689
+ * gang run. One rpc, `RunRank`, bidi: a member opens the stream and sends
690
+ * exactly one `Assign` naming its job coordinates (never training-set
691
+ * identity, which lives on the `jobs` row and is resolved host-side, never
692
+ * carried on the wire); the handler admits or refuses it, and an admitted
693
+ * session is HELD under re-verification until it ends `Aborted{reason}`.
694
+ *
695
+ * No `FetchPartition`: a rank reads its partition from the shared object
696
+ * store using the row's own recorded training-set identity — peer-local,
697
+ * never a wire fetch of bytes every member can already read.
698
+ *
699
+ * The ROUND PROTOCOL between admitted ranks rides the same stream, after
700
+ * `Admitted`, as the `round_*` arms of both frames (see "The round protocol"
701
+ * below): a member's contribution flows member → coordinator on `RankEvent`,
702
+ * the coordinator's rank-ordered fold flows coordinator → member on
703
+ * `RankControl`, and a round applies on a rank only after `RoundCommit`,
704
+ * which the coordinator sends only after every member's `RoundAck`.
705
+ *
706
+ * Served ONLY on the internal `[server] peer_bind` listener, beside
707
+ * `PeerService` — never on the public gRPC + Flight SQL listener (which
708
+ * answers UNIMPLEMENTED for these paths), never wrapped by the tenant-binding
709
+ * layer. Invariant I-GANG: a caller-supplied tenant is never read; the
710
+ * member derives the tenant from the verified `jobs` row and resolves a
711
+ * multi-host job's training set under that tenant alone.
712
+ *
713
+ * Message shape and arity are frozen by review, not by the api-freeze
714
+ * guard: that guard decodes only the `PACKAGE`/`(Service, Method)` tokens.
715
+ * A later change MAY add fields or oneof variants but MUST NOT rename or
716
+ * remove anything declared here.
717
+ *
718
+ * @generated from service jammi.v1.gang.GangService
719
+ */
720
+ export declare const GangService: GenService<{
721
+ /**
722
+ * @generated from rpc jammi.v1.gang.GangService.RunRank
723
+ */
724
+ runRank: {
725
+ methodKind: "bidi_streaming";
726
+ input: typeof RankControlSchema;
727
+ output: typeof RankEventSchema;
728
+ };
729
+ }>;
730
+ //# sourceMappingURL=gang_pb.d.ts.map