@kammcs/buildit-mcp 0.7.0 → 0.8.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.
@@ -2,7 +2,7 @@
2
2
  * Exact schemas for the agent API: closed objects and enums, patterns and bounds. The test fake uses them to check requests and its own responses against the contract; the server parses responses with the tolerant schemas.ts.
3
3
  *
4
4
  * GENERATED by scripts/generate.ts from openapi/openapi.json (agent API
5
- * 1.8.0). Do not edit: change the contract, then run
5
+ * 1.9.0). Do not edit: change the contract, then run
6
6
  * `npm run generate`.
7
7
  */
8
8
  import { z } from 'zod';
@@ -31,6 +31,8 @@ export const ApprovalRuleEntrySchema = z.strictObject({
31
31
  toolName: z.string().regex(new RegExp('^[A-Za-z0-9][A-Za-z0-9_.:-]{0,99}$', 'u')),
32
32
  ruleContent: z.string().optional(),
33
33
  });
34
+ export const CapabilitySchema = z.string().regex(new RegExp('^[a-z0-9][a-z0-9+._-]{0,31}$', 'u'));
35
+ export const CapabilityInSchema = z.string().min(1).max(64);
34
36
  export const CardAnswerSchema = z.union([
35
37
  z.strictObject({ action: z.string().min(1).max(40) }),
36
38
  z.strictObject({ inputs: z.record(z.string(), z.union([z.string(), z.array(z.string())])) }),
@@ -58,6 +60,7 @@ export const CustomValueInSchema = z
58
60
  export const DateSchema = z
59
61
  .string()
60
62
  .regex(new RegExp('^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$', 'u'));
63
+ export const DeclineSessionHandoffRequestSchema = z.strictObject({ reason: z.string() });
61
64
  export const DevelopmentBranchSchema = z.strictObject({
62
65
  name: z.string(),
63
66
  state: z.enum(['active', 'deleted']),
@@ -89,6 +92,7 @@ export const EntityKindSchema = z.enum([
89
92
  'response',
90
93
  'agent',
91
94
  'approval',
95
+ 'handoff',
92
96
  ]);
93
97
  export const EstimateSchema = z.number().min(0).max(9999.99);
94
98
  export const EstimateScaleSchema = z.enum(['none', 'points', 'tshirt']);
@@ -197,6 +201,7 @@ export const RateLimitsSchema = z.strictObject({
197
201
  polls_per_minute: z.int().optional(),
198
202
  typing_per_minute: z.int().optional(),
199
203
  approvals_per_minute: z.int().optional(),
204
+ handoffs_per_minute: z.int().optional(),
200
205
  });
201
206
  export const ReleaseRefSchema = z.string().min(1).max(80);
202
207
  export const ReleaseStatusSchema = z.enum(['unreleased', 'released', 'archived']);
@@ -291,6 +296,7 @@ export const ConnectStartRequestSchema = z.strictObject({
291
296
  machine: z.string().min(1).max(64),
292
297
  label: z.string().min(1).max(40),
293
298
  projects: z.array(ProjectRefSchema).min(1).max(10),
299
+ capabilities: z.array(CapabilityInSchema).max(20).optional(),
294
300
  });
295
301
  export const ConnectStartResponseSchema = z.strictObject({
296
302
  device_code: DeviceCodeSchema,
@@ -488,7 +494,9 @@ export const ErrorSchema = z.strictObject({
488
494
  code: z.literal('method_not_allowed'),
489
495
  message: z.string().min(1),
490
496
  hint: z.string().optional(),
491
- details: z.strictObject({ allowed: z.array(z.enum(['GET', 'POST', 'PATCH', 'DELETE'])) }),
497
+ details: z.strictObject({
498
+ allowed: z.array(z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE'])),
499
+ }),
492
500
  }),
493
501
  z.strictObject({
494
502
  code: z.literal('conflict'),
@@ -627,6 +635,7 @@ export const ErrorSchema = z.strictObject({
627
635
  'connect_pending_per_address',
628
636
  'session_typing_per_minute',
629
637
  'session_approvals_per_minute',
638
+ 'session_handoffs_per_minute',
630
639
  ]),
631
640
  }),
632
641
  }),
@@ -802,6 +811,7 @@ export const ErrorSchema = z.strictObject({
802
811
  'projects_off',
803
812
  'not_in_channel',
804
813
  'archived',
814
+ 'item_deleted',
805
815
  ]),
806
816
  }),
807
817
  }),
@@ -828,6 +838,62 @@ export const ErrorSchema = z.strictObject({
828
838
  hint: z.string().optional(),
829
839
  details: z.strictObject({ open: z.int().min(0) }),
830
840
  }),
841
+ z.strictObject({
842
+ code: z.literal('handoffs_off'),
843
+ message: z.string().min(1),
844
+ hint: z.string().optional(),
845
+ details: z.strictObject({ by: z.enum(['platform']) }),
846
+ }),
847
+ z.strictObject({
848
+ code: z.literal('not_parent_session'),
849
+ message: z.string().min(1),
850
+ hint: z.string().optional(),
851
+ details: z.strictObject({
852
+ item_id: z
853
+ .string()
854
+ .regex(new RegExp('^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$', 'u')),
855
+ }),
856
+ }),
857
+ z.strictObject({
858
+ code: z.literal('handoff_not_allowed'),
859
+ message: z.string().min(1),
860
+ hint: z.string().optional(),
861
+ details: z.strictObject({
862
+ reason: z.enum([
863
+ 'needs_missing',
864
+ 'closed',
865
+ 'agent_assigned',
866
+ 'person_assigned',
867
+ 'other_session',
868
+ ]),
869
+ }),
870
+ }),
871
+ z.strictObject({
872
+ code: z.literal('handoff_exists'),
873
+ message: z.string().min(1),
874
+ hint: z.string().optional(),
875
+ details: z.strictObject({
876
+ handoff_id: z
877
+ .string()
878
+ .regex(new RegExp('^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$', 'u')),
879
+ }),
880
+ }),
881
+ z.strictObject({
882
+ code: z.literal('no_target'),
883
+ message: z.string().min(1),
884
+ hint: z.string().optional(),
885
+ details: z.strictObject({ needs: z.array(z.string()) }),
886
+ }),
887
+ z.strictObject({
888
+ code: z.literal('handoff_closed'),
889
+ message: z.string().min(1),
890
+ hint: z.string().optional(),
891
+ details: z.strictObject({
892
+ handoff_id: z
893
+ .string()
894
+ .regex(new RegExp('^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$', 'u')),
895
+ }),
896
+ }),
831
897
  ]),
