@dakkitor/api-contracts 1.7.1 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/abilities/abilities.contract.d.ts +1 -1
  2. package/dist/abilities/abilities.contract.d.ts.map +1 -1
  3. package/dist/abilities/abilities.contract.js +1 -0
  4. package/dist/abilities/abilities.contract.spec.js +50 -19
  5. package/dist/abilities/interconnection.abilities.json +6 -0
  6. package/dist/abilities/outreach.abilities.json +0 -7
  7. package/dist/abilities/second-agent.abilities.json +18 -91
  8. package/dist/abilities/team-leads.json +1 -0
  9. package/dist/abilities/worker-curator.abilities.json +2 -0
  10. package/dist/actives/actives.contract.d.ts +7083 -6905
  11. package/dist/actives/actives.contract.d.ts.map +1 -1
  12. package/dist/agent-client-links/agent-client-links.contract.d.ts +1645 -1543
  13. package/dist/agent-client-links/agent-client-links.contract.d.ts.map +1 -1
  14. package/dist/auth/auth.contract.d.ts +73 -67
  15. package/dist/auth/auth.contract.d.ts.map +1 -1
  16. package/dist/auth/auth.contract.js +1 -0
  17. package/dist/bookings/backdate-guard.spec.d.ts +2 -0
  18. package/dist/bookings/backdate-guard.spec.d.ts.map +1 -0
  19. package/dist/bookings/backdate-guard.spec.js +80 -0
  20. package/dist/bookings/bookings.contract.d.ts +11169 -10843
  21. package/dist/bookings/bookings.contract.d.ts.map +1 -1
  22. package/dist/bookings/bookings.contract.js +26 -2
  23. package/dist/call-history/call-history.contract.d.ts +913 -876
  24. package/dist/call-history/call-history.contract.d.ts.map +1 -1
  25. package/dist/calls-feed/calls-feed.contract.d.ts +126 -119
  26. package/dist/calls-feed/calls-feed.contract.d.ts.map +1 -1
  27. package/dist/candidate-calling/candidate-calling.contract.d.ts +13397 -0
  28. package/dist/candidate-calling/candidate-calling.contract.d.ts.map +1 -0
  29. package/dist/candidate-calling/candidate-calling.contract.js +206 -0
  30. package/dist/candidate-calling/candidate-calling.contract.spec.d.ts +2 -0
  31. package/dist/candidate-calling/candidate-calling.contract.spec.d.ts.map +1 -0
  32. package/dist/candidate-calling/candidate-calling.contract.spec.js +193 -0
  33. package/dist/client-contacts/client-contacts.contract.d.ts +290 -290
  34. package/dist/clients/clients.contract.d.ts +110 -110
  35. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +3052 -2948
  36. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts.map +1 -1
  37. package/dist/collaborations/collaborations.contract.d.ts +2640 -2543
  38. package/dist/collaborations/collaborations.contract.d.ts.map +1 -1
  39. package/dist/common/common-schemas.d.ts +13 -13
  40. package/dist/common/common-schemas.d.ts.map +1 -1
  41. package/dist/common/common-schemas.js +1 -0
  42. package/dist/common/nino.d.ts +8 -0
  43. package/dist/common/nino.d.ts.map +1 -0
  44. package/dist/common/nino.js +26 -0
  45. package/dist/common/nino.spec.d.ts +2 -0
  46. package/dist/common/nino.spec.d.ts.map +1 -0
  47. package/dist/common/nino.spec.js +32 -0
  48. package/dist/companies/companies.contract.d.ts +30 -30
  49. package/dist/crews/crews.contract.d.ts +300 -300
  50. package/dist/cron-executions/cron-executions.contract.d.ts +26 -13
  51. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -1
  52. package/dist/cron-executions/cron-executions.contract.js +2 -0
  53. package/dist/cron-executions/cron-executions.contract.spec.d.ts +2 -0
  54. package/dist/cron-executions/cron-executions.contract.spec.d.ts.map +1 -0
  55. package/dist/cron-executions/cron-executions.contract.spec.js +27 -0
  56. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.d.ts +2 -0
  57. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.d.ts.map +1 -0
  58. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.js +59 -0
  59. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts +3483 -2798
  60. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts.map +1 -1
  61. package/dist/curated-worker-leads/candidate-coordination.contract.js +59 -10
  62. package/dist/curated-worker-leads/candidate-coordination.contract.spec.js +11 -0
  63. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts +429 -386
  64. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts.map +1 -1
  65. package/dist/curated-worker-leads/contact-history.spec.js +56 -0
  66. package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts +2 -85
  67. package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts.map +1 -1
  68. package/dist/curated-worker-leads/curated-worker-lead-config.contract.js +17 -41
  69. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.d.ts +2 -0
  70. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.d.ts.map +1 -0
  71. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.js +30 -0
  72. package/dist/curated-worker-leads/job-feed-match-counts.contract.spec.js +30 -0
  73. package/dist/curated-worker-leads/jobs-tab.contract.d.ts +5821 -5144
  74. package/dist/curated-worker-leads/jobs-tab.contract.d.ts.map +1 -1
  75. package/dist/curated-worker-leads/jobs-tab.contract.js +64 -12
  76. package/dist/curated-worker-leads/owned-jobs-tab.contract.d.ts +96 -96
  77. package/dist/curated-workers/curated-workers.contract.d.ts +1518 -1307
  78. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -1
  79. package/dist/curated-workers/curated-workers.contract.js +37 -6
  80. package/dist/dashboards/dashboard-widgets.contract.d.ts +425 -455
  81. package/dist/dashboards/dashboard-widgets.contract.d.ts.map +1 -1
  82. package/dist/dashboards/dashboard-widgets.contract.js +1 -11
  83. package/dist/dashboards/dashboard-widgets.retirement.spec.d.ts +2 -0
  84. package/dist/dashboards/dashboard-widgets.retirement.spec.d.ts.map +1 -0
  85. package/dist/dashboards/dashboard-widgets.retirement.spec.js +22 -0
  86. package/dist/dashboards/dashboard.contract.d.ts +16 -16
  87. package/dist/document-intake/document-intake.automation.spec.d.ts +2 -0
  88. package/dist/document-intake/document-intake.automation.spec.d.ts.map +1 -0
  89. package/dist/document-intake/document-intake.automation.spec.js +469 -0
  90. package/dist/document-intake/document-intake.card-side.spec.d.ts +2 -0
  91. package/dist/document-intake/document-intake.card-side.spec.d.ts.map +1 -0
  92. package/dist/document-intake/document-intake.card-side.spec.js +51 -0
  93. package/dist/document-intake/document-intake.contract.d.ts +9421 -1071
  94. package/dist/document-intake/document-intake.contract.d.ts.map +1 -1
  95. package/dist/document-intake/document-intake.contract.js +219 -5
  96. package/dist/document-intake/document-intake.contract.spec.d.ts +2 -0
  97. package/dist/document-intake/document-intake.contract.spec.d.ts.map +1 -0
  98. package/dist/document-intake/document-intake.contract.spec.js +37 -0
  99. package/dist/document-intake/document-intake.nino.spec.d.ts +2 -0
  100. package/dist/document-intake/document-intake.nino.spec.d.ts.map +1 -0
  101. package/dist/document-intake/document-intake.nino.spec.js +42 -0
  102. package/dist/export-jobs/export-jobs.contract.d.ts +670 -670
  103. package/dist/exports-events/exports-events.schemas.d.ts +4 -4
  104. package/dist/files/files.contract.d.ts +36 -36
  105. package/dist/index.d.ts +21 -9
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +21 -9
  108. package/dist/job-clusters/job-clusters.contract.d.ts +52 -52
  109. package/dist/jobs/jobs.contract.d.ts +8714 -8456
  110. package/dist/jobs/jobs.contract.d.ts.map +1 -1
  111. package/dist/kpi-impersonation/kpi-impersonation.contract.d.ts +102 -102
  112. package/dist/lead-assignments/lead-assignments.contract.d.ts +1290 -1219
  113. package/dist/lead-assignments/lead-assignments.contract.d.ts.map +1 -1
  114. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +330 -306
  115. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts.map +1 -1
  116. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +10 -10
  117. package/dist/leads/leads.contract.d.ts +245 -245
  118. package/dist/locations/locations.contract.d.ts +46 -46
  119. package/dist/notifications/notifications.contract.d.ts +85 -85
  120. package/dist/offices/offices.contract.d.ts +24 -24
  121. package/dist/outreach/__tests__/outreach-claim.test.js +33 -0
  122. package/dist/outreach/__tests__/outreach-contract-additions.spec.js +27 -0
  123. package/dist/outreach/__tests__/outreach-routes.test.js +8 -0
  124. package/dist/outreach/lab-outreach.contract.d.ts +48 -48
  125. package/dist/outreach/outreach-requests.contract.d.ts +272 -272
  126. package/dist/outreach/outreach-requests.schemas.d.ts +14 -14
  127. package/dist/outreach/outreach.contract.d.ts +583 -162
  128. package/dist/outreach/outreach.contract.d.ts.map +1 -1
  129. package/dist/outreach/outreach.contract.js +50 -1
  130. package/dist/outreach/outreach.schemas.d.ts +2 -2
  131. package/dist/outreach/relay-hub-outreach.contract.d.ts +1334 -0
  132. package/dist/outreach/relay-hub-outreach.contract.d.ts.map +1 -0
  133. package/dist/outreach/relay-hub-outreach.contract.js +113 -0
  134. package/dist/outreach/relay-hub-outreach.contract.spec.d.ts +2 -0
  135. package/dist/outreach/relay-hub-outreach.contract.spec.d.ts.map +1 -0
  136. package/dist/outreach/relay-hub-outreach.contract.spec.js +145 -0
  137. package/dist/outreach/relay-hub-outreach.schemas.d.ts +94 -0
  138. package/dist/outreach/relay-hub-outreach.schemas.d.ts.map +1 -0
  139. package/dist/outreach/relay-hub-outreach.schemas.js +15 -0
  140. package/dist/own-research/check-phone-response.spec.d.ts +2 -0
  141. package/dist/own-research/check-phone-response.spec.d.ts.map +1 -0
  142. package/dist/own-research/check-phone-response.spec.js +54 -0
  143. package/dist/own-research/own-research.contract.d.ts +1152 -1067
  144. package/dist/own-research/own-research.contract.d.ts.map +1 -1
  145. package/dist/own-research/own-research.contract.js +6 -1
  146. package/dist/proofs/proofs.contract.d.ts +196 -196
  147. package/dist/proofs/proofs.dtos.d.ts +104 -104
  148. package/dist/qualifications/qualifications.contract.d.ts +22 -22
  149. package/dist/realtime/realtime-telemetry.contract.d.ts +181 -0
  150. package/dist/realtime/realtime-telemetry.contract.d.ts.map +1 -0
  151. package/dist/realtime/realtime-telemetry.contract.js +81 -0
  152. package/dist/realtime/realtime-telemetry.contract.spec.d.ts +2 -0
  153. package/dist/realtime/realtime-telemetry.contract.spec.d.ts.map +1 -0
  154. package/dist/realtime/realtime-telemetry.contract.spec.js +41 -0
  155. package/dist/relay-pods/build-relay-pod-membership-rules.d.ts +9 -0
  156. package/dist/relay-pods/build-relay-pod-membership-rules.d.ts.map +1 -0
  157. package/dist/relay-pods/build-relay-pod-membership-rules.js +17 -0
  158. package/dist/relay-pods/build-relay-pod-membership-rules.spec.d.ts +2 -0
  159. package/dist/relay-pods/build-relay-pod-membership-rules.spec.d.ts.map +1 -0
  160. package/dist/relay-pods/build-relay-pod-membership-rules.spec.js +20 -0
  161. package/dist/relay-pods/relay-hub.contract.d.ts +1463 -0
  162. package/dist/relay-pods/relay-hub.contract.d.ts.map +1 -0
  163. package/dist/relay-pods/relay-hub.contract.js +140 -0
  164. package/dist/relay-pods/relay-hub.contract.spec.d.ts +2 -0
  165. package/dist/relay-pods/relay-hub.contract.spec.d.ts.map +1 -0
  166. package/dist/relay-pods/relay-hub.contract.spec.js +180 -0
  167. package/dist/relay-pods/relay-hub.schemas.d.ts +577 -0
  168. package/dist/relay-pods/relay-hub.schemas.d.ts.map +1 -0
  169. package/dist/relay-pods/relay-hub.schemas.js +158 -0
  170. package/dist/relay-pods/relay-lab-fleet.contract.d.ts +81 -81
  171. package/dist/relay-pods/relay-lab-fleet.schemas.d.ts +53 -53
  172. package/dist/{curated-worker-leads/lead-agent-area.contract.d.ts → relay-pods/relay-pod-members.contract.d.ts} +233 -126
  173. package/dist/relay-pods/relay-pod-members.contract.d.ts.map +1 -0
  174. package/dist/relay-pods/relay-pod-members.contract.js +73 -0
  175. package/dist/relay-pods/relay-pod-sessions.contract.d.ts +58 -58
  176. package/dist/relay-pods/relay-pods.contract.d.ts +169 -169
  177. package/dist/relay-pods/relay-pods.schemas.d.ts +46 -46
  178. package/dist/shared/summary-schemas.d.ts +10 -10
  179. package/dist/sheets-sync/__tests__/sheets-sync-events.schemas.test.js +22 -2
  180. package/dist/sheets-sync/sheets-sync-events.schemas.d.ts +30 -0
  181. package/dist/sheets-sync/sheets-sync-events.schemas.d.ts.map +1 -1
  182. package/dist/sheets-sync/sheets-sync-events.schemas.js +16 -1
  183. package/dist/sheets-sync/sheets-sync.contract.d.ts +829 -262
  184. package/dist/sheets-sync/sheets-sync.contract.d.ts.map +1 -1
  185. package/dist/sheets-sync/sheets-sync.contract.js +156 -34
  186. package/dist/telegram/telegram.contract.d.ts +12 -12
  187. package/dist/trades/trades.contract.d.ts +16 -16
  188. package/dist/user-access-grants/user-access-grants.contract.d.ts +383 -383
  189. package/dist/users/__tests__/assignable-roles.spec.js +1 -1
  190. package/dist/users/users.contract.d.ts +462 -431
  191. package/dist/users/users.contract.d.ts.map +1 -1
  192. package/dist/users/users.contract.js +19 -8
  193. package/dist/users/users.contract.spec.js +54 -0
  194. package/dist/voice-screener/voice-screener.contract.d.ts +237 -0
  195. package/dist/voice-screener/voice-screener.contract.d.ts.map +1 -0
  196. package/dist/voice-screener/voice-screener.contract.js +89 -0
  197. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts +500 -260
  198. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts.map +1 -1
  199. package/dist/worker-identity-cases/worker-identity-cases.contract.js +17 -1
  200. package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts +130 -130
  201. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.contract.d.ts +151 -151
  202. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.schemas.d.ts +15 -15
  203. package/dist/workers/do-not-contact.contract.d.ts +4 -4
  204. package/dist/workers/qualification-back-proof.spec.d.ts +2 -0
  205. package/dist/workers/qualification-back-proof.spec.d.ts.map +1 -0
  206. package/dist/workers/qualification-back-proof.spec.js +39 -0
  207. package/dist/workers/workers.contract.d.ts +3416 -3178
  208. package/dist/workers/workers.contract.d.ts.map +1 -1
  209. package/dist/workers/workers.contract.js +17 -0
  210. package/package.json +1 -1
  211. package/dist/curated-worker-leads/consent-queue.contract.d.ts +0 -4527
  212. package/dist/curated-worker-leads/consent-queue.contract.d.ts.map +0 -1
  213. package/dist/curated-worker-leads/consent-queue.contract.js +0 -201
  214. package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts +0 -135
  215. package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts.map +0 -1
  216. package/dist/curated-worker-leads/curated-worker-leads.contract.js +0 -32
  217. package/dist/curated-worker-leads/lead-agent-area.contract.d.ts.map +0 -1
  218. package/dist/curated-worker-leads/lead-agent-area.contract.js +0 -51
