@jsm-mit/tigi-sharded-package 0.1.0 → 0.2.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.
@@ -11,6 +11,10 @@ export const idlFactory = ({ IDL }) => {
11
11
  'workers' : IDL.Vec(IDL.Principal),
12
12
  'deployAdmins' : IDL.Vec(IDL.Principal),
13
13
  });
14
+ const AccountsPlace = IDL.Variant({
15
+ 'canister' : IDL.Principal,
16
+ 'coordinator' : IDL.Principal,
17
+ });
14
18
  const PrincipalArgs = IDL.Record({ 'principal' : IDL.Principal });
15
19
  const CoordinatorError = IDL.Variant({
16
20
  'NoCycles' : IDL.Text,
@@ -86,6 +90,20 @@ export const idlFactory = ({ IDL }) => {
86
90
  'Ok' : IDL.Vec(IDL.Text),
87
91
  'Err' : CoordinatorError,
88
92
  });
93
+ const ChatAdminMethod = IDL.Variant({
94
+ 'updateRoom' : IDL.Null,
95
+ 'createRoom' : IDL.Null,
96
+ 'deleteRoom' : IDL.Null,
97
+ });
98
+ const ForwardChatAdminArgs = IDL.Record({
99
+ 'method' : ChatAdminMethod,
100
+ 'args' : IDL.Vec(IDL.Nat8),
101
+ 'chatCoordinator' : IDL.Principal,
102
+ });
103
+ const Result_7 = IDL.Variant({
104
+ 'Ok' : IDL.Vec(IDL.Nat8),
105
+ 'Err' : CoordinatorError,
106
+ });
89
107
  const CoreWiring = IDL.Record({
90
108
  'mode' : Mode,
91
109
  'knownWorkers' : IDL.Vec(IDL.Principal),
@@ -97,7 +115,7 @@ export const idlFactory = ({ IDL }) => {
97
115
  'canister' : IDL.Principal,
98
116
  'admins' : IDL.Opt(IDL.Vec(IDL.Principal)),
99
117
  });
100
- const Result_7 = IDL.Variant({ 'Ok' : CoreLive, 'Err' : CoordinatorError });
118
+ const Result_8 = IDL.Variant({ 'Ok' : CoreLive, 'Err' : CoordinatorError });
101
119
  const Event = IDL.Record({
102
120
  'id' : IDL.Nat64,
103
121
  'atNs' : IDL.Nat64,
@@ -203,7 +221,7 @@ export const idlFactory = ({ IDL }) => {
203
221
  'creationInFlight' : IDL.Bool,
204
222
  'prefixes' : IDL.Vec(PrefixEntry),
205
223
  });
206
- const Result_8 = IDL.Variant({ 'Ok' : Status, 'Err' : CoordinatorError });
224
+ const Result_9 = IDL.Variant({ 'Ok' : Status, 'Err' : CoordinatorError });
207
225
  const WorkerConfig = IDL.Record({
208
226
  'fullAtHeapBytes' : IDL.Nat,
209
227
  'load' : LoadThresholds,
@@ -228,7 +246,7 @@ export const idlFactory = ({ IDL }) => {
228
246
  'error' : IDL.Opt(IDL.Text),
229
247
  'canister' : IDL.Principal,
230
248
  });
231
- const Result_9 = IDL.Variant({
249
+ const Result_10 = IDL.Variant({
232
250
  'Ok' : IDL.Vec(WorkerLive),
233
251
  'Err' : CoordinatorError,
234
252
  });
@@ -254,22 +272,22 @@ export const idlFactory = ({ IDL }) => {
254
272
  'load' : TestLoadArgs,
255
273
  'canister' : IDL.Principal,
256
274
  });
257
- const Result_10 = IDL.Variant({ 'Ok' : IDL.Bool, 'Err' : CoordinatorError });
275
+ const Result_11 = IDL.Variant({ 'Ok' : IDL.Bool, 'Err' : CoordinatorError });
258
276
  const CanisterArgs = IDL.Record({ 'canister' : IDL.Principal });
259
277
  const Dependents = IDL.Record({
260
278
  'core' : IDL.Opt(IDL.Principal),
261
279
  'workers' : IDL.Vec(IDL.Principal),
262
280
  });
263
281
  const GeohashesArgs = IDL.Record({ 'geohashes' : IDL.Vec(IDL.Text) });
264
- const Result_11 = IDL.Variant({
282
+ const Result_12 = IDL.Variant({
265
283
  'Ok' : IDL.Vec(WorkerRecord),
266
284
  'Err' : CoordinatorError,
267
285
  });
268
- const Result_12 = IDL.Variant({
286
+ const Result_13 = IDL.Variant({
269
287
  'Ok' : CoreRecord,
270
288
  'Err' : CoordinatorError,
271
289
  });
272
- const Result_13 = IDL.Variant({
290
+ const Result_14 = IDL.Variant({
273
291
  'Ok' : WorkerStatus,
274
292
  'Err' : CoordinatorError,
275
293
  });
@@ -283,7 +301,7 @@ export const idlFactory = ({ IDL }) => {
283
301
  'sinceNs' : IDL.Nat64,
284
302
  'lastError' : IDL.Opt(IDL.Text),
285
303
  });
286
- const Result_14 = IDL.Variant({
304
+ const Result_15 = IDL.Variant({
287
305
  'Ok' : Dependents,
288
306
  'Err' : CoordinatorError,
289
307
  });
@@ -294,7 +312,7 @@ export const idlFactory = ({ IDL }) => {
294
312
  'cyclesPerWorker' : IDL.Opt(IDL.Nat),
295
313
  'spread' : IDL.Opt(IDL.Bool),
296
314
  });
297
- const Result_15 = IDL.Variant({ 'Ok' : Config, 'Err' : CoordinatorError });
315
+ const Result_16 = IDL.Variant({ 'Ok' : Config, 'Err' : CoordinatorError });
298
316
  const CoreLoggingArgs = IDL.Record({ 'enabled' : IDL.Bool });
299
317
  const WorkerConfigOutcome = IDL.Record({
300
318
  'error' : IDL.Opt(IDL.Text),
@@ -304,7 +322,7 @@ export const idlFactory = ({ IDL }) => {
304
322
  'stored' : WorkerConfigArgs,
305
323
  'workers' : IDL.Vec(WorkerConfigOutcome),
306
324
  });
307
- const Result_16 = IDL.Variant({
325
+ const Result_17 = IDL.Variant({
308
326
  'Ok' : SetWorkerConfigResult,
309
327
  'Err' : CoordinatorError,
310
328
  });
@@ -312,7 +330,7 @@ export const idlFactory = ({ IDL }) => {
312
330
  'open' : IDL.Bool,
313
331
  'canister' : IDL.Principal,
314
332
  });
315
- const Result_17 = IDL.Variant({
333
+ const Result_18 = IDL.Variant({
316
334
  'Ok' : WorkerView,
317
335
  'Err' : CoordinatorError,
318
336
  });
@@ -320,17 +338,22 @@ export const idlFactory = ({ IDL }) => {
320
338
  'worker' : IDL.Principal,
321
339
  'prefixes' : IDL.Vec(IDL.Text),
322
340
  });
323
- const Result_18 = IDL.Variant({
341
+ const Result_19 = IDL.Variant({
324
342
  'Ok' : SplitResult,
325
343
  'Err' : CoordinatorError,
326
344
  });
327
- const Result_19 = IDL.Variant({ 'Ok' : IDL.Nat, 'Err' : CoordinatorError });
345
+ const Result_20 = IDL.Variant({ 'Ok' : IDL.Nat, 'Err' : CoordinatorError });
328
346
  const WasmChunkArgs = IDL.Record({
329
347
  'bytes' : IDL.Vec(IDL.Nat8),
330
348
  'index' : IDL.Nat32,
331
349
  });
332
- const Result_20 = IDL.Variant({ 'Ok' : IDL.Nat64, 'Err' : CoordinatorError });
350
+ const Result_21 = IDL.Variant({ 'Ok' : IDL.Nat64, 'Err' : CoordinatorError });
333
351
  return IDL.Service({
352
+ 'accountsCanisterFor' : IDL.Func(
353
+ [IDL.Principal],
354
+ [IDL.Opt(AccountsPlace)],
355
+ ['query'],
356
+ ),
334
357
  'addCoreAdmin' : IDL.Func([PrincipalArgs], [Result], []),
335
358
  'addDeployAdmin' : IDL.Func([PrincipalArgs], [Result_1], []),
336
359
  'assignPrefix' : IDL.Func([AssignPrefixArgs], [Result_2], []),
@@ -342,16 +365,17 @@ export const idlFactory = ({ IDL }) => {
342
365
  'deleteWorker' : IDL.Func([DeleteWorkerArgs], [Result_5], []),
343
366
  'dismissRoleRequest' : IDL.Func([], [Result_1], []),
344
367
  'drainWorker' : IDL.Func([DrainWorkerArgs], [Result_6], []),
345
- 'getCoreStatus' : IDL.Func([], [Result_7], ['composite_query']),
368
+ 'forwardChatAdmin' : IDL.Func([ForwardChatAdminArgs], [Result_7], []),
369
+ 'getCoreStatus' : IDL.Func([], [Result_8], ['composite_query']),
346
370
  'getHomeCanister' : IDL.Func([], [IDL.Opt(IDL.Principal)], ['query']),
347
371
  'getPrefixMap' : IDL.Func([], [IDL.Vec(PrefixEntry)], ['query']),
348
372
  'getRoles' : IDL.Func([], [Roles], ['query']),
349
- 'getStatus' : IDL.Func([], [Result_8], ['query']),
350
- 'getWorkersStatus' : IDL.Func([], [Result_9], ['composite_query']),
373
+ 'getStatus' : IDL.Func([], [Result_9], ['query']),
374
+ 'getWorkersStatus' : IDL.Func([], [Result_10], ['composite_query']),
351
375
  'handOverSuperadmin' : IDL.Func([], [Result_1], []),
352
376
  'hasDependents' : IDL.Func([], [IDL.Bool], ['query']),
353
377
  'http_request' : IDL.Func([HttpRequest], [HttpResponse], ['query']),
354
- 'injectWorkerTestLoad' : IDL.Func([InjectTestLoadArgs], [Result_10], []),
378
+ 'injectWorkerTestLoad' : IDL.Func([InjectTestLoadArgs], [Result_11], []),
355
379
  'installCore' : IDL.Func([], [Result_3], []),
356
380
  'installWorker' : IDL.Func([CanisterArgs], [Result_4], []),
357
381
  'isWorker' : IDL.Func([CanisterArgs], [IDL.Bool], ['query']),
@@ -362,9 +386,9 @@ export const idlFactory = ({ IDL }) => {
362
386
  [IDL.Vec(IDL.Opt(IDL.Principal))],
363
387
  ['query'],
364
388
  ),
365
- 'readQueryLoads' : IDL.Func([], [Result_11], []),
366
- 'refreshCore' : IDL.Func([], [Result_12], []),
367
- 'refreshWorker' : IDL.Func([CanisterArgs], [Result_13], []),
389
+ 'readQueryLoads' : IDL.Func([], [Result_12], []),
390
+ 'refreshCore' : IDL.Func([], [Result_13], []),
391
+ 'refreshWorker' : IDL.Func([CanisterArgs], [Result_14], []),
368
392
  'removeCoreAdmin' : IDL.Func([PrincipalArgs], [Result], []),
369
393
  'removeDeployAdmin' : IDL.Func([PrincipalArgs], [Result_1], []),
370
394
  'reportCoreLowCycles' : IDL.Func([ReportLowCyclesArgs], [], []),
@@ -373,19 +397,19 @@ export const idlFactory = ({ IDL }) => {
373
397
  'reportLowCycles' : IDL.Func([ReportLowCyclesArgs], [], []),
374
398
  'reportOutboxStuck' : IDL.Func([ReportOutboxStuckArgs], [], []),
375
399
  'requestSuperadmin' : IDL.Func([], [Result_1], []),
376
- 'resetGroup' : IDL.Func([], [Result_14], []),
377
- 'setConfig' : IDL.Func([SetConfigArgs], [Result_15], []),
378
- 'setCoreLoggingEnabled' : IDL.Func([CoreLoggingArgs], [Result_10], []),
379
- 'setWorkerConfig' : IDL.Func([WorkerConfigArgs], [Result_16], []),
380
- 'setWorkerOpen' : IDL.Func([SetWorkerOpenArgs], [Result_17], []),
381
- 'splitWorker' : IDL.Func([CanisterArgs], [Result_18], []),
400
+ 'resetGroup' : IDL.Func([], [Result_15], []),
401
+ 'setConfig' : IDL.Func([SetConfigArgs], [Result_16], []),
402
+ 'setCoreLoggingEnabled' : IDL.Func([CoreLoggingArgs], [Result_11], []),
403
+ 'setWorkerConfig' : IDL.Func([WorkerConfigArgs], [Result_17], []),
404
+ 'setWorkerOpen' : IDL.Func([SetWorkerOpenArgs], [Result_18], []),
405
+ 'splitWorker' : IDL.Func([CanisterArgs], [Result_19], []),
382
406
  'takeCycles' : IDL.Func([], [IDL.Nat], []),
383
- 'topUpCore' : IDL.Func([], [Result_19], []),
384
- 'topUpWorker' : IDL.Func([CanisterArgs], [Result_19], []),
407
+ 'topUpCore' : IDL.Func([], [Result_20], []),
408
+ 'topUpWorker' : IDL.Func([CanisterArgs], [Result_20], []),
385
409
  'upgradeCore' : IDL.Func([], [Result_3], []),
386
410
  'upgradeWorker' : IDL.Func([CanisterArgs], [Result_3], []),
387
- 'uploadCoreWasmChunk' : IDL.Func([WasmChunkArgs], [Result_20], []),
388
- 'uploadWorkerWasmChunk' : IDL.Func([WasmChunkArgs], [Result_20], []),
411
+ 'uploadCoreWasmChunk' : IDL.Func([WasmChunkArgs], [Result_21], []),
412
+ 'uploadWorkerWasmChunk' : IDL.Func([WasmChunkArgs], [Result_21], []),
389
413
  'workerFor' : IDL.Func([IDL.Text], [IDL.Opt(IDL.Principal)], ['query']),
390
414
  });
391
415
  };
@@ -40,7 +40,7 @@ type TigiCore =
40
40
  /// Admins: an admin more (the coordinator adds the people who rule the group).
41
41
  addAdmin: (args: PrincipalArgs) -> (Result_2);
42
42
  /// Admins: a canister the core controls joins the demo pool (U-35).
43
- addPoolCanister: (args: CanisterArgs) -> (Result_13);
43
+ addPoolCanister: (args: CanisterArgs) -> (Result_16);
44
44
  /// Admins: a driver canister, or one driver in it (`driverKey`), is blocked; the workers
45
45
  /// drop it at once (WO-2).
46
46
  blockDriver: (args: BlockDriverArgs) -> (Result_2);
@@ -49,37 +49,45 @@ type TigiCore =
49
49
  clearLogs: () -> ();
50
50
  /// Admins: the chunks become THE module of their kind. A new driver wasm is released
51
51
  /// (F-11) and its hash goes to the workers.
52
- commitDriverWasm: (args: WasmCommitArgs) -> (Result_18);
52
+ commitDriverWasm: (args: WasmCommitArgs) -> (Result_22);
53
53
  /// Admins, localTest: an empty canister from the core's cycles joins the demo pool.
54
- createLocalPoolCanister: () -> (Result_13);
54
+ createLocalPoolCanister: () -> (Result_16);
55
55
  /// F-2 … F-4, F-10: the caller's own driver canister (localTest: from the core's cycles).
56
- createMyDriverCanister: () -> (Result_13);
56
+ createMyDriverCanister: () -> (Result_16);
57
57
  /// Admins: the simulator, created once (F-18).
58
- ensureSimulator: () -> (Result_17);
58
+ ensureSimulator: () -> (Result_21);
59
59
  /// F-8: 15 min more for the holder of a demo canister.
60
- extendDemoLease: () -> (Result_13);
61
- getAdmins: () -> (Result_16) query;
60
+ extendDemoLease: () -> (Result_16);
61
+ getAdmins: () -> (Result_20) query;
62
+ /// For the fronts (through the package): where the chat of this environment is. Null =
63
+ /// no chat here yet. The room of a driver is `ChatRoomFunctions.driverRoomId`.
64
+ getChatConfig: () -> (opt ChatConfig) query;
65
+ /// Admins: how far the driver rooms are (C-15).
66
+ getChatRoomsStatus: () -> (Result_19) query;
62
67
  /// WO-1, WO-2: what the core knows of a canister — for the workers and anybody.
63
68
  getDriverCanisterStatus: (args: CanisterArgs) ->
64
69
  (DriverCanisterStatus) query;
65
- getDriverRollout: () -> (Result_15) query;
66
- getFactoryStatus: () -> (Result_14) query;
70
+ getDriverRollout: () -> (Result_18) query;
71
+ getFactoryStatus: () -> (Result_17) query;
67
72
  getLogs: () -> (text) query;
68
73
  /// The caller's own canister, or the demo canister the caller holds now.
69
- getMyDriverCanister: () -> (Result_13) query;
74
+ getMyDriverCanister: () -> (Result_16) query;
70
75
  getMyProfile: () -> (Result_4) query;
76
+ /// C-16, PF-4: the caller's own rating as a rider (sum and count of stars; null = no
77
+ /// rating yet). Ratings reach the core in the workers' batches, up to a minute late.
78
+ getMyRating: () -> (Result_15) query;
71
79
  /// C-8: the caller's rides, newest first.
72
- getMyRides: (args: RidesPageArgs) -> (Result_12) query;
80
+ getMyRides: (args: RidesPageArgs) -> (Result_14) query;
73
81
  /// C-3: the names of up to MAX_PROFILES_PER_CALL principals; unknown ones are left out.
74
- getProfiles: (args: ProfilesArgs) -> (Result_11) query;
82
+ getProfiles: (args: ProfilesArgs) -> (Result_13) query;
75
83
  /// F-11: the driver wasms released so far, oldest first.
76
84
  getReleasedDriverWasms: () -> (vec ReleasedWasm) query;
77
85
  /// F-18: the simulator of this group; none in prod or before ensureSimulator.
78
86
  getSimulator: () -> (opt principal) query;
79
87
  /// Admins: the coordinator, the workers confirmed so far, the mode.
80
- getWiring: () -> (Result_10) query;
88
+ getWiring: () -> (Result_12) query;
81
89
  /// Admins: how far the outbox to the workers is (C-6, C-7).
82
- getWorkerOutbox: () -> (Result_9) query;
90
+ getWorkerOutbox: () -> (Result_11) query;
83
91
  /// Workers of the group: the core asks the coordinator once and remembers the worker,
84
92
  /// which then gets the network state through the outbox. A worker calls it once after
85
93
  /// its install. Answers true.
@@ -87,13 +95,23 @@ type TigiCore =
87
95
  /// Workers of the group: finished rides and ratings, at most MAX_RIDE_BATCH (C-4, C-5).
88
96
  /// Idempotent: a known requestId and a counted rating count once. Invalid entries are
89
97
  /// rejected and logged; the worker drops the whole batch after an ok.
90
- ingestRideBatch: (batch: RideBatch) -> (Result_8);
98
+ ingestRideBatch: (batch: RideBatch) -> (Result_10);
99
+ /// C-14: the accounts gate of the chat (U-43). The chat core asks this group's
100
+ /// coordinator WHERE (`accountsCanisterFor` → this core) and asks here: true = an
101
+ /// account with a name exists for the principal and the rider is not blocked.
102
+ isUser: ("principal": principal) -> (bool) query;
91
103
  /// F-5 … F-7: a demo canister for 15 min (outside prod).
92
- leaseDemoDriverCanister: () -> (Result_7);
93
- listBlocks: (args: PageArgs) -> (Result_6) query;
94
- listDriverCanisters: (args: PageArgs) -> (Result_5) query;
104
+ leaseDemoDriverCanister: () -> (Result_9);
105
+ listBlocks: (args: PageArgs) -> (Result_8) query;
106
+ listDriverCanisters: (args: PageArgs) -> (Result_7) query;
107
+ /// Admins: the driver rooms as the core wants them, 100 a page at most.
108
+ listDriverRooms: (args: PageArgs) -> (Result_6) query;
95
109
  removeAdmin: (args: PrincipalArgs) -> (Result_2);
96
110
  resumeDriverRollout: () -> (Result_3);
111
+ /// Admins: the chat of this environment — the chat group's coordinator and the project
112
+ /// (whose admin and accounts field are this group's coordinator). Every call sends every
113
+ /// driver room again (a new project, a chat group set up again).
114
+ setChatConfig: (args: ChatConfig) -> (Result_5);
97
115
  setLoggingEnabled: (enabled: bool) -> (Result_2);
98
116
  /// The coordinator only: the balance below which the core asks for cycles.
99
117
  setLowCyclesBelow: (value: nat) -> (Result_2);
@@ -176,33 +194,27 @@ type RideBatch =
176
194
  type Result_9 =
177
195
  variant {
178
196
  err: Error;
179
- ok:
180
- record {
181
- headSeq: nat64;
182
- laggingWorkers: nat;
183
- lastError: opt text;
184
- subjects: nat;
185
- };
197
+ ok: LeaseAnswer;
186
198
  };
187
199
  type Result_8 =
188
200
  variant {
189
201
  err: Error;
190
- ok: RideBatchResult;
202
+ ok: vec Block;
191
203
  };
192
204
  type Result_7 =
193
205
  variant {
194
206
  err: Error;
195
- ok: LeaseAnswer;
207
+ ok: DriverCanistersPage;
196
208
  };
197
209
  type Result_6 =
198
210
  variant {
199
211
  err: Error;
200
- ok: vec Block;
212
+ ok: vec DriverRoomView;
201
213
  };
202
214
  type Result_5 =
203
215
  variant {
204
216
  err: Error;
205
- ok: DriverCanistersPage;
217
+ ok: ChatConfig;
206
218
  };
207
219
  type Result_4 =
208
220
  variant {
@@ -214,55 +226,81 @@ type Result_3 =
214
226
  err: Error;
215
227
  ok: RolloutView;
216
228
  };
229
+ type Result_22 =
230
+ variant {
231
+ err: Error;
232
+ ok: WasmInfo;
233
+ };
234
+ type Result_21 =
235
+ variant {
236
+ err: Error;
237
+ ok: principal;
238
+ };
239
+ type Result_20 =
240
+ variant {
241
+ err: Error;
242
+ ok: vec principal;
243
+ };
217
244
  type Result_2 =
218
245
  variant {
219
246
  err: Error;
220
247
  ok: bool;
221
248
  };
249
+ type Result_19 =
250
+ variant {
251
+ err: Error;
252
+ ok: ChatRoomsStatus;
253
+ };
222
254
  type Result_18 =
223
255
  variant {
224
256
  err: Error;
225
- ok: WasmInfo;
257
+ ok: opt RolloutView;
226
258
  };
227
259
  type Result_17 =
228
260
  variant {
229
261
  err: Error;
230
- ok: principal;
262
+ ok: FactoryStatus;
231
263
  };
232
264
  type Result_16 =
233
265
  variant {
234
266
  err: Error;
235
- ok: vec principal;
267
+ ok: DriverCanister;
236
268
  };
237
269
  type Result_15 =
238
270
  variant {
239
271
  err: Error;
240
- ok: opt RolloutView;
272
+ ok: opt Rating;
241
273
  };
242
274
  type Result_14 =
243
275
  variant {
244
276
  err: Error;
245
- ok: FactoryStatus;
277
+ ok: RidesPage;
246
278
  };
247
279
  type Result_13 =
248
280
  variant {
249
281
  err: Error;
250
- ok: DriverCanister;
282
+ ok: vec ProfileEntry;
251
283
  };
252
284
  type Result_12 =
253
285
  variant {
254
286
  err: Error;
255
- ok: RidesPage;
287
+ ok: Wiring;
256
288
  };
257
289
  type Result_11 =
258
290
  variant {
259
291
  err: Error;
260
- ok: vec ProfileEntry;
292
+ ok:
293
+ record {
294
+ headSeq: nat64;
295
+ laggingWorkers: nat;
296
+ lastError: opt text;
297
+ subjects: nat;
298
+ };
261
299
  };
262
300
  type Result_10 =
263
301
  variant {
264
302
  err: Error;
265
- ok: Wiring;
303
+ ok: RideBatchResult;
266
304
  };
267
305
  type Result_1 =
268
306
  variant {
@@ -294,6 +332,11 @@ type RatingEntry =
294
332
  side: RatingSide;
295
333
  stars: nat8;
296
334
  };
335
+ type Rating =
336
+ record {
337
+ count: nat;
338
+ sum: nat;
339
+ };
297
340
  type ProfilesArgs = record {principals: vec principal;};
298
341
  type ProfileEntry =
299
342
  record {
@@ -362,6 +405,15 @@ type Error =
362
405
  details: ErrorDetails;
363
406
  logsJson: text;
364
407
  };
408
+ type DriverRoomView =
409
+ record {
410
+ canister: principal;
411
+ driverKey: text;
412
+ lastError: opt text;
413
+ recipient: principal;
414
+ roomId: text;
415
+ synced: bool;
416
+ };
365
417
  type DriverCanistersPage =
366
418
  record {
367
419
  canisters: vec DriverCanister;
@@ -389,6 +441,20 @@ type DriverCanister =
389
441
  moduleHash: opt blob;
390
442
  owner: principal;
391
443
  };
444
+ type ChatRoomsStatus =
445
+ record {
446
+ config: opt ChatConfig;
447
+ failures: nat;
448
+ lastError: opt text;
449
+ pending: nat;
450
+ pendingSinceNs: opt int;
451
+ rooms: nat;
452
+ };
453
+ type ChatConfig =
454
+ record {
455
+ chatCoordinatorId: principal;
456
+ projectId: text;
457
+ };
392
458
  type CanisterArgs = record {canister: principal;};
393
459
  type BlockTarget =
394
460
  variant {