832
898
  });
833
899
  export const FeedbackSchema = z.strictObject({
@@ -893,6 +959,7 @@ export const ItemBriefSchema = z.strictObject({
893
959
  key: ItemKeySchema,
894
960
  title: z.string(),
895
961
  });
962
+ export const ItemIdKeySchema = z.strictObject({ id: UuidSchema, key: z.string() });
896
963
  export const LabelSchema = z.strictObject({
897
964
  id: UuidSchema,
898
965
  name: z.string(),
@@ -987,6 +1054,10 @@ export const ProjectTypeSchema = z.strictObject({
987
1054
  color: ColorSchema.nullable(),
988
1055
  workflow: z.strictObject({ id: UuidSchema, name: z.string() }),
989
1056
  });
1057
+ export const ProposeSessionHandoffRequestSchema = z.strictObject({
1058
+ id: UuidSchema,
1059
+ item: ItemRefSchema,
1060
+ });
990
1061
  export const RankPositionSchema = z.strictObject({
991
1062
  before: ItemRefSchema.optional(),
992
1063
  after: ItemRefSchema.optional(),
@@ -1056,6 +1127,10 @@ export const SessionApprovalSchema = z.strictObject({
1056
1127
  decided_at: TimestampSchema.optional(),
1057
1128
  });
1058
1129
  export const SessionBriefSchema = z.strictObject({ id: UuidSchema, label: z.string() });
1130
+ export const SessionCapabilitiesResponseSchema = z.strictObject({
1131
+ capabilities: z.array(CapabilitySchema).max(20),
1132
+ capabilities_detected: z.array(CapabilitySchema).max(20),
1133
+ });
1059
1134
  export const SessionCardMessageSchema = z.strictObject({
1060
1135
  id: UuidSchema,
1061
1136
  thread_id: UuidSchema.nullable(),
@@ -1070,6 +1145,29 @@ export const SessionCardResponseSchema = z.strictObject({
1070
1145
  created_at: TimestampSchema,
1071
1146
  updated_at: TimestampSchema,
1072
1147
  });
1148
+ export const SessionChildItemSchema = z.strictObject({
1149
+ id: UuidSchema,
1150
+ key: z.string(),
1151
+ title: z.string(),
1152
+ status: z
1153
+ .strictObject({ key: z.string().nullable(), name: z.string().nullable(), category: z.string() })
1154
+ .nullable(),
1155
+ });
1156
+ export const SessionChildResultSchema = z.strictObject({
1157
+ untrusted: z.literal(true),
1158
+ message: z.strictObject({
1159
+ id: UuidSchema,
1160
+ author: z.strictObject({
1161
+ kind: z.enum(['user', 'app', 'agent']),
1162
+ id: UuidSchema.nullable(),
1163
+ name: z.string(),
1164
+ }),
1165
+ from_owner: z.boolean(),
1166
+ via_agent: z.string().nullable(),
1167
+ text: z.string(),
1168
+ created_at: TimestampSchema,
1169
+ }),
1170
+ });
1073
1171
  export const SessionContextMessageSchema = z.strictObject({
1074
1172
  id: UuidSchema,
1075
1173
  author: z.strictObject({
@@ -1137,6 +1235,9 @@ export const SessionTypingRequestSchema = z.strictObject({
1137
1235
  thread_id: UuidSchema.nullable().optional(),
1138
1236
  typing: z.boolean().optional(),
1139
1237
  });
1238
+ export const SetSessionCapabilitiesRequestSchema = z.strictObject({
1239
+ detected: z.array(CapabilityInSchema).max(20),
1240
+ });
1140
1241
  export const SprintSchema = z.strictObject({
1141
1242
  id: UuidSchema,
1142
1243
  number: z.int(),
@@ -1360,6 +1461,7 @@ export const CreateItemRequestSchema = z.strictObject({
1360
1461
  assignee_agent: AgentRefSchema.optional(),
1361
1462
  priority: PrioritySchema.optional(),
1362
1463
  labels: z.array(LabelRefSchema).max(100).optional(),
1464
+ needs: z.array(CapabilityInSchema).max(10).optional(),
1363
1465
  estimate: EstimateSchema.optional(),
1364
1466
  start_date: DateSchema.optional(),
1365
1467
  due_date: DateSchema.optional(),
@@ -1398,6 +1500,17 @@ export const FieldDefSchema = z.strictObject({
1398
1500
  position: z.int(),
1399
1501
  });
1400
1502
  export const GetSessionApprovalResponseSchema = z.strictObject({ approval: SessionApprovalSchema });
1503
+ export const HandoffOptionSchema = z.strictObject({
1504
+ kind: z.enum(['session', 'agent']),
1505
+ agent: AgentBriefSchema,
1506
+ session: SessionBriefSchema.nullable(),
1507
+ online: z.boolean(),
1508
+ });
1509
+ export const HandoffTargetSchema = z.strictObject({
1510
+ kind: z.enum(['session', 'agent']),
1511
+ agent: AgentBriefSchema,
1512
+ session: SessionBriefSchema.nullable(),
1513
+ });
1401
1514
  export const HistoryEventSchema = z.strictObject({
1402
1515
  id: z.int(),
1403
1516
  at: TimestampSchema,
@@ -1425,6 +1538,7 @@ export const ItemSummarySchema = z.strictObject({
1425
1538
  parent: ItemBriefSchema.nullable(),
1426
1539
  initiative: InitiativeBriefSchema.nullable(),
1427
1540
  labels: z.array(LabelSchema),
1541
+ needs: z.array(CapabilitySchema).max(10).optional(),
1428
1542
  estimate: z.number().nullable(),
1429
1543
  start_date: DateSchema.nullable(),
1430
1544
  due_date: DateSchema.nullable(),
@@ -1617,6 +1731,13 @@ export const SessionApprovalOutcomeSchema = z.strictObject({
1617
1731
  decided_at: TimestampSchema.optional(),
1618
1732
  rule: ApprovalRuleSchema.optional(),
1619
1733
  });
1734
+ export const SessionAssignedHandoffSchema = z.strictObject({
1735
+ id: UuidSchema,
1736
+ parent: ItemIdKeySchema,
1737
+ from: z.strictObject({ agent: AgentBriefSchema, session: SessionBriefSchema.nullable() }),
1738
+ needs: z.array(CapabilitySchema),
1739
+ queued: z.boolean(),
1740
+ });
1620
1741
  export const SessionCardResponseDataSchema = z.strictObject({
1621
1742
  channel: z.strictObject({ id: UuidSchema, name: z.string().nullable() }),
1622
1743
  message: SessionCardMessageSchema,
@@ -1677,6 +1798,8 @@ export const SessionResponseSchema = z.strictObject({
1677
1798
  approved_at: TimestampSchema,
1678
1799
  last_seen_at: TimestampSchema.nullable(),
1679
1800
  expires_at: TimestampSchema,
1801
+ capabilities: z.array(CapabilitySchema).max(20).optional(),
1802
+ capabilities_detected: z.array(CapabilitySchema).max(20).optional(),
1680
1803
  }),
1681
1804
  agent: AgentBriefSchema,
1682
1805
  owner: SessionOwnerSchema,
@@ -1696,10 +1819,29 @@ export const SessionThreadSchema = z.strictObject({
1696
1819
  status: SessionItemStatusSchema.nullable(),
1697
1820
  })
1698
1821
  .nullable(),
1699
- bound_reason: z.enum(['posted', 'routed', 'handed', 'assigned', 'mentioned']),
1822
+ bound_reason: z.enum(['posted', 'routed', 'handed', 'assigned', 'mentioned', 'handoff']),
1700
1823
  bound_at: TimestampSchema,
1701
1824
  last_owner_message_at: TimestampSchema.nullable(),
1702
1825
  open_cards: z.int().min(0),
1826
+ handoff: z
1827
+ .strictObject({
1828
+ id: UuidSchema,
1829
+ role: z.enum(['target', 'asked']),
1830
+ status: z.enum([
1831
+ 'proposed',
1832
+ 'cancelled',
1833
+ 'expired',
1834
+ 'stale',
1835
+ 'withdrawn',
1836
+ 'closed',
1837
+ 'handed',
1838
+ 'declined',
1839
+ 'ended',
1840
+ 'finished',
1841
+ ]),
1842
+ })
1843
+ .nullable()
1844
+ .optional(),
1703
1845
  });
1704
1846
  export const SprintItemsResponseSchema = z.strictObject({
1705
1847
  sprint: SprintSchema,
@@ -1732,6 +1874,7 @@ export const UpdateItemRequestSchema = z.strictObject({
1732
1874
  labels: z.array(LabelRefSchema).max(100).optional(),
1733
1875
  add_labels: z.array(LabelRefSchema).max(100).optional(),
1734
1876
  remove_labels: z.array(LabelRefSchema).max(100).optional(),
1877
+ needs: z.array(CapabilityInSchema).max(10).optional(),
1735
1878
  estimate: EstimateSchema.nullable().optional(),
1736
1879
  start_date: DateSchema.nullable().optional(),
1737
1880
  due_date: DateSchema.nullable().optional(),
@@ -1918,6 +2061,31 @@ export const SessionCardResponseEventSchema = z.strictObject({
1918
2061
  session: SessionBriefSchema,
1919
2062
  data: SessionCardResponseDataSchema,
1920
2063
  });
2064
+ export const SessionChildDoneDataSchema = z.strictObject({
2065
+ channel: z.strictObject({ id: UuidSchema, name: z.string().nullable() }),
2066
+ project: SessionEventProjectSchema,
2067
+ item: SessionEventItemSchema,
2068
+ child: SessionChildItemSchema,
2069
+ handoff: z.strictObject({
2070
+ id: UuidSchema,
2071
+ needs: z.array(CapabilitySchema),
2072
+ target: z.strictObject({ agent: AgentBriefSchema, session: SessionBriefSchema.nullable() }),
2073
+ }),
2074
+ outcome: z.enum(['in_review', 'done', 'declined', 'ended']),
2075
+ reason: z
2076
+ .enum([
2077
+ 'canceled',
2078
+ 'unassigned',
2079
+ 'reassigned',
2080
+ 'moved',
2081
+ 'deleted',
2082
+ 'owner_left',
2083
+ 'agent_deleted',
2084
+ 'expired',
2085
+ ])
2086
+ .nullable(),
2087
+ result: SessionChildResultSchema.nullable(),
2088
+ });
1921
2089
  export const SessionEventDataSchema = z.strictObject({
1922
2090
  channel: z.strictObject({ id: UuidSchema, name: z.string().nullable() }).optional(),
1923
2091
  message: SessionEventMessageSchema.optional(),
@@ -1927,6 +2095,81 @@ export const SessionEventDataSchema = z.strictObject({
1927
2095
  assignment: SessionItemAssignmentSchema.nullable().optional(),
1928
2096
  context: SessionItemContextSchema.optional(),
1929
2097
  });
2098
+ export const SessionHandoffSchema = z.strictObject({
2099
+ id: UuidSchema,
2100
+ item: ItemIdKeySchema,
2101
+ parent: ItemIdKeySchema,
2102
+ needs: z.array(CapabilitySchema),
2103
+ status: z.enum([
2104
+ 'proposed',
2105
+ 'cancelled',
2106
+ 'expired',
2107
+ 'stale',
2108
+ 'withdrawn',
2109
+ 'closed',
2110
+ 'handed',
2111
+ 'declined',
2112
+ 'ended',
2113
+ 'finished',
2114
+ ]),
2115
+ card_message_id: UuidSchema.nullable(),
2116
+ closes_at: TimestampSchema,
2117
+ targets: z.array(HandoffOptionSchema).max(4),
2118
+ target: HandoffTargetSchema.optional(),
2119
+ queued: z.boolean().optional(),
2120
+ outcome: z.enum(['applied', 'cancelled', 'expired', 'stale', 'withdrawn', 'closed']).optional(),
2121
+ reason: z
2122
+ .enum([
2123
+ 'deleted',
2124
+ 'moved',
2125
+ 'closed',
2126
+ 'agent_assigned',
2127
+ 'person_assigned',
2128
+ 'other_session',
2129
+ 'parent_changed',
2130
+ 'no_target',
2131
+ 'session_ended',
2132
+ 'unassigned',
2133
+ 'removed',
2134
+ 'interrupted',
2135
+ 'switched_off',
2136
+ 'canceled',
2137
+ 'reassigned',
2138
+ 'owner_left',
2139
+ 'agent_deleted',
2140
+ 'expired',
2141
+ ])
2142
+ .optional(),
2143
+ });
2144
+ export const SessionHandoffOutcomeSchema = z.strictObject({
2145
+ id: UuidSchema,
2146
+ item: ItemIdKeySchema,
2147
+ outcome: z.enum(['applied', 'cancelled', 'expired', 'stale', 'withdrawn', 'closed']),
2148
+ reason: z
2149
+ .enum([
2150
+ 'deleted',
2151
+ 'moved',
2152
+ 'closed',
2153
+ 'agent_assigned',
2154
+ 'person_assigned',
2155
+ 'other_session',
2156
+ 'parent_changed',
2157
+ 'no_target',
2158
+ 'session_ended',
2159
+ 'unassigned',
2160
+ 'removed',
2161
+ 'interrupted',
2162
+ 'switched_off',
2163
+ 'canceled',
2164
+ 'reassigned',
2165
+ 'owner_left',
2166
+ 'agent_deleted',
2167
+ 'expired',
2168
+ ])
2169
+ .optional(),
2170
+ target: HandoffTargetSchema.optional(),
2171
+ queued: z.boolean().optional(),
2172
+ });
1930
2173
  export const SessionItemAssignedDataSchema = z.strictObject({
1931
2174
  channel: z.strictObject({ id: UuidSchema, name: z.string().nullable() }),
1932
2175
  project: SessionEventProjectSchema,
@@ -1934,13 +2177,23 @@ export const SessionItemAssignedDataSchema = z.strictObject({
1934
2177
  assignment: SessionItemAssignmentSchema,
1935
2178
  context: SessionItemContextSchema,
1936
2179
  user: SessionEventUserSchema.nullable(),
2180
+ handoff: SessionAssignedHandoffSchema.optional(),
1937
2181
  });
1938
2182
  export const SessionItemUnassignedDataSchema = z.strictObject({
1939
2183
  channel: z.strictObject({ id: UuidSchema, name: z.string().nullable() }),
1940
2184
  project: SessionEventProjectSchema,
1941
2185
  item: SessionEventItemSchema,
1942
2186
  assignment: SessionItemAssignmentSchema.nullable(),
1943
- reason: z.enum(['unassigned', 'reassigned', 'moved', 'deleted', 'owner_left', 'agent_deleted']),
2187
+ reason: z.enum([
2188
+ 'unassigned',
2189
+ 'reassigned',
2190
+ 'moved',
2191
+ 'deleted',
2192
+ 'owner_left',
2193
+ 'agent_deleted',
2194
+ 'declined',
2195
+ 'handoff_expired',
2196
+ ]),
1944
2197
  user: SessionEventUserSchema.nullable(),
1945
2198
  });
1946
2199
  export const SessionMentionDataSchema = z.strictObject({
@@ -2004,6 +2257,7 @@ export const ItemDetailSchema = z.strictObject({
2004
2257
  parent: ItemBriefSchema.nullable(),
2005
2258
  initiative: InitiativeBriefSchema.nullable(),
2006
2259
  labels: z.array(LabelSchema),
2260
+ needs: z.array(CapabilitySchema).max(10).optional(),
2007
2261
  estimate: z.number().nullable(),
2008
2262
  start_date: DateSchema.nullable(),
2009
2263
  due_date: DateSchema.nullable(),
@@ -2039,6 +2293,7 @@ export const ItemSearchResultSchema = z.strictObject({
2039
2293
  parent: ItemBriefSchema.nullable(),
2040
2294
  initiative: InitiativeBriefSchema.nullable(),
2041
2295
  labels: z.array(LabelSchema),
2296
+ needs: z.array(CapabilitySchema).max(10).optional(),
2042
2297
  estimate: z.number().nullable(),
2043
2298
  start_date: DateSchema.nullable(),
2044
2299
  due_date: DateSchema.nullable(),
@@ -2062,6 +2317,22 @@ export const ListPinsResponseSchema = z.strictObject({
2062
2317
  items: z.array(PinnedMessageSchema),
2063
2318
  next_cursor: z.string().nullable(),
2064
2319
  });
2320
+ export const ProposeSessionHandoffResponseSchema = z.strictObject({
2321
+ handoff: SessionHandoffSchema,
2322
+ created: z.boolean(),
2323
+ });
2324
+ export const SessionChildDoneEventSchema = z.strictObject({
2325
+ v: z.literal(1),
2326
+ id: UuidSchema,
2327
+ type: z.literal('work_item.child_done'),
2328
+ created_at: TimestampSchema,
2329
+ org: z.strictObject({ id: UuidSchema }),
2330
+ app: z.strictObject({ id: UuidSchema, installation_id: UuidSchema }),
2331
+ attempt: z.int().min(1),
2332
+ session: SessionBriefSchema,
2333
+ data: SessionChildDoneDataSchema,
2334
+ });
2335
+ export const SessionHandoffResponseSchema = z.strictObject({ handoff: SessionHandoffSchema });
2065
2336
  export const SessionItemAssignedEventSchema = z.strictObject({
2066
2337
  v: z.literal(1),
2067
2338
  id: UuidSchema,
@@ -2153,6 +2424,7 @@ export const SessionCardClosedDataSchema = z.strictObject({
2153
2424
  private: z.unknown(),
2154
2425
  plan: SessionPlanOutcomeSchema.optional(),
2155
2426
  approval: SessionApprovalOutcomeSchema.optional(),
2427
+ handoff: SessionHandoffOutcomeSchema.optional(),
2156
2428
  });
2157
2429
  export const SessionCardClosedEventSchema = z.strictObject({
2158
2430
  v: z.literal(1),
@@ -2172,6 +2444,7 @@ export const SessionEventSchema = z.union([
2172
2444
  SessionMentionEventSchema,
2173
2445
  SessionItemAssignedEventSchema,
2174
2446
  SessionItemUnassignedEventSchema,
2447
+ SessionChildDoneEventSchema,
2175
2448
  ]);
2176
2449
  export const SessionEventsResponseSchema = z.strictObject({
2177
2450
  events: z.array(SessionEventSchema),
@@ -2192,6 +2465,7 @@ export const QUERY_SCHEMAS = {
2192
2465
  archive_release: z.strictObject({}),
2193
2466
  close_session_approval: z.strictObject({}),
2194
2467
  close_session_card: z.strictObject({}),
2468
+ close_session_handoff: z.strictObject({}),
2195
2469
  complete_sprint: z.strictObject({}),
2196
2470
  connect_poll: z.strictObject({}),
2197
2471
  connect_start: z.strictObject({}),
@@ -2202,6 +2476,7 @@ export const QUERY_SCHEMAS = {
2202
2476
  create_project: z.strictObject({}),
2203
2477
  create_release: z.strictObject({}),
2204
2478
  create_sprint: z.strictObject({}),
2479
+ decline_session_handoff: z.strictObject({}),
2205
2480
  describe_project: z.strictObject({}),
2206
2481
  generate_release_notes: z.strictObject({}),
2207
2482
  get_item: z.strictObject({
@@ -2219,6 +2494,7 @@ export const QUERY_SCHEMAS = {
2219
2494
  get_page: z.strictObject({}),
2220
2495
  get_session: z.strictObject({}),
2221
2496
  get_session_approval: z.strictObject({}),
2497
+ get_session_handoff: z.strictObject({}),
2222
2498
  get_thread: z.strictObject({
2223
2499
  cursor: CursorSchema.optional(),
2224
2500
  limit: z.coerce.number().int().min(1).max(100).optional(),
@@ -2282,6 +2558,7 @@ export const QUERY_SCHEMAS = {
2282
2558
  post_plan_card: z.strictObject({}),
2283
2559
  post_session_approval: z.strictObject({}),
2284
2560
  post_session_message: z.strictObject({}),
2561
+ propose_session_handoff: z.strictObject({}),
2285
2562
  rank_item: z.strictObject({}),
2286
2563
  release_version: z.strictObject({}),
2287
2564
  remove_link: z.strictObject({}),
@@ -2331,6 +2608,7 @@ export const QUERY_SCHEMAS = {
2331
2608
  }),
2332
2609
  session_heartbeat: z.strictObject({}),
2333
2610
  session_typing: z.strictObject({}),
2611
+ set_session_capabilities: z.strictObject({}),
2334
2612
  start_sprint: z.strictObject({}),
2335
2613
  transition_item: z.strictObject({}),
2336
2614
  update_item: z.strictObject({}),
@@ -2350,6 +2628,7 @@ export const REQUEST_SCHEMAS = {
2350
2628
  archive_release: null,
2351
2629
  close_session_approval: CloseSessionApprovalRequestSchema,
2352
2630
  close_session_card: EmptyRequestSchema,
2631
+ close_session_handoff: EmptyRequestSchema,
2353
2632
  complete_sprint: CompleteSprintRequestSchema,
2354
2633
  connect_poll: ConnectPollRequestSchema,
2355
2634
  connect_start: ConnectStartRequestSchema,
@@ -2360,6 +2639,7 @@ export const REQUEST_SCHEMAS = {
2360
2639
  create_project: CreateProjectRequestSchema,
2361
2640
  create_release: CreateReleaseRequestSchema,
2362
2641
  create_sprint: CreateSprintRequestSchema,
2642
+ decline_session_handoff: DeclineSessionHandoffRequestSchema,
2363
2643
  describe_project: null,
2364
2644
  generate_release_notes: ReleaseNotesRequestSchema,
2365
2645
  get_item: null,
@@ -2369,6 +2649,7 @@ export const REQUEST_SCHEMAS = {
2369
2649
  get_page: null,
2370
2650
  get_session: null,
2371
2651
  get_session_approval: null,
2652
+ get_session_handoff: null,
2372
2653
  get_thread: null,
2373
2654
  get_workflow: null,
2374
2655
  list_channel_messages: null,
@@ -2388,6 +2669,7 @@ export const REQUEST_SCHEMAS = {
2388
2669
  post_plan_card: PostPlanCardRequestSchema,
2389
2670
  post_session_approval: PostSessionApprovalRequestSchema,
2390
2671
  post_session_message: PostSessionMessageRequestSchema,
2672
+ propose_session_handoff: ProposeSessionHandoffRequestSchema,
2391
2673
  rank_item: RankItemRequestSchema,
2392
2674
  release_version: ReleaseVersionRequestSchema,
2393
2675
  remove_link: null,
@@ -2400,6 +2682,7 @@ export const REQUEST_SCHEMAS = {
2400
2682
  search_pages: null,
2401
2683
  session_heartbeat: SessionHeartbeatRequestSchema,
2402
2684
  session_typing: SessionTypingRequestSchema,
2685
+ set_session_capabilities: SetSessionCapabilitiesRequestSchema,
2403
2686
  start_sprint: StartSprintRequestSchema,
2404
2687
  transition_item: TransitionItemRequestSchema,
2405
2688
  update_item: UpdateItemRequestSchema,
@@ -2419,6 +2702,7 @@ export const RESPONSE_SCHEMAS = {
2419
2702
  archive_release: ReleaseResponseSchema,
2420
2703
  close_session_approval: CloseSessionApprovalResponseSchema,
2421
2704
  close_session_card: CloseSessionCardResponseSchema,
2705
+ close_session_handoff: SessionHandoffResponseSchema,
2422
2706
  complete_sprint: CompleteSprintResponseSchema,
2423
2707
  connect_poll: ConnectPollResponseSchema,
2424
2708
  connect_start: ConnectStartResponseSchema,
@@ -2429,6 +2713,7 @@ export const RESPONSE_SCHEMAS = {
2429
2713
  create_project: CreateProjectResponseSchema,
2430
2714
  create_release: ReleaseResponseSchema,
2431
2715
  create_sprint: SprintResponseSchema,
2716
+ decline_session_handoff: SessionHandoffResponseSchema,
2432
2717
  describe_project: DescribeProjectResponseSchema,
2433
2718
  generate_release_notes: ReleaseNotesResponseSchema,
2434
2719
  get_item: GetItemResponseSchema,
@@ -2438,6 +2723,7 @@ export const RESPONSE_SCHEMAS = {
2438
2723
  get_page: PageResponseSchema,
2439
2724
  get_session: SessionResponseSchema,
2440
2725
  get_session_approval: GetSessionApprovalResponseSchema,
2726
+ get_session_handoff: SessionHandoffResponseSchema,
2441
2727
  get_thread: ThreadResponseSchema,
2442
2728
  get_workflow: GetWorkflowResponseSchema,
2443
2729
  list_channel_messages: ListChannelMessagesResponseSchema,
@@ -2457,6 +2743,7 @@ export const RESPONSE_SCHEMAS = {
2457
2743
  post_plan_card: PostPlanCardResponseSchema,
2458
2744
  post_session_approval: PostSessionApprovalResponseSchema,
2459
2745
  post_session_message: PostSessionMessageResponseSchema,
2746
+ propose_session_handoff: ProposeSessionHandoffResponseSchema,
2460
2747
  rank_item: RankItemResponseSchema,
2461
2748
  release_version: ReleaseResponseSchema,
2462
2749
  remove_link: RemoveLinkResponseSchema,
@@ -2469,6 +2756,7 @@ export const RESPONSE_SCHEMAS = {
2469
2756
  search_pages: SearchPagesResponseSchema,
2470
2757
  session_heartbeat: SessionHeartbeatResponseSchema,
2471
2758
  session_typing: NoContentSchema,
2759
+ set_session_capabilities: SessionCapabilitiesResponseSchema,
2472
2760
  start_sprint: StartSprintResponseSchema,
2473
2761
  transition_item: TransitionItemResponseSchema,
2474
2762
  update_item: ItemWriteResponseSchema,