@gjermundgaraba/clankerbox-sdk 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -21,10 +21,11 @@ the bidirectional attachment stream. `@bufbuild/protobuf` is included as a
21
21
  runtime dependency. All descriptors are exported at the root and through
22
22
  `/resources`, `/machine`, `/session` and `/host` subpaths.
23
23
 
24
- SDK **0.3.0** targets this repository’s runtime-built profile contract and must
25
- be used with the matching controller implementation. It is not compatible with
26
- the published SDK 0.2.0 / Clankerbox 0.6.0 contract. SDK and controller versions
27
- are independent; qualify their pairing before release.
24
+ SDK **0.4.0** targets Clankerbox **0.8.0** and its attachment-owned session
25
+ contract: sessions are created by `Open.create` inside `AttachSession`, and each
26
+ `Input` is sent at the `input_offset` the guest last acknowledged. Use this pair
27
+ together; SDK and controller version numbers are independent. Older
28
+ installations and guest images are not migrated to this contract.
28
29
 
29
30
  ## RPC contract
30
31
 
@@ -50,8 +51,9 @@ private endpoints, engine store paths and credentials. `internal/rpcmodel`
50
51
  converts between these messages and the services' persisted records.
51
52
 
52
53
  Errors combine a Connect status code with a typed `ErrorDetail` reason.
53
- `retryable` describes the operation, not terminal input: a lost input
54
- acknowledgement must never be replayed. The streaming semantics of
54
+ `retryable` describes the operation, not terminal input: input is addressed by
55
+ offset, so repeating it on the same attachment is safe and carrying it to another
56
+ is not. The streaming semantics of
55
57
  `AttachSession` are specified in