@@ -8,28 +8,28 @@ export declare const OfficeSchema: z.ZodObject<{
8
8
  lastName: z.ZodString;
9
9
  }, "strip", z.ZodTypeAny, {
10
10
  id: string;
11
- firstName: string;
12
11
  lastName: string;
12
+ firstName: string;
13
13
  }, {
14
14
  id: string;
15
- firstName: string;
16
15
  lastName: string;
16
+ firstName: string;
17
17
  }>, "many">>;
18
18
  }, "strip", z.ZodTypeAny, {
19
19
  id: string;
20
20
  name: string;
21
21
  managers?: {
22
22
  id: string;
23
- firstName: string;
24
23
  lastName: string;
24
+ firstName: string;
25
25
  }[] | undefined;
26
26
  }, {
27
27
  id: string;
28
28
  name: string;
29
29
  managers?: {
30
30
  id: string;
31
- firstName: string;
32
31
  lastName: string;
32
+ firstName: string;
33
33
  }[] | undefined;
34
34
  }>;
35
35
  export declare const CreateOfficeSchema: z.ZodObject<{
@@ -61,28 +61,28 @@ export declare const OfficeArraySchema: z.ZodArray<z.ZodObject<{
61
61
  lastName: z.ZodString;
62
62
  }, "strip", z.ZodTypeAny, {
63
63
  id: string;
64
- firstName: string;
65
64
  lastName: string;
65
+ firstName: string;
66
66
  }, {
67
67
  id: string;
68
- firstName: string;
69
68
  lastName: string;
69
+ firstName: string;
70
70
  }>, "many">>;
71
71
  }, "strip", z.ZodTypeAny, {
72
72
  id: string;
73
73
  name: string;
74
74
  managers?: {
75
75
  id: string;
76
- firstName: string;
77
76
  lastName: string;
77
+ firstName: string;
78
78
  }[] | undefined;
79
79
  }, {
80
80
  id: string;
81
81
  name: string;
82
82
  managers?: {
83
83
  id: string;
84
- firstName: string;
85
84
  lastName: string;
85
+ firstName: string;
86
86
  }[] | undefined;
87
87
  }>, "many">;
