@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,234 @@
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.openSearch` (OpenSearch): 4 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<"opensearch_aggregate_opensearch_aggregate_post">;
9
+ *
10
+ * Reference with examples: openSearch.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.openSearch.<member>` -> the operationId it calls. */
15
+ export interface OpenSearchMembers {
16
+ opensearchAggregate: "opensearch_aggregate_opensearch_aggregate_post";
17
+ opensearchCount: "opensearch_count_opensearch_count_post";
18
+ opensearchResolve: "opensearch_resolve_opensearch_resolve_post";
19
+ opensearchSearch: "opensearch_search_opensearch_search_post";
20
+ }
21
+
22
+ /** Input and output of every `g8.api.openSearch` operation, keyed by operationId. */
23
+ export interface OpenSearchOperations {
24
+ /**
25
+ * POST /opensearch/aggregate
26
+ * Opensearch Aggregate
27
+ * tier: write · scope: search:write
28
+ */
29
+ opensearch_aggregate_opensearch_aggregate_post: {
30
+ input: {
31
+ headers?: {
32
+ "X-Target-Org-Id"?: string | null;
33
+ };
34
+ body: OpenSearchAggregateRequest;
35
+ };
36
+ output: ApiResponse_OpenSearchAggregateResponse_;
37
+ };
38
+ /**
39
+ * POST /opensearch/count
40
+ * Opensearch Count
41
+ * tier: write · scope: search:write
42
+ */
43
+ opensearch_count_opensearch_count_post: {
44
+ input: {
45
+ headers?: {
46
+ "X-Target-Org-Id"?: string | null;
47
+ };
48
+ body: OpenSearchCountRequest;
49
+ };
50
+ output: ApiResponse_OpenSearchCountResponse_;
51
+ };
52
+ /**
53
+ * POST /opensearch/resolve
54
+ * Opensearch Resolve
55
+ * tier: write · scope: search:write
56
+ */
57
+ opensearch_resolve_opensearch_resolve_post: {
58
+ input: {
59
+ headers?: {
60
+ "X-Target-Org-Id"?: string | null;
61
+ };
62
+ body: OpenSearchResolveRequest;
63
+ };
64
+ output: ApiResponse_OpenSearchResolveResponse_;
65
+ };
66
+ /**
67
+ * POST /opensearch/search
68
+ * Opensearch Search
69
+ * tier: write · scope: search:write
70
+ */
71
+ opensearch_search_opensearch_search_post: {
72
+ input: {
73
+ headers?: {
74
+ "X-Target-Org-Id"?: string | null;
75
+ };
76
+ body: OpenSearchSearchRequest;
77
+ };
78
+ output: ApiResponse_OpenSearchSearchResponse_;
79
+ };
80
+ }
81
+
82
+ // 16 schemas referenced above (the same as G8Contract.<Name>).
83
+
84
+ export interface ApiResponse_OpenSearchAggregateResponse_ {
85
+ data: OpenSearchAggregateResponse;
86
+ pagination?: PaginationMeta | null;
87
+ }
88
+
89
+ export interface ApiResponse_OpenSearchCountResponse_ {
90
+ data: OpenSearchCountResponse;
91
+ pagination?: PaginationMeta | null;
92
+ }
93
+
94
+ export interface ApiResponse_OpenSearchResolveResponse_ {
95
+ data: OpenSearchResolveResponse;
96
+ pagination?: PaginationMeta | null;
97
+ }
98
+
99
+ export interface ApiResponse_OpenSearchSearchResponse_ {
100
+ data: OpenSearchSearchResponse;
101
+ pagination?: PaginationMeta | null;
102
+ }
103
+
104
+ export interface OpenSearchAggGroup {
105
+ /** Metric values keyed by alias, e.g. {"count": 1247, "unique_domains": 1184}. */
106
+ agg?: Record<string, unknown>;
107
+ /** The group-by field values for this group, e.g. {"COMPANY_NAICS": "3311", "COMPANY_STATE": "OH"}. */
108
+ key?: Record<string, unknown>;
109
+ }
110
+
111
+ /**
112
+ * A single aggregate metric over the grouped rows.
113
+ *
114
+ * ``count`` needs no field (it is the bucket doc count). All other functions
115
+ * require ``field``. ``alias`` keys the value in each group's ``agg`` map;
116
+ * it defaults to ``function`` when omitted (so two same-function metrics must
117
+ * each carry a distinct ``alias``).
118
+ */
119
+ export interface OpenSearchAggSpec {
120
+ /** Output key for this metric in each group's `agg` map. Defaults to `function`. */
121
+ alias?: string | null;
122
+ /** RAW UPPERCASE field the metric runs over. Required for every function except `count`. For unique-company counts use uniqExact on COMPANY_ID (the index is contact-grained). */
123
+ field?: string | null;
124
+ /** count=doc count per group; uniqExact=cardinality (HLL-approximate); sum/avg/min/max=numeric metric over `field`. */
125
+ function?: "count" | "uniqExact" | "sum" | "avg" | "min" | "max";
126
+ }
127
+
128
+ /**
129
+ * Generic, allowlist-bounded GROUP BY over a whitelisted mashup index.
130
+ *
131
+ * Translates to nested OpenSearch ``terms`` aggregations (one level per
132
+ * ``group_by`` field) with metric sub-aggregations. ``having`` / ``sort`` /
133
+ * ``limit`` are applied to the flattened groups server-side. Counts from
134
+ * ``terms`` buckets / ``cardinality`` are APPROXIMATE on a sharded index.
135
+ */
136
+ export interface OpenSearchAggregateRequest {
137
+ /** Metrics to compute per group (max 10). Defaults to a single `count` when omitted. */
138
+ agg?: Array<OpenSearchAggSpec> | null;
139
+ /** Pre-aggregation equality filters, identical semantics to /opensearch/search. RAW UPPERCASE field names. */
140
+ filters?: Record<string, unknown>;
141
+ /** 1-3 RAW UPPERCASE keyword fields to group on (e.g. ["COMPANY_NAICS", "COMPANY_STATE"]). Must be keyword-type fields -- the canonical COMPANY_* firmographics are. Capped at 3 dimensions to bound cluster cost. ORDER HIGHEST-CARDINALITY FIRST: deeper dimensions get smaller per-level bucket caps (1000 / 100 / 20), so a low-cardinality field placed last keeps full fidelity while a high-cardinality field placed last may be truncated. */
142
+ group_by: Array<string>;
143
+ /** Post-aggregation group filter keyed by metric alias, e.g. {"count": {"gte": 50}}. Operators: eq, gte, lte, gt, lt. */
144
+ having?: Record<string, Record<string, number>> | null;
145
+ /** Logical index to aggregate. Maps to a whitelisted physical alias. */
146
+ index: "mashup_contacts" | "mashup_companies" | "hem2contact" | "ip2company";
147
+ /** Max number of groups returned (after having + sort). Hard-capped at 1000. */
148
+ limit?: number;
149
+ /** Sort the returned groups by a metric alias, e.g. [{"count": "desc"}]. Applied after `having`. */
150
+ sort?: Array<Record<string, string>> | null;
151
+ }
152
+
153
+ export interface OpenSearchAggregateResponse {
154
+ groups?: Array<OpenSearchAggGroup>;
155
+ index: string;
156
+ took_ms?: number;
157
+ total_groups?: number;
158
+ }
159
+
160
+ /**
161
+ * Exact-count request. Same ``index`` + ``filters`` shape as search; the
162
+ * page-oriented fields (fields/sort/limit/cursor) are intentionally absent
163
+ * because a count returns no rows.
164
+ */
165
+ export interface OpenSearchCountRequest {
166
+ /** Field equality filters, identical semantics to /opensearch/search. Scalar -> term, list -> terms (OR). RAW UPPERCASE field names (e.g. COMPANY_INDUSTRY, COMPANY_NAICS, COMPANY_COUNTRY). */
167
+ filters?: Record<string, unknown>;
168
+ /** Logical index to count. Maps to a whitelisted physical alias. */
169
+ index: "mashup_contacts" | "mashup_companies" | "hem2contact" | "ip2company";
170
+ }
171
+
172
+ export interface OpenSearchCountResponse {
173
+ count?: number;
174
+ index: string;
175
+ }
176
+
177
+ export interface OpenSearchHit {
178
+ id: string;
179
+ score?: number | null;
180
+ sort?: Array<unknown> | null;
181
+ source?: Record<string, unknown>;
182
+ }
183
+
184
+ export interface OpenSearchResolveRequest {
185
+ /** Up to 500 input IDs (HEMs or IPs). */
186
+ ids: Array<string>;
187
+ /** Which resolver path to use. */
188
+ kind: "hem_to_contact" | "ip_to_company";
189
+ }
190
+
191
+ export interface OpenSearchResolveResponse {
192
+ kind: string;
193
+ matched?: number;
194
+ requested?: number;
195
+ results?: Record<string, string | null>;
196
+ }
197
+
198
+ export interface OpenSearchSearchRequest {
199
+ /** search_after token returned from a prior page. Pair with `sort`. */
200
+ cursor?: Array<unknown> | null;
201
+ /** Optional projection. If omitted, returns the full _source. Pass a list to reduce payload size when the LLM only needs a few columns. */
202
+ fields?: Array<string> | null;
203
+ /** Field equality filters. Scalar value -> term, list -> terms (OR). Use this to narrow by COMPANY_DOMAIN, COMPANY_INDUSTRY, hem, etc. Field names are the RAW index fields (UPPERCASE, e.g. COMPANY_INDUSTRY) -- not the friendly snake_case names used by /search. */
204
+ filters?: Record<string, unknown>;
205
+ /** Logical index to search. Maps to a whitelisted physical alias. */
206
+ index: "mashup_contacts" | "mashup_companies" | "hem2contact" | "ip2company";
207
+ /** Hard-capped at 200. */
208
+ limit?: number;
209
+ /** Optional sort, list of `{field: 'asc'|'desc'}`. Required if you intend to paginate via cursor. */
210
+ sort?: Array<Record<string, string>> | null;
211
+ /** Exact-count ceiling for the returned `total`. OMIT for the default behaviour (OpenSearch saturates `total` at 10000). Pass an integer ceiling 1-1000000 (e.g. 100000) to get an exact `total` up to that bound in the SAME round trip as the page. For a count with no page payload prefer POST /opensearch/count. Does NOT lift the from+size pagination depth -- use `cursor` (search_after) for that. (0 is rejected: it would mean 'disable tracking' in OpenSearch, which is what omitting it does.) */
212
+ track_total_hits?: number | null;
213
+ }
214
+
215
+ export interface OpenSearchSearchResponse {
216
+ cursor?: Array<unknown> | null;
217
+ hits?: Array<OpenSearchHit>;
218
+ index: string;
219
+ took_ms?: number;
220
+ total?: number;
221
+ }
222
+
223
+ export interface PaginationMeta {
224
+ /** Whether there are more pages */
225
+ has_next: boolean;
226
+ /** Items per page */
227
+ limit: number;
228
+ /** 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. */
229
+ next_cursor?: string | null;
230
+ /** Current page number (1-indexed) */
231
+ page: number;
232
+ /** Total number of items */
233
+ total: number;
234
+ }
@@ -0,0 +1,297 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.openSearch`: OpenSearch
4
+
5
+ 4 operations (4 write).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.openSearch.*` 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: [openSearch.d.ts](openSearch.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`opensearchAggregate`](#op-opensearchaggregate) | `POST /api/v1/opensearch/aggregate` | write | `search:write` | Opensearch Aggregate |
26
+ | [`opensearchCount`](#op-opensearchcount) | `POST /api/v1/opensearch/count` | write | `search:write` | Opensearch Count |
27
+ | [`opensearchResolve`](#op-opensearchresolve) | `POST /api/v1/opensearch/resolve` | write | `search:write` | Opensearch Resolve |
28
+ | [`opensearchSearch`](#op-opensearchsearch) | `POST /api/v1/opensearch/search` | write | `search:write` | Opensearch Search |
29
+
30
+ ---
31
+
32
+ <a id="op-opensearchaggregate"></a>
33
+
34
+ ### `g8.api.openSearch.opensearchAggregate(input)`
35
+
36
+ **Opensearch Aggregate**
37
+
38
+ - HTTP: `POST /api/v1/opensearch/aggregate`
39
+ - operationId: `opensearch_aggregate_opensearch_aggregate_post` (also callable as `g8.api.call("opensearch_aggregate_opensearch_aggregate_post", input)`)
40
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
41
+ - API-key scope: `search:write`
42
+
43
+ Generic, allowlist-bounded GROUP BY over a whitelisted mashup index.
44
+
45
+ Translates ``group_by`` into nested OpenSearch ``terms`` aggregations with
46
+ metric sub-aggs, then applies ``having`` / ``sort`` / ``limit`` to the
47
+ flattened groups. This is the matrix-walk primitive for TAM design (e.g.
48
+ count companies by NAICS x state x employee band in one call).
49
+
50
+ Guardrails: group_by depth is capped at 3, per-level bucket size tapers by
51
+ depth (``_AGG_TERMS_SIZE_BY_DEPTH``), the agg list is capped at 10, and
52
+ returned groups at ``limit`` (<=1000). Counts from ``terms`` /
53
+ ``cardinality`` are APPROXIMATE on a sharded index. Since
54
+ ``mashup_companies``/``mashup_contacts`` share one contact-grained index,
55
+ use ``uniqExact`` on ``COMPANY_ID`` for true unique-company counts. Mashup
56
+ aggregations automatically apply the organization's deliverability policy.
57
+
58
+ **Input**
59
+
60
+ | Field | Type | Required | Description |
61
+ |---|---|---|---|
62
+ | `body` | `OpenSearchAggregateRequest` | yes | Request body; fields below. |
63
+
64
+ Body fields (`OpenSearchAggregateRequest`):
65
+
66
+ | Field | Type | Required | Description |
67
+ |---|---|---|---|
68
+ | `body.group_by` | `Array<string>` | yes | 1-3 RAW UPPERCASE keyword fields to group on (e.g. ["COMPANY_NAICS", "COMPANY_STATE"]). Must be keyword-type fields -- the canonical COMPANY_* firmographics are. Capped at 3 dimensions to bound cluster cost. ORDER HIGHEST-CARDINALITY FIRST: deeper dimensions get smaller per-level bucket caps (1000 / 100 / 20), so a low-cardinality field placed last keeps full fidelity while a high-cardinality fie… min items 1, max items 3 |
69
+ | `body.index` | `"mashup_contacts" \| "mashup_companies" \| "hem2contact" \| "ip2company"` | yes | Logical index to aggregate. Maps to a whitelisted physical alias. |
70
+ | `body.agg` | `Array<OpenSearchAggSpec> \| null` | no | Metrics to compute per group (max 10). Defaults to a single `count` when omitted. max items 10 |
71
+ | `body.filters` | `Record<string, unknown>` | no | Pre-aggregation equality filters, identical semantics to /opensearch/search. RAW UPPERCASE field names. |
72
+ | `body.having` | `Record<string, Record<string, number>> \| null` | no | Post-aggregation group filter keyed by metric alias, e.g. {"count": {"gte": 50}}. Operators: eq, gte, lte, gt, lt. |
73
+ | `body.limit` | `integer` | no | Max number of groups returned (after having + sort). Hard-capped at 1000. default `100`, min 1, max 1000 |
74
+ | `body.sort` | `Array<Record<string, string>> \| null` | no | Sort the returned groups by a metric alias, e.g. [{"count": "desc"}]. Applied after `having`. |
75
+
76
+ **Returns** `ApiResponse_OpenSearchAggregateResponse_`: the envelope `{ data: OpenSearchAggregateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
77
+
78
+ Other envelope fields: `pagination` (PaginationMeta).
79
+
80
+ `OpenSearchAggregateResponse` fields:
81
+
82
+ | Field | Type | Required | Description |
83
+ |---|---|---|---|
84
+ | `index` | `string` | yes | |
85
+ | `groups` | `Array<OpenSearchAggGroup>` | no | default `[]` |
86
+ | `took_ms` | `integer` | no | default `0` |
87
+ | `total_groups` | `integer` | no | default `0` |
88
+
89
+ **Example**
90
+
91
+ ```ts
92
+ const result = await g8.api.openSearch.opensearchAggregate({ body: { group_by: ["example"], index: "mashup_contacts" } });
93
+ ```
94
+
95
+ ---
96
+
97
+ <a id="op-opensearchcount"></a>
98
+
99
+ ### `g8.api.openSearch.opensearchCount(input)`
100
+
101
+ **Opensearch Count**
102
+
103
+ - HTTP: `POST /api/v1/opensearch/count`
104
+ - operationId: `opensearch_count_opensearch_count_post` (also callable as `g8.api.call("opensearch_count_opensearch_count_post", input)`)
105
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
106
+ - API-key scope: `search:write`
107
+
108
+ Exact match count for one of the whitelisted mashup indices.
109
+
110
+ Same ``index`` + ``filters`` shape as ``/opensearch/search`` but returns
111
+ only the count via the native OpenSearch ``_count`` API, so it is NOT
112
+ capped at the 10000 ``track_total_hits`` ceiling that ``/search``'s
113
+ ``total`` saturates at. This is the right call for TAM cell-sizing.
114
+
115
+ Note: ``mashup_companies`` and ``mashup_contacts`` are the same physical,
116
+ contact-grained index — a count over ``mashup_companies`` counts contact
117
+ rows, not unique companies. For a unique-company total use
118
+ ``/opensearch/aggregate`` with ``uniqExact`` on ``COMPANY_ID``. Mashup
119
+ counts automatically apply the organization's deliverability policy.
120
+
121
+ **Input**
122
+
123
+ | Field | Type | Required | Description |
124
+ |---|---|---|---|
125
+ | `body` | `OpenSearchCountRequest` | yes | Request body; fields below. |
126
+
127
+ Body fields (`OpenSearchCountRequest`):
128
+
129
+ | Field | Type | Required | Description |
130
+ |---|---|---|---|
131
+ | `body.index` | `"mashup_contacts" \| "mashup_companies" \| "hem2contact" \| "ip2company"` | yes | Logical index to count. Maps to a whitelisted physical alias. |
132
+ | `body.filters` | `Record<string, unknown>` | no | Field equality filters, identical semantics to /opensearch/search. Scalar -> term, list -> terms (OR). RAW UPPERCASE field names (e.g. COMPANY_INDUSTRY, COMPANY_NAICS, COMPANY_COUNTRY). |
133
+
134
+ **Returns** `ApiResponse_OpenSearchCountResponse_`: the envelope `{ data: OpenSearchCountResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
135
+
136
+ Other envelope fields: `pagination` (PaginationMeta).
137
+
138
+ `OpenSearchCountResponse` fields:
139
+
140
+ | Field | Type | Required | Description |
141
+ |---|---|---|---|
142
+ | `index` | `string` | yes | |
143
+ | `count` | `integer` | no | default `0` |
144
+
145
+ **Example**
146
+
147
+ ```ts
148
+ const result = await g8.api.openSearch.opensearchCount({ body: { index: "mashup_contacts" } });
149
+ ```
150
+
151
+ ---
152
+
153
+ <a id="op-opensearchresolve"></a>
154
+
155
+ ### `g8.api.openSearch.opensearchResolve(input)`
156
+
157
+ **Opensearch Resolve**
158
+
159
+ - HTTP: `POST /api/v1/opensearch/resolve`
160
+ - operationId: `opensearch_resolve_opensearch_resolve_post` (also callable as `g8.api.call("opensearch_resolve_opensearch_resolve_post", input)`)
161
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
162
+ - API-key scope: `search:write`
163
+
164
+ Bulk HEM -> CONTACT_ID or IP -> COMPANY_ID resolution.
165
+
166
+ Backed by the existing ``MashupService`` which already batches the OpenSearch
167
+ request in chunks of 10k. Returns a dense ``{input: matched_id | null}``
168
+ mapping so the caller can iterate the inputs without re-querying for misses.
169
+
170
+ **Input**
171
+
172
+ | Field | Type | Required | Description |
173
+ |---|---|---|---|
174
+ | `body` | `OpenSearchResolveRequest` | yes | Request body; fields below. |
175
+
176
+ Body fields (`OpenSearchResolveRequest`):
177
+
178
+ | Field | Type | Required | Description |
179
+ |---|---|---|---|
180
+ | `body.ids` | `Array<string>` | yes | Up to 500 input IDs (HEMs or IPs). min items 1, max items 500 |
181
+ | `body.kind` | `"hem_to_contact" \| "ip_to_company"` | yes | Which resolver path to use. |
182
+
183
+ **Returns** `ApiResponse_OpenSearchResolveResponse_`: the envelope `{ data: OpenSearchResolveResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
184
+
185
+ Other envelope fields: `pagination` (PaginationMeta).
186
+
187
+ `OpenSearchResolveResponse` fields:
188
+
189
+ | Field | Type | Required | Description |
190
+ |---|---|---|---|
191
+ | `kind` | `string` | yes | |
192
+ | `matched` | `integer` | no | default `0` |
193
+ | `requested` | `integer` | no | default `0` |
194
+ | `results` | `Record<string, string \| null>` | no | default `{}` |
195
+
196
+ **Example**
197
+
198
+ ```ts
199
+ const result = await g8.api.openSearch.opensearchResolve({ body: { ids: ["id"], kind: "hem_to_contact" } });
200
+ ```
201
+
202
+ ---
203
+
204
+ <a id="op-opensearchsearch"></a>
205
+
206
+ ### `g8.api.openSearch.opensearchSearch(input)`
207
+
208
+ **Opensearch Search**
209
+
210
+ - HTTP: `POST /api/v1/opensearch/search`
211
+ - operationId: `opensearch_search_opensearch_search_post` (also callable as `g8.api.call("opensearch_search_opensearch_search_post", input)`)
212
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
213
+ - API-key scope: `search:write`
214
+
215
+ Structured search across one of the whitelisted mashup OpenSearch indices.
216
+
217
+ Use this when the LLM needs to look up enriched person / company records
218
+ by attribute (domain, industry, country, hem). For the hot HEM-or-IP
219
+ resolve path, prefer ``/opensearch/resolve`` — it's a single round trip
220
+ and friendlier to cache. Contact/company mashup searches automatically
221
+ apply the authenticated organization's deliverability protection policy.
222
+
223
+ **Input**
224
+
225
+ | Field | Type | Required | Description |
226
+ |---|---|---|---|
227
+ | `body` | `OpenSearchSearchRequest` | yes | Request body; fields below. |
228
+
229
+ Body fields (`OpenSearchSearchRequest`):
230
+
231
+ | Field | Type | Required | Description |
232
+ |---|---|---|---|
233
+ | `body.index` | `"mashup_contacts" \| "mashup_companies" \| "hem2contact" \| "ip2company"` | yes | Logical index to search. Maps to a whitelisted physical alias. |
234
+ | `body.cursor` | `Array<unknown> \| null` | no | search_after token returned from a prior page. Pair with `sort`. |
235
+ | `body.fields` | `Array<string> \| null` | no | Optional projection. If omitted, returns the full _source. Pass a list to reduce payload size when the LLM only needs a few columns. |
236
+ | `body.filters` | `Record<string, unknown>` | no | Field equality filters. Scalar value -> term, list -> terms (OR). Use this to narrow by COMPANY_DOMAIN, COMPANY_INDUSTRY, hem, etc. Field names are the RAW index fields (UPPERCASE, e.g. COMPANY_INDUSTRY) -- not the friendly snake_case names used by /search. |
237
+ | `body.limit` | `integer` | no | Hard-capped at 200. default `50`, min 1, max 200 |
238
+ | `body.sort` | `Array<Record<string, string>> \| null` | no | Optional sort, list of `{field: 'asc'\|'desc'}`. Required if you intend to paginate via cursor. |
239
+ | `body.track_total_hits` | `integer \| null` | no | Exact-count ceiling for the returned `total`. OMIT for the default behaviour (OpenSearch saturates `total` at 10000). Pass an integer ceiling 1-1000000 (e.g. 100000) to get an exact `total` up to that bound in the SAME round trip as the page. For a count with no page payload prefer POST /opensearch/count. Does NOT lift the from+size pagination depth -- use `cursor` (search_after) for that. (0 is… min 1, max 1000000 |
240
+
241
+ **Returns** `ApiResponse_OpenSearchSearchResponse_`: the envelope `{ data: OpenSearchSearchResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
242
+
243
+ Other envelope fields: `pagination` (PaginationMeta).
244
+
245
+ `OpenSearchSearchResponse` fields:
246
+
247
+ | Field | Type | Required | Description |
248
+ |---|---|---|---|
249
+ | `index` | `string` | yes | |
250
+ | `cursor` | `Array<unknown> \| null` | no | |
251
+ | `hits` | `Array<OpenSearchHit>` | no | default `[]` |
252
+ | `took_ms` | `integer` | no | default `0` |
253
+ | `total` | `integer` | no | default `0` |
254
+
255
+ **Example**
256
+
257
+ ```ts
258
+ const result = await g8.api.openSearch.opensearchSearch({ body: { index: "mashup_contacts" } });
259
+ ```
260
+
261
+ ---
262
+
263
+ ## Referenced types
264
+
265
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
266
+
267
+ <a id="type-opensearchagggroup"></a>
268
+
269
+ ### `OpenSearchAggGroup`
270
+
271
+ | Field | Type | Required | Description |
272
+ |---|---|---|---|
273
+ | `agg` | `Record<string, unknown>` | no | Metric values keyed by alias, e.g. {"count": 1247, "unique_domains": 1184}. |
274
+ | `key` | `Record<string, unknown>` | no | The group-by field values for this group, e.g. {"COMPANY_NAICS": "3311", "COMPANY_STATE": "OH"}. |
275
+
276
+ <a id="type-opensearchaggspec"></a>
277
+
278
+ ### `OpenSearchAggSpec`
279
+
280
+ A single aggregate metric over the grouped rows. ``count`` needs no field (it is the bucket doc count). All other functions require ``field``. ``alias`` keys the value in each group's ``agg`` map; it defaults to ``function`` when omitted (so two same-function metrics must each carry a distinct ``alias``).
281
+
282
+ | Field | Type | Required | Description |
283
+ |---|---|---|---|
284
+ | `alias` | `string \| null` | no | Output key for this metric in each group's `agg` map. Defaults to `function`. |
285
+ | `field` | `string \| null` | no | RAW UPPERCASE field the metric runs over. Required for every function except `count`. For unique-company counts use uniqExact on COMPANY_ID (the index is contact-grained). |
286
+ | `function` | `"count" \| "uniqExact" \| "sum" \| "avg" \| "min" \| "max"` | no | count=doc count per group; uniqExact=cardinality (HLL-approximate); sum/avg/min/max=numeric metric over `field`. default `"count"` |
287
+
288
+ <a id="type-opensearchhit"></a>
289
+
290
+ ### `OpenSearchHit`
291
+
292
+ | Field | Type | Required | Description |
293
+ |---|---|---|---|
294
+ | `id` | `string` | yes | |
295
+ | `score` | `number \| null` | no | |
296
+ | `sort` | `Array<unknown> \| null` | no | |
297
+ | `source` | `Record<string, unknown>` | no | default `{}` |