@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,299 @@
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.ops` (Ops (internal, cross-tenant, read-only)): 5 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<"get_sequence_bindings_ops_orgs__org_id__linkedin_sequence_bindings_get">;
9
+ *
10
+ * Reference with examples: ops.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.ops.<member>` -> the operationId it calls. */
15
+ export interface OpsMembers {
16
+ getSequenceBindings: "get_sequence_bindings_ops_orgs__org_id__linkedin_sequence_bindings_get";
17
+ listLinkedinActions: "list_linkedin_actions_ops_orgs__org_id__linkedin_actions_get";
18
+ opsIndex: "ops_index_ops_get";
19
+ summarizeLinkedinActions: "summarize_linkedin_actions_ops_orgs__org_id__linkedin_actions_summary_get";
20
+ summarizeWebhookEvents: "summarize_webhook_events_ops_orgs__org_id__linkedin_webhook_events_get";
21
+ }
22
+
23
+ /** Input and output of every `g8.api.ops` operation, keyed by operationId. */
24
+ export interface OpsOperations {
25
+ /**
26
+ * GET /ops/orgs/{org_id}/linkedin/sequence-bindings
27
+ * Get Sequence Bindings
28
+ * tier: read · scope: ops:read
29
+ */
30
+ get_sequence_bindings_ops_orgs__org_id__linkedin_sequence_bindings_get: {
31
+ input: {
32
+ path: {
33
+ org_id: string;
34
+ };
35
+ headers?: {
36
+ "X-Target-Org-Id"?: string | null;
37
+ };
38
+ };
39
+ output: ApiResponse_OpsSequenceBindingsReport_;
40
+ };
41
+ /**
42
+ * GET /ops/orgs/{org_id}/linkedin/actions
43
+ * List Linkedin Actions
44
+ * tier: read · scope: ops:read
45
+ */
46
+ list_linkedin_actions_ops_orgs__org_id__linkedin_actions_get: {
47
+ input: {
48
+ path: {
49
+ org_id: string;
50
+ };
51
+ query?: {
52
+ /** QUEUED | SENDING | SENT | ACCEPTED | FAILED */
53
+ status?: string | null;
54
+ /** INVITE | MESSAGE */
55
+ kind?: string | null;
56
+ /** Sender arlink account id (lia_...) */
57
+ account_id?: string | null;
58
+ sequence_id?: string | null;
59
+ /** ISO timestamp; requested_at >= since */
60
+ since?: string | null;
61
+ /** ISO timestamp; requested_at < until */
62
+ until?: string | null;
63
+ page?: number;
64
+ limit?: number;
65
+ format?: "json" | "csv";
66
+ };
67
+ headers?: {
68
+ "X-Target-Org-Id"?: string | null;
69
+ };
70
+ };
71
+ output: ApiResponse_list_OpsActionRow__;
72
+ };
73
+ /**
74
+ * GET /ops
75
+ * Ops Index
76
+ * tier: read · scope: ops:read
77
+ */
78
+ ops_index_ops_get: {
79
+ input: {
80
+ headers?: {
81
+ "X-Target-Org-Id"?: string | null;
82
+ };
83
+ };
84
+ output: OpsIndex;
85
+ };
86
+ /**
87
+ * GET /ops/orgs/{org_id}/linkedin/actions/summary
88
+ * Summarize Linkedin Actions
89
+ * tier: read · scope: ops:read
90
+ */
91
+ summarize_linkedin_actions_ops_orgs__org_id__linkedin_actions_summary_get: {
92
+ input: {
93
+ path: {
94
+ org_id: string;
95
+ };
96
+ query?: {
97
+ format?: "json" | "csv";
98
+ };
99
+ headers?: {
100
+ "X-Target-Org-Id"?: string | null;
101
+ };
102
+ };
103
+ output: ApiResponse_list_OpsActionSummaryRow__;
104
+ };
105
+ /**
106
+ * GET /ops/orgs/{org_id}/linkedin/webhook-events
107
+ * Summarize Webhook Events
108
+ * tier: read · scope: ops:read
109
+ */
110
+ summarize_webhook_events_ops_orgs__org_id__linkedin_webhook_events_get: {
111
+ input: {
112
+ path: {
113
+ org_id: string;
114
+ };
115
+ query?: {
116
+ format?: "json" | "csv";
117
+ };
118
+ headers?: {
119
+ "X-Target-Org-Id"?: string | null;
120
+ };
121
+ };
122
+ output: ApiResponse_list_OpsWebhookEventSummary__;
123
+ };
124
+ }
125
+
126
+ // 13 schemas referenced above (the same as G8Contract.<Name>).
127
+
128
+ export interface ApiResponse_OpsSequenceBindingsReport_ {
129
+ data: OpsSequenceBindingsReport;
130
+ pagination?: PaginationMeta | null;
131
+ }
132
+
133
+ export interface ApiResponse_list_OpsActionRow__ {
134
+ data: Array<OpsActionRow>;
135
+ pagination?: PaginationMeta | null;
136
+ }
137
+
138
+ export interface ApiResponse_list_OpsActionSummaryRow__ {
139
+ data: Array<OpsActionSummaryRow>;
140
+ pagination?: PaginationMeta | null;
141
+ }
142
+
143
+ export interface ApiResponse_list_OpsWebhookEventSummary__ {
144
+ data: Array<OpsWebhookEventSummary>;
145
+ pagination?: PaginationMeta | null;
146
+ }
147
+
148
+ /** One `linkedin_action_queue` row with its full per-contact drill-down. */
149
+ export interface OpsActionRow {
150
+ action_id: string;
151
+ /** CONNECTION_REQUEST | MESSAGE */
152
+ action_type?: string | null;
153
+ attempts?: number;
154
+ budget_day?: string | null;
155
+ company_id?: number | null;
156
+ /** ~49% populated (company-enrichment gap) — never assume present. */
157
+ company_name?: string | null;
158
+ contact_current_step_order?: number | null;
159
+ /** PII */
160
+ contact_first_name?: string | null;
161
+ contact_id?: number | null;
162
+ /** PII */
163
+ contact_job_title?: string | null;
164
+ /** PII */
165
+ contact_last_name?: string | null;
166
+ /** PII */
167
+ contact_linkedin_url?: string | null;
168
+ /** seqsequencecontacts.state. `waiting_netrion` = parked with a live queue row outstanding. `skipped` = channel skip (e.g. no LinkedIn URL), NOT a send. */
169
+ contact_seq_state?: string | null;
170
+ /** PII; ~87% populated */
171
+ contact_work_email?: string | null;
172
+ /** Connection degree arlink observed; only set after a provider round-trip. */
173
+ degree_observed?: string | null;
174
+ due_at?: string | null;
175
+ /** COALESCE of the executed-step skip_reason (richer) and the queue row's last_error. `skipped_too_distant` = target not 1st/2nd-degree reachable — an ELIGIBILITY skip, not a provider error or account-health problem. */
176
+ failure_reason?: string | null;
177
+ /** INVITE | MESSAGE */
178
+ kind: string;
179
+ /** Rendered message body. Null for INVITE rows by design. */
180
+ message_text?: string | null;
181
+ /** Connection-request note, POST-RENDER. Null is the NORM for bare-invite plays (intentional strategy) — never report a null note as missing data. */
182
+ note?: string | null;
183
+ requested_at: string;
184
+ resolved_at?: string | null;
185
+ sender_account_id?: string | null;
186
+ sender_display_name?: string | null;
187
+ sender_public_identifier?: string | null;
188
+ sent_at?: string | null;
189
+ sequence_id?: string | null;
190
+ sequence_name?: string | null;
191
+ /** SEQUENCER | WORKFLOW | AI_INBOX */
192
+ source?: string | null;
193
+ /** QUEUED | SENDING | SENT | ACCEPTED | FAILED */
194
+ status: string;
195
+ step_id?: string | null;
196
+ /** Prospect LinkedIn slug (PII) */
197
+ target_identifier?: string | null;
198
+ }
199
+
200
+ /** One cell of the sequence × sender × kind × status matrix. */
201
+ export interface OpsActionSummaryRow {
202
+ account_id?: string | null;
203
+ count: number;
204
+ first_requested_at?: string | null;
205
+ kind: string;
206
+ last_requested_at?: string | null;
207
+ last_sent_at?: string | null;
208
+ sender_display_name?: string | null;
209
+ sequence_id?: string | null;
210
+ sequence_name?: string | null;
211
+ status: string;
212
+ }
213
+
214
+ /**
215
+ * Self-describing index so an LLM consumer can discover the surface
216
+ * without parsing the full OpenAPI document.
217
+ */
218
+ export interface OpsIndex {
219
+ description: string;
220
+ org_id_formats: string;
221
+ resources: Array<OpsIndexEntry>;
222
+ }
223
+
224
+ export interface OpsIndexEntry {
225
+ description: string;
226
+ path: string;
227
+ resource: string;
228
+ }
229
+
230
+ /** One live sequence↔sender binding (`channel_type='LINKEDIN_NETRION'`). */
231
+ export interface OpsSequenceBindingRow {
232
+ account_display_name?: string | null;
233
+ /** arlink lia_... id */
234
+ account_id?: string | null;
235
+ /** OK = healthy. Only `deletedAt IS NULL AND status='OK'` counts as connected. */
236
+ account_status?: string | null;
237
+ bound_at?: string | null;
238
+ channel_id?: number | null;
239
+ /** seqsequencecontacts states for this sequence. Absent state = 0. `waiting_netrion` is the in-flight park state. */
240
+ contact_state_counts?: Record<string, number>;
241
+ created_at?: string | null;
242
+ invite_daily_cap?: number | null;
243
+ is_archived?: boolean;
244
+ message_daily_cap?: number | null;
245
+ /** Internal team member (PII, low sensitivity) */
246
+ owner_email?: string | null;
247
+ paused_at?: string | null;
248
+ resumed_at?: string | null;
249
+ sender_public_identifier?: string | null;
250
+ sequence_id: string;
251
+ sequence_name?: string | null;
252
+ sequence_status?: string | null;
253
+ }
254
+
255
+ export interface OpsSequenceBindingsReport {
256
+ bound: Array<OpsSequenceBindingRow>;
257
+ unbound_live_sequences: Array<OpsUnboundSequenceRow>;
258
+ }
259
+
260
+ /**
261
+ * A live, non-archived sequence with a NETRION step but NO active channel
262
+ * binding — configured but can never send. This is the population behind
263
+ * 'connected but not sending'.
264
+ */
265
+ export interface OpsUnboundSequenceRow {
266
+ created_at?: string | null;
267
+ owner_email?: string | null;
268
+ sequence_id: string;
269
+ sequence_name?: string | null;
270
+ sequence_status?: string | null;
271
+ }
272
+
273
+ /**
274
+ * Per-event-type aggregate. The events table stores NO payload (dedupe
275
+ * ledger only) — to learn *what happened*, read the effects instead:
276
+ * `linkedin_action_queue.status` and the contact's sequencer state.
277
+ *
278
+ * `inbox.message_received` is NOT a sequence reply — only `lead.message_received`
279
+ * carries reply semantics. Never conflate the two counts.
280
+ */
281
+ export interface OpsWebhookEventSummary {
282
+ count: number;
283
+ event: string;
284
+ first_seen?: string | null;
285
+ last_seen?: string | null;
286
+ }
287
+
288
+ export interface PaginationMeta {
289
+ /** Whether there are more pages */
290
+ has_next: boolean;
291
+ /** Items per page */
292
+ limit: number;
293
+ /** 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. */
294
+ next_cursor?: string | null;
295
+ /** Current page number (1-indexed) */
296
+ page: number;
297
+ /** Total number of items */
298
+ total: number;
299
+ }
@@ -0,0 +1,339 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.ops`: Ops (internal, cross-tenant, read-only)
4
+
5
+ 5 operations (5 read).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.ops.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [ops.d.ts](ops.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`getSequenceBindings`](#op-getsequencebindings) | `GET /api/v1/ops/orgs/{org_id}/linkedin/sequence-bindings` | read | `ops:read` | Get Sequence Bindings |
26
+ | [`listLinkedinActions`](#op-listlinkedinactions) | `GET /api/v1/ops/orgs/{org_id}/linkedin/actions` | read | `ops:read` | List Linkedin Actions |
27
+ | [`opsIndex`](#op-opsindex) | `GET /api/v1/ops` | read | `ops:read` | Ops Index |
28
+ | [`summarizeLinkedinActions`](#op-summarizelinkedinactions) | `GET /api/v1/ops/orgs/{org_id}/linkedin/actions/summary` | read | `ops:read` | Summarize Linkedin Actions |
29
+ | [`summarizeWebhookEvents`](#op-summarizewebhookevents) | `GET /api/v1/ops/orgs/{org_id}/linkedin/webhook-events` | read | `ops:read` | Summarize Webhook Events |
30
+
31
+ ---
32
+
33
+ <a id="op-getsequencebindings"></a>
34
+
35
+ ### `g8.api.ops.getSequenceBindings(input)`
36
+
37
+ **Get Sequence Bindings**
38
+
39
+ - HTTP: `GET /api/v1/ops/orgs/{org_id}/linkedin/sequence-bindings`
40
+ - operationId: `get_sequence_bindings_ops_orgs__org_id__linkedin_sequence_bindings_get` (also callable as `g8.api.call("get_sequence_bindings_ops_orgs__org_id__linkedin_sequence_bindings_get", input)`)
41
+ - Tier: `read`: reads data; safe to call and to retry
42
+ - API-key scope: `ops:read`
43
+
44
+ Sequence↔LinkedIn-sender bindings for one org, plus the unbound list.
45
+
46
+ `unbound_live_sequences` is the high-signal field: a live sequence with a
47
+ LinkedIn step but no active binding is configured but can NEVER send —
48
+ the measured platform-wide root cause of 'connected but not sending'.
49
+
50
+ **Input**
51
+
52
+ | Field | Type | Required | Description |
53
+ |---|---|---|---|
54
+ | `path.org_id` | `string` | yes | |
55
+
56
+ **Returns** `ApiResponse_OpsSequenceBindingsReport_`: the envelope `{ data: OpsSequenceBindingsReport, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
57
+
58
+ Other envelope fields: `pagination` (PaginationMeta).
59
+
60
+ `OpsSequenceBindingsReport` fields:
61
+
62
+ | Field | Type | Required | Description |
63
+ |---|---|---|---|
64
+ | `bound` | `Array<OpsSequenceBindingRow>` | yes | |
65
+ | `unbound_live_sequences` | `Array<OpsUnboundSequenceRow>` | yes | |
66
+
67
+ **Example**
68
+
69
+ ```ts
70
+ const result = await g8.api.ops.getSequenceBindings({ path: { org_id: "id" } });
71
+ ```
72
+
73
+ ---
74
+
75
+ <a id="op-listlinkedinactions"></a>
76
+
77
+ ### `g8.api.ops.listLinkedinActions(input)`
78
+
79
+ **List Linkedin Actions**
80
+
81
+ - HTTP: `GET /api/v1/ops/orgs/{org_id}/linkedin/actions`
82
+ - operationId: `list_linkedin_actions_ops_orgs__org_id__linkedin_actions_get` (also callable as `g8.api.call("list_linkedin_actions_ops_orgs__org_id__linkedin_actions_get", input)`)
83
+ - Tier: `read`: reads data; safe to call and to retry
84
+ - API-key scope: `ops:read`
85
+
86
+ Per-contact LinkedIn action drill-down for one org, newest first.
87
+
88
+ Interpretation guide (so counts are reported truthfully):
89
+ - `failure_reason='skipped_too_distant'` (~90% of failures) = the target is
90
+ not 1st/2nd-degree reachable. An ELIGIBILITY skip — NOT a provider error,
91
+ rate limit, or account-health problem.
92
+ - `note` null is the NORM (bare-invite strategy), not missing data.
93
+ - A contact's `waiting_netrion` state = parked with this queue row in flight.
94
+
95
+ **Input**
96
+
97
+ | Field | Type | Required | Description |
98
+ |---|---|---|---|
99
+ | `path.org_id` | `string` | yes | |
100
+ | `query.status` | `string \| null` | no | QUEUED \| SENDING \| SENT \| ACCEPTED \| FAILED |
101
+ | `query.kind` | `string \| null` | no | INVITE \| MESSAGE |
102
+ | `query.account_id` | `string \| null` | no | Sender arlink account id (lia_...) |
103
+ | `query.sequence_id` | `string \| null` | no | |
104
+ | `query.since` | `string \| null` | no | ISO timestamp; requested_at >= since |
105
+ | `query.until` | `string \| null` | no | ISO timestamp; requested_at < until |
106
+ | `query.page` | `integer` | no | default `1` |
107
+ | `query.limit` | `integer` | no | default `100` |
108
+ | `query.format` | `"json" \| "csv"` | no | default `"json"` |
109
+
110
+ **Returns** `ApiResponse_list_OpsActionRow__`: the envelope `{ data: Array<OpsActionRow>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
111
+
112
+ Other envelope fields: `pagination` (PaginationMeta).
113
+
114
+ `OpsActionRow` fields:
115
+
116
+ | Field | Type | Required | Description |
117
+ |---|---|---|---|
118
+ | `action_id` | `string` | yes | |
119
+ | `kind` | `string` | yes | INVITE \| MESSAGE |
120
+ | `requested_at` | `string (date-time)` | yes | |
121
+ | `status` | `string` | yes | QUEUED \| SENDING \| SENT \| ACCEPTED \| FAILED |
122
+ | `action_type` | `string \| null` | no | CONNECTION_REQUEST \| MESSAGE |
123
+ | `attempts` | `integer` | no | default `0` |
124
+ | `budget_day` | `string \| null` | no | |
125
+ | `company_id` | `integer \| null` | no | |
126
+ | `company_name` | `string \| null` | no | ~49% populated (company-enrichment gap) — never assume present. |
127
+ | `contact_current_step_order` | `integer \| null` | no | |
128
+ | `contact_first_name` | `string \| null` | no | PII |
129
+ | `contact_id` | `integer \| null` | no | |
130
+ | `contact_job_title` | `string \| null` | no | PII |
131
+ | `contact_last_name` | `string \| null` | no | PII |
132
+ | `contact_linkedin_url` | `string \| null` | no | PII |
133
+ | `contact_seq_state` | `string \| null` | no | seqsequencecontacts.state. `waiting_netrion` = parked with a live queue row outstanding. `skipped` = channel skip (e.g. no LinkedIn URL), NOT a send. |
134
+ | `contact_work_email` | `string \| null` | no | PII; ~87% populated |
135
+ | `degree_observed` | `string \| null` | no | Connection degree arlink observed; only set after a provider round-trip. |
136
+ | `due_at` | `string (date-time) \| null` | no | |
137
+ | `failure_reason` | `string \| null` | no | COALESCE of the executed-step skip_reason (richer) and the queue row's last_error. `skipped_too_distant` = target not 1st/2nd-degree reachable — an ELIGIBILITY skip, not a provider error or account-health problem. |
138
+ | `message_text` | `string \| null` | no | Rendered message body. Null for INVITE rows by design. |
139
+ | `note` | `string \| null` | no | Connection-request note, POST-RENDER. Null is the NORM for bare-invite plays (intentional strategy) — never report a null note as missing data. |
140
+ | `resolved_at` | `string (date-time) \| null` | no | |
141
+ | `sender_account_id` | `string \| null` | no | |
142
+ | `sender_display_name` | `string \| null` | no | |
143
+ | `sender_public_identifier` | `string \| null` | no | |
144
+ | `sent_at` | `string (date-time) \| null` | no | |
145
+ | `sequence_id` | `string \| null` | no | |
146
+ | `sequence_name` | `string \| null` | no | |
147
+ | `source` | `string \| null` | no | SEQUENCER \| WORKFLOW \| AI_INBOX |
148
+ | `step_id` | `string \| null` | no | |
149
+ | `target_identifier` | `string \| null` | no | Prospect LinkedIn slug (PII) |
150
+
151
+ **Example**
152
+
153
+ ```ts
154
+ const result = await g8.api.ops.listLinkedinActions({ path: { org_id: "id" } });
155
+ ```
156
+
157
+ ---
158
+
159
+ <a id="op-opsindex"></a>
160
+
161
+ ### `g8.api.ops.opsIndex(input?)`
162
+
163
+ **Ops Index**
164
+
165
+ - HTTP: `GET /api/v1/ops`
166
+ - operationId: `ops_index_ops_get` (also callable as `g8.api.call("ops_index_ops_get", input)`)
167
+ - Tier: `read`: reads data; safe to call and to retry
168
+ - API-key scope: `ops:read`
169
+
170
+ Self-describing index of the ops surface — start here.
171
+
172
+ Every list endpoint also accepts `?format=csv` for a spreadsheet-ready
173
+ download. All endpoints are read-only.
174
+
175
+ **Input**: none.
176
+
177
+ **Returns** `OpsIndex`.
178
+
179
+ | Field | Type | Required | Description |
180
+ |---|---|---|---|
181
+ | `description` | `string` | yes | |
182
+ | `org_id_formats` | `string` | yes | |
183
+ | `resources` | `Array<OpsIndexEntry>` | yes | |
184
+
185
+ **Example**
186
+
187
+ ```ts
188
+ const result = await g8.api.ops.opsIndex();
189
+ ```
190
+
191
+ ---
192
+
193
+ <a id="op-summarizelinkedinactions"></a>
194
+
195
+ ### `g8.api.ops.summarizeLinkedinActions(input)`
196
+
197
+ **Summarize Linkedin Actions**
198
+
199
+ - HTTP: `GET /api/v1/ops/orgs/{org_id}/linkedin/actions/summary`
200
+ - operationId: `summarize_linkedin_actions_ops_orgs__org_id__linkedin_actions_summary_get` (also callable as `g8.api.call("summarize_linkedin_actions_ops_orgs__org_id__linkedin_actions_summary_get", input)`)
201
+ - Tier: `read`: reads data; safe to call and to retry
202
+ - API-key scope: `ops:read`
203
+
204
+ Sequence × sender × kind × status matrix — the at-a-glance volume view.
205
+
206
+ **Input**
207
+
208
+ | Field | Type | Required | Description |
209
+ |---|---|---|---|
210
+ | `path.org_id` | `string` | yes | |
211
+ | `query.format` | `"json" \| "csv"` | no | default `"json"` |
212
+
213
+ **Returns** `ApiResponse_list_OpsActionSummaryRow__`: the envelope `{ data: Array<OpsActionSummaryRow>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
214
+
215
+ Other envelope fields: `pagination` (PaginationMeta).
216
+
217
+ `OpsActionSummaryRow` fields:
218
+
219
+ | Field | Type | Required | Description |
220
+ |---|---|---|---|
221
+ | `count` | `integer` | yes | |
222
+ | `kind` | `string` | yes | |
223
+ | `status` | `string` | yes | |
224
+ | `account_id` | `string \| null` | no | |
225
+ | `first_requested_at` | `string (date-time) \| null` | no | |
226
+ | `last_requested_at` | `string (date-time) \| null` | no | |
227
+ | `last_sent_at` | `string (date-time) \| null` | no | |
228
+ | `sender_display_name` | `string \| null` | no | |
229
+ | `sequence_id` | `string \| null` | no | |
230
+ | `sequence_name` | `string \| null` | no | |
231
+
232
+ **Example**
233
+
234
+ ```ts
235
+ const result = await g8.api.ops.summarizeLinkedinActions({ path: { org_id: "id" } });
236
+ ```
237
+
238
+ ---
239
+
240
+ <a id="op-summarizewebhookevents"></a>
241
+
242
+ ### `g8.api.ops.summarizeWebhookEvents(input)`
243
+
244
+ **Summarize Webhook Events**
245
+
246
+ - HTTP: `GET /api/v1/ops/orgs/{org_id}/linkedin/webhook-events`
247
+ - operationId: `summarize_webhook_events_ops_orgs__org_id__linkedin_webhook_events_get` (also callable as `g8.api.call("summarize_webhook_events_ops_orgs__org_id__linkedin_webhook_events_get", input)`)
248
+ - Tier: `read`: reads data; safe to call and to retry
249
+ - API-key scope: `ops:read`
250
+
251
+ Inbound webhook event-type counts + first/last seen for one org.
252
+
253
+ The underlying table is a dedupe ledger — NO payload is stored, so this
254
+ endpoint cannot say *what* happened per event; read the effects instead
255
+ (action status via /actions, contact state via /sequence-bindings).
256
+ `inbox.message_received` explicitly EXCLUDES sequence-reply semantics; only
257
+ `lead.message_received` means a tracked lead replied.
258
+
259
+ **Input**
260
+
261
+ | Field | Type | Required | Description |
262
+ |---|---|---|---|
263
+ | `path.org_id` | `string` | yes | |
264
+ | `query.format` | `"json" \| "csv"` | no | default `"json"` |
265
+
266
+ **Returns** `ApiResponse_list_OpsWebhookEventSummary__`: the envelope `{ data: Array<OpsWebhookEventSummary>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
267
+
268
+ Other envelope fields: `pagination` (PaginationMeta).
269
+
270
+ `OpsWebhookEventSummary` fields:
271
+
272
+ | Field | Type | Required | Description |
273
+ |---|---|---|---|
274
+ | `count` | `integer` | yes | |
275
+ | `event` | `string` | yes | |
276
+ | `first_seen` | `string (date-time) \| null` | no | |
277
+ | `last_seen` | `string (date-time) \| null` | no | |
278
+
279
+ **Example**
280
+
281
+ ```ts
282
+ const result = await g8.api.ops.summarizeWebhookEvents({ path: { org_id: "id" } });
283
+ ```
284
+
285
+ ---
286
+
287
+ ## Referenced types
288
+
289
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
290
+
291
+ <a id="type-opsindexentry"></a>
292
+
293
+ ### `OpsIndexEntry`
294
+
295
+ | Field | Type | Required | Description |
296
+ |---|---|---|---|
297
+ | `description` | `string` | yes | |
298
+ | `path` | `string` | yes | |
299
+ | `resource` | `string` | yes | |
300
+
301
+ <a id="type-opssequencebindingrow"></a>
302
+
303
+ ### `OpsSequenceBindingRow`
304
+
305
+ One live sequence↔sender binding (`channel_type='LINKEDIN_NETRION'`).
306
+
307
+ | Field | Type | Required | Description |
308
+ |---|---|---|---|
309
+ | `sequence_id` | `string` | yes | |
310
+ | `account_display_name` | `string \| null` | no | |
311
+ | `account_id` | `string \| null` | no | arlink lia_... id |
312
+ | `account_status` | `string \| null` | no | OK = healthy. Only `deletedAt IS NULL AND status='OK'` counts as connected. |
313
+ | `bound_at` | `string (date-time) \| null` | no | |
314
+ | `channel_id` | `integer \| null` | no | |
315
+ | `contact_state_counts` | `Record<string, integer>` | no | seqsequencecontacts states for this sequence. Absent state = 0. `waiting_netrion` is the in-flight park state. |
316
+ | `created_at` | `string (date-time) \| null` | no | |
317
+ | `invite_daily_cap` | `integer \| null` | no | |
318
+ | `is_archived` | `boolean` | no | default `false` |
319
+ | `message_daily_cap` | `integer \| null` | no | |
320
+ | `owner_email` | `string \| null` | no | Internal team member (PII, low sensitivity) |
321
+ | `paused_at` | `string (date-time) \| null` | no | |
322
+ | `resumed_at` | `string (date-time) \| null` | no | |
323
+ | `sender_public_identifier` | `string \| null` | no | |
324
+ | `sequence_name` | `string \| null` | no | |
325
+ | `sequence_status` | `string \| null` | no | |
326
+
327
+ <a id="type-opsunboundsequencerow"></a>
328
+
329
+ ### `OpsUnboundSequenceRow`
330
+
331
+ A live, non-archived sequence with a NETRION step but NO active channel binding — configured but can never send. This is the population behind 'connected but not sending'.
332
+
333
+ | Field | Type | Required | Description |
334
+ |---|---|---|---|
335
+ | `sequence_id` | `string` | yes | |
336
+ | `created_at` | `string (date-time) \| null` | no | |
337
+ | `owner_email` | `string \| null` | no | |
338
+ | `sequence_name` | `string \| null` | no | |
339
+ | `sequence_status` | `string \| null` | no | |