56
58
  [terminal sessions](https://github.com/gjermundgaraba/clankerbox/blob/main/docs/terminal-sessions.md).
57
59
 
@@ -141,6 +141,16 @@ export type Session = Message<"clankerbox.v1.Session"> & {
141
141
  * @generated from field: uint64 reply_overflow = 17;
142
142
  */
143
143
  replyOverflow: bigint;
144
+ /**
145
+ * Pipe session: no PTY or terminal; cols and rows are zero.
146
+ *
147
+ * @generated from field: bool pipes = 18;
148
+ */
149
+ pipes: boolean;
150
+ /**
151
+ * @generated from field: bool end_on_detach = 19;
152
+ */
153
+ endOnDetach: boolean;
144
154
  };
145
155
  /**
146
156
  * Describes the message clankerbox.v1.Session.
@@ -148,55 +158,63 @@ export type Session = Message<"clankerbox.v1.Session"> & {
148
158
  */
149
159
  export declare const SessionSchema: GenMessage<Session>;
150
160
  /**
151
- * @generated from message clankerbox.v1.CreateSessionRequest
161
+ * A session is created by the attachment that opens it; see Open.create.
162
+ *
163
+ * @generated from message clankerbox.v1.NewSession
152
164
  */
153
- export type CreateSessionRequest = Message<"clankerbox.v1.CreateSessionRequest"> & {
154
- /**
155
- * @generated from field: string machine_id = 1;
156
- */
157
- machineId: string;
165
+ export type NewSession = Message<"clankerbox.v1.NewSession"> & {
158
166
  /**
159
- * @generated from field: string session_id = 2;
160
- */
161
- sessionId: string;
162
- /**
163
- * @generated from field: string label = 3;
167
+ * @generated from field: string label = 1;
164
168
  */
165
169
  label: string;
166
170
  /**
167
- * @generated from field: string cwd = 4;
171
+ * @generated from field: string cwd = 2;
168
172
  */
169
173
  cwd: string;
170
174
  /**
171
- * @generated from field: repeated string argv = 5;
175
+ * @generated from field: repeated string argv = 3;
172
176
  */
173
177
  argv: string[];
174
178
  /**
175
- * @generated from field: map<string, string> env = 6;
179
+ * @generated from field: map<string, string> env = 4;
176
180
  */
177
181
  env: {
178
182
  [key: string]: string;
179
183
  };
180
184
  /**
181
- * @generated from field: uint32 cols = 7;
185
+ * @generated from field: uint32 cols = 5;
182
186
  */
183
187
  cols: number;
184
188
  /**
185
- * @generated from field: uint32 rows = 8;
189
+ * @generated from field: uint32 rows = 6;
186
190
  */
187
191
  rows: number;
188
192
  /**
189
193
  * Caller decision time for creation deduplication/retry-horizon enforcement.
190
194
  *
191
- * @generated from field: string created_at = 9;
195
+ * @generated from field: string created_at = 7;
192
196
  */
193
197
  createdAt: string;
198
+ /**
199
+ * The guest ends the session when its last attachment closes, for any reason.
200
+ *
201
+ * @generated from field: bool end_on_detach = 8;
202
+ */
203
+ endOnDetach: boolean;
204
+ /**
205
+ * No PTY or terminal: stdin, stdout and stderr are pipes and the grid must be
206
+ * zero. Implies end_on_detach and admits no other attachment, resume or
207
+ * snapshot.
208
+ *
209
+ * @generated from field: bool pipes = 9;
210
+ */
211
+ pipes: boolean;
194
212
  };
195
213
  /**
196
- * Describes the message clankerbox.v1.CreateSessionRequest.
197
- * Use `create(CreateSessionRequestSchema)` to create a new message.
214
+ * Describes the message clankerbox.v1.NewSession.
215
+ * Use `create(NewSessionSchema)` to create a new message.
198
216
  */
199
- export declare const CreateSessionRequestSchema: GenMessage<CreateSessionRequest>;
217
+ export declare const NewSessionSchema: GenMessage<NewSession>;
200
218
  /**
201
219
  * @generated from message clankerbox.v1.ListSessionsRequest
202
220
  */
@@ -261,6 +279,27 @@ export type ResumeCursor = Message<"clankerbox.v1.ResumeCursor"> & {
261
279
  * Use `create(ResumeCursorSchema)` to create a new message.
262
280
  */
263
281
  export declare const ResumeCursorSchema: GenMessage<ResumeCursor>;
282
+ /**
283
+ * Default colours of the terminal the attachment renders into, as 0xRRGGBB.
284
+ * The guest VT answers colour queries with them; it remains the only responder.
285
+ *
286
+ * @generated from message clankerbox.v1.TerminalProfile
287
+ */
288
+ export type TerminalProfile = Message<"clankerbox.v1.TerminalProfile"> & {
289
+ /**
290
+ * @generated from field: optional uint32 foreground = 1;
291
+ */
292
+ foreground?: number | undefined;
293
+ /**
294
+ * @generated from field: optional uint32 background = 2;
295
+ */
296
+ background?: number | undefined;
297
+ };
298
+ /**
299
+ * Describes the message clankerbox.v1.TerminalProfile.
300
+ * Use `create(TerminalProfileSchema)` to create a new message.
301
+ */
302
+ export declare const TerminalProfileSchema: GenMessage<TerminalProfile>;
264
303
  /**
265
304
  * @generated from message clankerbox.v1.Open
266
305
  */
@@ -274,6 +313,8 @@ export type Open = Message<"clankerbox.v1.Open"> & {
274
313
  */
275
314
  sessionId: string;
276
315
  /**
316
+ * Empty skips the check; a consumer that decodes snapshots supplies it.
317
+ *
277
318
  * @generated from field: string expected_engine_digest = 3;
278
319
  */
279
320
  expectedEngineDigest: string;
@@ -281,6 +322,28 @@ export type Open = Message<"clankerbox.v1.Open"> & {
281
322
  * @generated from field: clankerbox.v1.ResumeCursor resume_cursor = 4;
282
323
  */
283
324
  resumeCursor?: ResumeCursor | undefined;
325
+ /**
326
+ * Creates the session: the subscriber is registered before the process
327
+ * starts, so output begins at offset zero and cannot be missed. A session
328
+ * that already exists with the same arguments is opened as it is, which makes
329
+ * a repeated Open after a lost reply safe.
330
+ *
331
+ * @generated from field: clankerbox.v1.NewSession create = 5;
332
+ */
333
+ create?: NewSession | undefined;
334
+ /**
335
+ * Omit from this attachment's output exactly the escape sequences the guest
336
+ * VT answered, so a real terminal downstream does not answer them again.
337
+ * Offsets stay in unfiltered coordinates: data may be shorter than the
338
+ * advance of next_offset.
339
+ *
340
+ * @generated from field: bool omit_answered_queries = 6;
341
+ */
342
+ omitAnsweredQueries: boolean;
343
+ /**
344
+ * @generated from field: clankerbox.v1.TerminalProfile terminal_profile = 7;
345
+ */
346
+ terminalProfile?: TerminalProfile | undefined;
284
347
  };
285
348
  /**
286
349
  * Describes the message clankerbox.v1.Open.
@@ -288,6 +351,12 @@ export type Open = Message<"clankerbox.v1.Open"> & {
288
351
  */
289
352
  export declare const OpenSchema: GenMessage<Open>;
290
353
  /**
354
+ * offset is how many input bytes the guest has accepted from this attachment.
355
+ * An Input at any other offset is refused, so input sent ahead of
356
+ * acknowledgements can never be reordered or applied twice: after a refusal,
357
+ * everything behind it is refused too, and the consumer continues from
358
+ * Ack.input_offset.
359
+ *
291
360
  * @generated from message clankerbox.v1.Input
292
361
  */
293
362
  export type Input = Message<"clankerbox.v1.Input"> & {
@@ -299,6 +368,10 @@ export type Input = Message<"clankerbox.v1.Input"> & {
299
368
  * @generated from field: bytes data = 2;
300
369
  */
301
370
  data: Uint8Array;
371
+ /**
372
+ * @generated from field: uint64 offset = 3;
373
+ */
374
+ offset: bigint;
302
375
  };
303
376
  /**
304
377
  * Describes the message clankerbox.v1.Input.
@@ -327,6 +400,22 @@ export type Resize = Message<"clankerbox.v1.Resize"> & {
327
400
  * Use `create(ResizeSchema)` to create a new message.
328
401
  */
329
402
  export declare const ResizeSchema: GenMessage<Resize>;
403
+ /**
404
+ * End of input for a pipe session. Refused for a PTY session.
405
+ *
406
+ * @generated from message clankerbox.v1.CloseInput
407
+ */
408
+ export type CloseInput = Message<"clankerbox.v1.CloseInput"> & {
409
+ /**
410
+ * @generated from field: uint64 sequence = 1;
411
+ */
412
+ sequence: bigint;
413
+ };
414
+ /**
415
+ * Describes the message clankerbox.v1.CloseInput.
416
+ * Use `create(CloseInputSchema)` to create a new message.
417
+ */
418
+ export declare const CloseInputSchema: GenMessage<CloseInput>;
330
419
  /**
331
420
  * @generated from message clankerbox.v1.AttachmentRequest
332
421
  */
@@ -354,6 +443,12 @@ export type AttachmentRequest = Message<"clankerbox.v1.AttachmentRequest"> & {
354
443
  */
355
444
  value: Resize;
356
445
  case: "resize";
446
+ } | {
447
+ /**
448
+ * @generated from field: clankerbox.v1.CloseInput close_input = 4;
449
+ */
450
+ value: CloseInput;
451
+ case: "closeInput";
357
452
  } | {
358
453
  case: undefined;
359
454
  value?: undefined;
@@ -489,6 +584,8 @@ export type ViewChunk = Message<"clankerbox.v1.ViewChunk"> & {
489
584
  */
490
585
  export declare const ViewChunkSchema: GenMessage<ViewChunk>;
491
586
  /**
587
+ * stream is set only by pipe sessions; PTY output and stdout leave it unspecified.
588
+ *
492
589
  * @generated from message clankerbox.v1.Output
493
590
  */
494
591
  export type Output = Message<"clankerbox.v1.Output"> & {
@@ -500,6 +597,10 @@ export type Output = Message<"clankerbox.v1.Output"> & {
500
597
  * @generated from field: bytes data = 2;
501
598
  */
502
599
  data: Uint8Array;
600
+ /**
601
+ * @generated from field: clankerbox.v1.OutputStream stream = 3;
602
+ */
603
+ stream: OutputStream;
503
604
  };
504
605
  /**
505
606
  * Describes the message clankerbox.v1.Output.
@@ -550,6 +651,12 @@ export type Ack = Message<"clankerbox.v1.Ack"> & {
550
651
  * @generated from field: clankerbox.v1.ErrorDetail error = 4;
551
652
  */
552
653
  error?: ErrorDetail | undefined;
654
+ /**
655
+ * Input bytes accepted from this attachment, after this control.
656
+ *
657
+ * @generated from field: uint64 input_offset = 5;
658
+ */
659
+ inputOffset: bigint;
553
660
  };
554
661
  /**
555
662
  * Describes the message clankerbox.v1.Ack.
@@ -710,6 +817,23 @@ export declare enum OpenMode {
710
817
  * Describes the enum clankerbox.v1.OpenMode.
711
818
  */
712
819
  export declare const OpenModeSchema: GenEnum<OpenMode>;
820
+ /**
821
+ * @generated from enum clankerbox.v1.OutputStream
822
+ */
823
+ export declare enum OutputStream {
824
+ /**
825
+ * @generated from enum value: OUTPUT_STREAM_UNSPECIFIED = 0;
826
+ */
827
+ UNSPECIFIED = 0,
828
+ /**
829
+ * @generated from enum value: OUTPUT_STREAM_STDERR = 1;
830
+ */
831
+ STDERR = 1
832
+ }
833
+ /**
834
+ * Describes the enum clankerbox.v1.OutputStream.
835
+ */
836
+ export declare const OutputStreamSchema: GenEnum<OutputStream>;
713
837
  /**
714
838
  * Public controller routing. Applications receive neither guest credentials nor
715
839
  * arbitrary endpoint routing. All session methods address an immutable machine ID.
@@ -725,14 +849,6 @@ export declare const SessionService: GenService<{
725
849
  input: typeof DescribeGuestRequestSchema;
726
850
  output: typeof GuestDescriptionSchema;
727
851
  };
728
- /**
729
- * @generated from rpc clankerbox.v1.SessionService.CreateSession
730
- */
731
- createSession: {
732
- methodKind: "unary";
733
- input: typeof CreateSessionRequestSchema;
734
- output: typeof SessionSchema;
735
- };
736
852
  /**
737
853
  * @generated from rpc clankerbox.v1.SessionService.ListSessions
738
854
  */
@@ -6,7 +6,7 @@ import { file_clankerbox_v1_resources } from "./resources_pb.js";
6
6
  /**
7
7
  * Describes the file clankerbox/v1/session.proto.
8
8
  */
9
- export const file_clankerbox_v1_session = /*@__PURE__*/ fileDesc("ChtjbGFua2VyYm94L3YxL3Nlc3Npb24ucHJvdG8SDWNsYW5rZXJib3gudjEiKgoURGVzY3JpYmVHdWVzdFJlcXVlc3QSEgoKbWFjaGluZV9pZBgBIAEoCSK7AQoQR3Vlc3REZXNjcmlwdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEhMKC2luY2FybmF0aW9uGAIgASgJEg8KB2Jvb3RfaWQYAyABKAkSFgoOZGFlbW9uX3ZlcnNpb24YBCABKAkSCgoCb3MYBSABKAkSDAoEdXNlchgGIAEoCRIVCg1lbmdpbmVfZGlnZXN0GAcgASgJEhQKDG1heF9zZXNzaW9ucxgIIAEoDRIOCgZzY2hlbWEYCSABKAkioAMKB1Nlc3Npb24SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSCwoDY3dkGAMgASgJEgwKBGFyZ3YYBCADKAkSDAoEY29scxgFIAEoDRIMCgRyb3dzGAYgASgNEiwKBnN0YXR1cxgHIAEoDjIcLmNsYW5rZXJib3gudjEuU2Vzc2lvblN0YXR1cxIWCglleGl0X2NvZGUYCCABKAVIAIgBARITCgZzaWduYWwYCSABKAlIAYgBARILCgNwaWQYCiABKAMSEgoKY3JlYXRlZF9hdBgLIAEoCRIVCghlbmRlZF9hdBgMIAEoCUgCiAEBEg4KBm9mZnNldBgNIAEoBBIVCg1yZXRhaW5lZF9mcm9tGA4gASgEEh8KEmxhc3RfcmVzaXplX29mZnNldBgPIAEoBEgDiAEBEhMKC2luY2FybmF0aW9uGBAgASgJEhYKDnJlcGx5X292ZXJmbG93GBEgASgEQgwKCl9leGl0X2NvZGVCCQoHX3NpZ25hbEILCglfZW5kZWRfYXRCFQoTX2xhc3RfcmVzaXplX29mZnNldCL/AQoUQ3JlYXRlU2Vzc2lvblJlcXVlc3QSEgoKbWFjaGluZV9pZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEgsKA2N3ZBgEIAEoCRIMCgRhcmd2GAUgAygJEjkKA2VudhgGIAMoCzIsLmNsYW5rZXJib3gudjEuQ3JlYXRlU2Vzc2lvblJlcXVlc3QuRW52RW50cnkSDAoEY29scxgHIAEoDRIMCgRyb3dzGAggASgNEhIKCmNyZWF0ZWRfYXQYCSABKAkaKgoIRW52RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIpChNMaXN0U2Vzc2lvbnNSZXF1ZXN0EhIKCm1hY2hpbmVfaWQYASABKAkiQAoUTGlzdFNlc3Npb25zUmVzcG9uc2USKAoIc2Vzc2lvbnMYASADKAsyFi5jbGFua2VyYm94LnYxLlNlc3Npb24iOwoRRW5kU2Vzc2lvblJlcXVlc3QSEgoKbWFjaGluZV9pZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJIjMKDFJlc3VtZUN1cnNvchIOCgZvZmZzZXQYASABKAQSEwoLaW5jYXJuYXRpb24YAiABKAkiggEKBE9wZW4SEgoKbWFjaGluZV9pZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEh4KFmV4cGVjdGVkX2VuZ2luZV9kaWdlc3QYAyABKAkSMgoNcmVzdW1lX2N1cnNvchgEIAEoCzIbLmNsYW5rZXJib3gudjEuUmVzdW1lQ3Vyc29yIicKBUlucHV0EhAKCHNlcXVlbmNlGAEgASgEEgwKBGRhdGEYAiABKAwiNgoGUmVzaXplEhAKCHNlcXVlbmNlGAEgASgEEgwKBGNvbHMYAiABKA0SDAoEcm93cxgDIAEoDSKTAQoRQXR0YWNobWVudFJlcXVlc3QSIwoEb3BlbhgBIAEoCzITLmNsYW5rZXJib3gudjEuT3BlbkgAEiUKBWlucHV0GAIgASgLMhQuY2xhbmtlcmJveC52MS5JbnB1dEgAEicKBnJlc2l6ZRgDIAEoCzIVLmNsYW5rZXJib3gudjEuUmVzaXplSABCCQoHY29tbWFuZCIeCgZDdXJzb3ISCQoBeBgBIAEoDRIJCgF5GAIgASgNIjwKBFZpZXcSJQoGY3Vyc29yGAEgASgLMhUuY2xhbmtlcmJveC52MS5DdXJzb3ISDQoFYnl0ZXMYAiABKAQi5gEKBk9wZW5lZBIuCgVndWVzdBgBIAEoCzIfLmNsYW5rZXJib3gudjEuR3Vlc3REZXNjcmlwdGlvbhInCgdzZXNzaW9uGAIgASgLMhYuY2xhbmtlcmJveC52MS5TZXNzaW9uEiUKBG1vZGUYAyABKA4yFy5jbGFua2VyYm94LnYxLk9wZW5Nb2RlEgsKA2N1dBgEIAEoBBIWCg5zbmFwc2hvdF9ieXRlcxgFIAEoBBIhCgR2aWV3GAYgASgLMhMuY2xhbmtlcmJveC52MS5WaWV3EhQKDHN0YXJ0X29mZnNldBgHIAEoBCI+Cg1TbmFwc2hvdENodW5rEhAKCHBvc2l0aW9uGAEgASgEEgwKBGRhdGEYAiABKAwSDQoFZmluYWwYAyABKAgiOgoJVmlld0NodW5rEhAKCHBvc2l0aW9uGAEgASgEEgwKBGRhdGEYAiABKAwSDQoFZmluYWwYAyABKAgiKwoGT3V0cHV0EhMKC25leHRfb2Zmc2V0GAEgASgEEgwKBGRhdGEYAiABKAwiNQoHUmVzaXplZBIOCgZvZmZzZXQYASABKAQSDAoEY29scxgCIAEoDRIMCgRyb3dzGAMgASgNImQKA0FjaxIQCghzZXF1ZW5jZRgBIAEoBBIQCghhY2NlcHRlZBgCIAEoCBIOCgZyZWFzb24YAyABKAkSKQoFZXJyb3IYBCABKAsyGi5jbGFua2VyYm94LnYxLkVycm9yRGV0YWlsIjgKDVNlc3Npb25FeGl0ZWQSJwoHc2Vzc2lvbhgBIAEoCzIWLmNsYW5rZXJib3gudjEuU2Vzc2lvbiIVCgNHYXASDgoGcmVhc29uGAEgASgJIv0CCg9BdHRhY2htZW50RXZlbnQSJwoGb3BlbmVkGAEgASgLMhUuY2xhbmtlcmJveC52MS5PcGVuZWRIABI2Cg5zbmFwc2hvdF9jaHVuaxgCIAEoCzIcLmNsYW5rZXJib3gudjEuU25hcHNob3RDaHVua0gAEi4KCnZpZXdfY2h1bmsYAyABKAsyGC5jbGFua2VyYm94LnYxLlZpZXdDaHVua0gAEicKBm91dHB1dBgEIAEoCzIVLmNsYW5rZXJib3gudjEuT3V0cHV0SAASKQoHcmVzaXplZBgFIAEoCzIWLmNsYW5rZXJib3gudjEuUmVzaXplZEgAEiEKA2FjaxgGIAEoCzISLmNsYW5rZXJib3gudjEuQWNrSAASNgoOc2Vzc2lvbl9leGl0ZWQYByABKAsyHC5jbGFua2VyYm94LnYxLlNlc3Npb25FeGl0ZWRIABIhCgNnYXAYCCABKAsyEi5jbGFua2VyYm94LnYxLkdhcEgAQgcKBWV2ZW50KpwBCg1TZXNzaW9uU3RhdHVzEh4KGlNFU1NJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASGwoXU0VTU0lPTl9TVEFUVVNfU1RBUlRJTkcQARIaChZTRVNTSU9OX1NUQVRVU19SVU5OSU5HEAISGQoVU0VTU0lPTl9TVEFUVVNfRVhJVEVEEAMSFwoTU0VTU0lPTl9TVEFUVVNfTE9TVBAEKoMBCghPcGVuTW9kZRIZChVPUEVOX01PREVfVU5TUEVDSUZJRUQQABIUChBPUEVOX01PREVfUkVTVU1FEAESFgoST1BFTl9NT0RFX1NOQVBTSE9UEAISGQoVT1BFTl9NT0RFX1VOQVZBSUxBQkxFEAMSEwoPT1BFTl9NT0RFX0VOREVEEAQyrQMKDlNlc3Npb25TZXJ2aWNlElUKDURlc2NyaWJlR3Vlc3QSIy5jbGFua2VyYm94LnYxLkRlc2NyaWJlR3Vlc3RSZXF1ZXN0Gh8uY2xhbmtlcmJveC52MS5HdWVzdERlc2NyaXB0aW9uEkwKDUNyZWF0ZVNlc3Npb24SIy5jbGFua2VyYm94LnYxLkNyZWF0ZVNlc3Npb25SZXF1ZXN0GhYuY2xhbmtlcmJveC52MS5TZXNzaW9uElcKDExpc3RTZXNzaW9ucxIiLmNsYW5rZXJib3gudjEuTGlzdFNlc3Npb25zUmVxdWVzdBojLmNsYW5rZXJib3gudjEuTGlzdFNlc3Npb25zUmVzcG9uc2USRgoKRW5kU2Vzc2lvbhIgLmNsYW5rZXJib3gudjEuRW5kU2Vzc2lvblJlcXVlc3QaFi5jbGFua2VyYm94LnYxLlNlc3Npb24SVQoNQXR0YWNoU2Vzc2lvbhIgLmNsYW5rZXJib3gudjEuQXR0YWNobWVudFJlcXVlc3QaHi5jbGFua2VyYm94LnYxLkF0dGFjaG1lbnRFdmVudCgBMAFCK1opY2xhbmtlcmJveC9nZW4vY2xhbmtlcmJveC92MTtjbGFua2VyYm94djFiBnByb3RvMw", [file_clankerbox_v1_resources]);
9
+ export const file_clankerbox_v1_session = /*@__PURE__*/ fileDesc("ChtjbGFua2VyYm94L3YxL3Nlc3Npb24ucHJvdG8SDWNsYW5rZXJib3gudjEiKgoURGVzY3JpYmVHdWVzdFJlcXVlc3QSEgoKbWFjaGluZV9pZBgBIAEoCSK7AQoQR3Vlc3REZXNjcmlwdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEhMKC2luY2FybmF0aW9uGAIgASgJEg8KB2Jvb3RfaWQYAyABKAkSFgoOZGFlbW9uX3ZlcnNpb24YBCABKAkSCgoCb3MYBSABKAkSDAoEdXNlchgGIAEoCRIVCg1lbmdpbmVfZGlnZXN0GAcgASgJEhQKDG1heF9zZXNzaW9ucxgIIAEoDRIOCgZzY2hlbWEYCSABKAkixgMKB1Nlc3Npb24SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSCwoDY3dkGAMgASgJEgwKBGFyZ3YYBCADKAkSDAoEY29scxgFIAEoDRIMCgRyb3dzGAYgASgNEiwKBnN0YXR1cxgHIAEoDjIcLmNsYW5rZXJib3gudjEuU2Vzc2lvblN0YXR1cxIWCglleGl0X2NvZGUYCCABKAVIAIgBARITCgZzaWduYWwYCSABKAlIAYgBARILCgNwaWQYCiABKAMSEgoKY3JlYXRlZF9hdBgLIAEoCRIVCghlbmRlZF9hdBgMIAEoCUgCiAEBEg4KBm9mZnNldBgNIAEoBBIVCg1yZXRhaW5lZF9mcm9tGA4gASgEEh8KEmxhc3RfcmVzaXplX29mZnNldBgPIAEoBEgDiAEBEhMKC2luY2FybmF0aW9uGBAgASgJEhYKDnJlcGx5X292ZXJmbG93GBEgASgEEg0KBXBpcGVzGBIgASgIEhUKDWVuZF9vbl9kZXRhY2gYEyABKAhCDAoKX2V4aXRfY29kZUIJCgdfc2lnbmFsQgsKCV9lbmRlZF9hdEIVChNfbGFzdF9yZXNpemVfb2Zmc2V0IukBCgpOZXdTZXNzaW9uEg0KBWxhYmVsGAEgASgJEgsKA2N3ZBgCIAEoCRIMCgRhcmd2GAMgAygJEi8KA2VudhgEIAMoCzIiLmNsYW5rZXJib3gudjEuTmV3U2Vzc2lvbi5FbnZFbnRyeRIMCgRjb2xzGAUgASgNEgwKBHJvd3MYBiABKA0SEgoKY3JlYXRlZF9hdBgHIAEoCRIVCg1lbmRfb25fZGV0YWNoGAggASgIEg0KBXBpcGVzGAkgASgIGioKCEVudkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiKQoTTGlzdFNlc3Npb25zUmVxdWVzdBISCgptYWNoaW5lX2lkGAEgASgJIkAKFExpc3RTZXNzaW9uc1Jlc3BvbnNlEigKCHNlc3Npb25zGAEgAygLMhYuY2xhbmtlcmJveC52MS5TZXNzaW9uIjsKEUVuZFNlc3Npb25SZXF1ZXN0EhIKCm1hY2hpbmVfaWQYASABKAkSEgoKc2Vzc2lvbl9pZBgCIAEoCSIzCgxSZXN1bWVDdXJzb3ISDgoGb2Zmc2V0GAEgASgEEhMKC2luY2FybmF0aW9uGAIgASgJImEKD1Rlcm1pbmFsUHJvZmlsZRIXCgpmb3JlZ3JvdW5kGAEgASgNSACIAQESFwoKYmFja2dyb3VuZBgCIAEoDUgBiAEBQg0KC19mb3JlZ3JvdW5kQg0KC19iYWNrZ3JvdW5kIoYCCgRPcGVuEhIKCm1hY2hpbmVfaWQYASABKAkSEgoKc2Vzc2lvbl9pZBgCIAEoCRIeChZleHBlY3RlZF9lbmdpbmVfZGlnZXN0GAMgASgJEjIKDXJlc3VtZV9jdXJzb3IYBCABKAsyGy5jbGFua2VyYm94LnYxLlJlc3VtZUN1cnNvchIpCgZjcmVhdGUYBSABKAsyGS5jbGFua2VyYm94LnYxLk5ld1Nlc3Npb24SHQoVb21pdF9hbnN3ZXJlZF9xdWVyaWVzGAYgASgIEjgKEHRlcm1pbmFsX3Byb2ZpbGUYByABKAsyHi5jbGFua2VyYm94LnYxLlRlcm1pbmFsUHJvZmlsZSI3CgVJbnB1dBIQCghzZXF1ZW5jZRgBIAEoBBIMCgRkYXRhGAIgASgMEg4KBm9mZnNldBgDIAEoBCI2CgZSZXNpemUSEAoIc2VxdWVuY2UYASABKAQSDAoEY29scxgCIAEoDRIMCgRyb3dzGAMgASgNIh4KCkNsb3NlSW5wdXQSEAoIc2VxdWVuY2UYASABKAQixQEKEUF0dGFjaG1lbnRSZXF1ZXN0EiMKBG9wZW4YASABKAsyEy5jbGFua2VyYm94LnYxLk9wZW5IABIlCgVpbnB1dBgCIAEoCzIULmNsYW5rZXJib3gudjEuSW5wdXRIABInCgZyZXNpemUYAyABKAsyFS5jbGFua2VyYm94LnYxLlJlc2l6ZUgAEjAKC2Nsb3NlX2lucHV0GAQgASgLMhkuY2xhbmtlcmJveC52MS5DbG9zZUlucHV0SABCCQoHY29tbWFuZCIeCgZDdXJzb3ISCQoBeBgBIAEoDRIJCgF5GAIgASgNIjwKBFZpZXcSJQoGY3Vyc29yGAEgASgLMhUuY2xhbmtlcmJveC52MS5DdXJzb3ISDQoFYnl0ZXMYAiABKAQi5gEKBk9wZW5lZBIuCgVndWVzdBgBIAEoCzIfLmNsYW5rZXJib3gudjEuR3Vlc3REZXNjcmlwdGlvbhInCgdzZXNzaW9uGAIgASgLMhYuY2xhbmtlcmJveC52MS5TZXNzaW9uEiUKBG1vZGUYAyABKA4yFy5jbGFua2VyYm94LnYxLk9wZW5Nb2RlEgsKA2N1dBgEIAEoBBIWCg5zbmFwc2hvdF9ieXRlcxgFIAEoBBIhCgR2aWV3GAYgASgLMhMuY2xhbmtlcmJveC52MS5WaWV3EhQKDHN0YXJ0X29mZnNldBgHIAEoBCI+Cg1TbmFwc2hvdENodW5rEhAKCHBvc2l0aW9uGAEgASgEEgwKBGRhdGEYAiABKAwSDQoFZmluYWwYAyABKAgiOgoJVmlld0NodW5rEhAKCHBvc2l0aW9uGAEgASgEEgwKBGRhdGEYAiABKAwSDQoFZmluYWwYAyABKAgiWAoGT3V0cHV0EhMKC25leHRfb2Zmc2V0GAEgASgEEgwKBGRhdGEYAiABKAwSKwoGc3RyZWFtGAMgASgOMhsuY2xhbmtlcmJveC52MS5PdXRwdXRTdHJlYW0iNQoHUmVzaXplZBIOCgZvZmZzZXQYASABKAQSDAoEY29scxgCIAEoDRIMCgRyb3dzGAMgASgNInoKA0FjaxIQCghzZXF1ZW5jZRgBIAEoBBIQCghhY2NlcHRlZBgCIAEoCBIOCgZyZWFzb24YAyABKAkSKQoFZXJyb3IYBCABKAsyGi5jbGFua2VyYm94LnYxLkVycm9yRGV0YWlsEhQKDGlucHV0X29mZnNldBgFIAEoBCI4Cg1TZXNzaW9uRXhpdGVkEicKB3Nlc3Npb24YASABKAsyFi5jbGFua2VyYm94LnYxLlNlc3Npb24iFQoDR2FwEg4KBnJlYXNvbhgBIAEoCSL9AgoPQXR0YWNobWVudEV2ZW50EicKBm9wZW5lZBgBIAEoCzIVLmNsYW5rZXJib3gudjEuT3BlbmVkSAASNgoOc25hcHNob3RfY2h1bmsYAiABKAsyHC5jbGFua2VyYm94LnYxLlNuYXBzaG90Q2h1bmtIABIuCgp2aWV3X2NodW5rGAMgASgLMhguY2xhbmtlcmJveC52MS5WaWV3Q2h1bmtIABInCgZvdXRwdXQYBCABKAsyFS5jbGFua2VyYm94LnYxLk91dHB1dEgAEikKB3Jlc2l6ZWQYBSABKAsyFi5jbGFua2VyYm94LnYxLlJlc2l6ZWRIABIhCgNhY2sYBiABKAsyEi5jbGFua2VyYm94LnYxLkFja0gAEjYKDnNlc3Npb25fZXhpdGVkGAcgASgLMhwuY2xhbmtlcmJveC52MS5TZXNzaW9uRXhpdGVkSAASIQoDZ2FwGAggASgLMhIuY2xhbmtlcmJveC52MS5HYXBIAEIHCgVldmVudCqcAQoNU2Vzc2lvblN0YXR1cxIeChpTRVNTSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF1NFU1NJT05fU1RBVFVTX1NUQVJUSU5HEAESGgoWU0VTU0lPTl9TVEFUVVNfUlVOTklORxACEhkKFVNFU1NJT05fU1RBVFVTX0VYSVRFRBADEhcKE1NFU1NJT05fU1RBVFVTX0xPU1QQBCqDAQoIT3Blbk1vZGUSGQoVT1BFTl9NT0RFX1VOU1BFQ0lGSUVEEAASFAoQT1BFTl9NT0RFX1JFU1VNRRABEhYKEk9QRU5fTU9ERV9TTkFQU0hPVBACEhkKFU9QRU5fTU9ERV9VTkFWQUlMQUJMRRADEhMKD09QRU5fTU9ERV9FTkRFRBAEKkcKDE91dHB1dFN0cmVhbRIdChlPVVRQVVRfU1RSRUFNX1VOU1BFQ0lGSUVEEAASGAoUT1VUUFVUX1NUUkVBTV9TVERFUlIQATLfAgoOU2Vzc2lvblNlcnZpY2USVQoNRGVzY3JpYmVHdWVzdBIjLmNsYW5rZXJib3gudjEuRGVzY3JpYmVHdWVzdFJlcXVlc3QaHy5jbGFua2VyYm94LnYxLkd1ZXN0RGVzY3JpcHRpb24SVwoMTGlzdFNlc3Npb25zEiIuY2xhbmtlcmJveC52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GiMuY2xhbmtlcmJveC52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJGCgpFbmRTZXNzaW9uEiAuY2xhbmtlcmJveC52MS5FbmRTZXNzaW9uUmVxdWVzdBoWLmNsYW5rZXJib3gudjEuU2Vzc2lvbhJVCg1BdHRhY2hTZXNzaW9uEiAuY2xhbmtlcmJveC52MS5BdHRhY2htZW50UmVxdWVzdBoeLmNsYW5rZXJib3gudjEuQXR0YWNobWVudEV2ZW50KAEwAUIrWiljbGFua2VyYm94L2dlbi9jbGFua2VyYm94L3YxO2NsYW5rZXJib3h2MWIGcHJvdG8z", [file_clankerbox_v1_resources]);
10
10
  /**
11
11
  * Describes the message clankerbox.v1.DescribeGuestRequest.
12
12
  * Use `create(DescribeGuestRequestSchema)` to create a new message.
@@ -23,10 +23,10 @@ export const GuestDescriptionSchema = /*@__PURE__*/ messageDesc(file_clankerbox_
23
23
  */
24
24
  export const SessionSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 2);
25
25
  /**
26
- * Describes the message clankerbox.v1.CreateSessionRequest.
27
- * Use `create(CreateSessionRequestSchema)` to create a new message.
26
+ * Describes the message clankerbox.v1.NewSession.
27
+ * Use `create(NewSessionSchema)` to create a new message.
28
28
  */
29
- export const CreateSessionRequestSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 3);
29
+ export const NewSessionSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 3);
30
30
  /**
31
31
  * Describes the message clankerbox.v1.ListSessionsRequest.
32
32
  * Use `create(ListSessionsRequestSchema)` to create a new message.
@@ -47,81 +47,91 @@ export const EndSessionRequestSchema = /*@__PURE__*/ messageDesc(file_clankerbox
47
47
  * Use `create(ResumeCursorSchema)` to create a new message.
48
48
  */
49
49
  export const ResumeCursorSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 7);
50
+ /**
51
+ * Describes the message clankerbox.v1.TerminalProfile.
52
+ * Use `create(TerminalProfileSchema)` to create a new message.
53
+ */
54
+ export const TerminalProfileSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 8);
50
55
  /**
51
56
  * Describes the message clankerbox.v1.Open.
52
57
  * Use `create(OpenSchema)` to create a new message.
53
58
  */
54
- export const OpenSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 8);
59
+ export const OpenSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 9);
55
60
  /**
56
61
  * Describes the message clankerbox.v1.Input.
57
62
  * Use `create(InputSchema)` to create a new message.
58
63
  */
59
- export const InputSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 9);
64
+ export const InputSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 10);
60
65
  /**
61
66
  * Describes the message clankerbox.v1.Resize.
62
67
  * Use `create(ResizeSchema)` to create a new message.
63
68
  */