88
88
  export type Office = z.infer<typeof OfficeSchema>;
@@ -217,28 +217,28 @@ export declare const officesContract: {
217
217
  lastName: z.ZodString;
218
218
  }, "strip", z.ZodTypeAny, {
219
219
  id: string;
220
- firstName: string;
221
220
  lastName: string;
221
+ firstName: string;
222
222
  }, {
223
223
  id: string;
224
- firstName: string;
225
224
  lastName: string;
225
+ firstName: string;
226
226
  }>, "many">>;
227
227
  }, "strip", z.ZodTypeAny, {
228
228
  id: string;
229
229
  name: string;
230
230
  managers?: {
231
231
  id: string;
232
- firstName: string;
233
232
  lastName: string;
233
+ firstName: string;
234
234
  }[] | undefined;
235
235
  }, {
236
236
  id: string;
237
237
  name: string;
238
238
  managers?: {
239
239
  id: string;
240
- firstName: string;
241
240
  lastName: string;
241
+ firstName: string;
242
242
  }[] | undefined;
243
243
  }>;
244
244
  409: z.ZodObject<{
@@ -385,28 +385,28 @@ export declare const officesContract: {
385
385
  lastName: z.ZodString;
386
386
  }, "strip", z.ZodTypeAny, {
387
387
  id: string;
388
- firstName: string;
389
388
  lastName: string;
389
+ firstName: string;
390
390
  }, {
391
391
  id: string;
392
- firstName: string;
393
392
  lastName: string;
393
+ firstName: string;
394
394
  }>, "many">>;
395
395
  }, "strip", z.ZodTypeAny, {
396
396
  id: string;
397
397
  name: string;
398
398
  managers?: {
399
399
  id: string;
400
- firstName: string;
401
400
  lastName: string;
401
+ firstName: string;
402
402
  }[] | undefined;
403
403
  }, {
404
404
  id: string;
405
405
  name: string;
406
406
  managers?: {
407
407
  id: string;
408
- firstName: string;
409
408
  lastName: string;
409
+ firstName: string;
410
410
  }[] | undefined;
411
411
  }>, "many">;
