@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,796 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.appPages`: App Pages
4
+
5
+ 16 operations (8 read, 6 write, 1 destructive, 1 billable).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.appPages.*` 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: [appPages.d.ts](appPages.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`chatEditAppPage`](#op-chateditapppage) | `POST /api/v1/app-pages/{page_id}/chat-edit` | write | `apps:write` | Chat Edit App Page |
26
+ | [`createAppPage`](#op-createapppage) | `POST /api/v1/app-pages` | write | `apps:write` | Create App Page |
27
+ | [`deleteAppPage`](#op-deleteapppage) | `DELETE /api/v1/app-pages/{page_id}` | destructive | `apps:delete` | Delete App Page |
28
+ | [`generateAppPage`](#op-generateapppage) | `POST /api/v1/app-pages/{page_id}/generate` | billable | `apps:run` | Generate App Page |
29
+ | [`getAppPage`](#op-getapppage) | `GET /api/v1/app-pages/{page_id}` | read | `apps:read` | Get App Page |
30
+ | [`getAppPageArtifact`](#op-getapppageartifact) | `GET /api/v1/app-pages/{page_id}/artifact` | read | `apps:read` | Get App Page Artifact |
31
+ | [`getAppPageStatus`](#op-getapppagestatus) | `GET /api/v1/app-pages/{page_id}/status` | read | `apps:read` | Get App Page Status |
32
+ | [`invokeAppPageAction`](#op-invokeapppageaction) | `POST /api/v1/app-pages/{page_id}/actions/{alias}/{action_name}` | write | `apps:write` | Invoke App Page Action |
33
+ | [`listAppPageActions`](#op-listapppageactions) | `GET /api/v1/app-pages/{page_id}/actions` | read | `apps:read` | List App Page Actions |
34
+ | [`listAppPageSourceInstances`](#op-listapppagesourceinstances) | `GET /api/v1/app-page-sources/{source_kind}/instances` | read | `apps:read` | List App Page Source Instances |
35
+ | [`listAppPageSourceKinds`](#op-listapppagesourcekinds) | `GET /api/v1/app-page-sources` | read | `apps:read` | List App Page Source Kinds |
36
+ | [`listAppPageVersions`](#op-listapppageversions) | `GET /api/v1/app-pages/{page_id}/versions` | read | `apps:read` | List App Page Versions |
37
+ | [`listAppPages`](#op-listapppages) | `GET /api/v1/app-pages` | read | `apps:read` | List App Pages |
38
+ | [`mintAppPageFrameSession`](#op-mintapppageframesession) | `POST /api/v1/app-pages/{page_id}/frame-session` | write | `apps:write` | Mint App Page Frame Session |
39
+ | [`replaceAppPageSources`](#op-replaceapppagesources) | `PUT /api/v1/app-pages/{page_id}/sources` | write | `apps:write` | Replace App Page Sources |
40
+ | [`restoreAppPageVersion`](#op-restoreapppageversion) | `POST /api/v1/app-pages/{page_id}/versions/{version_num}/restore` | write | `apps:write` | Restore App Page Version |
41
+
42
+ ---
43
+
44
+ <a id="op-chateditapppage"></a>
45
+
46
+ ### `g8.api.appPages.chatEditAppPage(input)`
47
+
48
+ **Chat Edit App Page**
49
+
50
+ - HTTP: `POST /api/v1/app-pages/{page_id}/chat-edit`
51
+ - operationId: `chat_edit_app_page_app_pages__page_id__chat_edit_post` (also callable as `g8.api.call("chat_edit_app_page_app_pages__page_id__chat_edit_post", input)`)
52
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
53
+ - API-key scope: `apps:write`
54
+
55
+ Change the page by describing the change. Billed and rate-capped.
56
+
57
+ An edit that would strip every live-data binding is refused: a page whose
58
+ data wiring is gone renders stale markup that still looks live, which is
59
+ worse than a failed edit. Each accepted edit snapshots a new version.
60
+
61
+ **Input**
62
+
63
+ | Field | Type | Required | Description |
64
+ |---|---|---|---|
65
+ | `path.page_id` | `string` | yes | |
66
+ | `body` | `AppPageChatEditRequest` | yes | Request body; fields below. |
67
+
68
+ Body fields (`AppPageChatEditRequest`):
69
+
70
+ | Field | Type | Required | Description |
71
+ |---|---|---|---|
72
+ | `body.instruction` | `string` | yes | min length 1, max length 2000 |
73
+
74
+ **Returns** `ApiResponse_AppPageChatEditResponse_`: the envelope `{ data: AppPageChatEditResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
75
+
76
+ Other envelope fields: `pagination` (PaginationMeta).
77
+
78
+ `AppPageChatEditResponse` fields:
79
+
80
+ | Field | Type | Required | Description |
81
+ |---|---|---|---|
82
+ | `edit_summary` | `string` | yes | |
83
+ | `page_id` | `string` | yes | |
84
+ | `version_num` | `integer` | yes | |
85
+ | `status` | `string` | no | default `"ready"` |
86
+
87
+ **Example**
88
+
89
+ ```ts
90
+ const result = await g8.api.appPages.chatEditAppPage({ path: { page_id: "id" }, body: { instruction: "example" } });
91
+ ```
92
+
93
+ ---
94
+
95
+ <a id="op-createapppage"></a>
96
+
97
+ ### `g8.api.appPages.createAppPage(input)`
98
+
99
+ **Create App Page**
100
+
101
+ - HTTP: `POST /api/v1/app-pages`
102
+ - operationId: `create_app_page_app_pages_post` (also callable as `g8.api.call("create_app_page_app_pages_post", input)`)
103
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
104
+ - API-key scope: `apps:write`
105
+
106
+ Create a page over one or more data sources.
107
+
108
+ Every source is validated against the connector registry BEFORE anything is
109
+ persisted, so a page can never reference a source that cannot be read.
110
+ 422 names the offending source rather than failing generically later.
111
+
112
+ **Input**
113
+
114
+ | Field | Type | Required | Description |
115
+ |---|---|---|---|
116
+ | `body` | `CreateAppPageRequest` | yes | Request body; fields below. |
117
+
118
+ Body fields (`CreateAppPageRequest`):
119
+
120
+ | Field | Type | Required | Description |
121
+ |---|---|---|---|
122
+ | `body.name` | `string` | yes | |
123
+ | `body.sources` | `Array<AppPageSourceDto>` | yes | At least one. A page with no data source can never be generated. min items 1 |
124
+ | `body.description` | `string \| null` | no | |
125
+
126
+ **Returns** `ApiResponse_CreatedAppPageResponse_`: the envelope `{ data: CreatedAppPageResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
127
+
128
+ Other envelope fields: `pagination` (PaginationMeta).
129
+
130
+ `CreatedAppPageResponse` fields:
131
+
132
+ | Field | Type | Required | Description |
133
+ |---|---|---|---|
134
+ | `page_id` | `string` | yes | |
135
+
136
+ **Example**
137
+
138
+ ```ts
139
+ const result = await g8.api.appPages.createAppPage({
140
+ body: {
141
+ name: "Example",
142
+ sources: [{ source_id: "id", source_kind: "example" }],
143
+ },
144
+ });
145
+ ```
146
+
147
+ ---
148
+
149
+ <a id="op-deleteapppage"></a>
150
+
151
+ ### `g8.api.appPages.deleteAppPage(input)`
152
+
153
+ **Delete App Page**
154
+
155
+ - HTTP: `DELETE /api/v1/app-pages/{page_id}`
156
+ - operationId: `delete_app_page_app_pages__page_id__delete` (also callable as `g8.api.call("delete_app_page_app_pages__page_id__delete", input)`)
157
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
158
+ - API-key scope: `apps:delete`
159
+
160
+ Delete a page. Its sources and version history go with it.
161
+
162
+ A real delete, unlike most of the app platform: a page is the builder's own
163
+ generated artifact rather than a record of something that happened, so there
164
+ is no audit reason to keep a tombstone.
165
+
166
+ **Input**
167
+
168
+ | Field | Type | Required | Description |
169
+ |---|---|---|---|
170
+ | `path.page_id` | `string` | yes | |
171
+
172
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
173
+
174
+ Other envelope fields: `pagination` (PaginationMeta).
175
+
176
+ **Example**
177
+
178
+ ```ts
179
+ // destructive: deletes or archives data; confirm with a human before calling.
180
+ const result = await g8.api.appPages.deleteAppPage({ path: { page_id: "id" } });
181
+ ```
182
+
183
+ ---
184
+
185
+ <a id="op-generateapppage"></a>
186
+
187
+ ### `g8.api.appPages.generateAppPage(input)`
188
+
189
+ **Generate App Page**
190
+
191
+ - HTTP: `POST /api/v1/app-pages/{page_id}/generate`
192
+ - operationId: `generate_app_page_app_pages__page_id__generate_post` (also callable as `g8.api.call("generate_app_page_app_pages__page_id__generate_post", input)`)
193
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
194
+ - API-key scope: `apps:run`
195
+
196
+ Generate the page from its sources. Asynchronous; poll `/status`.
197
+
198
+ Billed, and rate-capped per organization per day. The ordering behind this
199
+ (re-authorize every source before spend, consume the cap, mark generating,
200
+ enqueue, refund and mark failed on error) is shared with the internal surface
201
+ rather than reimplemented here.
202
+
203
+ 404 covers both an unknown page and a source that has become unreachable
204
+ since the page was created. Distinguishing them would let a caller probe
205
+ which sources exist.
206
+
207
+ **Input**
208
+
209
+ | Field | Type | Required | Description |
210
+ |---|---|---|---|
211
+ | `path.page_id` | `string` | yes | |
212
+ | `body` | `GenerateAppPageRequest` | yes | Request body; fields below. |
213
+
214
+ Body fields (`GenerateAppPageRequest`):
215
+
216
+ | Field | Type | Required | Description |
217
+ |---|---|---|---|
218
+ | `body.instruction` | `string \| null` | no | What the page should show. Free text; the generator composes every bound source. max length 2000 |
219
+
220
+ **Returns** `ApiResponse_GenerateAppPageResponse_`: the envelope `{ data: GenerateAppPageResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
221
+
222
+ Other envelope fields: `pagination` (PaginationMeta).
223
+
224
+ `GenerateAppPageResponse` fields:
225
+
226
+ | Field | Type | Required | Description |
227
+ |---|---|---|---|
228
+ | `page_id` | `string` | yes | |
229
+ | `job_id` | `string \| null` | no | |
230
+ | `status` | `string` | no | default `"generating"` |
231
+
232
+ **Example**
233
+
234
+ ```ts
235
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
236
+ const result = await g8.api.appPages.generateAppPage({ path: { page_id: "id" }, body: {} });
237
+ ```
238
+
239
+ ---
240
+
241
+ <a id="op-getapppage"></a>
242
+
243
+ ### `g8.api.appPages.getAppPage(input)`
244
+
245
+ **Get App Page**
246
+
247
+ - HTTP: `GET /api/v1/app-pages/{page_id}`
248
+ - operationId: `get_app_page_app_pages__page_id__get` (also callable as `g8.api.call("get_app_page_app_pages__page_id__get", input)`)
249
+ - Tier: `read`: reads data; safe to call and to retry
250
+ - API-key scope: `apps:read`
251
+
252
+ One page and its bound sources.
253
+
254
+ **Input**
255
+
256
+ | Field | Type | Required | Description |
257
+ |---|---|---|---|
258
+ | `path.page_id` | `string` | yes | |
259
+
260
+ **Returns** `ApiResponse_AppPageResponse_`: the envelope `{ data: AppPageResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
261
+
262
+ Other envelope fields: `pagination` (PaginationMeta).
263
+
264
+ `AppPageResponse` fields:
265
+
266
+ | Field | Type | Required | Description |
267
+ |---|---|---|---|
268
+ | `name` | `string` | yes | |
269
+ | `page_id` | `string` | yes | |
270
+ | `status` | `string` | yes | draft \| generating \| ready \| failed |
271
+ | `created_at` | `string (date-time) \| null` | no | |
272
+ | `description` | `string \| null` | no | |
273
+ | `sources` | `Array<AppPageSourceDto>` | no | |
274
+ | `updated_at` | `string (date-time) \| null` | no | |
275
+
276
+ **Example**
277
+
278
+ ```ts
279
+ const result = await g8.api.appPages.getAppPage({ path: { page_id: "id" } });
280
+ ```
281
+
282
+ ---
283
+
284
+ <a id="op-getapppageartifact"></a>
285
+
286
+ ### `g8.api.appPages.getAppPageArtifact(input)`
287
+
288
+ **Get App Page Artifact**
289
+
290
+ - HTTP: `GET /api/v1/app-pages/{page_id}/artifact`
291
+ - operationId: `get_app_page_artifact_app_pages__page_id__artifact_get` (also callable as `g8.api.call("get_app_page_artifact_app_pages__page_id__artifact_get", input)`)
292
+ - Tier: `read`: reads data; safe to call and to retry
293
+ - API-key scope: `apps:read`
294
+
295
+ The generated HTML and the manifest wiring it to its sources.
296
+
297
+ This is the source, for reading or storing. To DISPLAY a page, mint a frame
298
+ session instead: the HTML is written for a sandboxed origin with an injected
299
+ SDK and is not safe to embed directly in your own document.
300
+
301
+ **Input**
302
+
303
+ | Field | Type | Required | Description |
304
+ |---|---|---|---|
305
+ | `path.page_id` | `string` | yes | |
306
+
307
+ **Returns** `ApiResponse_AppPageArtifactResponse_`: the envelope `{ data: AppPageArtifactResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
308
+
309
+ Other envelope fields: `pagination` (PaginationMeta).
310
+
311
+ `AppPageArtifactResponse` fields:
312
+
313
+ | Field | Type | Required | Description |
314
+ |---|---|---|---|
315
+ | `name` | `string` | yes | |
316
+ | `page_id` | `string` | yes | |
317
+ | `status` | `string` | yes | |
318
+ | `data_manifest` | `Record<string, unknown>` | no | |
319
+ | `html_source` | `string \| null` | no | |
320
+ | `updated_at` | `string (date-time) \| null` | no | |
321
+
322
+ **Example**
323
+
324
+ ```ts
325
+ const result = await g8.api.appPages.getAppPageArtifact({ path: { page_id: "id" } });
326
+ ```
327
+
328
+ ---
329
+
330
+ <a id="op-getapppagestatus"></a>
331
+
332
+ ### `g8.api.appPages.getAppPageStatus(input)`
333
+
334
+ **Get App Page Status**
335
+
336
+ - HTTP: `GET /api/v1/app-pages/{page_id}/status`
337
+ - operationId: `get_app_page_status_app_pages__page_id__status_get` (also callable as `g8.api.call("get_app_page_status_app_pages__page_id__status_get", input)`)
338
+ - Tier: `read`: reads data; safe to call and to retry
339
+ - API-key scope: `apps:read`
340
+
341
+ Is the page built yet?
342
+
343
+ `has_page` is separate from `status` because a page can be `ready` with no
344
+ stored HTML, and treating that as ready sends a viewer to an empty frame.
345
+
346
+ **Input**
347
+
348
+ | Field | Type | Required | Description |
349
+ |---|---|---|---|
350
+ | `path.page_id` | `string` | yes | |
351
+
352
+ **Returns** `ApiResponse_AppPageStatusResponse_`: the envelope `{ data: AppPageStatusResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
353
+
354
+ Other envelope fields: `pagination` (PaginationMeta).
355
+
356
+ `AppPageStatusResponse` fields:
357
+
358
+ | Field | Type | Required | Description |
359
+ |---|---|---|---|
360
+ | `page_id` | `string` | yes | |
361
+ | `status` | `string` | yes | |
362
+ | `has_page` | `boolean` | no | True once generation has stored HTML. `status: ready` alone is not enough. default `false` |
363
+
364
+ **Example**
365
+
366
+ ```ts
367
+ const result = await g8.api.appPages.getAppPageStatus({ path: { page_id: "id" } });
368
+ ```
369
+
370
+ ---
371
+
372
+ <a id="op-invokeapppageaction"></a>
373
+
374
+ ### `g8.api.appPages.invokeAppPageAction(input)`
375
+
376
+ **Invoke App Page Action**
377
+
378
+ - HTTP: `POST /api/v1/app-pages/{page_id}/actions/{alias}/{action_name}`
379
+ - operationId: `invoke_app_page_action_app_pages__page_id__actions__alias___action_name__post` (also callable as `g8.api.call("invoke_app_page_action_app_pages__page_id__actions__alias___action_name__post", input)`)
380
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
381
+ - API-key scope: `apps:write`
382
+
383
+ Invoke a declared action on one of this page's bound sources.
384
+
385
+ The bound source is RE-AUTHORIZED on every invocation, not just when the
386
+ page was created, so a source revoked since then stops accepting writes
387
+ immediately rather than at the next regeneration.
388
+
389
+ `404` covers an unknown page, an alias this page does not bind, and a source
390
+ that is no longer reachable. They are indistinguishable on purpose: telling
391
+ a caller which of the three it was lets a page enumerate what exists.
392
+
393
+ **Input**
394
+
395
+ | Field | Type | Required | Description |
396
+ |---|---|---|---|
397
+ | `path.page_id` | `string` | yes | |
398
+ | `path.alias` | `string` | yes | |
399
+ | `path.action_name` | `string` | yes | |
400
+ | `body` | `InvokeActionRequest` | yes | Request body; fields below. |
401
+
402
+ Body fields (`InvokeActionRequest`):
403
+
404
+ | Field | Type | Required | Description |
405
+ |---|---|---|---|
406
+ | `body.args` | `Record<string, unknown>` | no | Action arguments. Validated against the object's own schema; an undeclared field is refused, not dropped. |
407
+
408
+ **Returns** `ApiResponse_InvokeActionResponse_`: the envelope `{ data: InvokeActionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
409
+
410
+ Other envelope fields: `pagination` (PaginationMeta).
411
+
412
+ `InvokeActionResponse` fields:
413
+
414
+ | Field | Type | Required | Description |
415
+ |---|---|---|---|
416
+ | `ok` | `boolean` | yes | |
417
+ | `invalidates` | `Array<string>` | no | Sources whose data is now stale, so a page can refresh only what changed. |
418
+ | `message` | `string \| null` | no | |
419
+ | `record_id` | `string \| null` | no | |
420
+
421
+ **Example**
422
+
423
+ ```ts
424
+ const result = await g8.api.appPages.invokeAppPageAction({
425
+ path: { page_id: "id", alias: "example", action_name: "Example" },
426
+ body: {},
427
+ });
428
+ ```
429
+
430
+ ---
431
+
432
+ <a id="op-listapppageactions"></a>
433
+
434
+ ### `g8.api.appPages.listAppPageActions(input)`
435
+
436
+ **List App Page Actions**
437
+
438
+ - HTTP: `GET /api/v1/app-pages/{page_id}/actions`
439
+ - operationId: `list_app_page_actions_app_pages__page_id__actions_get` (also callable as `g8.api.call("list_app_page_actions_app_pages__page_id__actions_get", input)`)
440
+ - Tier: `read`: reads data; safe to call and to retry
441
+ - API-key scope: `apps:read`
442
+
443
+ What this page can do, grouped by the alias each action acts on.
444
+
445
+ A source that no longer authorizes contributes nothing rather than failing
446
+ the whole listing: one revoked binding should not make a page's other
447
+ actions undiscoverable.
448
+
449
+ **Input**
450
+
451
+ | Field | Type | Required | Description |
452
+ |---|---|---|---|
453
+ | `path.page_id` | `string` | yes | |
454
+
455
+ **Returns** `ApiResponse_AppPageActionsResponse_`: the envelope `{ data: AppPageActionsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
456
+
457
+ Other envelope fields: `pagination` (PaginationMeta).
458
+
459
+ `AppPageActionsResponse` fields:
460
+
461
+ | Field | Type | Required | Description |
462
+ |---|---|---|---|
463
+ | `page_id` | `string` | yes | |
464
+ | `actions_by_alias` | `Record<string, Array<ActionDescriptorDto>>` | no | |
465
+
466
+ **Example**
467
+
468
+ ```ts
469
+ const result = await g8.api.appPages.listAppPageActions({ path: { page_id: "id" } });
470
+ ```
471
+
472
+ ---
473
+
474
+ <a id="op-listapppagesourceinstances"></a>
475
+
476
+ ### `g8.api.appPages.listAppPageSourceInstances(input)`
477
+
478
+ **List App Page Source Instances**
479
+
480
+ - HTTP: `GET /api/v1/app-page-sources/{source_kind}/instances`
481
+ - operationId: `list_app_page_source_instances_app_page_sources__source_kind__instances_get` (also callable as `g8.api.call("list_app_page_source_instances_app_page_sources__source_kind__instances_get", input)`)
482
+ - Tier: `read`: reads data; safe to call and to retry
483
+ - API-key scope: `apps:read`
484
+
485
+ The sources of one family this org can build a page over.
486
+
487
+ **Input**
488
+
489
+ | Field | Type | Required | Description |
490
+ |---|---|---|---|
491
+ | `path.source_kind` | `string` | yes | A family `kind` from `GET /app-page-sources`. |
492
+ | `query.limit` | `integer` | no | default `100` |
493
+ | `query.query` | `string \| null` | no | Filter by name. |
494
+
495
+ **Returns** `ApiResponse_AppPageSourceCatalogPayload_`: the envelope `{ data: AppPageSourceCatalogPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
496
+
497
+ Other envelope fields: `pagination` (PaginationMeta).
498
+
499
+ `AppPageSourceCatalogPayload` fields:
500
+
501
+ | Field | Type | Required | Description |
502
+ |---|---|---|---|
503
+ | `items` | `Array<unknown>` | no | |
504
+
505
+ **Example**
506
+
507
+ ```ts
508
+ const result = await g8.api.appPages.listAppPageSourceInstances({ path: { source_kind: "example" } });
509
+ ```
510
+
511
+ ---
512
+
513
+ <a id="op-listapppagesourcekinds"></a>
514
+
515
+ ### `g8.api.appPages.listAppPageSourceKinds(input?)`
516
+
517
+ **List App Page Source Kinds**
518
+
519
+ - HTTP: `GET /api/v1/app-page-sources`
520
+ - operationId: `list_app_page_source_kinds_app_page_sources_get` (also callable as `g8.api.call("list_app_page_source_kinds_app_page_sources_get", input)`)
521
+ - Tier: `read`: reads data; safe to call and to retry
522
+ - API-key scope: `apps:read`
523
+
524
+ The source families an app page can be built over, and whether each is available.
525
+
526
+ **Input**: none.
527
+
528
+ **Returns** `ApiResponse_AppPageSourceCatalogPayload_`: the envelope `{ data: AppPageSourceCatalogPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
529
+
530
+ Other envelope fields: `pagination` (PaginationMeta).
531
+
532
+ `AppPageSourceCatalogPayload` fields:
533
+
534
+ | Field | Type | Required | Description |
535
+ |---|---|---|---|
536
+ | `items` | `Array<unknown>` | no | |
537
+
538
+ **Example**
539
+
540
+ ```ts
541
+ const result = await g8.api.appPages.listAppPageSourceKinds();
542
+ ```
543
+
544
+ ---
545
+
546
+ <a id="op-listapppageversions"></a>
547
+
548
+ ### `g8.api.appPages.listAppPageVersions(input)`
549
+
550
+ **List App Page Versions**
551
+
552
+ - HTTP: `GET /api/v1/app-pages/{page_id}/versions`
553
+ - operationId: `list_app_page_versions_app_pages__page_id__versions_get` (also callable as `g8.api.call("list_app_page_versions_app_pages__page_id__versions_get", input)`)
554
+ - Tier: `read`: reads data; safe to call and to retry
555
+ - API-key scope: `apps:read`
556
+
557
+ Every stored version of this page, with the instruction that produced it.
558
+
559
+ **Input**
560
+
561
+ | Field | Type | Required | Description |
562
+ |---|---|---|---|
563
+ | `path.page_id` | `string` | yes | |
564
+
565
+ **Returns** `ApiResponse_AppPageVersionListResponse_`: the envelope `{ data: AppPageVersionListResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
566
+
567
+ Other envelope fields: `pagination` (PaginationMeta).
568
+
569
+ `AppPageVersionListResponse` fields:
570
+
571
+ | Field | Type | Required | Description |
572
+ |---|---|---|---|
573
+ | `page_id` | `string` | yes | |
574
+ | `versions` | `Array<AppPageVersionDto>` | no | |
575
+
576
+ **Example**
577
+
578
+ ```ts
579
+ const result = await g8.api.appPages.listAppPageVersions({ path: { page_id: "id" } });
580
+ ```
581
+
582
+ ---
583
+
584
+ <a id="op-listapppages"></a>
585
+
586
+ ### `g8.api.appPages.listAppPages(input?)`
587
+
588
+ **List App Pages**
589
+
590
+ - HTTP: `GET /api/v1/app-pages`
591
+ - operationId: `list_app_pages_app_pages_get` (also callable as `g8.api.call("list_app_pages_app_pages_get", input)`)
592
+ - Tier: `read`: reads data; safe to call and to retry
593
+ - API-key scope: `apps:read`
594
+
595
+ Your organization's app pages, most recently updated first.
596
+
597
+ **Input**: none.
598
+
599
+ **Returns** `ApiResponse_list_AppPageResponse__`: the envelope `{ data: Array<AppPageResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
600
+
601
+ Other envelope fields: `pagination` (PaginationMeta).
602
+
603
+ `AppPageResponse` fields:
604
+
605
+ | Field | Type | Required | Description |
606
+ |---|---|---|---|
607
+ | `name` | `string` | yes | |
608
+ | `page_id` | `string` | yes | |
609
+ | `status` | `string` | yes | draft \| generating \| ready \| failed |
610
+ | `created_at` | `string (date-time) \| null` | no | |
611
+ | `description` | `string \| null` | no | |
612
+ | `sources` | `Array<AppPageSourceDto>` | no | |
613
+ | `updated_at` | `string (date-time) \| null` | no | |
614
+
615
+ **Example**
616
+
617
+ ```ts
618
+ const result = await g8.api.appPages.listAppPages();
619
+ ```
620
+
621
+ ---
622
+
623
+ <a id="op-mintapppageframesession"></a>
624
+
625
+ ### `g8.api.appPages.mintAppPageFrameSession(input)`
626
+
627
+ **Mint App Page Frame Session**
628
+
629
+ - HTTP: `POST /api/v1/app-pages/{page_id}/frame-session`
630
+ - operationId: `mint_app_page_frame_session_app_pages__page_id__frame_session_post` (also callable as `g8.api.call("mint_app_page_frame_session_app_pages__page_id__frame_session_post", input)`)
631
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
632
+ - API-key scope: `apps:write`
633
+
634
+ Mint a one-shot token for loading this page's sandboxed frame.
635
+
636
+ The generated HTML is not safe to embed in your own document: it is written
637
+ for an isolated, cookieless origin under a `default-src 'none'` policy with
638
+ an injected data SDK. Load the returned `frame_url` in an iframe instead.
639
+
640
+ Single use and short lived, by design. A token that could be replayed would
641
+ be a bearer credential for the page's data, so each load mints a new one.
642
+
643
+ **Input**
644
+
645
+ | Field | Type | Required | Description |
646
+ |---|---|---|---|
647
+ | `path.page_id` | `string` | yes | |
648
+
649
+ **Returns** `ApiResponse_AppPageFrameSessionResponse_`: the envelope `{ data: AppPageFrameSessionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
650
+
651
+ Other envelope fields: `pagination` (PaginationMeta).
652
+
653
+ `AppPageFrameSessionResponse` fields:
654
+
655
+ | Field | Type | Required | Description |
656
+ |---|---|---|---|
657
+ | `expires_in` | `integer` | yes | |
658
+ | `token` | `string` | yes | |
659
+ | `view_session_id` | `string` | yes | |
660
+ | `frame_url` | `string \| null` | no | Absolute URL to load, token included. Absent when no frame origin is configured. |
661
+
662
+ **Example**
663
+
664
+ ```ts
665
+ const result = await g8.api.appPages.mintAppPageFrameSession({ path: { page_id: "id" } });
666
+ ```
667
+
668
+ ---
669
+
670
+ <a id="op-replaceapppagesources"></a>
671
+
672
+ ### `g8.api.appPages.replaceAppPageSources(input)`
673
+
674
+ **Replace App Page Sources**
675
+
676
+ - HTTP: `PUT /api/v1/app-pages/{page_id}/sources`
677
+ - operationId: `replace_app_page_sources_app_pages__page_id__sources_put` (also callable as `g8.api.call("replace_app_page_sources_app_pages__page_id__sources_put", input)`)
678
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
679
+ - API-key scope: `apps:write`
680
+
681
+ Replace a page's sources. Each new source is validated before anything is written.
682
+
683
+ **Input**
684
+
685
+ | Field | Type | Required | Description |
686
+ |---|---|---|---|
687
+ | `path.page_id` | `string` | yes | App page id. |
688
+ | `body` | `AppPageSourcesReplaceRequest` | yes | Request body; fields below. |
689
+
690
+ Body fields (`AppPageSourcesReplaceRequest`):
691
+
692
+ | Field | Type | Required | Description |
693
+ |---|---|---|---|
694
+ | `body.sources` | `Array<AppPageSourceDto>` | yes | The page's full source list. min items 1 |
695
+
696
+ **Returns** `ApiResponse_AppPageSourcesPayload_`: the envelope `{ data: AppPageSourcesPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
697
+
698
+ Other envelope fields: `pagination` (PaginationMeta).
699
+
700
+ **Example**
701
+
702
+ ```ts
703
+ const result = await g8.api.appPages.replaceAppPageSources({
704
+ path: { page_id: "id" },
705
+ body: { sources: [{ source_id: "id", source_kind: "example" }] },
706
+ });
707
+ ```
708
+
709
+ ---
710
+
711
+ <a id="op-restoreapppageversion"></a>
712
+
713
+ ### `g8.api.appPages.restoreAppPageVersion(input)`
714
+
715
+ **Restore App Page Version**
716
+
717
+ - HTTP: `POST /api/v1/app-pages/{page_id}/versions/{version_num}/restore`
718
+ - operationId: `restore_app_page_version_app_pages__page_id__versions__version_num__restore_post` (also callable as `g8.api.call("restore_app_page_version_app_pages__page_id__versions__version_num__restore_post", input)`)
719
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
720
+ - API-key scope: `apps:write`
721
+
722
+ Restore an earlier version.
723
+
724
+ Restoring SNAPSHOTS rather than rewinds: the current page becomes a new
725
+ version before the old one is applied, so a restore is itself undoable and
726
+ nothing is destroyed.
727
+
728
+ **Input**
729
+
730
+ | Field | Type | Required | Description |
731
+ |---|---|---|---|
732
+ | `path.page_id` | `string` | yes | |
733
+ | `path.version_num` | `integer` | yes | |
734
+
735
+ **Returns** `ApiResponse_AppPageRestoreResponse_`: the envelope `{ data: AppPageRestoreResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
736
+
737
+ Other envelope fields: `pagination` (PaginationMeta).
738
+
739
+ `AppPageRestoreResponse` fields:
740
+
741
+ | Field | Type | Required | Description |
742
+ |---|---|---|---|
743
+ | `page_id` | `string` | yes | |
744
+ | `restored_from_version` | `integer` | yes | |
745
+ | `snapshot_version` | `integer` | yes | |
746
+
747
+ **Example**
748
+
749
+ ```ts
750
+ const result = await g8.api.appPages.restoreAppPageVersion({ path: { page_id: "id", version_num: 1 } });
751
+ ```
752
+
753
+ ---
754
+
755
+ ## Referenced types
756
+
757
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
758
+
759
+ <a id="type-actiondescriptordto"></a>
760
+
761
+ ### `ActionDescriptorDto`
762
+
763
+ One action a page may invoke on one of its bound sources.
764
+
765
+ | Field | Type | Required | Description |
766
+ |---|---|---|---|
767
+ | `label` | `string` | yes | |
768
+ | `name` | `string` | yes | |
769
+ | `description` | `string` | no | default `""` |
770
+ | `irreversible` | `boolean` | no | Cannot be undone. Surfaced so a host can confirm before invoking. default `false` |
771
+ | `params` | `Array<ActionParamDto>` | no | |
772
+
773
+ <a id="type-apppagesourcedto"></a>
774
+
775
+ ### `AppPageSourceDto`
776
+
777
+ One data source bound into a page. `alias` is the handle the generated page's JavaScript addresses it by.
778
+
779
+ | Field | Type | Required | Description |
780
+ |---|---|---|---|
781
+ | `source_id` | `string` | yes | Opaque to everything but the connector that owns it |
782
+ | `source_kind` | `string` | yes | Connector family, e.g. staging-table or custom-object |
783
+ | `alias` | `string \| null` | no | Handle used inside the page. Auto-assigned from the kind when omitted. |
784
+ | `position` | `integer` | no | default `0` |
785
+ | `role` | `string` | no | default `"data"` |
786
+
787
+ <a id="type-apppageversiondto"></a>
788
+
789
+ ### `AppPageVersionDto`
790
+
791
+ | Field | Type | Required | Description |
792
+ |---|---|---|---|
793
+ | `version_num` | `integer` | yes | |
794
+ | `created_at` | `string (date-time) \| null` | no | |
795
+ | `edit_instruction` | `string \| null` | no | |
796
+ | `edit_summary` | `string \| null` | no | |