64
- export const ResizeSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 10);
69
+ export const ResizeSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 11);
70
+ /**
71
+ * Describes the message clankerbox.v1.CloseInput.
72
+ * Use `create(CloseInputSchema)` to create a new message.
73
+ */
74
+ export const CloseInputSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 12);
65
75
  /**
66
76
  * Describes the message clankerbox.v1.AttachmentRequest.
67
77
  * Use `create(AttachmentRequestSchema)` to create a new message.
68
78
  */
69
- export const AttachmentRequestSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 11);
79
+ export const AttachmentRequestSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 13);
70
80
  /**
71
81
  * Describes the message clankerbox.v1.Cursor.
72
82
  * Use `create(CursorSchema)` to create a new message.
73
83
  */
74
- export const CursorSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 12);
84
+ export const CursorSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 14);
75
85
  /**
76
86
  * Describes the message clankerbox.v1.View.
77
87
  * Use `create(ViewSchema)` to create a new message.
78
88
  */
79
- export const ViewSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 13);
89
+ export const ViewSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 15);
80
90
  /**
81
91
  * Describes the message clankerbox.v1.Opened.
82
92
  * Use `create(OpenedSchema)` to create a new message.
83
93
  */
84
- export const OpenedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 14);
94
+ export const OpenedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 16);
85
95
  /**
86
96
  * Describes the message clankerbox.v1.SnapshotChunk.
87
97
  * Use `create(SnapshotChunkSchema)` to create a new message.
88
98
  */
