@shuffl/api-contracts 0.5.5 → 0.5.7

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.
@@ -139,6 +139,7 @@ const credentials_api_createInput = z
139
139
  z.literal('getStarted.intro'),
140
140
  z.literal('getStarted.wizard'),
141
141
  z.literal('groups.allAutomations'),
142
+ z.literal('groups.automationChoices'),
142
143
  z.literal('groups.automations'),
143
144
  z.literal('groups.directory'),
144
145
  z.literal('groups.directoryGroup'),
@@ -234,6 +235,21 @@ const credentials_api_createInput = z
234
235
  z.literal('knowledge.uploads.retry'),
235
236
  z.literal('manager.current'),
236
237
  z.literal('mcp.knowledge'),
238
+ z.literal('mentorship.checkIns.answer'),
239
+ z.literal('mentorship.goals.remove'),
240
+ z.literal('mentorship.goals.save'),
241
+ z.literal('mentorship.join'),
242
+ z.literal('mentorship.leave'),
243
+ z.literal('mentorship.members.setStatus'),
244
+ z.literal('mentorship.mine'),
245
+ z.literal('mentorship.pairs.decide'),
246
+ z.literal('mentorship.pairs.end'),
247
+ z.literal('mentorship.pairs.setMine'),
248
+ z.literal('mentorship.pairs.suggest'),
249
+ z.literal('mentorship.programs.get'),
250
+ z.literal('mentorship.programs.list'),
251
+ z.literal('mentorship.programs.save'),
252
+ z.literal('mentorship.programs.setStatus'),
237
253
  z.literal('network.claim'),
238
254
  z.literal('network.introductions'),
239
255
  z.literal('network.mine'),