412
412
  };
@@ -535,28 +535,28 @@ export declare const officesContract: {
535
535
  lastName: z.ZodString;
536
536
  }, "strip", z.ZodTypeAny, {
537
537
  id: string;
538
- firstName: string;
539
538
  lastName: string;
539
+ firstName: string;
540
540
  }, {
541
541
  id: string;
542
- firstName: string;
543
542
  lastName: string;
543
+ firstName: string;
544
544
  }>, "many">>;
545
545
  }, "strip", z.ZodTypeAny, {
546
546
  id: string;
547
547
  name: string;
548
548
  managers?: {
549
549
  id: string;
550
- firstName: string;
551
550
  lastName: string;
551
+ firstName: string;
552
552
  }[] | undefined;
553
553
  }, {
554
554
  id: string;
555
555
  name: string;
556
556
  managers?: {
557
557
  id: string;
558
- firstName: string;
559
558
  lastName: string;
559
+ firstName: string;
560
560
  }[] | undefined;
561
561
  }>;
562
562
  404: z.ZodObject<{
@@ -720,28 +720,28 @@ export declare const officesContract: {
720
720
  lastName: z.ZodString;
721
721
  }, "strip", z.ZodTypeAny, {
722
722
  id: string;
723
- firstName: string;
724
723
  lastName: string;
724
+ firstName: string;
725
725
  }, {
726
726
  id: string;
727
- firstName: string;
728
727
  lastName: string;
728
+ firstName: string;
729
729
  }>, "many">>;
730
730
  }, "strip", z.ZodTypeAny, {
731
731
  id: string;
732
732
  name: string;
733
733
  managers?: {
734
734
  id: string;
735
- firstName: string;
736
735
  lastName: string;
736
+ firstName: string;
737
737
  }[] | undefined;
738
738
  }, {
739
739
  id: string;
740
740
  name: string;
741
741
  managers?: {
742
742
  id: string;
743
- firstName: string;
744
743
  lastName: string;
744
+ firstName: string;
745
745
  }[] | undefined;
746
746
  }>;
