@graph8/sdk 0.251.0 → 0.260.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.
Files changed (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,2298 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.work` (Work): 59 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"add_work_custom_emoji_work_custom_emoji_post">;
9
+ *
10
+ * Reference with examples: work.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.work.<member>` -> the operationId it calls. */
15
+ export interface WorkMembers {
16
+ addWorkCustomEmoji: "add_work_custom_emoji_work_custom_emoji_post";
17
+ addWorkPulseNote: "add_work_pulse_note_work_pulse_post";
18
+ archiveWorkAgent: "archive_work_agent_work_agents__agent_id__delete";
19
+ createWorkAgent: "create_work_agent_work_agents_post";
20
+ createWorkChannel: "create_work_channel_work_channels_post";
21
+ createWorkMessage: "create_work_message_work_messages_post";
22
+ createWorkProject: "create_work_project_work_projects_post";
23
+ createWorkRoutine: "create_work_routine_work_routines_post";
24
+ deleteWorkChannel: "delete_work_channel_work_channels__channel_id__delete";
25
+ deleteWorkMessage: "delete_work_message_work_messages__message_id__delete";
26
+ deleteWorkProject: "delete_work_project_work_projects__project_id__delete";
27
+ deleteWorkRoutine: "delete_work_routine_work_routines__routine_id__delete";
28
+ editWorkMemory: "edit_work_memory_work_memory_put";
29
+ editWorkMessage: "edit_work_message_work_messages__message_id__patch";
30
+ forwardWorkMessage: "forward_work_message_work_messages__message_id__forward_post";
31
+ getWorkAgent: "get_work_agent_work_agents__agent_id__get";
32
+ getWorkAgentPolicy: "get_work_agent_policy_work_agents_policy_get";
33
+ getWorkAttachmentLink: "get_work_attachment_link_work_attachments__attachment_id__get";
34
+ getWorkChannelCanvas: "get_work_channel_canvas_work_channels__channel_id__canvas_get";
35
+ getWorkDailyBrief: "get_work_daily_brief_work_preferences_daily_brief_get";
36
+ getWorkInboxDispositions: "get_work_inbox_dispositions_work_inbox_dispositions_get";
37
+ getWorkMemory: "get_work_memory_work_memory_get";
38
+ getWorkMessage: "get_work_message_work_messages__message_id__get";
39
+ getWorkOversight: "get_work_oversight_work_oversight_get";
40
+ getWorkReadMarkers: "get_work_read_markers_work_read_markers_get";
41
+ getWorkRoom: "get_work_room_work_room_get";
42
+ getWorkTeamHistory: "get_work_team_history_work_team_hq_history_get";
43
+ getWorkTeamLeaderboard: "get_work_team_leaderboard_work_team_hq_leaderboard_get";
44
+ listAvailableWorkChannels: "list_available_work_channels_work_channels_available_get";
45
+ listWorkActivity: "list_work_activity_work_activity_get";
46
+ listWorkAgentExecutionIdentities: "list_work_agent_execution_identities_work_agents_execution_identities_get";
47
+ listWorkAgents: "list_work_agents_work_agents_get";
48
+ listWorkChannels: "list_work_channels_work_channels_get";
49
+ listWorkConversationEvents: "list_work_conversation_events_work_conversations__conversation_id__events_get";
50
+ listWorkConversationFiles: "list_work_conversation_files_work_conversations__conversation_id__files_get";
51
+ listWorkConversationMessages: "list_work_conversation_messages_work_conversations__conversation_id__messages_get";
52
+ listWorkItemHistory: "list_work_item_history_work_work_items_history_get";
53
+ listWorkItems: "list_work_items_work_work_items_get";
54
+ listWorkRecentActivity: "list_work_recent_activity_work_team_hq_recent_activity_get";
55
+ listWorkRoutineRuns: "list_work_routine_runs_work_routines__routine_id__runs_get";
56
+ listWorkRoutines: "list_work_routines_work_routines_get";
57
+ listWorkTeamReceipts: "list_work_team_receipts_work_team_hq_receipts_get";
58
+ moveWorkMemory: "move_work_memory_work_memory_move_post";
59
+ promoteWorkSignal: "promote_work_signal_work_signals_promote_post";
60
+ reactToWorkMessage: "react_to_work_message_work_messages__message_id__reaction_put";
61
+ runWorkRoutineNow: "run_work_routine_now_work_routines__routine_id__run_post";
62
+ saveWorkChannelCanvas: "save_work_channel_canvas_work_channels__channel_id__canvas_post";
63
+ searchWork: "search_work_work_search_get";
64
+ setWorkChannelPurpose: "set_work_channel_purpose_work_channels__channel_id__purpose_put";
65
+ setWorkDailyBrief: "set_work_daily_brief_work_preferences_daily_brief_post";
66
+ setWorkInboxDisposition: "set_work_inbox_disposition_work_inbox_dispositions_post";
67
+ setWorkPulseReaction: "set_work_pulse_reaction_work_pulse__note_id__reaction_post";
68
+ setWorkReadMarkers: "set_work_read_markers_work_read_markers_post";
69
+ setWorkSidebarPreferences: "set_work_sidebar_preferences_work_sidebar_preferences_post";
70
+ setWorkSignalState: "set_work_signal_state_work_signals_state_post";
71
+ updateWorkAgent: "update_work_agent_work_agents__agent_id__patch";
72
+ updateWorkChannel: "update_work_channel_work_channels__channel_id__patch";
73
+ updateWorkProject: "update_work_project_work_projects__project_id__patch";
74
+ updateWorkRoutine: "update_work_routine_work_routines__routine_id__patch";
75
+ }
76
+
77
+ /** Input and output of every `g8.api.work` operation, keyed by operationId. */
78
+ export interface WorkOperations {
79
+ /**
80
+ * POST /work/custom-emoji
81
+ * Add Work Custom Emoji
82
+ * tier: write · scope: work:write
83
+ */
84
+ add_work_custom_emoji_work_custom_emoji_post: {
85
+ input: {
86
+ headers?: {
87
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
88
+ "Idempotency-Key"?: string | null;
89
+ "X-Target-Org-Id"?: string | null;
90
+ };
91
+ body: WorkCustomEmojiRequest;
92
+ };
93
+ output: ApiResponse_WorkCustomEmojiResult_;
94
+ };
95
+ /**
96
+ * POST /work/pulse
97
+ * Add Work Pulse Note
98
+ * tier: write · scope: work:write
99
+ */
100
+ add_work_pulse_note_work_pulse_post: {
101
+ input: {
102
+ headers?: {
103
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
104
+ "Idempotency-Key"?: string | null;
105
+ "X-Target-Org-Id"?: string | null;
106
+ };
107
+ body: WorkPulseNoteRequest;
108
+ };
109
+ output: ApiResponse_WorkPulseNote_;
110
+ };
111
+ /**
112
+ * DELETE /work/agents/{agent_id}
113
+ * Archive Work Agent
114
+ * tier: destructive · scope: work:delete
115
+ */
116
+ archive_work_agent_work_agents__agent_id__delete: {
117
+ input: {
118
+ path: {
119
+ /** Agent id */
120
+ agent_id: string;
121
+ };
122
+ headers?: {
123
+ "X-Target-Org-Id"?: string | null;
124
+ };
125
+ };
126
+ output: ApiResponse_WorkAgentArchived_;
127
+ };
128
+ /**
129
+ * POST /work/agents
130
+ * Create Work Agent
131
+ * tier: write · scope: work:write
132
+ */
133
+ create_work_agent_work_agents_post: {
134
+ input: {
135
+ headers?: {
136
+ /** Retry-safety key (a UUID). Replaying one returns the ORIGINAL agent instead of creating a second. Omit it and the server mints one, so a retried request creates again. */
137
+ "Idempotency-Key"?: string | null;
138
+ "X-Target-Org-Id"?: string | null;
139
+ };
140
+ body: WorkAgentProfileRequest;
141
+ };
142
+ output: ApiResponse_WorkAgentCreated_;
143
+ };
144
+ /**
145
+ * POST /work/channels
146
+ * Create Work Channel
147
+ * tier: write · scope: work:write
148
+ */
149
+ create_work_channel_work_channels_post: {
150
+ input: {
151
+ headers?: {
152
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
153
+ "Idempotency-Key"?: string | null;
154
+ "X-Target-Org-Id"?: string | null;
155
+ };
156
+ body: WorkChannelCreateRequest;
157
+ };
158
+ output: ApiResponse_WorkChannelWriteResult_;
159
+ };
160
+ /**
161
+ * POST /work/messages
162
+ * Create Work Message
163
+ * tier: write · scope: work:write
164
+ */
165
+ create_work_message_work_messages_post: {
166
+ input: {
167
+ headers?: {
168
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
169
+ "Idempotency-Key"?: string | null;
170
+ "X-Target-Org-Id"?: string | null;
171
+ };
172
+ body: WorkMessageCreateRequest;
173
+ };
174
+ output: ApiResponse_WorkMessage_;
175
+ };
176
+ /**
177
+ * POST /work/projects
178
+ * Create Work Project
179
+ * tier: write · scope: work:write
180
+ */
181
+ create_work_project_work_projects_post: {
182
+ input: {
183
+ headers?: {
184
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
185
+ "Idempotency-Key"?: string | null;
186
+ "X-Target-Org-Id"?: string | null;
187
+ };
188
+ body: WorkProjectCreateRequest;
189
+ };
190
+ output: ApiResponse_WorkProjectWriteResult_;
191
+ };
192
+ /**
193
+ * POST /work/routines
194
+ * Create Work Routine
195
+ * tier: write · scope: work:write
196
+ */
197
+ create_work_routine_work_routines_post: {
198
+ input: {
199
+ headers?: {
200
+ "X-Target-Org-Id"?: string | null;
201
+ };
202
+ body: WorkRoutineCreateRequest;
203
+ };
204
+ output: ApiResponse_WorkRoutineEnvelope_;
205
+ };
206
+ /**
207
+ * DELETE /work/channels/{channel_id}
208
+ * Delete Work Channel
209
+ * tier: destructive · scope: work:delete
210
+ */
211
+ delete_work_channel_work_channels__channel_id__delete: {
212
+ input: {
213
+ path: {
214
+ /** Channel id or slug */
215
+ channel_id: string;
216
+ };
217
+ headers?: {
218
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
219
+ "Idempotency-Key"?: string | null;
220
+ "X-Target-Org-Id"?: string | null;
221
+ };
222
+ body: WorkChannelDeleteRequest;
223
+ };
224
+ output: ApiResponse_WorkChannelWriteResult_;
225
+ };
226
+ /**
227
+ * DELETE /work/messages/{message_id}
228
+ * Delete Work Message
229
+ * tier: destructive · scope: work:delete
230
+ */
231
+ delete_work_message_work_messages__message_id__delete: {
232
+ input: {
233
+ path: {
234
+ /** Message id */
235
+ message_id: string;
236
+ };
237
+ headers?: {
238
+ "X-Target-Org-Id"?: string | null;
239
+ };
240
+ };
241
+ output: ApiResponse_WorkMessage_;
242
+ };
243
+ /**
244
+ * DELETE /work/projects/{project_id}
245
+ * Delete Work Project
246
+ * tier: destructive · scope: work:delete
247
+ */
248
+ delete_work_project_work_projects__project_id__delete: {
249
+ input: {
250
+ path: {
251
+ /** Project id */
252
+ project_id: string;
253
+ };
254
+ headers?: {
255
+ "X-Target-Org-Id"?: string | null;
256
+ };
257
+ body?: WorkProjectDeleteRequest | null;
258
+ };
259
+ output: ApiResponse_WorkProjectDeleted_;
260
+ };
261
+ /**
262
+ * DELETE /work/routines/{routine_id}
263
+ * Delete Work Routine
264
+ * tier: destructive · scope: work:delete
265
+ */
266
+ delete_work_routine_work_routines__routine_id__delete: {
267
+ input: {
268
+ path: {
269
+ /** Routine id */
270
+ routine_id: string;
271
+ };
272
+ headers?: {
273
+ "X-Target-Org-Id"?: string | null;
274
+ };
275
+ };
276
+ output: ApiResponse_WorkRoutineDeleted_;
277
+ };
278
+ /**
279
+ * PUT /work/memory
280
+ * Edit Work Memory
281
+ * tier: write · scope: work:write
282
+ */
283
+ edit_work_memory_work_memory_put: {
284
+ input: {
285
+ headers?: {
286
+ "X-Target-Org-Id"?: string | null;
287
+ };
288
+ body: WorkMemoryEditRequest;
289
+ };
290
+ output: ApiResponse_WorkMemoryNote_;
291
+ };
292
+ /**
293
+ * PATCH /work/messages/{message_id}
294
+ * Edit Work Message
295
+ * tier: write · scope: work:write
296
+ */
297
+ edit_work_message_work_messages__message_id__patch: {
298
+ input: {
299
+ path: {
300
+ /** Message id */
301
+ message_id: string;
302
+ };
303
+ headers?: {
304
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
305
+ "Idempotency-Key"?: string | null;
306
+ "X-Target-Org-Id"?: string | null;
307
+ };
308
+ body: WorkMessageEditRequest;
309
+ };
310
+ output: ApiResponse_WorkMessage_;
311
+ };
312
+ /**
313
+ * POST /work/messages/{message_id}/forward
314
+ * Forward Work Message
315
+ * tier: write · scope: work:write
316
+ */
317
+ forward_work_message_work_messages__message_id__forward_post: {
318
+ input: {
319
+ path: {
320
+ /** Message id */
321
+ message_id: string;
322
+ };
323
+ headers?: {
324
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
325
+ "Idempotency-Key"?: string | null;
326
+ "X-Target-Org-Id"?: string | null;
327
+ };
328
+ body: WorkMessageForwardRequest;
329
+ };
330
+ output: ApiResponse_WorkMessage_;
331
+ };
332
+ /**
333
+ * GET /work/agents/{agent_id}
334
+ * Get Work Agent
335
+ * tier: read · scope: work:read
336
+ */
337
+ get_work_agent_work_agents__agent_id__get: {
338
+ input: {
339
+ path: {
340
+ /** Agent id */
341
+ agent_id: string;
342
+ };
343
+ headers?: {
344
+ "X-Target-Org-Id"?: string | null;
345
+ };
346
+ };
347
+ output: ApiResponse_WorkAgentProfile_;
348
+ };
349
+ /**
350
+ * GET /work/agents/policy
351
+ * Get Work Agent Policy
352
+ * tier: read · scope: work:read
353
+ */
354
+ get_work_agent_policy_work_agents_policy_get: {
355
+ input: {
356
+ headers?: {
357
+ "X-Target-Org-Id"?: string | null;
358
+ };
359
+ };
360
+ output: ApiResponse_WorkAgentPolicy_;
361
+ };
362
+ /**
363
+ * GET /work/attachments/{attachment_id}
364
+ * Get Work Attachment Link
365
+ * tier: read · scope: work:read
366
+ */
367
+ get_work_attachment_link_work_attachments__attachment_id__get: {
368
+ input: {
369
+ path: {
370
+ /** Attachment id */
371
+ attachment_id: string;
372
+ };
373
+ query?: {
374
+ /** Force a download rather than inline rendering */
375
+ download?: boolean;
376
+ };
377
+ headers?: {
378
+ "X-Target-Org-Id"?: string | null;
379
+ };
380
+ };
381
+ output: ApiResponse_WorkAttachmentLink_;
382
+ };
383
+ /**
384
+ * GET /work/channels/{channel_id}/canvas
385
+ * Get Work Channel Canvas
386
+ * tier: read · scope: work:read
387
+ */
388
+ get_work_channel_canvas_work_channels__channel_id__canvas_get: {
389
+ input: {
390
+ path: {
391
+ /** Channel id or slug */
392
+ channel_id: string;
393
+ };
394
+ headers?: {
395
+ "X-Target-Org-Id"?: string | null;
396
+ };
397
+ };
398
+ output: ApiResponse_WorkCanvas_;
399
+ };
400
+ /**
401
+ * GET /work/preferences/daily-brief
402
+ * Get Work Daily Brief
403
+ * tier: read · scope: work:read
404
+ */
405
+ get_work_daily_brief_work_preferences_daily_brief_get: {
406
+ input: {
407
+ headers?: {
408
+ "X-Target-Org-Id"?: string | null;
409
+ };
410
+ };
411
+ output: ApiResponse_WorkDailyBriefSettings_;
412
+ };
413
+ /**
414
+ * GET /work/inbox-dispositions
415
+ * Get Work Inbox Dispositions
416
+ * tier: read · scope: work:read
417
+ */
418
+ get_work_inbox_dispositions_work_inbox_dispositions_get: {
419
+ input: {
420
+ headers?: {
421
+ "X-Target-Org-Id"?: string | null;
422
+ };
423
+ };
424
+ output: ApiResponse_WorkInboxDispositions_;
425
+ };
426
+ /**
427
+ * GET /work/memory
428
+ * Get Work Memory
429
+ * tier: read · scope: work:read
430
+ */
431
+ get_work_memory_work_memory_get: {
432
+ input: {
433
+ query?: {
434
+ /** `personal`, `agent` or `team` */
435
+ scope?: "personal" | "agent" | "team";
436
+ /** Required for, and only for, `agent` scope */
437
+ agent_id?: string | null;
438
+ };
439
+ headers?: {
440
+ "X-Target-Org-Id"?: string | null;
441
+ };
442
+ };
443
+ output: ApiResponse_WorkMemoryPage_;
444
+ };
445
+ /**
446
+ * GET /work/messages/{message_id}
447
+ * Get Work Message
448
+ * tier: read · scope: work:read
449
+ */
450
+ get_work_message_work_messages__message_id__get: {
451
+ input: {
452
+ path: {
453
+ /** Message id */
454
+ message_id: string;
455
+ };
456
+ headers?: {
457
+ "X-Target-Org-Id"?: string | null;
458
+ };
459
+ };
460
+ output: ApiResponse_WorkMessage_;
461
+ };
462
+ /**
463
+ * GET /work/oversight
464
+ * Get Work Oversight
465
+ * tier: read · scope: work:read
466
+ */
467
+ get_work_oversight_work_oversight_get: {
468
+ input: {
469
+ query?: {
470
+ /** Maximum rows PER GROUP */
471
+ limit?: number;
472
+ /** How far back autonomous fixes are read */
473
+ fix_window_hours?: number;
474
+ };
475
+ headers?: {
476
+ "X-Target-Org-Id"?: string | null;
477
+ };
478
+ };
479
+ output: ApiResponse_WorkOversight_;
480
+ };
481
+ /**
482
+ * GET /work/read-markers
483
+ * Get Work Read Markers
484
+ * tier: read · scope: work:read
485
+ */
486
+ get_work_read_markers_work_read_markers_get: {
487
+ input: {
488
+ headers?: {
489
+ "X-Target-Org-Id"?: string | null;
490
+ };
491
+ };
492
+ output: ApiResponse_WorkReadMarkers_;
493
+ };
494
+ /**
495
+ * GET /work/room
496
+ * Get Work Room
497
+ * tier: read · scope: work:read
498
+ */
499
+ get_work_room_work_room_get: {
500
+ input: {
501
+ headers?: {
502
+ "X-Target-Org-Id"?: string | null;
503
+ };
504
+ };
505
+ output: ApiResponse_WorkRoom_;
506
+ };
507
+ /**
508
+ * GET /work/team-hq/history
509
+ * Get Work Team History
510
+ * tier: read · scope: work:read
511
+ */
512
+ get_work_team_history_work_team_hq_history_get: {
513
+ input: {
514
+ query?: {
515
+ /** Window size in days; clamped to 3-31 */
516
+ days?: number;
517
+ };
518
+ headers?: {
519
+ "X-Target-Org-Id"?: string | null;
520
+ };
521
+ };
522
+ output: ApiResponse_WorkTeamHqHistory_;
523
+ };
524
+ /**
525
+ * GET /work/team-hq/leaderboard
526
+ * Get Work Team Leaderboard
527
+ * tier: read · scope: work:read
528
+ */
529
+ get_work_team_leaderboard_work_team_hq_leaderboard_get: {
530
+ input: {
531
+ query?: {
532
+ /** `day` or `month` */
533
+ period?: "day" | "month";
534
+ };
535
+ headers?: {
536
+ "X-Target-Org-Id"?: string | null;
537
+ };
538
+ };
539
+ output: ApiResponse_WorkTeamHqLeaderboard_;
540
+ };
541
+ /**
542
+ * GET /work/channels/available
543
+ * List Available Work Channels
544
+ * tier: read · scope: work:read
545
+ */
546
+ list_available_work_channels_work_channels_available_get: {
547
+ input: {
548
+ headers?: {
549
+ "X-Target-Org-Id"?: string | null;
550
+ };
551
+ };
552
+ output: ApiResponse_WorkAvailableChannelList_;
553
+ };
554
+ /**
555
+ * GET /work/activity
556
+ * List Work Activity
557
+ * tier: read · scope: work:read
558
+ */
559
+ list_work_activity_work_activity_get: {
560
+ input: {
561
+ query?: {
562
+ /** Page size; clamped to the server maximum */
563
+ limit?: number | null;
564
+ /** Opaque cursor from a previous page */
565
+ cursor?: string | null;
566
+ /** `human`, `agent`, `runner` or `system` */
567
+ actor?: string | null;
568
+ /** Only this agent's activity */
569
+ agentId?: string | null;
570
+ /** message, conversation, approval, execution, workflow, canvas or configuration */
571
+ category?: string | null;
572
+ /** Only this conversation */
573
+ conversation?: string | null;
574
+ /** requested, changed, approved, completed, failed or recorded */
575
+ consequence?: string | null;
576
+ /** ISO timestamp; inclusive lower bound */
577
+ from?: string | null;
578
+ /** ISO timestamp; inclusive upper bound */
579
+ to?: string | null;
580
+ /** Free text */
581
+ q?: string | null;
582
+ };
583
+ headers?: {
584
+ "X-Target-Org-Id"?: string | null;
585
+ };
586
+ };
587
+ output: ApiResponse_WorkActivityPage_;
588
+ };
589
+ /**
590
+ * GET /work/agents/execution-identities
591
+ * List Work Agent Execution Identities
592
+ * tier: read · scope: work:read
593
+ */
594
+ list_work_agent_execution_identities_work_agents_execution_identities_get: {
595
+ input: {
596
+ headers?: {
597
+ "X-Target-Org-Id"?: string | null;
598
+ };
599
+ };
600
+ output: ApiResponse_WorkAgentExecutionIdentities_;
601
+ };
602
+ /**
603
+ * GET /work/agents
604
+ * List Work Agents
605
+ * tier: read · scope: work:read
606
+ */
607
+ list_work_agents_work_agents_get: {
608
+ input: {
609
+ query?: {
610
+ /** Page size */
611
+ limit?: number;
612
+ /** `next_cursor` from the previous page */
613
+ after?: string | null;
614
+ };
615
+ headers?: {
616
+ "X-Target-Org-Id"?: string | null;
617
+ };
618
+ };
619
+ output: ApiResponse_WorkAgentProfilePage_;
620
+ };
621
+ /**
622
+ * GET /work/channels
623
+ * List Work Channels
624
+ * tier: read · scope: work:read
625
+ */
626
+ list_work_channels_work_channels_get: {
627
+ input: {
628
+ headers?: {
629
+ "X-Target-Org-Id"?: string | null;
630
+ };
631
+ };
632
+ output: ApiResponse_WorkChannelList_;
633
+ };
634
+ /**
635
+ * GET /work/conversations/{conversation_id}/events
636
+ * List Work Conversation Events
637
+ * tier: read · scope: work:read
638
+ */
639
+ list_work_conversation_events_work_conversations__conversation_id__events_get: {
640
+ input: {
641
+ path: {
642
+ /** Channel name, channel id, or direct-message id */
643
+ conversation_id: string;
644
+ };
645
+ query?: {
646
+ /** Page size; clamped to the server maximum */
647
+ limit?: number;
648
+ /** Opaque cursor from a previous page */
649
+ cursor?: string | null;
650
+ };
651
+ headers?: {
652
+ "X-Target-Org-Id"?: string | null;
653
+ };
654
+ };
655
+ output: ApiResponse_WorkEventPage_;
656
+ };
657
+ /**
658
+ * GET /work/conversations/{conversation_id}/files
659
+ * List Work Conversation Files
660
+ * tier: read · scope: work:read
661
+ */
662
+ list_work_conversation_files_work_conversations__conversation_id__files_get: {
663
+ input: {
664
+ path: {
665
+ /** Channel name, channel id, or direct-message id */
666
+ conversation_id: string;
667
+ };
668
+ query?: {
669
+ /** Page size; clamped to the server maximum */
670
+ limit?: number;
671
+ /** Opaque cursor from a previous page */
672
+ cursor?: string | null;
673
+ /** Filter by filename */
674
+ query?: string;
675
+ };
676
+ headers?: {
677
+ "X-Target-Org-Id"?: string | null;
678
+ };
679
+ };
680
+ output: ApiResponse_WorkMessagePage_;
681
+ };
682
+ /**
683
+ * GET /work/conversations/{conversation_id}/messages
684
+ * List Work Conversation Messages
685
+ * tier: read · scope: work:read
686
+ */
687
+ list_work_conversation_messages_work_conversations__conversation_id__messages_get: {
688
+ input: {
689
+ path: {
690
+ /** Channel name, channel id, or direct-message id */
691
+ conversation_id: string;
692
+ };
693
+ query?: {
694
+ /** Page size; clamped to the server maximum */
695
+ limit?: number;
696
+ /** Opaque cursor from a previous page */
697
+ cursor?: string | null;
698
+ };
699
+ headers?: {
700
+ "X-Target-Org-Id"?: string | null;
701
+ };
702
+ };
703
+ output: ApiResponse_WorkMessagePage_;
704
+ };
705
+ /**
706
+ * GET /work/work-items/history
707
+ * List Work Item History
708
+ * tier: read · scope: work:read
709
+ */
710
+ list_work_item_history_work_work_items_history_get: {
711
+ input: {
712
+ query?: {
713
+ /** Maximum rows returned */
714
+ limit?: number;
715
+ };
716
+ headers?: {
717
+ "X-Target-Org-Id"?: string | null;
718
+ };
719
+ };
720
+ output: ApiResponse_WorkItemList_;
721
+ };
722
+ /**
723
+ * GET /work/work-items
724
+ * List Work Items
725
+ * tier: read · scope: work:read
726
+ */
727
+ list_work_items_work_work_items_get: {
728
+ input: {
729
+ query?: {
730
+ /** Maximum rows returned */
731
+ limit?: number;
732
+ };
733
+ headers?: {
734
+ "X-Target-Org-Id"?: string | null;
735
+ };
736
+ };
737
+ output: ApiResponse_WorkItemList_;
738
+ };
739
+ /**
740
+ * GET /work/team-hq/recent-activity
741
+ * List Work Recent Activity
742
+ * tier: read · scope: work:read
743
+ */
744
+ list_work_recent_activity_work_team_hq_recent_activity_get: {
745
+ input: {
746
+ headers?: {
747
+ "X-Target-Org-Id"?: string | null;
748
+ };
749
+ };
750
+ output: ApiResponse_WorkTickerEvents_;
751
+ };
752
+ /**
753
+ * GET /work/routines/{routine_id}/runs
754
+ * List Work Routine Runs
755
+ * tier: billable · scope: work:run
756
+ */
757
+ list_work_routine_runs_work_routines__routine_id__runs_get: {
758
+ input: {
759
+ path: {
760
+ /** Routine id */
761
+ routine_id: string;
762
+ };
763
+ query?: {
764
+ /** Maximum runs returned */
765
+ limit?: number;
766
+ };
767
+ headers?: {
768
+ "X-Target-Org-Id"?: string | null;
769
+ };
770
+ };
771
+ output: ApiResponse_WorkRoutineRunList_;
772
+ };
773
+ /**
774
+ * GET /work/routines
775
+ * List Work Routines
776
+ * tier: read · scope: work:read
777
+ */
778
+ list_work_routines_work_routines_get: {
779
+ input: {
780
+ headers?: {
781
+ "X-Target-Org-Id"?: string | null;
782
+ };
783
+ };
784
+ output: ApiResponse_WorkRoutineList_;
785
+ };
786
+ /**
787
+ * GET /work/team-hq/receipts
788
+ * List Work Team Receipts
789
+ * tier: read · scope: work:read
790
+ */
791
+ list_work_team_receipts_work_team_hq_receipts_get: {
792
+ input: {
793
+ query: {
794
+ /** The rep whose recent moments to list */
795
+ email: string;
796
+ /** Max events; clamped to 1-50 */
797
+ limit?: number;
798
+ };
799
+ headers?: {
800
+ "X-Target-Org-Id"?: string | null;
801
+ };
802
+ };
803
+ output: ApiResponse_WorkTickerEvents_;
804
+ };
805
+ /**
806
+ * POST /work/memory/move
807
+ * Move Work Memory
808
+ * tier: write · scope: work:write
809
+ */
810
+ move_work_memory_work_memory_move_post: {
811
+ input: {
812
+ headers?: {
813
+ "X-Target-Org-Id"?: string | null;
814
+ };
815
+ body: WorkMemoryMoveRequest;
816
+ };
817
+ output: ApiResponse_WorkMemoryNote_;
818
+ };
819
+ /**
820
+ * POST /work/signals/promote
821
+ * Promote Work Signal
822
+ * tier: billable · scope: work:run
823
+ */
824
+ promote_work_signal_work_signals_promote_post: {
825
+ input: {
826
+ headers?: {
827
+ "X-Target-Org-Id"?: string | null;
828
+ };
829
+ body: WorkSignalPromoteRequest;
830
+ };
831
+ output: ApiResponse_WorkSignalPromoted_;
832
+ };
833
+ /**
834
+ * PUT /work/messages/{message_id}/reaction
835
+ * React To Work Message
836
+ * tier: write · scope: work:write
837
+ */
838
+ react_to_work_message_work_messages__message_id__reaction_put: {
839
+ input: {
840
+ path: {
841
+ /** Message id */
842
+ message_id: string;
843
+ };
844
+ headers?: {
845
+ "X-Target-Org-Id"?: string | null;
846
+ };
847
+ body: WorkMessageReactionRequest;
848
+ };
849
+ output: ApiResponse_WorkMessage_;
850
+ };
851
+ /**
852
+ * POST /work/routines/{routine_id}/run
853
+ * Run Work Routine Now
854
+ * tier: write · scope: work:write
855
+ */
856
+ run_work_routine_now_work_routines__routine_id__run_post: {
857
+ input: {
858
+ path: {
859
+ /** Routine id */
860
+ routine_id: string;
861
+ };
862
+ headers?: {
863
+ "X-Target-Org-Id"?: string | null;
864
+ };
865
+ body?: WorkRoutineRunNowRequest | null;
866
+ };
867
+ output: ApiResponse_WorkRoutineRunResult_;
868
+ };
869
+ /**
870
+ * POST /work/channels/{channel_id}/canvas
871
+ * Save Work Channel Canvas
872
+ * tier: write · scope: work:write
873
+ */
874
+ save_work_channel_canvas_work_channels__channel_id__canvas_post: {
875
+ input: {
876
+ path: {
877
+ /** Channel id or slug */
878
+ channel_id: string;
879
+ };
880
+ headers?: {
881
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
882
+ "Idempotency-Key"?: string | null;
883
+ "X-Target-Org-Id"?: string | null;
884
+ };
885
+ body: WorkCanvasSaveRequest;
886
+ };
887
+ output: ApiResponse_WorkCanvas_;
888
+ };
889
+ /**
890
+ * GET /work/search
891
+ * Search Work
892
+ * tier: read · scope: work:read
893
+ */
894
+ search_work_work_search_get: {
895
+ input: {
896
+ query: {
897
+ /** Search text */
898
+ q: string;
899
+ /** Maximum hits; clamped to the server maximum */
900
+ limit?: number;
901
+ /** Channel name or direct-message id to search within */
902
+ conversation?: string | null;
903
+ };
904
+ headers?: {
905
+ "X-Target-Org-Id"?: string | null;
906
+ };
907
+ };
908
+ output: ApiResponse_WorkSearchResults_;
909
+ };
910
+ /**
911
+ * PUT /work/channels/{channel_id}/purpose
912
+ * Set Work Channel Purpose
913
+ * tier: write · scope: work:write
914
+ */
915
+ set_work_channel_purpose_work_channels__channel_id__purpose_put: {
916
+ input: {
917
+ path: {
918
+ /** Channel id or slug */
919
+ channel_id: string;
920
+ };
921
+ headers?: {
922
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
923
+ "Idempotency-Key"?: string | null;
924
+ "X-Target-Org-Id"?: string | null;
925
+ };
926
+ body: WorkChannelPurposeRequest;
927
+ };
928
+ output: ApiResponse_WorkChannelWriteResult_;
929
+ };
930
+ /**
931
+ * POST /work/preferences/daily-brief
932
+ * Set Work Daily Brief
933
+ * tier: write · scope: work:write
934
+ */
935
+ set_work_daily_brief_work_preferences_daily_brief_post: {
936
+ input: {
937
+ headers?: {
938
+ "X-Target-Org-Id"?: string | null;
939
+ };
940
+ body: WorkDailyBriefSettingsRequest;
941
+ };
942
+ output: ApiResponse_WorkDailyBriefSettings_;
943
+ };
944
+ /**
945
+ * POST /work/inbox-dispositions
946
+ * Set Work Inbox Disposition
947
+ * tier: write · scope: work:write
948
+ */
949
+ set_work_inbox_disposition_work_inbox_dispositions_post: {
950
+ input: {
951
+ headers?: {
952
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
953
+ "Idempotency-Key"?: string | null;
954
+ "X-Target-Org-Id"?: string | null;
955
+ };
956
+ body: WorkInboxDispositionRequest;
957
+ };
958
+ output: ApiResponse_WorkInboxDisposition_;
959
+ };
960
+ /**
961
+ * POST /work/pulse/{note_id}/reaction
962
+ * Set Work Pulse Reaction
963
+ * tier: write · scope: work:write
964
+ */
965
+ set_work_pulse_reaction_work_pulse__note_id__reaction_post: {
966
+ input: {
967
+ path: {
968
+ /** Pulse note id */
969
+ note_id: string;
970
+ };
971
+ headers?: {
972
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
973
+ "Idempotency-Key"?: string | null;
974
+ "X-Target-Org-Id"?: string | null;
975
+ };
976
+ body: WorkPulseReactionRequest;
977
+ };
978
+ output: ApiResponse_WorkPulseReaction_;
979
+ };
980
+ /**
981
+ * POST /work/read-markers
982
+ * Set Work Read Markers
983
+ * tier: write · scope: work:write
984
+ */
985
+ set_work_read_markers_work_read_markers_post: {
986
+ input: {
987
+ headers?: {
988
+ "X-Target-Org-Id"?: string | null;
989
+ };
990
+ body: WorkReadMarkersRequest;
991
+ };
992
+ output: ApiResponse_WorkReadMarkers_;
993
+ };
994
+ /**
995
+ * POST /work/sidebar-preferences
996
+ * Set Work Sidebar Preferences
997
+ * tier: write · scope: work:write
998
+ */
999
+ set_work_sidebar_preferences_work_sidebar_preferences_post: {
1000
+ input: {
1001
+ headers?: {
1002
+ "X-Target-Org-Id"?: string | null;
1003
+ };
1004
+ body: WorkSidebarPreferencesRequest;
1005
+ };
1006
+ output: ApiResponse_WorkSidebarPreferences_;
1007
+ };
1008
+ /**
1009
+ * POST /work/signals/state
1010
+ * Set Work Signal State
1011
+ * tier: write · scope: work:write
1012
+ */
1013
+ set_work_signal_state_work_signals_state_post: {
1014
+ input: {
1015
+ headers?: {
1016
+ "X-Target-Org-Id"?: string | null;
1017
+ };
1018
+ body: WorkSignalStateRequest;
1019
+ };
1020
+ output: ApiResponse_WorkSignalState_;
1021
+ };
1022
+ /**
1023
+ * PATCH /work/agents/{agent_id}
1024
+ * Update Work Agent
1025
+ * tier: write · scope: work:write
1026
+ */
1027
+ update_work_agent_work_agents__agent_id__patch: {
1028
+ input: {
1029
+ path: {
1030
+ /** Agent id */
1031
+ agent_id: string;
1032
+ };
1033
+ headers?: {
1034
+ "X-Target-Org-Id"?: string | null;
1035
+ };
1036
+ body: WorkAgentProfileEditRequest;
1037
+ };
1038
+ output: ApiResponse_WorkAgentProfile_;
1039
+ };
1040
+ /**
1041
+ * PATCH /work/channels/{channel_id}
1042
+ * Update Work Channel
1043
+ * tier: write · scope: work:write
1044
+ */
1045
+ update_work_channel_work_channels__channel_id__patch: {
1046
+ input: {
1047
+ path: {
1048
+ /** Channel id or slug */
1049
+ channel_id: string;
1050
+ };
1051
+ headers?: {
1052
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
1053
+ "Idempotency-Key"?: string | null;
1054
+ "X-Target-Org-Id"?: string | null;
1055
+ };
1056
+ body: WorkChannelSettingsRequest;
1057
+ };
1058
+ output: ApiResponse_WorkChannelWriteResult_;
1059
+ };
1060
+ /**
1061
+ * PATCH /work/projects/{project_id}
1062
+ * Update Work Project
1063
+ * tier: write · scope: work:write
1064
+ */
1065
+ update_work_project_work_projects__project_id__patch: {
1066
+ input: {
1067
+ path: {
1068
+ /** Project id */
1069
+ project_id: string;
1070
+ };
1071
+ headers?: {
1072
+ /** Retry-safety key. Replaying one returns the ORIGINAL result with `duplicate: true` instead of writing twice. Omit it and the server mints a single-use key, which means a retried request writes again — send your own for anything you may retry. */
1073
+ "Idempotency-Key"?: string | null;
1074
+ "X-Target-Org-Id"?: string | null;
1075
+ };
1076
+ body: WorkProjectUpdateRequest;
1077
+ };
1078
+ output: ApiResponse_WorkProjectWriteResult_;
1079
+ };
1080
+ /**
1081
+ * PATCH /work/routines/{routine_id}
1082
+ * Update Work Routine
1083
+ * tier: write · scope: work:write
1084
+ */
1085
+ update_work_routine_work_routines__routine_id__patch: {
1086
+ input: {
1087
+ path: {
1088
+ /** Routine id */
1089
+ routine_id: string;
1090
+ };
1091
+ headers?: {
1092
+ "X-Target-Org-Id"?: string | null;
1093
+ };
1094
+ body: WorkRoutinePatchRequest;
1095
+ };
1096
+ output: ApiResponse_WorkRoutineEnvelope_;
1097
+ };
1098
+ }
1099
+
1100
+ // 122 schemas referenced above (the same as G8Contract.<Name>).
1101
+
1102
+ export interface ApiResponse_WorkActivityPage_ {
1103
+ data: WorkActivityPage;
1104
+ pagination?: PaginationMeta | null;
1105
+ }
1106
+
1107
+ export interface ApiResponse_WorkAgentArchived_ {
1108
+ data: WorkAgentArchived;
1109
+ pagination?: PaginationMeta | null;
1110
+ }
1111
+
1112
+ export interface ApiResponse_WorkAgentCreated_ {
1113
+ data: WorkAgentCreated;
1114
+ pagination?: PaginationMeta | null;
1115
+ }
1116
+
1117
+ export interface ApiResponse_WorkAgentExecutionIdentities_ {
1118
+ data: WorkAgentExecutionIdentities;
1119
+ pagination?: PaginationMeta | null;
1120
+ }
1121
+
1122
+ export interface ApiResponse_WorkAgentPolicy_ {
1123
+ data: WorkAgentPolicy;
1124
+ pagination?: PaginationMeta | null;
1125
+ }
1126
+
1127
+ export interface ApiResponse_WorkAgentProfilePage_ {
1128
+ data: WorkAgentProfilePage;
1129
+ pagination?: PaginationMeta | null;
1130
+ }
1131
+
1132
+ export interface ApiResponse_WorkAgentProfile_ {
1133
+ data: WorkAgentProfile;
1134
+ pagination?: PaginationMeta | null;
1135
+ }
1136
+
1137
+ export interface ApiResponse_WorkAttachmentLink_ {
1138
+ data: WorkAttachmentLink;
1139
+ pagination?: PaginationMeta | null;
1140
+ }
1141
+
1142
+ export interface ApiResponse_WorkAvailableChannelList_ {
1143
+ data: WorkAvailableChannelList;
1144
+ pagination?: PaginationMeta | null;
1145
+ }
1146
+
1147
+ export interface ApiResponse_WorkCanvas_ {
1148
+ data: WorkCanvas;
1149
+ pagination?: PaginationMeta | null;
1150
+ }
1151
+
1152
+ export interface ApiResponse_WorkChannelList_ {
1153
+ data: WorkChannelList;
1154
+ pagination?: PaginationMeta | null;
1155
+ }
1156
+
1157
+ export interface ApiResponse_WorkChannelWriteResult_ {
1158
+ data: WorkChannelWriteResult;
1159
+ pagination?: PaginationMeta | null;
1160
+ }
1161
+
1162
+ export interface ApiResponse_WorkCustomEmojiResult_ {
1163
+ data: WorkCustomEmojiResult;
1164
+ pagination?: PaginationMeta | null;
1165
+ }
1166
+
1167
+ export interface ApiResponse_WorkDailyBriefSettings_ {
1168
+ data: WorkDailyBriefSettings;
1169
+ pagination?: PaginationMeta | null;
1170
+ }
1171
+
1172
+ export interface ApiResponse_WorkEventPage_ {
1173
+ data: WorkEventPage;
1174
+ pagination?: PaginationMeta | null;
1175
+ }
1176
+
1177
+ export interface ApiResponse_WorkInboxDisposition_ {
1178
+ data: WorkInboxDisposition;
1179
+ pagination?: PaginationMeta | null;
1180
+ }
1181
+
1182
+ export interface ApiResponse_WorkInboxDispositions_ {
1183
+ data: WorkInboxDispositions;
1184
+ pagination?: PaginationMeta | null;
1185
+ }
1186
+
1187
+ export interface ApiResponse_WorkItemList_ {
1188
+ data: WorkItemList;
1189
+ pagination?: PaginationMeta | null;
1190
+ }
1191
+
1192
+ export interface ApiResponse_WorkMemoryNote_ {
1193
+ data: WorkMemoryNote;
1194
+ pagination?: PaginationMeta | null;
1195
+ }
1196
+
1197
+ export interface ApiResponse_WorkMemoryPage_ {
1198
+ data: WorkMemoryPage;
1199
+ pagination?: PaginationMeta | null;
1200
+ }
1201
+
1202
+ export interface ApiResponse_WorkMessagePage_ {
1203
+ data: WorkMessagePage;
1204
+ pagination?: PaginationMeta | null;
1205
+ }
1206
+
1207
+ export interface ApiResponse_WorkMessage_ {
1208
+ data: WorkMessage;
1209
+ pagination?: PaginationMeta | null;
1210
+ }
1211
+
1212
+ export interface ApiResponse_WorkOversight_ {
1213
+ data: WorkOversight;
1214
+ pagination?: PaginationMeta | null;
1215
+ }
1216
+
1217
+ export interface ApiResponse_WorkProjectDeleted_ {
1218
+ data: WorkProjectDeleted;
1219
+ pagination?: PaginationMeta | null;
1220
+ }
1221
+
1222
+ export interface ApiResponse_WorkProjectWriteResult_ {
1223
+ data: WorkProjectWriteResult;
1224
+ pagination?: PaginationMeta | null;
1225
+ }
1226
+
1227
+ export interface ApiResponse_WorkPulseNote_ {
1228
+ data: WorkPulseNote;
1229
+ pagination?: PaginationMeta | null;
1230
+ }
1231
+
1232
+ export interface ApiResponse_WorkPulseReaction_ {
1233
+ data: WorkPulseReaction;
1234
+ pagination?: PaginationMeta | null;
1235
+ }
1236
+
1237
+ export interface ApiResponse_WorkReadMarkers_ {
1238
+ data: WorkReadMarkers;
1239
+ pagination?: PaginationMeta | null;
1240
+ }
1241
+
1242
+ export interface ApiResponse_WorkRoom_ {
1243
+ data: WorkRoom;
1244
+ pagination?: PaginationMeta | null;
1245
+ }
1246
+
1247
+ export interface ApiResponse_WorkRoutineDeleted_ {
1248
+ data: WorkRoutineDeleted;
1249
+ pagination?: PaginationMeta | null;
1250
+ }
1251
+
1252
+ export interface ApiResponse_WorkRoutineEnvelope_ {
1253
+ data: WorkRoutineEnvelope;
1254
+ pagination?: PaginationMeta | null;
1255
+ }
1256
+
1257
+ export interface ApiResponse_WorkRoutineList_ {
1258
+ data: WorkRoutineList;
1259
+ pagination?: PaginationMeta | null;
1260
+ }
1261
+
1262
+ export interface ApiResponse_WorkRoutineRunList_ {
1263
+ data: WorkRoutineRunList;
1264
+ pagination?: PaginationMeta | null;
1265
+ }
1266
+
1267
+ export interface ApiResponse_WorkRoutineRunResult_ {
1268
+ data: WorkRoutineRunResult;
1269
+ pagination?: PaginationMeta | null;
1270
+ }
1271
+
1272
+ export interface ApiResponse_WorkSearchResults_ {
1273
+ data: WorkSearchResults;
1274
+ pagination?: PaginationMeta | null;
1275
+ }
1276
+
1277
+ export interface ApiResponse_WorkSidebarPreferences_ {
1278
+ data: WorkSidebarPreferences;
1279
+ pagination?: PaginationMeta | null;
1280
+ }
1281
+
1282
+ export interface ApiResponse_WorkSignalPromoted_ {
1283
+ data: WorkSignalPromoted;
1284
+ pagination?: PaginationMeta | null;
1285
+ }
1286
+
1287
+ export interface ApiResponse_WorkSignalState_ {
1288
+ data: WorkSignalState;
1289
+ pagination?: PaginationMeta | null;
1290
+ }
1291
+
1292
+ export interface ApiResponse_WorkTeamHqHistory_ {
1293
+ data: WorkTeamHqHistory;
1294
+ pagination?: PaginationMeta | null;
1295
+ }
1296
+
1297
+ export interface ApiResponse_WorkTeamHqLeaderboard_ {
1298
+ data: WorkTeamHqLeaderboard;
1299
+ pagination?: PaginationMeta | null;
1300
+ }
1301
+
1302
+ export interface ApiResponse_WorkTickerEvents_ {
1303
+ data: WorkTickerEvents;
1304
+ pagination?: PaginationMeta | null;
1305
+ }
1306
+
1307
+ export interface PaginationMeta {
1308
+ /** Whether there are more pages */
1309
+ has_next: boolean;
1310
+ /** Items per page */
1311
+ limit: number;
1312
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
1313
+ next_cursor?: string | null;
1314
+ /** Current page number (1-indexed) */
1315
+ page: number;
1316
+ /** Total number of items */
1317
+ total: number;
1318
+ }
1319
+
1320
+ /** One entry in the Work activity feed. */
1321
+ export interface WorkActivityEntry {
1322
+ /** `human`, `agent`, `runner` or `system` */
1323
+ actor?: string | null;
1324
+ /** message, conversation, approval, execution, workflow, canvas or configuration */
1325
+ category?: string | null;
1326
+ /** requested, changed, approved, completed, failed or recorded */
1327
+ consequence?: string | null;
1328
+ /** Activity entry id */
1329
+ id?: string | null;
1330
+ [key: string]: unknown;
1331
+ }
1332
+
1333
+ /** One page of the activity feed, scoped to what this credential may read. */
1334
+ export interface WorkActivityPage {
1335
+ /** Activity entries, newest first */
1336
+ events?: Array<WorkActivityEntry>;
1337
+ /** Whether older entries remain */
1338
+ has_more?: boolean;
1339
+ /** Opaque cursor for the next page */
1340
+ next_cursor?: string | null;
1341
+ }
1342
+
1343
+ /** An archived Work agent. */
1344
+ export interface WorkAgentArchived {
1345
+ /** The agent that was archived */
1346
+ agent_id: string;
1347
+ /** True once archived */
1348
+ archived?: boolean;
1349
+ }
1350
+
1351
+ /** A newly created Work agent and its first conversation. */
1352
+ export interface WorkAgentCreated {
1353
+ /** Agent id */
1354
+ agent_id?: string | null;
1355
+ /** The agent's conversation session id */
1356
+ session_id?: string | null;
1357
+ [key: string]: unknown;
1358
+ }
1359
+
1360
+ /** Identities a Work agent may execute as. */
1361
+ export interface WorkAgentExecutionIdentities {
1362
+ /** Execution identities */
1363
+ items?: Array<Record<string, unknown>> | null;
1364
+ /** Identities that could not be resolved */
1365
+ warnings?: Array<string> | null;
1366
+ [key: string]: unknown;
1367
+ }
1368
+
1369
+ /** What this caller may do with Work agents. */
1370
+ export interface WorkAgentPolicy {
1371
+ /** May create a private agent */
1372
+ can_create?: boolean | null;
1373
+ /** May create an organization-wide agent */
1374
+ can_share_organization?: boolean | null;
1375
+ [key: string]: unknown;
1376
+ }
1377
+
1378
+ /** One Work agent profile as the caller may see it. */
1379
+ export interface WorkAgentProfile {
1380
+ /** Agent id */
1381
+ agent_id?: string | null;
1382
+ /** Avatar glyph */
1383
+ avatar?: string | null;
1384
+ /** Whether this caller may edit it */
1385
+ can_edit?: boolean | null;
1386
+ /** Instructions */
1387
+ description?: string | null;
1388
+ /** Agent name */
1389
+ name?: string | null;
1390
+ /** Owner identity */
1391
+ owner_id?: string | null;
1392
+ /** Role */
1393
+ role?: string | null;
1394
+ /** Last edit time */
1395
+ updated_at?: string | null;
1396
+ /** Profile version; send it back to edit */
1397
+ version?: number | null;
1398
+ /** `private` or `organization` */
1399
+ visibility?: string | null;
1400
+ [key: string]: unknown;
1401
+ }
1402
+
1403
+ /** A versioned profile edit. Mirrors ``work.agent_profile_router.AgentProfileEdit``. */
1404
+ export interface WorkAgentProfileEditRequest {
1405
+ /** The `version` you read; a stale one is a 409 */
1406
+ expected_version: number;
1407
+ /** The full new profile */
1408
+ profile: WorkAgentProfileRequest;
1409
+ }
1410
+
1411
+ /** One page of visible Work agents. */
1412
+ export interface WorkAgentProfilePage {
1413
+ /** Agents on this page */
1414
+ items?: Array<WorkAgentProfile>;
1415
+ /** Pass as `after` for the next page */
1416
+ next_cursor?: string | null;
1417
+ }
1418
+
1419
+ /** A Work agent's profile. Mirrors ``work.agent_profiles.AgentProfileInput``. */
1420
+ export interface WorkAgentProfileRequest {
1421
+ /** Avatar glyph */
1422
+ avatar?: "spark" | "compass" | "chart" | "code" | "pen" | "search" | "shield" | "bolt";
1423
+ /** The agent's instructions */
1424
+ description: string;
1425
+ /** Agent name */
1426
+ name: string;
1427
+ /** Role shown beside the name */
1428
+ role?: string;
1429
+ /** `private` to its owner, or shared with the `organization` */
1430
+ visibility?: "private" | "organization";
1431
+ }
1432
+
1433
+ /** A short-lived download link for one attachment. */
1434
+ export interface WorkAttachmentLink {
1435
+ /** Stored attachment metadata */
1436
+ attachment?: Record<string, unknown>;
1437
+ /** Seconds until the URL stops working */
1438
+ expires_in: number;
1439
+ /** Time-limited download URL */
1440
+ url: string;
1441
+ }
1442
+
1443
+ /**
1444
+ * A channel of this organization the caller is not currently part of.
1445
+ *
1446
+ * An `open` channel carries its description and member count; a `private` one
1447
+ * answers with identity only, so nothing about the room itself leaks.
1448
+ */
1449
+ export interface WorkAvailableChannel {
1450
+ /** Present for `open` channels only */
1451
+ description?: string | null;
1452
+ /** Human-readable name */
1453
+ displayName?: string | null;
1454
+ /** Channel id */
1455
+ id?: string | null;
1456
+ /** Present for `open` channels only */
1457
+ memberCount?: number | null;
1458
+ /** Channel slug */
1459
+ name?: string | null;
1460
+ /** `open` or `private` */
1461
+ visibility?: string | null;
1462
+ [key: string]: unknown;
1463
+ }
1464
+
1465
+ /** The organization's channels the caller is not in. */
1466
+ export interface WorkAvailableChannelList {
1467
+ /** Channels the caller is not part of */
1468
+ channels?: Array<WorkAvailableChannel>;
1469
+ }
1470
+
1471
+ /** One channel's Canvas document. */
1472
+ export interface WorkCanvas {
1473
+ /** Channel the canvas belongs to */
1474
+ channelId?: string | null;
1475
+ /** Canvas content */
1476
+ content?: string | null;
1477
+ /** Current revision id */
1478
+ revisionId?: string | null;
1479
+ [key: string]: unknown;
1480
+ }
1481
+
1482
+ /**
1483
+ * One channel canvas replacement, by CONTENT.
1484
+ *
1485
+ * The channel is named by the path, the author by the session, the
1486
+ * idempotency key by the header — this body carries only the markdown. An
1487
+ * empty string is a legal canvas (it clears the document); the 100k ceiling
1488
+ * is the gateway's own. Server-owned fields are refused by name rather than
1489
+ * swallowed by `extra="forbid"`, matching every other Work write DTO: a
1490
+ * client that believes it is choosing the author must be told it is not.
1491
+ */
1492
+ export interface WorkCanvasSaveRequest {
1493
+ baseRevisionId?: string | null;
1494
+ content: string;
1495
+ }
1496
+
1497
+ /** One Work channel as the room stores it. */
1498
+ export interface WorkChannel {
1499
+ /** When the channel was archived, if it is */
1500
+ archivedAt?: string | null;
1501
+ /** Creation timestamp */
1502
+ createdAt?: string | null;
1503
+ /** Identity that created the channel */
1504
+ createdBy?: string | null;
1505
+ /** Channel description */
1506
+ description?: string | null;
1507
+ /** Human-readable name shown in the sidebar */
1508
+ displayName?: string | null;
1509
+ /** Channel id (uuid5 of `{org}:{name}` — the room address) */
1510
+ id?: string | null;
1511
+ /** `stream` or `forum` */
1512
+ kind?: string | null;
1513
+ /** Seated member identities */
1514
+ memberUserIds?: Array<string> | null;
1515
+ /** Slug, unique per organization. Renaming the display name never moves the room. */
1516
+ name?: string | null;
1517
+ /** Seated agent ids */
1518
+ participantAgentIds?: Array<string> | null;
1519
+ /** True for a built-in channel (`#work`, `#signals`) */
1520
+ system?: boolean | null;
1521
+ /** `open` (self-serve joinable) or `private` (invite only) */
1522
+ visibility?: string | null;
1523
+ [key: string]: unknown;
1524
+ }
1525
+
1526
+ /**
1527
+ * One channel a person is creating.
1528
+ *
1529
+ * Carries what the channel IS and who is seated in it — never who is creating
1530
+ * it. The creator, the organization and the signing identity all come from the
1531
+ * authenticated session in `work/router.py`, and `Idempotency-Key` comes from
1532
+ * the header. `SERVER_OWNED_MESSAGE_FIELDS` is reused verbatim for the refusal
1533
+ * because the danger is identical: `create_work_event` turns whatever
1534
+ * `actor_id`/`org_id` it is handed into the signing key AND the `g8_actor` /
1535
+ * `g8_org` tags.
1536
+ */
1537
+ export interface WorkChannelCreateRequest {
1538
+ description?: string | null;
1539
+ displayName?: string | null;
1540
+ kind?: "stream" | "forum";
1541
+ memberUserIds?: Array<string>;
1542
+ name: string;
1543
+ participantAgentIds?: Array<string>;
1544
+ /** One of `work/channel_templates.py`'s ids. Seats its specialists and seeds its Canvas. */
1545
+ templateId?: string | null;
1546
+ /** A Temporary channel's lifetime in seconds; absent means Permanent. */
1547
+ ttlSeconds?: number | null;
1548
+ visibility?: "open" | "private";
1549
+ }
1550
+
1551
+ export interface WorkChannelDeleteRequest {
1552
+ confirmationName: string;
1553
+ }
1554
+
1555
+ /** The channels this credential may read. */
1556
+ export interface WorkChannelList {
1557
+ /** Channels visible to the caller */
1558
+ channels?: Array<WorkChannel>;
1559
+ }
1560
+
1561
+ /**
1562
+ * The purpose one channel is being given, or `null` to clear it.
1563
+ *
1564
+ * Required-but-nullable on purpose: `{}` would be ambiguous between "clear it"
1565
+ * and "I forgot the field", and this operation reassigns state on channels the
1566
+ * caller did not name, so it may not act on an ambiguity.
1567
+ */
1568
+ export interface WorkChannelPurposeRequest {
1569
+ purpose: string | null;
1570
+ }
1571
+
1572
+ /**
1573
+ * The fields of one channel a person is changing.
1574
+ *
1575
+ * **Field PRESENCE is the contract, not field value.** An omitted field keeps
1576
+ * whatever the channel already has; a field present with `null` clears it
1577
+ * where clearing is meaningful (`description`) and is refused where it is not.
1578
+ * That is the port of the gateway's `Object.hasOwn(input, …)` checks, and it
1579
+ * is why `provided_fields` — not the values — is what the router hands the
1580
+ * service.
1581
+ */
1582
+ export interface WorkChannelSettingsRequest {
1583
+ agentResponsePolicy?: ("mention_required" | "proactive") | null;
1584
+ archived?: boolean | null;
1585
+ confirmAgentAccess?: boolean;
1586
+ description?: string | null;
1587
+ displayName?: string | null;
1588
+ memberUserIds?: Array<string>;
1589
+ participantAgentIds?: Array<string>;
1590
+ visibility?: ("open" | "private") | null;
1591
+ }
1592
+
1593
+ /** The result of one channel write, with its idempotent-replay marker. */
1594
+ export interface WorkChannelWriteResult {
1595
+ /** Present when `templateId` seeded a Canvas */
1596
+ canvasSeeded?: boolean | null;
1597
+ /** The channel as stored after the write */
1598
+ channel?: WorkChannel | null;
1599
+ /** True when an Idempotency-Key replay returned the original result */
1600
+ duplicate?: boolean | null;
1601
+ [key: string]: unknown;
1602
+ }
1603
+
1604
+ /**
1605
+ * One organization-wide custom emoji.
1606
+ *
1607
+ * The URL is constrained to `https:` on purpose and refused rather than
1608
+ * coerced. A custom emoji is rendered by every member's browser in every
1609
+ * channel that uses it, so an `http:` or `javascript:` URL here is not a
1610
+ * formatting problem — it is a stored payload with an audience.
1611
+ */
1612
+ export interface WorkCustomEmojiRequest {
1613
+ shortcode: string;
1614
+ url: string;
1615
+ }
1616
+
1617
+ /** The organization's custom emoji after one registration. */
1618
+ export interface WorkCustomEmojiResult {
1619
+ /** Every custom emoji the organization now has */
1620
+ customEmojis?: Array<Record<string, unknown>> | null;
1621
+ /** True when an Idempotency-Key replay returned the original result */
1622
+ duplicate?: boolean | null;
1623
+ /** The room event the write appended */
1624
+ event?: Record<string, unknown> | null;
1625
+ [key: string]: unknown;
1626
+ }
1627
+
1628
+ /** This principal's daily-brief schedule and, on a read, its delivery status. */
1629
+ export interface WorkDailyBriefSettings {
1630
+ /** The stored schedule */
1631
+ settings?: Record<string, unknown> | null;
1632
+ /** Delivery status (`latestBrief`, `lastBriefDate`, `nextDueAt`, `reason`). Returned on the read only; null on the write */
1633
+ status?: Record<string, unknown> | null;
1634
+ [key: string]: unknown;
1635
+ }
1636
+
1637
+ /**
1638
+ * When this person wants their daily brief.
1639
+ *
1640
+ * The timezone is the one field that is REFUSED rather than defaulted. A
1641
+ * brief is a scheduled send, and an unrecognised zone has no defensible
1642
+ * fallback: guessing UTC delivers somebody's morning brief at midnight,
1643
+ * silently, forever. `weekdays` and `localTime` do have a defensible default
1644
+ * (weekdays at 08:00) and take it, which is the gateway's split too.
1645
+ */
1646
+ export interface WorkDailyBriefSettingsRequest {
1647
+ enabled?: boolean;
1648
+ localTime?: string | null;
1649
+ timezone: string;
1650
+ weekdays?: Array<number> | null;
1651
+ }
1652
+
1653
+ /** One signed Work event from the conversation ledger. */
1654
+ export interface WorkEvent {
1655
+ /** Event creation time */
1656
+ created_at?: number | null;
1657
+ /** Event id */
1658
+ id?: string | null;
1659
+ /** Event kind number */
1660
+ kind?: number | null;
1661
+ [key: string]: unknown;
1662
+ }
1663
+
1664
+ /** One page of a conversation's chat events, newest first. */
1665
+ export interface WorkEventPage {
1666
+ /** True when the caller's own clear watermark hides everything older */
1667
+ cleared_behind?: boolean | null;
1668
+ /** The conversation these events belong to */
1669
+ conversation_id: string;
1670
+ /** Events the caller may read */
1671
+ events?: Array<WorkEvent>;
1672
+ /** Whether older stored rows remain */
1673
+ has_more?: boolean;
1674
+ /** Opaque cursor for the next page */
1675
+ next_cursor?: string | null;
1676
+ }
1677
+
1678
+ /** One conversation's Inbox state after a write. */
1679
+ export interface WorkInboxDisposition {
1680
+ /** The disposition as stored */
1681
+ disposition?: Record<string, unknown> | null;
1682
+ /** True when an Idempotency-Key replay returned the original result */
1683
+ duplicate?: boolean | null;
1684
+ [key: string]: unknown;
1685
+ }
1686
+
1687
+ /**
1688
+ * One conversation moving between the Inbox's three states.
1689
+ *
1690
+ * `latest_activity_at` is the conversation boundary the decision was made at,
1691
+ * not a timestamp of the decision: a newer inbound message must re-activate a
1692
+ * snoozed or archived conversation without erasing the record that somebody
1693
+ * once set it aside. That is why the state is stored per conversation rather
1694
+ * than as a flag on the conversation itself.
1695
+ */
1696
+ export interface WorkInboxDispositionRequest {
1697
+ channel: string;
1698
+ conversationKey: string;
1699
+ latestActivityAt: number;
1700
+ rootId: string;
1701
+ snoozedUntil?: string | null;
1702
+ state: "active" | "snoozed" | "archived";
1703
+ }
1704
+
1705
+ /** This principal's Inbox states, keyed by conversation. */
1706
+ export interface WorkInboxDispositions {
1707
+ /** Conversation key -> `active`, `snoozed` or `archived` */
1708
+ dispositions?: Record<string, unknown> | null;
1709
+ [key: string]: unknown;
1710
+ }
1711
+
1712
+ /** One unit of agent work on the All Work board. */
1713
+ export interface WorkItem {
1714
+ /** Due date, when one is set */
1715
+ dueAt?: string | null;
1716
+ /** Work item id */
1717
+ id?: string | null;
1718
+ /** Identity the item is assigned to */
1719
+ ownerUserId?: string | null;
1720
+ /** Priority band */
1721
+ priority?: string | null;
1722
+ /** Lifecycle status */
1723
+ status?: string | null;
1724
+ /** What the work is */
1725
+ title?: string | null;
1726
+ [key: string]: unknown;
1727
+ }
1728
+
1729
+ /** A page of work items. */
1730
+ export interface WorkItemList {
1731
+ /** Work items visible to the caller */
1732
+ work_items?: Array<WorkItem>;
1733
+ }
1734
+
1735
+ /** Replace one memory topic. Mirrors ``work.memory_router.MemoryEdit``. */
1736
+ export interface WorkMemoryEditRequest {
1737
+ /** Required for, and only for, `agent` scope */
1738
+ agent_id?: string | null;
1739
+ /** The new content */
1740
+ content: string;
1741
+ /** The `revision` you read, or null when the topic is new */
1742
+ expected_revision: string | null;
1743
+ /** `personal`, `agent` or `team` */
1744
+ scope?: "personal" | "agent" | "team";
1745
+ /** The topic to replace */
1746
+ topic: "profile" | "goals" | "decisions" | "feedback" | "corrections" | "entities";
1747
+ }
1748
+
1749
+ /** Move one topic between scopes. Mirrors ``work.memory_router.MemoryMove``. */
1750
+ export interface WorkMemoryMoveRequest {
1751
+ /** Where it should go */
1752
+ destination: WorkMemoryScope;
1753
+ /** The destination topic's revision, or null when it is empty */
1754
+ destination_revision: string | null;
1755
+ /** Where the topic is now */
1756
+ source: WorkMemoryScope;
1757
+ /** The source topic's current revision */
1758
+ source_revision: string;
1759
+ /** The topic to move */
1760
+ topic: "profile" | "goals" | "decisions" | "feedback" | "corrections" | "entities";
1761
+ }
1762
+
1763
+ /** One memory topic. */
1764
+ export interface WorkMemoryNote {
1765
+ /** Content */
1766
+ content?: string | null;
1767
+ /** Revision; send it back to edit or move */
1768
+ revision?: string | null;
1769
+ /** Stored size */
1770
+ size_bytes?: number | null;
1771
+ /** Topic */
1772
+ topic?: string | null;
1773
+ /** Last write time */
1774
+ updated_at?: string | null;
1775
+ [key: string]: unknown;
1776
+ }
1777
+
1778
+ /** Every topic in one memory scope. */
1779
+ export interface WorkMemoryPage {
1780
+ /** The agent, for `agent` scope */
1781
+ agent_id?: string | null;
1782
+ /** Whether this caller may edit this scope */
1783
+ can_edit?: boolean | null;
1784
+ /** The topics */
1785
+ entries?: Array<WorkMemoryNote> | null;
1786
+ /** The scope read */
1787
+ scope?: string | null;
1788
+ [key: string]: unknown;
1789
+ }
1790
+
1791
+ /** Which memory to act on. Mirrors ``work.memory.MemorySelection``. */
1792
+ export interface WorkMemoryScope {
1793
+ /** Required for, and only for, `agent` scope */
1794
+ agent_id?: string | null;
1795
+ /** `personal`, `agent` or `team` */
1796
+ scope?: "personal" | "agent" | "team";
1797
+ }
1798
+
1799
+ /** One stored Work message. */
1800
+ export interface WorkMessage {
1801
+ /** Resolved author — always the authenticated principal, never a request field */
1802
+ author?: Record<string, unknown> | null;
1803
+ /** Conversation address — a channel NAME or a direct-message id */
1804
+ channel?: string | null;
1805
+ /** Creation timestamp */
1806
+ createdAt?: string | null;
1807
+ /** Rich-text document, normalized server-side */
1808
+ document?: Record<string, unknown> | null;
1809
+ /** Message id */
1810
+ id?: string | null;
1811
+ /** Plain-text projection of the document */
1812
+ text?: string | null;
1813
+ [key: string]: unknown;
1814
+ }
1815
+
1816
+ /**
1817
+ * One message a person is sending into a Work channel.
1818
+ *
1819
+ * Carries what is being said and where — never who is saying it. The author,
1820
+ * the organization and the signing identity all come from the authenticated
1821
+ * session in `work/router.py`; `Idempotency-Key` comes from the header.
1822
+ */
1823
+ export interface WorkMessageCreateRequest {
1824
+ attachmentIds?: Array<string>;
1825
+ channel: string;
1826
+ document?: Record<string, unknown> | null;
1827
+ mentionAgentIds?: Array<string>;
1828
+ mentionUserIds?: Array<string>;
1829
+ message?: string | null;
1830
+ parentMessageId?: string | null;
1831
+ projectId?: string | null;
1832
+ rootMessageId?: string | null;
1833
+ }
1834
+
1835
+ /** New words for a message the caller wrote. Never who wrote it, or where. */
1836
+ export interface WorkMessageEditRequest {
1837
+ document?: Record<string, unknown> | null;
1838
+ expected_revision?: number;
1839
+ text?: string | null;
1840
+ }
1841
+
1842
+ export interface WorkMessageForwardRequest {
1843
+ channel: string;
1844
+ }
1845
+
1846
+ /** One page of a conversation's messages, newest first. */
1847
+ export interface WorkMessagePage {
1848
+ /** True when the caller's own clear watermark hides everything older */
1849
+ cleared_behind?: boolean | null;
1850
+ /** The conversation these messages belong to */
1851
+ conversation_id: string;
1852
+ /** Whether older stored rows remain */
1853
+ has_more?: boolean;
1854
+ /** Messages the caller may read */
1855
+ messages?: Array<WorkMessage>;
1856
+ /** Opaque cursor for the next page */
1857
+ next_cursor?: string | null;
1858
+ }
1859
+
1860
+ export interface WorkMessageReactionRequest {
1861
+ active: boolean;
1862
+ emoji: string;
1863
+ }
1864
+
1865
+ /**
1866
+ * What needs a person: approvals, blocked work and unattended fixes.
1867
+ *
1868
+ * Each group carries its own state, so one failed read never blanks the others
1869
+ * and an empty list always says which of "nothing here", "we could not find
1870
+ * out" and "nothing is recorded for this workspace" it means.
1871
+ */
1872
+ export type WorkOversight = Record<string, unknown>;
1873
+
1874
+ /** One project: a named unit of work attached to a channel. */
1875
+ export interface WorkProject {
1876
+ /** Channel the project belongs to */
1877
+ channel?: string | null;
1878
+ /** Ownership identity of whoever created it */
1879
+ createdBy?: string | null;
1880
+ /** Project description; null when cleared */
1881
+ description?: string | null;
1882
+ /** Project id, minted server-side */
1883
+ id?: string | null;
1884
+ /** Project name */
1885
+ name?: string | null;
1886
+ /** `active`, `paused`, `completed` or `archived` */
1887
+ status?: string | null;
1888
+ [key: string]: unknown;
1889
+ }
1890
+
1891
+ /**
1892
+ * One project a person is creating, in one channel.
1893
+ *
1894
+ * `channel` is the channel NAME — a project belongs to a room, and the room
1895
+ * decides who may create one. The identifier is minted server-side and the
1896
+ * creator comes from the session; `SERVER_OWNED_MESSAGE_FIELDS` refuses a
1897
+ * body that tries to assert either, by name rather than by `extra="forbid"`.
1898
+ */
1899
+ export interface WorkProjectCreateRequest {
1900
+ channel: string;
1901
+ description?: string | null;
1902
+ name: string;
1903
+ status?: "active" | "paused" | "completed" | "archived";
1904
+ }
1905
+
1906
+ /** Auditable project tombstone input. */
1907
+ export interface WorkProjectDeleteRequest {
1908
+ reason?: string;
1909
+ }
1910
+
1911
+ /** A project tombstone readback. What survives is named, not implied. */
1912
+ export interface WorkProjectDeleted {
1913
+ /** Action receipts KEPT, for the same reason */
1914
+ action_receipts_preserved?: number | null;
1915
+ /** True once the tombstone is in place */
1916
+ deleted?: boolean | null;
1917
+ /** When the tombstone was written */
1918
+ deleted_at?: string | null;
1919
+ /** Messages KEPT: deleting a project does not delete its conversation */
1920
+ messages_preserved?: number | null;
1921
+ /** The project that was tombstoned */
1922
+ project_id?: string | null;
1923
+ [key: string]: unknown;
1924
+ }
1925
+
1926
+ /**
1927
+ * One project being changed. Field PRESENCE is the contract.
1928
+ *
1929
+ * `channel` is absent on purpose: a project's channel is where its messages
1930
+ * and receipts already point, so moving one would strand them. Renaming,
1931
+ * re-describing and moving its status are what this accepts.
1932
+ */
1933
+ export interface WorkProjectUpdateRequest {
1934
+ description?: string | null;
1935
+ name?: string | null;
1936
+ status?: ("active" | "paused" | "completed" | "archived") | null;
1937
+ }
1938
+
1939
+ /** The result of one project write, with its idempotent-replay marker. */
1940
+ export interface WorkProjectWriteResult {
1941
+ /** Id of the room event the write appended */
1942
+ compatibilityEventId?: string | null;
1943
+ /** True when an Idempotency-Key replay returned the original result rather than writing again */
1944
+ duplicate?: boolean | null;
1945
+ /** The project as stored after the write */
1946
+ project?: WorkProject | null;
1947
+ [key: string]: unknown;
1948
+ }
1949
+
1950
+ /** One posted pulse update. */
1951
+ export interface WorkPulseNote {
1952
+ /** True when an Idempotency-Key replay returned the original result */
1953
+ duplicate?: boolean | null;
1954
+ /** The room event carrying the note */
1955
+ event?: Record<string, unknown> | null;
1956
+ [key: string]: unknown;
1957
+ }
1958
+
1959
+ /** One pulse update — the room's org-wide, channel-less status note. */
1960
+ export interface WorkPulseNoteRequest {
1961
+ content: string;
1962
+ replyToEventId?: string | null;
1963
+ }
1964
+
1965
+ /** The upvote that now stands on a pulse note. */
1966
+ export interface WorkPulseReaction {
1967
+ /** True when the request asked for the state already stored */
1968
+ duplicate?: boolean | null;
1969
+ /** The room event, or null when taking back an upvote nobody had left nothing to write */
1970
+ event?: Record<string, unknown> | null;
1971
+ /** The state that now stands */
1972
+ reacted?: boolean | null;
1973
+ [key: string]: unknown;
1974
+ }
1975
+
1976
+ /**
1977
+ * Upvote one pulse note, or take the upvote back.
1978
+ *
1979
+ * `reacted` is the DESIRED state, not a toggle. A toggle would make the
1980
+ * outcome depend on what the client believed the current state was, which is
1981
+ * exactly the assumption two open tabs break; asserting the target state lets
1982
+ * the server short-circuit a request that asks for the state it is already in.
1983
+ */
1984
+ export interface WorkPulseReactionRequest {
1985
+ reacted: boolean;
1986
+ }
1987
+
1988
+ /**
1989
+ * How far this person has read ONE conversation.
1990
+ *
1991
+ * `last_read_at` is the conversation's `latestAt` boundary the reader was
1992
+ * shown, in unix seconds — the same clock `WorkInboxDispositionRequest`
1993
+ * keeps in `latest_activity_at` — not the instant they looked. A newer
1994
+ * inbound message therefore lights the badge again on its own: the
1995
+ * comparison is `latestAt > lastReadAt`, and nothing has to un-mark anything.
1996
+ *
1997
+ * Seconds are not a total order: `post_message` truncates event timestamps
1998
+ * to whole seconds, so a message that lands in the SAME second as the one
1999
+ * the reader saw would compare equal and pass as read. `last_read_id` — the
2000
+ * id of the newest message the reader was shown — is the tiebreaker: at an
2001
+ * equal second, only a matching id counts as read (Codex on #16589).
2002
+ */
2003
+ export interface WorkReadMarkerRequest {
2004
+ channel: string;
2005
+ conversationKey: string;
2006
+ lastReadAt: number;
2007
+ lastReadId?: string | null;
2008
+ rootId: string;
2009
+ }
2010
+
2011
+ /** This principal's read markers, keyed by conversation. */
2012
+ export interface WorkReadMarkers {
2013
+ /** Conversation key -> the point this principal has read to */
2014
+ markers?: Record<string, unknown> | null;
2015
+ [key: string]: unknown;
2016
+ }
2017
+
2018
+ /**
2019
+ * A batch of read markers — one request per room opened, not per thread.
2020
+ *
2021
+ * Opening a channel with four waiting threads reads all four at once; four
2022
+ * round trips racing one read-modify-write of the same JSONB value is the
2023
+ * write pattern the org lock exists to serialize, so the batch is the unit.
2024
+ * Bounded so a runaway client cannot hand the server a map to merge.
2025
+ */
2026
+ export interface WorkReadMarkersRequest {
2027
+ markers: Array<WorkReadMarkerRequest>;
2028
+ }
2029
+
2030
+ /** The canonical Work room, scoped and bounded for whoever asked for it. */
2031
+ export interface WorkRoom {
2032
+ /** Agent roster available in this workspace */
2033
+ agents?: Array<Record<string, unknown>> | null;
2034
+ /** Per-collection counts of what the caller can see */
2035
+ counts?: Record<string, unknown> | null;
2036
+ /** Organization member directory, for turning an actor id into a name */
2037
+ members?: Array<Record<string, unknown>> | null;
2038
+ /** Channels, direct messages, messages, events and per-viewer state the caller may read */
2039
+ room?: Record<string, unknown> | null;
2040
+ /** What was left out of the bounded read, and the cursors to resume from */
2041
+ truncation?: Record<string, unknown> | null;
2042
+ [key: string]: unknown;
2043
+ }
2044
+
2045
+ /** One scheduled or event-triggered Work routine. */
2046
+ export interface WorkRoutine {
2047
+ /** Agent that runs the routine */
2048
+ agentId?: string | null;
2049
+ /** Conversation the routine posts into */
2050
+ deliveryConversationId?: string | null;
2051
+ /** Whether the routine is active */
2052
+ enabled?: boolean | null;
2053
+ /** Routine id */
2054
+ id?: string | null;
2055
+ /** What the agent is asked to do each run */
2056
+ instruction?: string | null;
2057
+ /** When the routine last ran */
2058
+ lastRunAt?: string | null;
2059
+ /** How the last run ended */
2060
+ lastStatus?: string | null;
2061
+ /** Local run time, for `schedule` routines */
2062
+ localTime?: string | null;
2063
+ /** IANA timezone the local time is read in */
2064
+ timezone?: string | null;
2065
+ /** Routine title */
2066
+ title?: string | null;
2067
+ /** `schedule` or `event` */
2068
+ triggerKind?: string | null;
2069
+ /** Schedule weekdays (0-6), for `schedule` routines */
2070
+ weekdays?: Array<number> | null;
2071
+ [key: string]: unknown;
2072
+ }
2073
+
2074
+ /** One routine to create. Identity is never expressible here. */
2075
+ export interface WorkRoutineCreateRequest {
2076
+ /** Agent that runs the routine */
2077
+ agentId: string;
2078
+ /** Conversation the routine posts into; must be readable by the caller */
2079
+ deliveryConversationId: string;
2080
+ /** Whether the routine starts active */
2081
+ enabled?: boolean;
2082
+ /** Optional event-handling policy */
2083
+ eventPolicy?: Record<string, unknown> | null;
2084
+ /** What the agent is asked to do each run */
2085
+ instruction: string;
2086
+ /** Local run time `HH:MM`, for `schedule` routines */
2087
+ localTime?: string | null;
2088
+ /** IANA timezone the local time is read in */
2089
+ timezone?: string;
2090
+ /** What the routine is called */
2091
+ title: string;
2092
+ /** Trigger config, for `event` routines */
2093
+ trigger?: Record<string, unknown> | null;
2094
+ /** `schedule` or `event` */
2095
+ triggerKind?: string;
2096
+ /** Days to run on (0-6), for `schedule` routines */
2097
+ weekdays?: Array<number> | null;
2098
+ }
2099
+
2100
+ /** Confirmation that one routine is gone. */
2101
+ export interface WorkRoutineDeleted {
2102
+ /** Always true; the operation is idempotent */
2103
+ deleted?: boolean;
2104
+ /** The routine that was deleted */
2105
+ id: string;
2106
+ }
2107
+
2108
+ /** One routine, as the create and update operations return it. */
2109
+ export interface WorkRoutineEnvelope {
2110
+ /** The routine as stored after the write */
2111
+ routine: WorkRoutine;
2112
+ }
2113
+
2114
+ /** Every routine in this organization's workspace. */
2115
+ export interface WorkRoutineList {
2116
+ /** Routines, with recent event activity folded in */
2117
+ routines?: Array<WorkRoutine>;
2118
+ }
2119
+
2120
+ /** Changes to one routine. Omitted fields keep their stored value. */
2121
+ export interface WorkRoutinePatchRequest {
2122
+ /** Agent that runs the routine */
2123
+ agentId?: string | null;
2124
+ /** Re-point delivery; the new conversation must also be readable */
2125
+ deliveryConversationId?: string | null;
2126
+ /** Turn the routine on or off */
2127
+ enabled?: boolean | null;
2128
+ /** Optional event-handling policy */
2129
+ eventPolicy?: Record<string, unknown> | null;
2130
+ /** What the agent is asked to do each run */
2131
+ instruction?: string | null;
2132
+ /** Local run time `HH:MM` */
2133
+ localTime?: string | null;
2134
+ /** IANA timezone the local time is read in */
2135
+ timezone?: string | null;
2136
+ /** What the routine is called */
2137
+ title?: string | null;
2138
+ /** Trigger config, for `event` routines */
2139
+ trigger?: Record<string, unknown> | null;
2140
+ /** `schedule` or `event` */
2141
+ triggerKind?: string | null;
2142
+ /** Days to run on (0-6) */
2143
+ weekdays?: Array<number> | null;
2144
+ }
2145
+
2146
+ /** One entry in a routine's run ledger. */
2147
+ export interface WorkRoutineRun {
2148
+ /** Run id */
2149
+ id?: string | null;
2150
+ /** When the run started */
2151
+ startedAt?: string | null;
2152
+ /** How the run ended, or that it is still going */
2153
+ status?: string | null;
2154
+ [key: string]: unknown;
2155
+ }
2156
+
2157
+ /** The event-run ledger for one routine — telemetry only. */
2158
+ export interface WorkRoutineRunList {
2159
+ /** Runs, newest first */
2160
+ runs?: Array<WorkRoutineRun>;
2161
+ }
2162
+
2163
+ /** An optional sample event to run an `event` routine against. */
2164
+ export interface WorkRoutineRunNowRequest {
2165
+ /** Example event payload; treated as data, never as instructions. `event` routines only. */
2166
+ sampleEvent?: Record<string, unknown> | null;
2167
+ }
2168
+
2169
+ /**
2170
+ * A run-now receipt: what was posted, and where to watch it finish.
2171
+ *
2172
+ * The run is asynchronous — the instruction is posted immediately and the
2173
+ * agent answers in the background — so this returns the ledger id to poll
2174
+ * rather than the answer. ``status`` is ``running`` here and moves to ``ok``
2175
+ * or ``failed`` on the row this points at.
2176
+ */
2177
+ export interface WorkRoutineRunResult {
2178
+ /** Where it was posted */
2179
+ conversationId?: string | null;
2180
+ /** The message the run posted */
2181
+ messageId?: string | null;
2182
+ /** Ledger id of this manual run */
2183
+ runId?: string | null;
2184
+ /** Developer API path to poll for this run's outcome */
2185
+ runsPath?: string | null;
2186
+ /** When the run started */
2187
+ startedAt?: string | null;
2188
+ /** Always `running` on this response */
2189
+ status?: string | null;
2190
+ [key: string]: unknown;
2191
+ }
2192
+
2193
+ /** One search hit — a message or an event, with its conversation. */
2194
+ export interface WorkSearchHit {
2195
+ /** Conversation the hit belongs to */
2196
+ conversation?: string | null;
2197
+ /** Message or event id */
2198
+ id?: string | null;
2199
+ /** Matched text */
2200
+ text?: string | null;
2201
+ [key: string]: unknown;
2202
+ }
2203
+
2204
+ /** Everything this credential may read that matches the query. */
2205
+ export interface WorkSearchResults {
2206
+ /** Ranked hits, capped by the server maximum */
2207
+ hits?: Array<WorkSearchHit>;
2208
+ /** The query that was run, as the server normalized it */
2209
+ query: string;
2210
+ }
2211
+
2212
+ /** This principal's stored sidebar ordering. */
2213
+ export interface WorkSidebarPreferences {
2214
+ /** The ordering as stored */
2215
+ preferences?: Record<string, unknown> | null;
2216
+ [key: string]: unknown;
2217
+ }
2218
+
2219
+ /**
2220
+ * How this person wants their own sidebar ordered.
2221
+ *
2222
+ * Both halves are required and closed-vocabulary, exactly as
2223
+ * `normalizeSidebarSortMode` requires them (`index.ts:10838`): a partial
2224
+ * write would leave the other half at whatever a previous client wrote and
2225
+ * make the response a lie about the stored state.
2226
+ */
2227
+ export interface WorkSidebarPreferencesRequest {
2228
+ channels: "alpha" | "recent";
2229
+ directMessages: "alpha" | "recent";
2230
+ }
2231
+
2232
+ /** Turn one revenue signal into an accountable Work turn. */
2233
+ export interface WorkSignalPromoteRequest {
2234
+ signalEventId: string;
2235
+ }
2236
+
2237
+ /** The message a signal promotion sent into `#work`. */
2238
+ export interface WorkSignalPromoted {
2239
+ /** True when this signal had already been promoted */
2240
+ duplicate?: boolean | null;
2241
+ /** The stored message that carries the turn */
2242
+ message?: Record<string, unknown> | null;
2243
+ [key: string]: unknown;
2244
+ }
2245
+
2246
+ /** One revenue signal after being snoozed or dismissed. */
2247
+ export interface WorkSignalState {
2248
+ /** True when the signal already held the requested state */
2249
+ duplicate?: boolean | null;
2250
+ /** The room event the write appended */
2251
+ event?: Record<string, unknown> | null;
2252
+ [key: string]: unknown;
2253
+ }
2254
+
2255
+ /** Snooze or dismiss one revenue signal. */
2256
+ export interface WorkSignalStateRequest {
2257
+ action: "snooze" | "dismiss";
2258
+ signalEventId: string;
2259
+ }
2260
+
2261
+ /** Per-rep daily series behind the board's sparklines, deltas and streaks. */
2262
+ export interface WorkTeamHqHistory {
2263
+ /** The dates in the window, oldest first */
2264
+ days?: Array<string> | null;
2265
+ /** Per-rep series; null for a day that was not measured (a gap is not a zero) */
2266
+ reps?: Array<Record<string, unknown>> | null;
2267
+ /** `live`, `cached` or `unavailable` */
2268
+ source?: string | null;
2269
+ [key: string]: unknown;
2270
+ }
2271
+
2272
+ /** One Team HQ board over the organization's own SDR analytics. */
2273
+ export interface WorkTeamHqLeaderboard {
2274
+ /** Columns that failed to measure; absent from every row rather than zero */
2275
+ degradedMetrics?: Array<string> | null;
2276
+ /** When this response was built */
2277
+ generatedAt?: string | null;
2278
+ /** Per role-group goals, or null */
2279
+ goals?: Record<string, unknown> | null;
2280
+ /** When the rows were measured; null when unavailable */
2281
+ measuredAt?: string | null;
2282
+ /** `day` or `month` */
2283
+ period?: string | null;
2284
+ /** One row per rep */
2285
+ rows?: Array<Record<string, unknown>> | null;
2286
+ /** `live`, `cached`, `partial` or `unavailable` */
2287
+ source?: string | null;
2288
+ [key: string]: unknown;
2289
+ }
2290
+
2291
+ /** Team HQ ticker moments, newest first. */
2292
+ export interface WorkTickerEvents {
2293
+ /** Moments, newest first */
2294
+ events?: Array<Record<string, unknown>> | null;
2295
+ /** `live` for the receipts drill-down */
2296
+ source?: string | null;
2297
+ [key: string]: unknown;
2298
+ }