89
- export const SnapshotChunkSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 15);
99
+ export const SnapshotChunkSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 17);
90
100
  /**
91
101
  * Describes the message clankerbox.v1.ViewChunk.
92
102
  * Use `create(ViewChunkSchema)` to create a new message.
93
103
  */
94
- export const ViewChunkSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 16);
104
+ export const ViewChunkSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 18);
95
105
  /**
96
106
  * Describes the message clankerbox.v1.Output.
97
107
  * Use `create(OutputSchema)` to create a new message.
98
108
  */
99
- export const OutputSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 17);
109
+ export const OutputSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 19);
100
110
  /**
101
111
  * Describes the message clankerbox.v1.Resized.
102
112
  * Use `create(ResizedSchema)` to create a new message.
103
113
  */
104
- export const ResizedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 18);
114
+ export const ResizedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 20);
105
115
  /**
106
116
  * Describes the message clankerbox.v1.Ack.
107
117
  * Use `create(AckSchema)` to create a new message.
108
118
  */
109
- export const AckSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 19);
119
+ export const AckSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 21);
110
120
  /**
111
121
  * Describes the message clankerbox.v1.SessionExited.
112
122
  * Use `create(SessionExitedSchema)` to create a new message.
113
123
  */
114
- export const SessionExitedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 20);
124
+ export const SessionExitedSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 22);
115
125
  /**
116
126
  * Describes the message clankerbox.v1.Gap.
117
127
  * Use `create(GapSchema)` to create a new message.
118
128
  */