747
747
  404: z.ZodObject<{
@@ -17,6 +17,39 @@ const widened = outreach_contract_1.ClaimNextOutreachBodySchema.safeParse({
17
17
  node_assert_1.default.ok(widened.success);
18
18
  node_assert_1.default.equal(Object.prototype.hasOwnProperty.call(widened.data, 'maxCommuteMinutes'), false);
19
19
  node_assert_1.default.ok(!outreach_contract_1.ClaimNextOutreachBodySchema.safeParse({}).success);
20
+ // The agent lane is a separate, strict envelope. These fields are the frozen
21
+ // proof of the exact Hub reservation that authorized this launch; ordinary
22
+ // legacy claim callers never need (and cannot accidentally acquire) it.
23
+ const AGENT_CLAIM_BODY = {
24
+ deviceId: 'rack-01',
25
+ authority: {
26
+ launchId: '0ce54488-598f-49a9-8c1a-ff843799c206',
27
+ campaignId: '0ce54488-598f-49a9-8c1a-ff843799c206',
28
+ jobId: 'b683831e-c98c-44c0-b75d-bd0356713f4e',
29
+ claimedLifecycleVersion: 7,
30
+ reservationCorrelationId: '9d84efb7-1ef1-4450-ad4d-22297806781f',
31
+ assignedPodId: '771db561-0701-4469-9e49-de618a07f8ac',
32
+ },
33
+ };
34
+ node_assert_1.default.ok(outreach_contract_1.AgentClaimNextOutreachBodySchema.safeParse(AGENT_CLAIM_BODY).success);
35
+ node_assert_1.default.ok(!outreach_contract_1.AgentClaimNextOutreachBodySchema.safeParse({
36
+ ...AGENT_CLAIM_BODY,
37
+ authority: {
38
+ ...AGENT_CLAIM_BODY.authority,
39
+ campaignId: 'bb49aedf-e17b-45bf-9087-5bf18ec7e2f0',
40
+ },
41
+ }).success, 'campaign and launch identities are one stable authority');
42
+ node_assert_1.default.ok(!outreach_contract_1.AgentClaimNextOutreachBodySchema.safeParse({
43
+ ...AGENT_CLAIM_BODY,
44
+ maxCommuteMinutes: 240,
45
+ }).success, 'agent authority rejects rather than strips unexpected widening fields');
46
+ node_assert_1.default.ok(!outreach_contract_1.AgentClaimNextOutreachBodySchema.safeParse({
47
+ deviceId: AGENT_CLAIM_BODY.deviceId,
48
+ authority: {
49
+ ...AGENT_CLAIM_BODY.authority,
50
+ claimedLifecycleVersion: -1,
51
+ },
52
+ }).success);
20
53
  // --- TTL -------------------------------------------------------------------
21
54
  node_assert_1.default.equal(outreach_contract_1.OUTREACH_LEASE_TTL_MINUTES, 15);
22
55
  // --- CLAIMED ---------------------------------------------------------------
@@ -53,6 +53,33 @@ const jobs_tab_contract_1 = require("../../curated-worker-leads/jobs-tab.contrac
53
53
  (0, bun_test_1.expect)(parsed.outreachRequest?.id).toBe('22222222-2222-4222-8222-222222222222');
54
54
  (0, bun_test_1.expect)(parsed.outreachRequest?.requestedByUserId).toBe('33333333-3333-4333-8333-333333333333');
55
55
  });
56
+ (0, bun_test_1.it)('carries executionMode and assignedPodContext through when present', () => {
57
+ // Both are additive: absent parses (the test above), present round-trips.
58
+ const parsed = jobs_tab_contract_1.JobFeedMatchCountSchema.parse({
59
+ owned: 0,
60
+ curated: 0,
61
+ workersContactedByViewerCount: 0,
62
+ workersContactedByOthersCount: 0,
63
+ pendingEnrichmentCount: 0,
64
+ outreachRequest: {
65
+ id: '22222222-2222-4222-8222-222222222222',
66
+ status: 'RUNNING',
67
+ requestedByUserId: '33333333-3333-4333-8333-333333333333',
68
+ requestedByName: 'Priya Shah',
69
+ contactedCount: 7,
70
+ executionMode: 'HUB',
71
+ assignedPod: null,
72
+ assignedPodContext: {
73
+ id: '44444444-4444-4444-8444-444444444444',
74
+ displayName: 'North Pod',
75
+ migrationState: 'AGENT_CONTROLLED',
76
+ publicBaseUrl: 'https://north.example.test',
77
+ },
78
+ },
79
+ });
80
+ (0, bun_test_1.expect)(parsed.outreachRequest?.executionMode).toBe('HUB');
81
+ (0, bun_test_1.expect)(parsed.outreachRequest?.assignedPodContext?.displayName).toBe('North Pod');
82
+ });
56
83
  (0, bun_test_1.it)('rejects an open request without an id', () => {
57
84
  // The id is REQUIRED inside the object (the object itself stays nullable
58
85
  // and optional). It is the only route a browser has to the request id:
@@ -9,6 +9,8 @@ const outreach_contract_1 = require("../outreach.contract");
9
9
  // `pathPrefix: '/v2'` is applied by c.router, so the runtime paths are absolute.
10
10
  node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNext.method, 'POST');
11
11
  node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNext.path, '/v2/outreach/requests/:requestId/claim-next');
12
+ node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextAgent.method, 'POST');
13
+ node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextAgent.path, '/v2/outreach/requests/:requestId/agent-claim-next');
12
14
  node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextLegacy.method, 'POST');