@@ -2110,6 +2126,7 @@ const credentials_api_listOutput = z.strictObject({
2110
2126
  z.literal('getStarted.intro'),
2111
2127
  z.literal('getStarted.wizard'),
2112
2128
  z.literal('groups.allAutomations'),
2129
+ z.literal('groups.automationChoices'),
2113
2130
  z.literal('groups.automations'),
2114
2131
  z.literal('groups.directory'),
2115
2132
  z.literal('groups.directoryGroup'),
@@ -2205,6 +2222,21 @@ const credentials_api_listOutput = z.strictObject({
2205
2222
  z.literal('knowledge.uploads.retry'),
2206
2223
  z.literal('manager.current'),
2207
2224
  z.literal('mcp.knowledge'),
2225
+ z.literal('mentorship.checkIns.answer'),
2226
+ z.literal('mentorship.goals.remove'),
2227
+ z.literal('mentorship.goals.save'),
2228
+ z.literal('mentorship.join'),
2229
+ z.literal('mentorship.leave'),
2230
+ z.literal('mentorship.members.setStatus'),
2231
+ z.literal('mentorship.mine'),
2232
+ z.literal('mentorship.pairs.decide'),
2233
+ z.literal('mentorship.pairs.end'),
2234
+ z.literal('mentorship.pairs.setMine'),
2235
+ z.literal('mentorship.pairs.suggest'),
2236
+ z.literal('mentorship.programs.get'),
2237
+ z.literal('mentorship.programs.list'),
2238
+ z.literal('mentorship.programs.save'),
2239
+ z.literal('mentorship.programs.setStatus'),
2208
2240
  z.literal('network.claim'),
2209
2241
  z.literal('network.introductions'),
2210
2242
  z.literal('network.mine'),
@@ -2425,6 +2457,8 @@ const credentials_api_listOutput = z.strictObject({
2425
2457
  z.literal('knowledge:read'),
2426
2458
  z.literal('knowledge:write'),
2427
2459
  z.literal('manager:read'),
2460
+ z.literal('mentorship:read'),
2461
+ z.literal('mentorship:write'),
2428
2462
  z.literal('operations:read'),
2429
2463
  z.literal('operations:write'),
2430
2464
  z.literal('operator:read'),
@@ -2542,6 +2576,7 @@ const credentials_api_listOutput = z.strictObject({
2542
2576
  z.literal('getStarted.intro'),
2543
2577
  z.literal('getStarted.wizard'),
2544
2578
  z.literal('groups.allAutomations'),
2579
+ z.literal('groups.automationChoices'),
2545
2580
  z.literal('groups.automations'),
2546
2581
  z.literal('groups.directory'),
2547
2582
  z.literal('groups.directoryGroup'),
@@ -2637,6 +2672,21 @@ const credentials_api_listOutput = z.strictObject({
2637
2672
  z.literal('knowledge.uploads.retry'),
2638
2673
  z.literal('manager.current'),
2639
2674
  z.literal('mcp.knowledge'),
2675
+ z.literal('mentorship.checkIns.answer'),
2676
+ z.literal('mentorship.goals.remove'),
2677
+ z.literal('mentorship.goals.save'),
2678
+ z.literal('mentorship.join'),
2679
+ z.literal('mentorship.leave'),
2680
+ z.literal('mentorship.members.setStatus'),
2681
+ z.literal('mentorship.mine'),
2682
+ z.literal('mentorship.pairs.decide'),
2683
+ z.literal('mentorship.pairs.end'),
2684
+ z.literal('mentorship.pairs.setMine'),
2685
+ z.literal('mentorship.pairs.suggest'),
2686
+ z.literal('mentorship.programs.get'),
2687
+ z.literal('mentorship.programs.list'),
2688
+ z.literal('mentorship.programs.save'),
2689
+ z.literal('mentorship.programs.setStatus'),
2640
2690
  z.literal('network.claim'),
2641
2691
  z.literal('network.introductions'),
2642
2692
  z.literal('network.mine'),
@@ -2859,6 +2909,8 @@ const credentials_api_listOutput = z.strictObject({
2859
2909
  z.literal('knowledge:read'),
2860
2910
  z.literal('knowledge:write'),
2861
2911
  z.literal('manager:read'),
2912
+ z.literal('mentorship:read'),
2913
+ z.literal('mentorship:write'),
2862
2914
  z.literal('operations:read'),
2863
2915
  z.literal('operations:write'),
2864
2916
  z.literal('operator:read'),
@@ -5102,6 +5154,7 @@ const groups_allAutomationsOutput = z.strictObject({
5102
5154
  ])
5103
5155
  .optional()
5104
5156
  .optional(),
5157
+ badgeId: z.string().optional().optional(),
5105
5158
  body: z.array(z.string()).optional().optional(),
5106
5159
  channel: z
5107
5160
  .union([
@@ -5113,11 +5166,15 @@ const groups_allAutomationsOutput = z.strictObject({
5113
5166
  .optional(),
5114
5167
  communityId: z.string().optional().optional(),
5115
5168
  note: z.string().optional().optional(),
5169
+ personId: z.string().optional().optional(),
5116
5170
  programId: z.string().optional().optional(),
5171
+ questionId: z.string().optional().optional(),
5117
5172
  subject: z.string().optional().optional(),
5173
+ targetGroupId: z.string().optional().optional(),
5118
5174
  }),
5119
5175
  createdAt: z.iso.datetime({ offset: true }),
5120
5176
  createdBy: z.union([z.null(), z.string()]),
5177
+ delayDays: z.number(),
5121
5178
  group: z.strictObject({
5122
5179
  id: z.string(),
5123
5180
  kind: z.union([z.literal('dynamic'), z.literal('list')]),
@@ -5127,12 +5184,17 @@ const groups_allAutomationsOutput = z.strictObject({
5127
5184
  groupId: z.string(),
5128
5185
  id: z.string(),
5129
5186
  kind: z.union([
5187
+ z.literal('add_to_group'),
5130
5188
  z.literal('add_to_program'),
5189
+ z.literal('ask_pulse'),
5190
+ z.literal('give_badge'),
5131
5191
  z.literal('invite_community'),
5192
+ z.literal('remove_from_group'),
5132
5193
  z.literal('send_message'),
5133
5194
  z.literal('start_playbook'),
5134
5195
  z.literal('tell_hr'),
5135
5196
  z.literal('tell_manager'),
5197
+ z.literal('tell_person'),
5136
5198
  ]),
5137
5199
  lastRunAt: z.union([z.null(), z.iso.datetime({ offset: true })]),
5138
5200
  runs: z.number(),
@@ -5147,6 +5209,7 @@ const groups_allAutomationsOutput = z.strictObject({
5147
5209
  ]),
5148
5210
  trigger: z.union([z.literal('entered'), z.literal('left')]),
5149
5211
  updatedAt: z.iso.datetime({ offset: true }),
5212
+ when: z.string(),
5150
5213
  })),
5151
5214
  playbookStarts: z.array(z.strictObject({
5152
5215
  group: z.union([
@@ -5186,22 +5249,29 @@ const groups_allAutomationsOutput = z.strictObject({
5186
5249
  at: z.iso.datetime({ offset: true }),
5187
5250
  automationId: z.string(),
5188
5251
  code: z.union([z.null(), z.string()]),
5252
+ dueAt: z.union([z.null(), z.iso.datetime({ offset: true })]),
5189
5253
  groupId: z.string(),
5190
5254
  groupName: z.union([z.null(), z.string()]),
5191
5255
  id: z.string(),
5192
5256
  kind: z.union([
5193
5257
  z.null(),
5258
+ z.literal('add_to_group'),
5194
5259
  z.literal('add_to_program'),
5260
+ z.literal('ask_pulse'),
5261
+ z.literal('give_badge'),
5195
5262
  z.literal('invite_community'),
5263
+ z.literal('remove_from_group'),
5196
5264
  z.literal('send_message'),
5197
5265
  z.literal('start_playbook'),
5198
5266
  z.literal('tell_hr'),
5199
5267
  z.literal('tell_manager'),
5268
+ z.literal('tell_person'),
5200
5269
  ]),
5201
5270
  name: z.union([z.null(), z.string()]),
5202
5271
  outcome: z.union([
5203
5272
  z.literal('done'),
5204
5273
  z.literal('failed'),
5274
+ z.literal('scheduled'),
5205
5275
  z.literal('skipped'),
5206
5276
  ]),
5207
5277
  personId: z.string(),
@@ -5214,6 +5284,7 @@ const groups_allAutomationsOutput = z.strictObject({
5214
5284
  failed30: z.number(),
5215
5285
  groups: z.number(),
5216
5286
  paused: z.number(),
5287
+ scheduled: z.number(),
5217
5288
  skipped30: z.number(),
5218
5289
  }),
5219
5290
  });
@@ -5228,6 +5299,7 @@ const groups_automationsOutput = z.strictObject({
5228
5299
  ])
5229
5300
  .optional()
5230
5301
  .optional(),
5302
+ badgeId: z.string().optional().optional(),
5231
5303
  body: z.array(z.string()).optional().optional(),
5232
5304
  channel: z
5233
5305
  .union([
@@ -5239,20 +5311,29 @@ const groups_automationsOutput = z.strictObject({
5239
5311
  .optional(),
5240
5312
  communityId: z.string().optional().optional(),
5241
5313
  note: z.string().optional().optional(),
5314
+ personId: z.string().optional().optional(),
5242
5315
  programId: z.string().optional().optional(),
5316
+ questionId: z.string().optional().optional(),
5243
5317
  subject: z.string().optional().optional(),
5318
+ targetGroupId: z.string().optional().optional(),
5244
5319
  }),
5245
5320
  createdAt: z.iso.datetime({ offset: true }),
5246
5321
  createdBy: z.union([z.null(), z.string()]),
5322
+ delayDays: z.number(),
5247
5323
  groupId: z.string(),
5248
5324
  id: z.string(),
5249
5325
  kind: z.union([
5326
+ z.literal('add_to_group'),
5250
5327
  z.literal('add_to_program'),
5328
+ z.literal('ask_pulse'),
5329
+ z.literal('give_badge'),
5251
5330
  z.literal('invite_community'),
5331
+ z.literal('remove_from_group'),
5252
5332
  z.literal('send_message'),
5253
5333
  z.literal('start_playbook'),
5254
5334
  z.literal('tell_hr'),
5255
5335
  z.literal('tell_manager'),
5336
+ z.literal('tell_person'),
5256
5337
  ]),
5257
5338
  lastRunAt: z.union([z.null(), z.iso.datetime({ offset: true })]),
5258
5339
  runs: z.number(),
@@ -5267,25 +5348,33 @@ const groups_automationsOutput = z.strictObject({
5267
5348
  ]),
5268
5349
  trigger: z.union([z.literal('entered'), z.literal('left')]),
5269
5350
  updatedAt: z.iso.datetime({ offset: true }),
5351
+ when: z.string(),
5270
5352
  })),
5271
5353
  groupId: z.string(),
5272
5354
  runs: z.array(z.strictObject({
5273
5355
  at: z.iso.datetime({ offset: true }),
5274
5356
  automationId: z.string(),
5275
5357
  code: z.union([z.null(), z.string()]),
5358
+ dueAt: z.union([z.null(), z.iso.datetime({ offset: true })]),
5276
5359
  id: z.string(),
5277
5360
  kind: z.union([
5361
+ z.literal('add_to_group'),
5278
5362
  z.literal('add_to_program'),
5363
+ z.literal('ask_pulse'),
5364
+ z.literal('give_badge'),
5279
5365
  z.literal('invite_community'),
5366
+ z.literal('remove_from_group'),
5280
5367
  z.literal('send_message'),
5281
5368
  z.literal('start_playbook'),
5282
5369
  z.literal('tell_hr'),
5283
5370
  z.literal('tell_manager'),
5371
+ z.literal('tell_person'),
5284
5372
  ]),
5285
5373
  name: z.union([z.null(), z.string()]),
5286
5374
  outcome: z.union([
5287
5375
  z.literal('done'),
5288
5376
  z.literal('failed'),
5377
+ z.literal('scheduled'),
5289
5378
  z.literal('skipped'),
5290
5379
  ]),
5291
5380
  personId: z.string(),
@@ -5293,6 +5382,16 @@ const groups_automationsOutput = z.strictObject({
5293
5382
  why: z.union([z.null(), z.string()]),
5294
5383
  })),
5295
5384
  });
5385
+ const groups_automationChoicesInput = z.strictObject({});
5386
+ const groups_automationChoicesOutput = z.strictObject({
5387
+ badges: z.array(z.strictObject({ id: z.string(), name: z.string() })),
5388
+ groups: z.array(z.strictObject({
5389
+ department: z.boolean(),
5390
+ id: z.string(),
5391
+ name: z.string(),
5392
+ })),
5393
+ questions: z.array(z.strictObject({ id: z.string(), retired: z.boolean(), text: z.string() })),
5394
+ });
5296
5395
  const groups_setAutomationInput = z
5297
5396
  .strictObject({
5298
5397
  config: z
@@ -5306,6 +5405,7 @@ const groups_setAutomationInput = z
5306
5405
  ])
5307
5406
  .optional()
5308
5407
  .optional(),
5408
+ badgeId: z.string().optional().optional(),
5309
5409
  body: z.array(z.string()).optional().optional(),
5310
5410
  channel: z
5311
5411
  .union([
@@ -5317,21 +5417,30 @@ const groups_setAutomationInput = z
5317
5417
  .optional(),
5318
5418
  communityId: z.string().optional().optional(),
5319
5419
  note: z.string().optional().optional(),
5420
+ personId: z.string().optional().optional(),
5320
5421
  programId: z.string().optional().optional(),
5422
+ questionId: z.string().optional().optional(),
5321
5423
  subject: z.string().optional().optional(),
5424
+ targetGroupId: z.string().optional().optional(),
5322
5425
  }),
5323
5426
  ])
5324
5427
  .optional()
5325
5428
  .optional(),
5429
+ delayDays: z.number().optional().optional(),
5326
5430
  groupId: z.string(),
5327
5431
  id: z.string().optional().optional(),
5328
5432
  kind: z.union([
5433
+ z.literal('add_to_group'),
5329
5434
  z.literal('add_to_program'),
5435
+ z.literal('ask_pulse'),
5436
+ z.literal('give_badge'),
5330
5437
  z.literal('invite_community'),
5438
+ z.literal('remove_from_group'),
5331
5439
  z.literal('send_message'),
5332
5440
  z.literal('start_playbook'),
5333
5441
  z.literal('tell_hr'),
5334
5442
  z.literal('tell_manager'),
5443
+ z.literal('tell_person'),
5335
5444
  ]),
5336
5445
  trigger: z.union([z.literal('entered'), z.literal('left')]),
5337
5446
  })
@@ -5352,6 +5461,7 @@ const groups_setAutomationOutput = z.object({
5352
5461
  ])
5353
5462
  .optional()
5354
5463
  .optional(),
5464
+ badgeId: z.string().optional().optional(),
5355
5465
  body: z.array(z.string()).optional().optional(),
5356
5466
  channel: z
5357
5467
  .union([
@@ -5363,20 +5473,29 @@ const groups_setAutomationOutput = z.object({
5363
5473
  .optional(),
5364
5474
  communityId: z.string().optional().optional(),
5365
5475
  note: z.string().optional().optional(),
5476
+ personId: z.string().optional().optional(),
5366
5477
  programId: z.string().optional().optional(),
5478
+ questionId: z.string().optional().optional(),
5367
5479
  subject: z.string().optional().optional(),
5480
+ targetGroupId: z.string().optional().optional(),
5368
5481
  }),
5369
5482
  createdAt: z.iso.datetime({ offset: true }),
5370
5483
  createdBy: z.union([z.null(), z.string()]),
5484
+ delayDays: z.number(),
5371
5485
  groupId: z.string(),
5372
5486
  id: z.string(),
5373
5487
  kind: z.union([
5488
+ z.literal('add_to_group'),
5374
5489
  z.literal('add_to_program'),
5490
+ z.literal('ask_pulse'),
5491
+ z.literal('give_badge'),
5375
5492
  z.literal('invite_community'),
5493
+ z.literal('remove_from_group'),
5376
5494
  z.literal('send_message'),
5377
5495
  z.literal('start_playbook'),
5378
5496
  z.literal('tell_hr'),
5379
5497
  z.literal('tell_manager'),
5498
+ z.literal('tell_person'),
5380
5499
  ]),
5381
5500
  lastRunAt: z.union([z.null(), z.iso.datetime({ offset: true })]),
5382
5501
  runs: z.number(),
@@ -5391,6 +5510,7 @@ const groups_setAutomationOutput = z.object({
5391
5510
  ]),
5392
5511
  trigger: z.union([z.literal('entered'), z.literal('left')]),
5393
5512
  updatedAt: z.iso.datetime({ offset: true }),
5513
+ when: z.string(),
5394
5514
  })
5395
5515
  .nullable(),
5396
5516
  });
@@ -6027,6 +6147,7 @@ const home_placesOutput = z.strictObject({
6027
6147
  z.literal('communities'),
6028
6148
  z.literal('connections'),
6029
6149
  z.literal('knowledge'),
6150
+ z.literal('mentorship'),
6030
6151
  z.literal('playbook'),
6031
6152
  z.literal('praise'),
6032
6153
  z.literal('pulse'),
@@ -11569,6 +11690,443 @@ const playbooks_askBuddyOutput = z.object({
11569
11690
  ])
11570
11691
  .nullable(),
11571
11692
  });
11693
+ const mentorship_programs_listInput = z.strictObject({});
11694
+ const mentorship_programs_listOutput = z.strictObject({
11695
+ programs: z.array(z.strictObject({
11696
+ activePairs: z.number(),
11697
+ audience: z.union([z.null(), z.string()]),
11698
+ checkInWeeks: z.number(),
11699
+ createdAt: z.string(),
11700
+ description: z.string(),
11701
+ groupId: z.union([z.null(), z.string()]),
11702
+ id: z.string(),
11703
+ mentees: z.number(),
11704
+ mentorCapacity: z.number(),
11705
+ mentors: z.number(),
11706
+ name: z.string(),
11707
+ pairingWeeks: z.number(),
11708
+ status: z.union([
11709
+ z.literal('active'),
11710
+ z.literal('archived'),
11711
+ z.literal('paused'),
11712
+ ]),
11713
+ suggested: z.number(),
11714
+ waiting: z.number(),
11715
+ })),
11716
+ });
11717
+ const mentorship_programs_getInput = z.strictObject({ programId: z.string() });
11718
+ const mentorship_programs_getOutput = z.strictObject({
11719
+ members: z.array(z.strictObject({
11720
+ id: z.string(),
11721
+ joinedAt: z.string(),
11722
+ name: z.string(),
11723
+ pairs: z.number(),
11724
+ photoUrl: z.union([z.null(), z.string()]),
11725
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
11726
+ slackUserId: z.union([z.null(), z.string()]),
11727
+ status: z.union([
11728
+ z.literal('active'),
11729
+ z.literal('left'),
11730
+ z.literal('removed'),
11731
+ ]),
11732
+ title: z.union([z.null(), z.string()]),
11733
+ topics: z.string(),
11734
+ userId: z.union([z.null(), z.string()]),
11735
+ })),
11736
+ pairs: z.array(z.strictObject({
11737
+ checkIns: z.strictObject({
11738
+ answered: z.number(),
11739
+ asked: z.number(),
11740
+ met: z.number(),
11741
+ }),
11742
+ endedAt: z.union([z.null(), z.string()]),
11743
+ endReason: z.union([
11744
+ z.null(),
11745
+ z.literal('completed'),
11746
+ z.literal('hr'),
11747
+ z.literal('mentee'),
11748
+ z.literal('mentor'),
11749
+ ]),
11750
+ endsOn: z.union([z.null(), z.string()]),
11751
+ final: z.strictObject({
11752
+ mentee: z.union([
11753
+ z.null(),
11754
+ z.literal('helped'),
11755
+ z.literal('met'),
11756
+ z.literal('not_yet'),
11757
+ ]),
11758
+ mentor: z.union([
11759
+ z.null(),
11760
+ z.literal('helped'),
11761
+ z.literal('met'),
11762
+ z.literal('not_yet'),
11763
+ ]),
11764
+ }),
11765
+ id: z.string(),
11766
+ mentee: z.strictObject({
11767
+ id: z.string(),
11768
+ name: z.string(),
11769
+ photoUrl: z.union([z.null(), z.string()]),
11770
+ slackUserId: z.union([z.null(), z.string()]),
11771
+ title: z.union([z.null(), z.string()]),
11772
+ userId: z.union([z.null(), z.string()]),
11773
+ }),
11774
+ mentor: z.strictObject({
11775
+ id: z.string(),
11776
+ name: z.string(),
11777
+ photoUrl: z.union([z.null(), z.string()]),
11778
+ slackUserId: z.union([z.null(), z.string()]),
11779
+ title: z.union([z.null(), z.string()]),
11780
+ userId: z.union([z.null(), z.string()]),
11781
+ }),
11782
+ nextCheckInOn: z.union([z.null(), z.string()]),
11783
+ reasons: z.array(z.string()),
11784
+ startedAt: z.union([z.null(), z.string()]),
11785
+ status: z.union([
11786
+ z.literal('active'),
11787
+ z.literal('ended'),
11788
+ z.literal('paused'),
11789
+ z.literal('skipped'),
11790
+ z.literal('suggested'),
11791
+ ]),
11792
+ suggestedAt: z.string(),
11793
+ })),
11794
+ program: z.strictObject({
11795
+ activePairs: z.number(),
11796
+ audience: z.union([z.null(), z.string()]),
11797
+ checkInWeeks: z.number(),
11798
+ createdAt: z.string(),
11799
+ description: z.string(),
11800
+ groupId: z.union([z.null(), z.string()]),
11801
+ id: z.string(),
11802
+ mentees: z.number(),
11803
+ mentorCapacity: z.number(),
11804
+ mentors: z.number(),
11805
+ name: z.string(),
11806
+ pairingWeeks: z.number(),
11807
+ status: z.union([
11808
+ z.literal('active'),
11809
+ z.literal('archived'),
11810
+ z.literal('paused'),
11811
+ ]),
11812
+ suggested: z.number(),
11813
+ waiting: z.number(),
11814
+ }),
11815
+ });
11816
+ const mentorship_programs_saveInput = z
11817
+ .strictObject({
11818
+ checkInWeeks: z.number().optional().optional(),
11819
+ description: z.string().optional().optional(),
11820
+ groupId: z.union([z.null(), z.string()]).optional().optional(),
11821
+ id: z.string().optional().optional(),
11822
+ mentorCapacity: z.number().optional().optional(),
11823
+ name: z.string(),
11824
+ pairingWeeks: z.number().optional().optional(),
11825
+ })
11826
+ .extend({
11827
+ confirm: z.literal('mentorship.programs.save'),
11828
+ requestKey: z.string().min(1).max(128),
11829
+ });
11830
+ const mentorship_programs_saveOutput = z.object({
11831
+ receipt: commandReceiptSchema,
11832
+ result: z
11833
+ .strictObject({
11834
+ created: z.boolean(),
11835
+ grouped: z.boolean(),
11836
+ id: z.string(),
11837
+ })
11838
+ .nullable(),
11839
+ });
11840
+ const mentorship_programs_setStatusInput = z
11841
+ .strictObject({
11842
+ programId: z.string(),
11843
+ status: z.union([
11844
+ z.literal('active'),
11845
+ z.literal('archived'),
11846
+ z.literal('paused'),
11847
+ ]),
11848
+ })
11849
+ .extend({
11850
+ confirm: z.literal('mentorship.programs.setStatus'),
11851
+ requestKey: z.string().min(1).max(128),
11852
+ });
11853
+ const mentorship_programs_setStatusOutput = z.object({
11854
+ receipt: commandReceiptSchema,
11855
+ result: z
11856
+ .strictObject({
11857
+ changed: z.boolean(),
11858
+ status: z.union([
11859
+ z.literal('active'),
11860
+ z.literal('archived'),
11861
+ z.literal('paused'),
11862
+ ]),
11863
+ })
11864
+ .nullable(),
11865
+ });
11866
+ const mentorship_pairs_suggestInput = z
11867
+ .strictObject({ programId: z.string() })
11868
+ .extend({
11869
+ confirm: z.literal('mentorship.pairs.suggest'),
11870
+ requestKey: z.string().min(1).max(128),
11871
+ });
11872
+ const mentorship_pairs_suggestOutput = z.object({
11873
+ receipt: commandReceiptSchema,
11874
+ result: z
11875
+ .strictObject({ suggested: z.number(), waiting: z.number() })
11876
+ .nullable(),
11877
+ });
11878
+ const mentorship_pairs_decideInput = z
11879
+ .strictObject({
11880
+ decision: z.union([z.literal('approve'), z.literal('skip')]),
11881
+ pairId: z.string(),
11882
+ })
11883
+ .extend({
11884
+ confirm: z.literal('mentorship.pairs.decide'),
11885
+ requestKey: z.string().min(1).max(128),
11886
+ });
11887
+ const mentorship_pairs_decideOutput = z.object({
11888
+ receipt: commandReceiptSchema,
11889
+ result: z
11890
+ .union([
11891
+ z.strictObject({
11892
+ decision: z.literal('skip'),
11893
+ endsOn: z.undefined().optional(),
11894
+ reached: z.number(),
11895
+ status: z.literal('skipped'),
11896
+ }),
11897
+ z.strictObject({
11898
+ decision: z.literal('approve'),
11899
+ endsOn: z.string(),
11900
+ reached: z.number(),
11901
+ status: z.literal('active'),
11902
+ }),
11903
+ ])
11904
+ .nullable(),
11905
+ });
11906
+ const mentorship_pairs_endInput = z
11907
+ .strictObject({ pairId: z.string() })
11908
+ .extend({
11909
+ confirm: z.literal('mentorship.pairs.end'),
11910
+ requestKey: z.string().min(1).max(128),
11911
+ });
11912
+ const mentorship_pairs_endOutput = z.object({
11913
+ receipt: commandReceiptSchema,
11914
+ result: z.strictObject({ changed: z.boolean() }).nullable(),
11915
+ });
11916
+ const mentorship_members_setStatusInput = z
11917
+ .strictObject({
11918
+ personId: z.string(),
11919
+ programId: z.string(),
11920
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
11921
+ status: z.union([z.literal('active'), z.literal('removed')]),
11922
+ })
11923
+ .extend({
11924
+ confirm: z.literal('mentorship.members.setStatus'),
11925
+ requestKey: z.string().min(1).max(128),
11926
+ });
11927
+ const mentorship_members_setStatusOutput = z.object({
11928
+ receipt: commandReceiptSchema,
11929
+ result: z.strictObject({ changed: z.boolean() }).nullable(),
11930
+ });
11931
+ const mentorship_mineInput = z.strictObject({});
11932
+ const mentorship_mineOutput = z.strictObject({
11933
+ pairs: z.array(z.strictObject({
11934
+ checkIns: z.array(z.strictObject({
11935
+ answer: z.union([
11936
+ z.null(),
11937
+ z.literal('helped'),
11938
+ z.literal('met'),
11939
+ z.literal('not_yet'),
11940
+ ]),
11941
+ dueOn: z.string(),
11942
+ id: z.string(),
11943
+ kind: z.union([z.literal('check_in'), z.literal('final')]),
11944
+ })),
11945
+ endedAt: z.union([z.null(), z.string()]),
11946
+ endsOn: z.string(),
11947
+ goals: z.array(z.strictObject({
11948
+ done: z.boolean(),
11949
+ id: z.string(),
11950
+ title: z.string(),
11951
+ })),
11952
+ id: z.string(),
11953
+ nextCheckInOn: z.union([z.null(), z.string()]),
11954
+ other: z.strictObject({
11955
+ id: z.string(),
11956
+ name: z.string(),
11957
+ photoUrl: z.union([z.null(), z.string()]),
11958
+ slackUserId: z.union([z.null(), z.string()]),
11959
+ title: z.union([z.null(), z.string()]),
11960
+ userId: z.union([z.null(), z.string()]),
11961
+ }),
11962
+ otherTopics: z.string(),
11963
+ program: z.string(),
11964
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
11965
+ startedAt: z.string(),
11966
+ status: z.union([
11967
+ z.literal('active'),
11968
+ z.literal('ended'),
11969
+ z.literal('paused'),
11970
+ ]),
11971
+ })),
11972
+ programs: z.array(z.strictObject({
11973
+ audience: z.union([z.null(), z.string()]),
11974
+ description: z.string(),
11975
+ id: z.string(),
11976
+ mentee: z.union([
11977
+ z.null(),
11978
+ z.strictObject({
11979
+ status: z.union([
11980
+ z.literal('active'),
11981
+ z.literal('left'),
11982
+ z.literal('removed'),
11983
+ ]),
11984
+ topics: z.string(),
11985
+ }),
11986
+ ]),
11987
+ mentor: z.union([
11988
+ z.null(),
11989
+ z.strictObject({
11990
+ status: z.union([
11991
+ z.literal('active'),
11992
+ z.literal('left'),
11993
+ z.literal('removed'),
11994
+ ]),
11995
+ topics: z.string(),
11996
+ }),
11997
+ ]),
11998
+ name: z.string(),
11999
+ terms: z.string(),
12000
+ waiting: z.boolean(),
12001
+ })),
12002
+ });
12003
+ const mentorship_joinInput = z
12004
+ .strictObject({
12005
+ programId: z.string(),
12006
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
12007
+ topics: z.string(),
12008
+ })
12009
+ .extend({
12010
+ confirm: z.literal('mentorship.join'),
12011
+ requestKey: z.string().min(1).max(128),
12012
+ });
12013
+ const mentorship_joinOutput = z.object({
12014
+ receipt: commandReceiptSchema,
12015
+ result: z
12016
+ .strictObject({
12017
+ joined: z.boolean(),
12018
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
12019
+ topics: z.boolean(),
12020
+ })
12021
+ .nullable(),
12022
+ });
12023
+ const mentorship_leaveInput = z
12024
+ .strictObject({
12025
+ programId: z.string(),
12026
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
12027
+ })
12028
+ .extend({
12029
+ confirm: z.literal('mentorship.leave'),
12030
+ requestKey: z.string().min(1).max(128),
12031
+ });
12032
+ const mentorship_leaveOutput = z.object({
12033
+ receipt: commandReceiptSchema,
12034
+ result: z
12035
+ .strictObject({
12036
+ changed: z.boolean(),
12037
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
12038
+ })
12039
+ .nullable(),
12040
+ });
12041
+ const mentorship_pairs_setMineInput = z
12042
+ .strictObject({
12043
+ pairId: z.string(),
12044
+ status: z.union([
12045
+ z.literal('active'),
12046
+ z.literal('ended'),
12047
+ z.literal('paused'),
12048
+ ]),
12049
+ })
12050
+ .extend({
12051
+ confirm: z.literal('mentorship.pairs.setMine'),
12052
+ requestKey: z.string().min(1).max(128),
12053
+ });
12054
+ const mentorship_pairs_setMineOutput = z.object({
12055
+ receipt: commandReceiptSchema,
12056
+ result: z
12057
+ .strictObject({
12058
+ changed: z.boolean(),
12059
+ role: z.string(),
12060
+ status: z.union([
12061
+ z.literal('active'),
12062
+ z.literal('ended'),
12063
+ z.literal('paused'),
12064
+ ]),
12065
+ })
12066
+ .nullable(),
12067
+ });
12068
+ const mentorship_goals_saveInput = z
12069
+ .strictObject({
12070
+ done: z
12071
+ .union([z.literal(false), z.literal(true)])
12072
+ .optional()
12073
+ .optional(),
12074
+ goalId: z.string().optional().optional(),
12075
+ pairId: z.string(),
12076
+ title: z.string().optional().optional(),
12077
+ })
12078
+ .extend({
12079
+ confirm: z.literal('mentorship.goals.save'),
12080
+ requestKey: z.string().min(1).max(128),
12081
+ });
12082
+ const mentorship_goals_saveOutput = z.object({
12083
+ receipt: commandReceiptSchema,
12084
+ result: z
12085
+ .strictObject({
12086
+ added: z.boolean(),
12087
+ done: z.boolean(),
12088
+ goalId: z.union([z.null(), z.string()]),
12089
+ })
12090
+ .nullable(),
12091
+ });
12092
+ const mentorship_goals_removeInput = z
12093
+ .strictObject({ goalId: z.string(), pairId: z.string() })
12094
+ .extend({
12095
+ confirm: z.literal('mentorship.goals.remove'),
12096
+ requestKey: z.string().min(1).max(128),
12097
+ });
12098
+ const mentorship_goals_removeOutput = z.object({
12099
+ receipt: commandReceiptSchema,
12100
+ result: z.strictObject({ removed: z.boolean() }).nullable(),
12101
+ });
12102
+ const mentorship_checkIns_answerInput = z
12103
+ .strictObject({
12104
+ answer: z.union([
12105
+ z.literal('helped'),
12106
+ z.literal('met'),
12107
+ z.literal('not_yet'),
12108
+ ]),
12109
+ checkInId: z.string(),
12110
+ })
12111
+ .extend({
12112
+ confirm: z.literal('mentorship.checkIns.answer'),
12113
+ requestKey: z.string().min(1).max(128),
12114
+ });
12115
+ const mentorship_checkIns_answerOutput = z.object({
12116
+ receipt: commandReceiptSchema,
12117
+ result: z
12118
+ .strictObject({
12119
+ answer: z.union([
12120
+ z.literal('helped'),
12121
+ z.literal('met'),
12122
+ z.literal('not_yet'),
12123
+ ]),
12124
+ changed: z.boolean(),
12125
+ kind: z.union([z.literal('check_in'), z.literal('final')]),
12126
+ role: z.union([z.literal('mentee'), z.literal('mentor')]),
12127
+ })
12128
+ .nullable(),
12129
+ });
11572
12130
  const celebrations_programInput = z.strictObject({});
11573
12131
  const celebrations_programOutput = z.strictObject({
11574
12132
  programs: z.array(z.strictObject({
@@ -12171,6 +12729,7 @@ const notifications_preferencesOutput = z.strictObject({
12171
12729
  z.literal('hr_reply'),
12172
12730
  z.literal('hr_request'),
12173
12731
  z.literal('legacy_upgrade'),
12732
+ z.literal('mentorship'),
12174
12733
  z.literal('playbook'),
12175
12734
  z.literal('policy_acknowledgement'),
12176
12735
  z.literal('praise'),
@@ -12200,6 +12759,7 @@ const notifications_preferencesOutput = z.strictObject({
12200
12759
  z.literal('hr_reply'),
12201
12760
  z.literal('hr_request'),
12202
12761
  z.literal('legacy_upgrade'),
12762
+ z.literal('mentorship'),
12203
12763
  z.literal('playbook'),
12204
12764
  z.literal('policy_acknowledgement'),
12205
12765
  z.literal('praise'),
@@ -12233,6 +12793,7 @@ const notifications_saveInput = z
12233
12793
  z.literal('hr_reply'),
12234
12794
  z.literal('hr_request'),
12235
12795
  z.literal('legacy_upgrade'),
12796
+ z.literal('mentorship'),
12236
12797
  z.literal('playbook'),
12237
12798
  z.literal('policy_acknowledgement'),
12238
12799
  z.literal('praise'),
@@ -12265,6 +12826,7 @@ const notifications_saveOutput = z.object({
12265
12826
  z.literal('hr_reply'),
12266
12827
  z.literal('hr_request'),
12267
12828
  z.literal('legacy_upgrade'),
12829
+ z.literal('mentorship'),
12268
12830
  z.literal('playbook'),
12269
12831
  z.literal('policy_acknowledgement'),
12270
12832
  z.literal('praise'),
@@ -12298,6 +12860,7 @@ const notifications_saveOutput = z.object({
12298
12860
  z.literal('hr_reply'),
12299
12861
  z.literal('hr_request'),
12300
12862
  z.literal('legacy_upgrade'),
12863
+ z.literal('mentorship'),
12301
12864
  z.literal('playbook'),
12302
12865
  z.literal('policy_acknowledgement'),
12303
12866
  z.literal('praise'),
@@ -13958,18 +14521,24 @@ const users_activityOutput = z.strictObject({
13958
14521
  z.strictObject({
13959
14522
  at: z.iso.datetime({ offset: true }),
13960
14523
  automation: z.union([
14524
+ z.literal('add_to_group'),
13961
14525
  z.literal('add_to_program'),
14526
+ z.literal('ask_pulse'),
14527
+ z.literal('give_badge'),
13962
14528
  z.literal('invite_community'),
14529
+ z.literal('remove_from_group'),
13963
14530
  z.literal('send_message'),
13964
14531
  z.literal('start_playbook'),
13965
14532
  z.literal('tell_hr'),
13966
14533
  z.literal('tell_manager'),
14534
+ z.literal('tell_person'),
13967
14535
  ]),
13968
14536
  group: z.strictObject({ id: z.string(), name: z.string() }),
13969
14537
  kind: z.literal('group_automation'),
13970
14538
  outcome: z.union([
13971
14539
  z.literal('done'),
13972
14540
  z.literal('failed'),
14541
+ z.literal('scheduled'),
13973
14542
  z.literal('skipped'),
13974
14543
  ]),
13975
14544
  trigger: z.union([z.literal('entered'), z.literal('left')]),
@@ -17513,6 +18082,15 @@ export const managementContract = {
17513
18082
  })
17514
18083
  .input(groups_allAutomationsInput)
17515
18084
  .output(groups_allAutomationsOutput),
18085
+ automationChoices: base
18086
+ .meta({ scope: 'users:read' })
18087
+ .route({
18088
+ method: 'POST',
18089
+ path: '/manage/groups/automationChoices',
18090
+ summary: 'The Pulse questions, badges and Shuffl lists a group automation can ask, give or add people to',
18091
+ })
18092
+ .input(groups_automationChoicesInput)
18093
+ .output(groups_automationChoicesOutput),
17516
18094
  automations: base
17517
18095
  .meta({ scope: 'users:read' })
17518
18096
  .route({
@@ -17698,7 +18276,7 @@ export const managementContract = {
17698
18276
  .route({
17699
18277
  method: 'POST',
17700
18278
  path: '/manage/groups/setAutomation',
17701
- summary: 'Add or change an automation on a group; a new one starts paused',
18279
+ summary: 'Add or change an automation on a group: send a message, ask a Pulse question, start a playbook, invite to a community, add to Connections, give a badge, add to or remove from another group, or tell HR, their manager or someone named, right away or days later; a new one starts paused',
17702
18280
  })
17703
18281
  .input(groups_setAutomationInput)
17704
18282
  .output(groups_setAutomationOutput),
@@ -18347,6 +18925,153 @@ export const managementContract = {
18347
18925
  .output(knowledge_uploads_retryOutput),
18348
18926
  },
18349
18927
  },
18928
+ mentorship: {
18929
+ checkIns: {
18930
+ answer: base
18931
+ .meta({ scope: 'self:write' })
18932
+ .route({
18933
+ method: 'POST',
18934
+ path: '/manage/mentorship/checkIns/answer',
18935
+ summary: 'Answer whether you met your mentor or mentee, and whether it helped',
18936
+ })
18937
+ .input(mentorship_checkIns_answerInput)
18938
+ .output(mentorship_checkIns_answerOutput),
18939
+ },
18940
+ goals: {
18941
+ remove: base
18942
+ .meta({ scope: 'self:write' })
18943
+ .route({
18944
+ method: 'POST',
18945
+ path: '/manage/mentorship/goals/remove',
18946
+ summary: 'Remove a goal from your mentorship, as the mentee',
18947
+ })
18948
+ .input(mentorship_goals_removeInput)
18949
+ .output(mentorship_goals_removeOutput),
18950
+ save: base
18951
+ .meta({ scope: 'self:write' })
18952
+ .route({
18953
+ method: 'POST',
18954
+ path: '/manage/mentorship/goals/save',
18955
+ summary: 'Add, rename or check off a goal in your mentorship, as the mentee',
18956
+ })
18957
+ .input(mentorship_goals_saveInput)
18958
+ .output(mentorship_goals_saveOutput),
18959
+ },
18960
+ join: base
18961
+ .meta({ scope: 'self:write' })
18962
+ .route({
18963
+ method: 'POST',
18964
+ path: '/manage/mentorship/join',
18965
+ summary: 'Join a mentorship program as a mentor or mentee, saying what you can help with or want to learn',
18966
+ })
18967
+ .input(mentorship_joinInput)
18968
+ .output(mentorship_joinOutput),
18969
+ leave: base
18970
+ .meta({ scope: 'self:write' })
18971
+ .route({
18972
+ method: 'POST',
18973
+ path: '/manage/mentorship/leave',
18974
+ summary: 'Leave a mentorship program as a mentor or mentee',
18975
+ })
18976
+ .input(mentorship_leaveInput)
18977
+ .output(mentorship_leaveOutput),
18978
+ members: {
18979
+ setStatus: base
18980
+ .meta({ scope: 'mentorship:write' })
18981
+ .route({
18982
+ method: 'POST',
18983
+ path: '/manage/mentorship/members/setStatus',
18984
+ summary: 'Take someone off a mentorship program, or put them back',
18985
+ })
18986
+ .input(mentorship_members_setStatusInput)
18987
+ .output(mentorship_members_setStatusOutput),
18988
+ },
18989
+ mine: base
18990
+ .meta({ scope: 'self:read' })
18991
+ .route({
18992
+ method: 'POST',
18993
+ path: '/manage/mentorship/mine',
18994
+ summary: 'Your mentorship programs and pairings, with goals and check-ins',
18995
+ })
18996
+ .input(mentorship_mineInput)
18997
+ .output(mentorship_mineOutput),
18998
+ pairs: {
18999
+ decide: base
19000
+ .meta({ scope: 'mentorship:write' })
19001
+ .route({
19002
+ method: 'POST',
19003
+ path: '/manage/mentorship/pairs/decide',
19004
+ summary: 'Approve a suggested mentorship pair, which introduces them, or skip it',
19005
+ })
19006
+ .input(mentorship_pairs_decideInput)
19007
+ .output(mentorship_pairs_decideOutput),
19008
+ end: base
19009
+ .meta({ scope: 'mentorship:write' })
19010
+ .route({
19011
+ method: 'POST',
19012
+ path: '/manage/mentorship/pairs/end',
19013
+ summary: 'End a mentorship pairing early',
19014
+ })
19015
+ .input(mentorship_pairs_endInput)
19016
+ .output(mentorship_pairs_endOutput),
19017
+ setMine: base
19018
+ .meta({ scope: 'self:write' })
19019
+ .route({
19020
+ method: 'POST',
19021
+ path: '/manage/mentorship/pairs/setMine',
19022
+ summary: 'Pause, resume or end your own mentorship pairing',
19023
+ })
19024
+ .input(mentorship_pairs_setMineInput)
19025
+ .output(mentorship_pairs_setMineOutput),
19026
+ suggest: base
19027
+ .meta({ scope: 'mentorship:write' })
19028
+ .route({
19029
+ method: 'POST',
19030
+ path: '/manage/mentorship/pairs/suggest',
19031
+ summary: 'Suggest a mentor outside their reporting line for every mentee still waiting',
19032
+ })
19033
+ .input(mentorship_pairs_suggestInput)
19034
+ .output(mentorship_pairs_suggestOutput),
19035
+ },
19036
+ programs: {
19037
+ get: base
19038
+ .meta({ scope: 'mentorship:read' })
19039
+ .route({
19040
+ method: 'POST',
19041
+ path: '/manage/mentorship/programs/get',
19042
+ summary: 'One mentorship program: who joined, the suggested pairs and whether pairs are meeting',
19043
+ })
19044
+ .input(mentorship_programs_getInput)
19045
+ .output(mentorship_programs_getOutput),
19046
+ list: base
19047
+ .meta({ scope: 'mentorship:read' })
19048
+ .route({
19049
+ method: 'POST',
19050
+ path: '/manage/mentorship/programs/list',
19051
+ summary: 'List mentorship programs, with how many mentors, mentees and pairs each has',
19052
+ })
19053
+ .input(mentorship_programs_listInput)
19054
+ .output(mentorship_programs_listOutput),
19055
+ save: base
19056
+ .meta({ scope: 'mentorship:write' })
19057
+ .route({
19058
+ method: 'POST',
19059
+ path: '/manage/mentorship/programs/save',
19060
+ summary: 'Create or change a mentorship program: who can join, how long pairings last and how often pairs check in',
19061
+ })
19062
+ .input(mentorship_programs_saveInput)
19063
+ .output(mentorship_programs_saveOutput),
19064
+ setStatus: base
19065
+ .meta({ scope: 'mentorship:write' })
19066
+ .route({
19067
+ method: 'POST',
19068
+ path: '/manage/mentorship/programs/setStatus',
19069
+ summary: 'Turn mentorship programs on, pause one, or archive one and end its pairs',
19070
+ })
19071
+ .input(mentorship_programs_setStatusInput)
19072
+ .output(mentorship_programs_setStatusOutput),
19073
+ },
19074
+ },
18350
19075
  network: {
18351
19076
  claim: base
18352
19077
  .meta({ scope: 'profile:write' })