119
- export const GapSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 21);
129
+ export const GapSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 23);
120
130
  /**
121
131
  * Describes the message clankerbox.v1.AttachmentEvent.
122
132
  * Use `create(AttachmentEventSchema)` to create a new message.
123
133
  */
124
- export const AttachmentEventSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 22);
134
+ export const AttachmentEventSchema = /*@__PURE__*/ messageDesc(file_clankerbox_v1_session, 24);
125
135
  /**
126
136
  * @generated from enum clankerbox.v1.SessionStatus
127
137
  */
@@ -182,6 +192,24 @@ export var OpenMode;
182
192
  * Describes the enum clankerbox.v1.OpenMode.
183
193
  */
184
194
  export const OpenModeSchema = /*@__PURE__*/ enumDesc(file_clankerbox_v1_session, 1);
195
+ /**
196
+ * @generated from enum clankerbox.v1.OutputStream
197
+ */
198
+ export var OutputStream;
199
+ (function (OutputStream) {
200
+ /**
201
+ * @generated from enum value: OUTPUT_STREAM_UNSPECIFIED = 0;
202
+ */
203
+ OutputStream[OutputStream["UNSPECIFIED"] = 0] = "UNSPECIFIED";
204
+ /**
205
+ * @generated from enum value: OUTPUT_STREAM_STDERR = 1;
206
+ */
207
+ OutputStream[OutputStream["STDERR"] = 1] = "STDERR";
208
+ })(OutputStream || (OutputStream = {}));
209
+ /**
210
+ * Describes the enum clankerbox.v1.OutputStream.
211
+ */
212
+ export const OutputStreamSchema = /*@__PURE__*/ enumDesc(file_clankerbox_v1_session, 2);
185
213
  /**
186
214
  * Public controller routing. Applications receive neither guest credentials nor
187
215
  * arbitrary endpoint routing. All session methods address an immutable machine ID.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjermundgaraba/clankerbox-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Generated Protobuf messages and Connect RPC service descriptors for Clankerbox",
5
5
  "license": "MIT",
6
6
  "repository": {