13
15
  node_assert_1.default.equal(outreach_contract_1.outreachContract.claimNextLegacy.path, '/v2/outreach/jobs/:jobId/claim-next');
14
16
  node_assert_1.default.equal(outreach_contract_1.outreachContract.confirmSent.method, 'POST');
@@ -23,11 +25,13 @@ const declared = (route) => Object.keys(route.responses)
23
25
  .map(Number)
24
26
  .sort((a, b) => a - b);
25
27
  node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.claimNext), [200, 400, 401, 403, 409, 500]);
28
+ node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.claimNextAgent), [200, 400, 401, 403, 409, 500]);
26
29
  node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.claimNextLegacy), [200, 400, 401, 403, 409, 500]);
27
30
  node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.confirmSent), [200, 400, 401, 403, 404, 500]);
28
31
  node_assert_1.default.deepStrictEqual(declared(outreach_contract_1.outreachContract.release), [200, 400, 401, 403, 404, 500]);
29
32
  for (const route of [
30
33
  outreach_contract_1.outreachContract.claimNext,
34
+ outreach_contract_1.outreachContract.claimNextAgent,
31
35
  outreach_contract_1.outreachContract.claimNextLegacy,
32
36
  outreach_contract_1.outreachContract.confirmSent,
33
37
  outreach_contract_1.outreachContract.release,
@@ -38,6 +42,9 @@ for (const route of [
38
42
  node_assert_1.default.ok(outreach_contract_1.outreachContract.claimNext.pathParams.safeParse({
39
43
  requestId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
40
44
  }).success);
45
+ node_assert_1.default.ok(outreach_contract_1.outreachContract.claimNextAgent.pathParams.safeParse({
46
+ requestId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
47
+ }).success);
41
48
  node_assert_1.default.ok(!outreach_contract_1.outreachContract.claimNext.pathParams.safeParse({ requestId: 'nope' })
42
49
  .success);
43
50
  node_assert_1.default.ok(outreach_contract_1.outreachContract.claimNextLegacy.pathParams.safeParse({
@@ -56,6 +63,7 @@ node_assert_1.default.ok(outreach_contract_1.outreachContract.confirmSent.pathPa
56
63
  const headersOf = (route) => route.headers;
57
64
  for (const route of [
58
65
  outreach_contract_1.outreachContract.claimNext,
66
+ outreach_contract_1.outreachContract.claimNextAgent,
59
67
  outreach_contract_1.outreachContract.claimNextLegacy,
60
68
  outreach_contract_1.outreachContract.confirmSent,
61
69
  outreach_contract_1.outreachContract.release,