@graph8/sdk 0.251.0 → 0.262.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.
- package/README.md +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +105 -7
- package/dist/index.d.ts +105 -7
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +103 -7
- package/dist/react.d.ts +103 -7
- package/dist/react.js +62 -11
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +53 -12
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1697 -0
- package/docs/api/deals.md +2436 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,2860 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.agents`: Agents
|
|
4
|
+
|
|
5
|
+
65 operations (33 read, 22 write, 3 destructive, 7 billable).
|
|
6
|
+
|
|
7
|
+
No hand-written client covers this area. Call it through `g8.api.agents.*` 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: [agents.d.ts](agents.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`answerAgentDiscovery`](#op-answeragentdiscovery) | `POST /api/v1/agent/onboarding/discovery/answer` | write | `workflows:write` | Answer Agent Discovery |
|
|
26
|
+
| [`cancelAgentWorkItem`](#op-cancelagentworkitem) | `POST /api/v1/agent/work-items/{work_item_id}/cancel` | destructive | `workflows:delete` | Cancel Agent Work Item |
|
|
27
|
+
| [`captureAgentEntryPoint`](#op-captureagententrypoint) | `POST /api/v1/agent/onboarding/entry-point` | write | `workflows:write` | Capture Agent Entry Point |
|
|
28
|
+
| [`captureAgentSignupAttribution`](#op-captureagentsignupattribution) | `POST /api/v1/agent/onboarding/attribution` | write | `workflows:write` | Capture Agent Signup Attribution |
|
|
29
|
+
| [`confirmAgentSessionCard`](#op-confirmagentsessioncard) | `POST /api/v1/agent/sessions/{session_id}/cards/{card_id}/confirm` | write | `workflows:write` | Confirm Agent Session Card |
|
|
30
|
+
| [`createAgentSession`](#op-createagentsession) | `POST /api/v1/agent/sessions` | write | `workflows:write` | Create Agent Session |
|
|
31
|
+
| [`createAgentVoiceDraft`](#op-createagentvoicedraft) | `POST /api/v1/agent/sessions/voice/draft` | write | `workflows:write` | Create Agent Voice Draft |
|
|
32
|
+
| [`createAgentWorkItem`](#op-createagentworkitem) | `POST /api/v1/agent/work-items` | billable | `workflows:run` | Create Agent Work Item |
|
|
33
|
+
| [`decideAgentOperatorApproval`](#op-decideagentoperatorapproval) | `POST /api/v1/agent/operators/{operator}/approvals/{task_id}/decide` | billable | `workflows:run` | Decide Agent Operator Approval |
|
|
34
|
+
| [`deleteAgentSession`](#op-deleteagentsession) | `DELETE /api/v1/agent/sessions/{session_id}` | destructive | `workflows:delete` | Delete Agent Session |
|
|
35
|
+
| [`endAgentSessionVoice`](#op-endagentsessionvoice) | `DELETE /api/v1/agent/sessions/{session_id}/voice/{voice_id}` | destructive | `workflows:delete` | End Agent Session Voice |
|
|
36
|
+
| [`getAgentDiscovery`](#op-getagentdiscovery) | `GET /api/v1/agent/onboarding/discovery` | read | `workflows:read` | Get Agent Discovery |
|
|
37
|
+
| [`getAgentDiscoveryCampaignBrief`](#op-getagentdiscoverycampaignbrief) | `GET /api/v1/agent/onboarding/discovery/campaign-brief` | read | `workflows:read` | Get Agent Discovery Campaign Brief |
|
|
38
|
+
| [`getAgentDiscoveryReport`](#op-getagentdiscoveryreport) | `GET /api/v1/agent/onboarding/discovery/report` | read | `workflows:read` | Get Agent Discovery Report |
|
|
39
|
+
| [`getAgentMemory`](#op-getagentmemory) | `GET /api/v1/agent/memory` | read | `workflows:read` | Get Agent Memory |
|
|
40
|
+
| [`getAgentOperatingModel`](#op-getagentoperatingmodel) | `GET /api/v1/agent/operators/operating-model` | read | `workflows:read` | Get Agent Operating Model |
|
|
41
|
+
| [`getAgentOperatorCatalog`](#op-getagentoperatorcatalog) | `GET /api/v1/agent/operators/{operator}/catalog` | read | `workflows:read` | Get Agent Operator Catalog |
|
|
42
|
+
| [`getAgentOperatorFeedbackSummary`](#op-getagentoperatorfeedbacksummary) | `GET /api/v1/agent/operators/{operator}/feedback/summary` | read | `workflows:read` | Get Agent Operator Feedback Summary |
|
|
43
|
+
| [`getAgentOperatorForApprovalTask`](#op-getagentoperatorforapprovaltask) | `GET /api/v1/agent/operators/approvals/{task_id}/operator` | read | `workflows:read` | Get Agent Operator For Approval Task |
|
|
44
|
+
| [`getAgentOperatorHealth`](#op-getagentoperatorhealth) | `GET /api/v1/agent/operators/{operator}/health` | read | `workflows:read` | Get Agent Operator Health |
|
|
45
|
+
| [`getAgentOperatorRecipient`](#op-getagentoperatorrecipient) | `GET /api/v1/agent/operators/{operator}/recipient` | read | `workflows:read` | Get Agent Operator Recipient |
|
|
46
|
+
| [`getAgentOperatorScorecard`](#op-getagentoperatorscorecard) | `GET /api/v1/agent/operators/{operator}/scorecard` | read | `workflows:read` | Get Agent Operator Scorecard |
|
|
47
|
+
| [`getAgentOperatorStatus`](#op-getagentoperatorstatus) | `GET /api/v1/agent/operators/{operator}/status` | read | `workflows:read` | Get Agent Operator Status |
|
|
48
|
+
| [`getAgentOperatorsSummary`](#op-getagentoperatorssummary) | `GET /api/v1/agent/operators/summary` | read | `workflows:read` | Get Agent Operators Summary |
|
|
49
|
+
| [`getAgentOversight`](#op-getagentoversight) | `GET /api/v1/agent/oversight` | read | `workflows:read` | Get Agent Oversight |
|
|
50
|
+
| [`getAgentProactiveOpener`](#op-getagentproactiveopener) | `GET /api/v1/agent/proactive-opener` | read | `workflows:read` | Get Agent Proactive Opener |
|
|
51
|
+
| [`getAgentPushbackEvidence`](#op-getagentpushbackevidence) | `GET /api/v1/agent/evidence/pushback` | read | `workflows:read` | Get Agent Pushback Evidence |
|
|
52
|
+
| [`getAgentSession`](#op-getagentsession) | `GET /api/v1/agent/sessions/{session_id}` | read | `workflows:read` | Get Agent Session |
|
|
53
|
+
| [`getAgentSessionState`](#op-getagentsessionstate) | `GET /api/v1/agent/sessions/{session_id}/state` | read | `workflows:read` | Get Agent Session State |
|
|
54
|
+
| [`getAgentSessionVoiceCapability`](#op-getagentsessionvoicecapability) | `GET /api/v1/agent/sessions/{session_id}/voice` | read | `workflows:read` | Get Agent Session Voice Capability |
|
|
55
|
+
| [`getAgentVoiceCapability`](#op-getagentvoicecapability) | `GET /api/v1/agent/sessions/voice/capability` | read | `workflows:read` | Get Agent Voice Capability |
|
|
56
|
+
| [`listAgentOperatorActions`](#op-listagentoperatoractions) | `GET /api/v1/agent/operators/{operator}/actions` | read | `workflows:read` | List Agent Operator Actions |
|
|
57
|
+
| [`listAgentOperatorActivity`](#op-listagentoperatoractivity) | `GET /api/v1/agent/operators/{operator}/activity` | read | `workflows:read` | List Agent Operator Activity |
|
|
58
|
+
| [`listAgentOperatorActivityRecords`](#op-listagentoperatoractivityrecords) | `GET /api/v1/agent/operators/{operator}/activity/{task_id}/records` | read | `workflows:read` | List Agent Operator Activity Records |
|
|
59
|
+
| [`listAgentOperatorApprovalSources`](#op-listagentoperatorapprovalsources) | `GET /api/v1/agent/operators/approvals/sources` | read | `workflows:read` | List Agent Operator Approval Sources |
|
|
60
|
+
| [`listAgentOperatorCollections`](#op-listagentoperatorcollections) | `GET /api/v1/agent/operators/{operator}/collections` | read | `workflows:read` | List Agent Operator Collections |
|
|
61
|
+
| [`listAgentOperatorFindings`](#op-listagentoperatorfindings) | `GET /api/v1/agent/operators/{operator}/findings` | read | `workflows:read` | List Agent Operator Findings |
|
|
62
|
+
| [`listAgentOperatorSkills`](#op-listagentoperatorskills) | `GET /api/v1/agent/operators/{operator}/skills` | read | `workflows:read` | List Agent Operator Skills |
|
|
63
|
+
| [`listAgentOperators`](#op-listagentoperators) | `GET /api/v1/agent/operators` | read | `workflows:read` | List Agent Operators |
|
|
64
|
+
| [`listAgentSessions`](#op-listagentsessions) | `GET /api/v1/agent/sessions` | read | `workflows:read` | List Agent Sessions |
|
|
65
|
+
| [`listAgentSpecialists`](#op-listagentspecialists) | `GET /api/v1/agent/specialists` | read | `workflows:read` | List Agent Specialists |
|
|
66
|
+
| [`listAgentWorkItems`](#op-listagentworkitems) | `GET /api/v1/agent/work-items` | read | `workflows:read` | List Agent Work Items |
|
|
67
|
+
| [`loadCopilotIntentContext`](#op-loadcopilotintentcontext) | `POST /api/v1/copilot/context/load` | write | `workflows:write` | Load Copilot Intent Context |
|
|
68
|
+
| [`markAgentSessionRead`](#op-markagentsessionread) | `PUT /api/v1/agent/sessions/{session_id}/read` | write | `workflows:write` | Mark Agent Session Read |
|
|
69
|
+
| [`openAgentDiscovery`](#op-openagentdiscovery) | `POST /api/v1/agent/onboarding/discovery/open` | write | `workflows:write` | Open Agent Discovery |
|
|
70
|
+
| [`pinAgentSession`](#op-pinagentsession) | `POST /api/v1/agent/sessions/{session_id}/pin` | write | `workflows:write` | Pin Agent Session |
|
|
71
|
+
| [`postAgentChat`](#op-postagentchat) | `POST /api/v1/agent/chat` | billable | `workflows:run` | Post Agent Chat |
|
|
72
|
+
| [`postAgentOnboardingCatchup`](#op-postagentonboardingcatchup) | `POST /api/v1/agent/onboarding/catchup` | write | `workflows:write` | Post Agent Onboarding Catchup |
|
|
73
|
+
| [`postAgentSessionMessage`](#op-postagentsessionmessage) | `POST /api/v1/agent/sessions/{session_id}/messages` | write | `workflows:write` | Post Agent Session Message |
|
|
74
|
+
| [`projectAgentDiscovery`](#op-projectagentdiscovery) | `POST /api/v1/agent/onboarding/discovery/project` | write | `workflows:write` | Project Agent Discovery |
|
|
75
|
+
| [`putAgentOperatingModel`](#op-putagentoperatingmodel) | `PUT /api/v1/agent/operators/operating-model` | write | `workflows:write` | Put Agent Operating Model |
|
|
76
|
+
| [`quoteAgentSessionVoice`](#op-quoteagentsessionvoice) | `POST /api/v1/agent/sessions/{session_id}/voice/quote` | read | `workflows:read` | Quote Agent Session Voice |
|
|
77
|
+
| [`ratifyAgentDiscovery`](#op-ratifyagentdiscovery) | `POST /api/v1/agent/onboarding/discovery/ratify` | write | `workflows:write` | Ratify Agent Discovery |
|
|
78
|
+
| [`renameAgentSession`](#op-renameagentsession) | `POST /api/v1/agent/sessions/{session_id}/rename` | write | `workflows:write` | Rename Agent Session |
|
|
79
|
+
| [`requestAgentApprovalChanges`](#op-requestagentapprovalchanges) | `POST /api/v1/agent/approvals/{approval_id}/request-changes` | write | `workflows:write` | Request Agent Approval Changes |
|
|
80
|
+
| [`searchAgentMentions`](#op-searchagentmentions) | `POST /api/v1/agent/mention-search` | read | `workflows:read` | Search Agent Mentions |
|
|
81
|
+
| [`setAgentOperatorEnabled`](#op-setagentoperatorenabled) | `PUT /api/v1/agent/operators/{operator}/enabled` | billable | `workflows:run` | Set Agent Operator Enabled |
|
|
82
|
+
| [`setAgentOperatorRecipient`](#op-setagentoperatorrecipient) | `PUT /api/v1/agent/operators/{operator}/recipient` | write | `workflows:write` | Set Agent Operator Recipient |
|
|
83
|
+
| [`setAgentOperatorTrustDial`](#op-setagentoperatortrustdial) | `PUT /api/v1/agent/operators/{operator}/skills/{skill_key}` | billable | `workflows:run` | Set Agent Operator Trust Dial |
|
|
84
|
+
| [`setupAgentDiscoverySignals`](#op-setupagentdiscoverysignals) | `POST /api/v1/agent/onboarding/discovery/signals` | write | `workflows:write` | Setup Agent Discovery Signals |
|
|
85
|
+
| [`startAgentSessionVoice`](#op-startagentsessionvoice) | `POST /api/v1/agent/sessions/{session_id}/voice` | billable | `workflows:run` | Start Agent Session Voice |
|
|
86
|
+
| [`steerAgentWorkItem`](#op-steeragentworkitem) | `POST /api/v1/agent/work-items/{work_item_id}/steer` | write | `workflows:write` | Steer Agent Work Item |
|
|
87
|
+
| [`submitAgentDomainResponse`](#op-submitagentdomainresponse) | `POST /api/v1/agent/onboarding/domain-response` | write | `workflows:write` | Submit Agent Domain Response |
|
|
88
|
+
| [`takeAgentDiscoveryTurn`](#op-takeagentdiscoveryturn) | `POST /api/v1/agent/onboarding/discovery/turn` | billable | `workflows:run` | Take Agent Discovery Turn |
|
|
89
|
+
| [`updateAgentSession`](#op-updateagentsession) | `PATCH /api/v1/agent/sessions/{session_id}` | write | `workflows:write` | Update Agent Session |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
<a id="op-answeragentdiscovery"></a>
|
|
94
|
+
|
|
95
|
+
### `g8.api.agents.answerAgentDiscovery(input)`
|
|
96
|
+
|
|
97
|
+
**Answer Agent Discovery**
|
|
98
|
+
|
|
99
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/answer`
|
|
100
|
+
- operationId: `answer_agent_discovery_agent_onboarding_discovery_answer_post` (also callable as `g8.api.call("answer_agent_discovery_agent_onboarding_discovery_answer_post", input)`)
|
|
101
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
102
|
+
- API-key scope: `workflows:write`
|
|
103
|
+
|
|
104
|
+
Record ONE graded answer.
|
|
105
|
+
|
|
106
|
+
`grade` is not decoration. A `red` grade stores NO VALUE and burns a rung of
|
|
107
|
+
the probe ladder - the agent asks again a different way rather than keeping
|
|
108
|
+
a guess. Storing an unusable answer as data is how a confident, wrong ICP
|
|
109
|
+
gets built.
|
|
110
|
+
|
|
111
|
+
`field_key` must be a real framework field; anything else is refused by the
|
|
112
|
+
handler by name rather than being written as a stray key.
|
|
113
|
+
|
|
114
|
+
**Input**
|
|
115
|
+
|
|
116
|
+
| Field | Type | Required | Description |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| `body` | `DiscoveryAnswerRequest` | yes | Request body; fields below. |
|
|
119
|
+
|
|
120
|
+
Body fields (`DiscoveryAnswerRequest`):
|
|
121
|
+
|
|
122
|
+
| Field | Type | Required | Description |
|
|
123
|
+
|---|---|---|---|
|
|
124
|
+
| `body.field_key` | `string` | yes | Which discovery field this answers. |
|
|
125
|
+
| `body.grade` | `string` | yes | Confidence in the answer: `green` (certain), `amber` (a working assumption) or `red` (a guess). Amber and red answers come back in `coverage.amber_fields` so they can be revisited. |
|
|
126
|
+
| `body.move_number` | `integer \| null` | no | Interview move this answers. |
|
|
127
|
+
| `body.session_id` | `string \| null` | no | Canvas session to report into. |
|
|
128
|
+
| `body.source` | `string` | no | Who supplied it. Defaults to `user`. default `"user"` |
|
|
129
|
+
| `body.value` | `unknown` | no | The answer. Shape depends on the field. |
|
|
130
|
+
|
|
131
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
132
|
+
|
|
133
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
134
|
+
|
|
135
|
+
**Example**
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
const result = await g8.api.agents.answerAgentDiscovery({ body: { field_key: "example", grade: "example" } });
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
<a id="op-cancelagentworkitem"></a>
|
|
144
|
+
|
|
145
|
+
### `g8.api.agents.cancelAgentWorkItem(input)`
|
|
146
|
+
|
|
147
|
+
**Cancel Agent Work Item**
|
|
148
|
+
|
|
149
|
+
- HTTP: `POST /api/v1/agent/work-items/{work_item_id}/cancel`
|
|
150
|
+
- operationId: `cancel_agent_work_item_agent_work_items__work_item_id__cancel_post` (also callable as `g8.api.call("cancel_agent_work_item_agent_work_items__work_item_id__cancel_post", input)`)
|
|
151
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
152
|
+
- API-key scope: `workflows:delete`
|
|
153
|
+
|
|
154
|
+
Stop a work item.
|
|
155
|
+
|
|
156
|
+
Stops the LOOP. Anything the agent already did - a sequence launched, a
|
|
157
|
+
record written - stays done; cancelling is not an undo.
|
|
158
|
+
|
|
159
|
+
**Input**
|
|
160
|
+
|
|
161
|
+
| Field | Type | Required | Description |
|
|
162
|
+
|---|---|---|---|
|
|
163
|
+
| `path.work_item_id` | `string` | yes | Work item id (UUID). |
|
|
164
|
+
|
|
165
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
166
|
+
|
|
167
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
168
|
+
|
|
169
|
+
**Example**
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
173
|
+
const result = await g8.api.agents.cancelAgentWorkItem({ path: { work_item_id: "id" } });
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
<a id="op-captureagententrypoint"></a>
|
|
179
|
+
|
|
180
|
+
### `g8.api.agents.captureAgentEntryPoint(input)`
|
|
181
|
+
|
|
182
|
+
**Capture Agent Entry Point**
|
|
183
|
+
|
|
184
|
+
- HTTP: `POST /api/v1/agent/onboarding/entry-point`
|
|
185
|
+
- operationId: `capture_agent_entry_point_agent_onboarding_entry_point_post` (also callable as `g8.api.call("capture_agent_entry_point_agent_onboarding_entry_point_post", input)`)
|
|
186
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
187
|
+
- API-key scope: `workflows:write`
|
|
188
|
+
|
|
189
|
+
Record which product the customer signed up for. FIRST WRITER WINS.
|
|
190
|
+
|
|
191
|
+
The entry point maps 1:1 to a plan template, so it chooses what the agent
|
|
192
|
+
proposes doing first. It is a one-shot ATTRIBUTION, not a settable
|
|
193
|
+
preference: if the org already has one, this call changes nothing and
|
|
194
|
+
reports the existing value.
|
|
195
|
+
|
|
196
|
+
Read `captured` rather than the status code - a 200 with `captured: false`
|
|
197
|
+
means someone else got there first, which is a normal outcome and not an
|
|
198
|
+
error.
|
|
199
|
+
|
|
200
|
+
**Input**
|
|
201
|
+
|
|
202
|
+
| Field | Type | Required | Description |
|
|
203
|
+
|---|---|---|---|
|
|
204
|
+
| `body` | `EntryPointCaptureRequest` | yes | Request body; fields below. |
|
|
205
|
+
|
|
206
|
+
Body fields (`EntryPointCaptureRequest`):
|
|
207
|
+
|
|
208
|
+
| Field | Type | Required | Description |
|
|
209
|
+
|---|---|---|---|
|
|
210
|
+
| `body.entry_point` | `"dialer" \| "sequencer" \| "marketplace" \| "dev" \| "calendar" \| "email_inbox" \| "full"` | yes | The signup entry point. Maps 1:1 to a plan template, so this chooses what the agent will propose doing first. FIRST WRITER WINS: if the org already has one captured, this call reports the existing value and changes nothing. |
|
|
211
|
+
|
|
212
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
213
|
+
|
|
214
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
215
|
+
|
|
216
|
+
**Example**
|
|
217
|
+
|
|
218
|
+
```ts
|
|
219
|
+
const result = await g8.api.agents.captureAgentEntryPoint({ body: { entry_point: "dialer" } });
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
<a id="op-captureagentsignupattribution"></a>
|
|
225
|
+
|
|
226
|
+
### `g8.api.agents.captureAgentSignupAttribution(input)`
|
|
227
|
+
|
|
228
|
+
**Capture Agent Signup Attribution**
|
|
229
|
+
|
|
230
|
+
- HTTP: `POST /api/v1/agent/onboarding/attribution`
|
|
231
|
+
- operationId: `capture_agent_signup_attribution_agent_onboarding_attribution_post` (also callable as `g8.api.call("capture_agent_signup_attribution_agent_onboarding_attribution_post", input)`)
|
|
232
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
233
|
+
- API-key scope: `workflows:write`
|
|
234
|
+
|
|
235
|
+
Record first-touch attribution - UTM tags, ad click ids, landing page.
|
|
236
|
+
|
|
237
|
+
FIRST WRITER WINS on every key, so this is safe to call once per session
|
|
238
|
+
and safe to retry. Nothing already captured is overwritten.
|
|
239
|
+
|
|
240
|
+
Every field is optional, which means an empty body is legal and does
|
|
241
|
+
nothing. The response reports each destination separately
|
|
242
|
+
(`organization_persisted`, `contact_persisted`, ...) because attribution
|
|
243
|
+
lands in more than one place and a partial write is worth knowing about -
|
|
244
|
+
`complete` is the single field that says all of them took.
|
|
245
|
+
|
|
246
|
+
**Input**
|
|
247
|
+
|
|
248
|
+
| Field | Type | Required | Description |
|
|
249
|
+
|---|---|---|---|
|
|
250
|
+
| `body` | `SignupAttributionRequest` | yes | Request body; fields below. |
|
|
251
|
+
|
|
252
|
+
Body fields (`SignupAttributionRequest`):
|
|
253
|
+
|
|
254
|
+
| Field | Type | Required | Description |
|
|
255
|
+
|---|---|---|---|
|
|
256
|
+
| `body.entry_point` | `string \| null` | no | Signup entry-point slug. max length 50 |
|
|
257
|
+
| `body.fbclid` | `string \| null` | no | max length 255 |
|
|
258
|
+
| `body.gbraid` | `string \| null` | no | max length 255 |
|
|
259
|
+
| `body.gclid` | `string \| null` | no | max length 255 |
|
|
260
|
+
| `body.landing_at` | `string (date-time) \| null` | no | |
|
|
261
|
+
| `body.landing_page_url` | `string \| null` | no | max length 2048 |
|
|
262
|
+
| `body.signup_referrer` | `string \| null` | no | max length 2048 |
|
|
263
|
+
| `body.utm_campaign` | `string \| null` | no | max length 255 |
|
|
264
|
+
| `body.utm_content` | `string \| null` | no | max length 255 |
|
|
265
|
+
| `body.utm_id` | `string \| null` | no | max length 255 |
|
|
266
|
+
| `body.utm_medium` | `string \| null` | no | max length 255 |
|
|
267
|
+
| `body.utm_source` | `string \| null` | no | max length 255 |
|
|
268
|
+
| `body.utm_term` | `string \| null` | no | max length 255 |
|
|
269
|
+
| `body.wbraid` | `string \| null` | no | max length 255 |
|
|
270
|
+
|
|
271
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
272
|
+
|
|
273
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
274
|
+
|
|
275
|
+
**Example**
|
|
276
|
+
|
|
277
|
+
```ts
|
|
278
|
+
const result = await g8.api.agents.captureAgentSignupAttribution({ body: {} });
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
<a id="op-confirmagentsessioncard"></a>
|
|
284
|
+
|
|
285
|
+
### `g8.api.agents.confirmAgentSessionCard(input)`
|
|
286
|
+
|
|
287
|
+
**Confirm Agent Session Card**
|
|
288
|
+
|
|
289
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/cards/{card_id}/confirm`
|
|
290
|
+
- operationId: `confirm_agent_session_card_agent_sessions__session_id__cards__card_id__confirm_post` (also callable as `g8.api.call("confirm_agent_session_card_agent_sessions__session_id__cards__card_id__confirm_post", input)`)
|
|
291
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
292
|
+
- API-key scope: `workflows:write`
|
|
293
|
+
|
|
294
|
+
Answer a confirm card the agent posted into a session.
|
|
295
|
+
|
|
296
|
+
Onboarding runs stop on these ("is this your company?", "are these your
|
|
297
|
+
competitors?") and resume when the answer lands, usually within ten
|
|
298
|
+
seconds. Idempotent for the same `state`.
|
|
299
|
+
|
|
300
|
+
**Input**
|
|
301
|
+
|
|
302
|
+
| Field | Type | Required | Description |
|
|
303
|
+
|---|---|---|---|
|
|
304
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
305
|
+
| `path.card_id` | `string` | yes | The card's id in the session. |
|
|
306
|
+
| `body` | `AgentCardConfirmationRequest` | yes | Request body; fields below. |
|
|
307
|
+
|
|
308
|
+
Body fields (`AgentCardConfirmationRequest`):
|
|
309
|
+
|
|
310
|
+
| Field | Type | Required | Description |
|
|
311
|
+
|---|---|---|---|
|
|
312
|
+
| `body.state` | `"approved" \| "edited" \| "rejected"` | yes | `approved` accepts the card as proposed, `edited` accepts it with your `edits`, `rejected` sends it back. Re-sending the same state is a no-op; a different state overwrites. |
|
|
313
|
+
| `body.edits` | `Record<string, unknown> \| null` | no | Per-field overrides for an `edited` card. The shape is the card's own and varies by card kind. |
|
|
314
|
+
| `body.note` | `string \| null` | no | Why, in your words. max length 2000 |
|
|
315
|
+
|
|
316
|
+
**Returns** `ApiResponse_AgentConversationPayload_`: the envelope `{ data: AgentConversationPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
317
|
+
|
|
318
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
319
|
+
|
|
320
|
+
**Example**
|
|
321
|
+
|
|
322
|
+
```ts
|
|
323
|
+
const result = await g8.api.agents.confirmAgentSessionCard({
|
|
324
|
+
path: { session_id: "id", card_id: "id" },
|
|
325
|
+
body: { state: "approved" },
|
|
326
|
+
});
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
<a id="op-createagentsession"></a>
|
|
332
|
+
|
|
333
|
+
### `g8.api.agents.createAgentSession(input)`
|
|
334
|
+
|
|
335
|
+
**Create Agent Session**
|
|
336
|
+
|
|
337
|
+
- HTTP: `POST /api/v1/agent/sessions`
|
|
338
|
+
- operationId: `create_agent_session_agent_sessions_post` (also callable as `g8.api.call("create_agent_session_agent_sessions_post", input)`)
|
|
339
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
340
|
+
- API-key scope: `workflows:write`
|
|
341
|
+
|
|
342
|
+
Open a session, optionally seeded with messages.
|
|
343
|
+
|
|
344
|
+
**Input**
|
|
345
|
+
|
|
346
|
+
| Field | Type | Required | Description |
|
|
347
|
+
|---|---|---|---|
|
|
348
|
+
| `body` | `AgentSessionCreateRequest` | yes | Request body; fields below. |
|
|
349
|
+
|
|
350
|
+
Body fields (`AgentSessionCreateRequest`):
|
|
351
|
+
|
|
352
|
+
| Field | Type | Required | Description |
|
|
353
|
+
|---|---|---|---|
|
|
354
|
+
| `body.messages` | `Array<Record<string, unknown>> \| null` | no | Optional seed messages to open the session with. |
|
|
355
|
+
| `body.mode` | `string` | no | Session mode. default `"general"` |
|
|
356
|
+
| `body.title` | `string \| null` | no | Optional title; the app derives one when omitted. |
|
|
357
|
+
|
|
358
|
+
**Returns** `ApiResponse_AgentSession_`: the envelope `{ data: AgentSession, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
359
|
+
|
|
360
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
361
|
+
|
|
362
|
+
`AgentSession` fields:
|
|
363
|
+
|
|
364
|
+
| Field | Type | Required | Description |
|
|
365
|
+
|---|---|---|---|
|
|
366
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
367
|
+
| `id` | `string \| null` | no | |
|
|
368
|
+
| `is_pinned` | `boolean \| null` | no | |
|
|
369
|
+
| `mode` | `string \| null` | no | Session mode, e.g. `general`. |
|
|
370
|
+
| `title` | `string \| null` | no | |
|
|
371
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
372
|
+
|
|
373
|
+
**Example**
|
|
374
|
+
|
|
375
|
+
```ts
|
|
376
|
+
const result = await g8.api.agents.createAgentSession({ body: {} });
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
<a id="op-createagentvoicedraft"></a>
|
|
382
|
+
|
|
383
|
+
### `g8.api.agents.createAgentVoiceDraft(input)`
|
|
384
|
+
|
|
385
|
+
**Create Agent Voice Draft**
|
|
386
|
+
|
|
387
|
+
- HTTP: `POST /api/v1/agent/sessions/voice/draft`
|
|
388
|
+
- operationId: `create_agent_voice_draft_agent_sessions_voice_draft_post` (also callable as `g8.api.call("create_agent_voice_draft_agent_sessions_voice_draft_post", input)`)
|
|
389
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
390
|
+
- API-key scope: `workflows:write`
|
|
391
|
+
|
|
392
|
+
Create an EMPTY session to speak into.
|
|
393
|
+
|
|
394
|
+
It creates only the conversation - never a synthetic opening turn from the
|
|
395
|
+
agent. That is deliberate in the app and worth preserving: a fabricated
|
|
396
|
+
first message would appear in the transcript as something the agent said
|
|
397
|
+
when it had not yet heard anything.
|
|
398
|
+
|
|
399
|
+
`session_id` is caller-generated, so a client can open its socket and
|
|
400
|
+
create the row without a round trip between the two. Sending the same id
|
|
401
|
+
twice does not create a second session.
|
|
402
|
+
|
|
403
|
+
**Input**
|
|
404
|
+
|
|
405
|
+
| Field | Type | Required | Description |
|
|
406
|
+
|---|---|---|---|
|
|
407
|
+
| `body` | `VoiceDraftRequest` | yes | Request body; fields below. |
|
|
408
|
+
|
|
409
|
+
Body fields (`VoiceDraftRequest`):
|
|
410
|
+
|
|
411
|
+
| Field | Type | Required | Description |
|
|
412
|
+
|---|---|---|---|
|
|
413
|
+
| `body.session_id` | `string (uuid)` | yes | The id the new session will have - CALLER-GENERATED, not server-assigned. That is what lets a client open the socket and create the row without a round trip between them. Reusing an id does not create a second session. |
|
|
414
|
+
|
|
415
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
416
|
+
|
|
417
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
418
|
+
|
|
419
|
+
**Example**
|
|
420
|
+
|
|
421
|
+
```ts
|
|
422
|
+
const result = await g8.api.agents.createAgentVoiceDraft({ body: { session_id: "00000000-0000-0000-0000-000000000000" } });
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
<a id="op-createagentworkitem"></a>
|
|
428
|
+
|
|
429
|
+
### `g8.api.agents.createAgentWorkItem(input)`
|
|
430
|
+
|
|
431
|
+
**Create Agent Work Item**
|
|
432
|
+
|
|
433
|
+
- HTTP: `POST /api/v1/agent/work-items`
|
|
434
|
+
- operationId: `create_agent_work_item_agent_work_items_post` (also callable as `g8.api.call("create_agent_work_item_agent_work_items_post", input)`)
|
|
435
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
436
|
+
- API-key scope: `workflows:run`
|
|
437
|
+
|
|
438
|
+
Start a unit of autonomous work. THE AGENT BEGINS PLANNING IMMEDIATELY.
|
|
439
|
+
|
|
440
|
+
`agent_id` selects the planner template. A known id gets its own template;
|
|
441
|
+
anything else falls back to `full`, which is why it is an open string
|
|
442
|
+
rather than an enum - an enum would reject the ad-hoc case the planner
|
|
443
|
+
explicitly supports.
|
|
444
|
+
|
|
445
|
+
`visibility` defaults to `private`: work started through a key is not
|
|
446
|
+
visible org-wide unless asked for.
|
|
447
|
+
|
|
448
|
+
`user_email` defaults to the identity the key was minted under, so the item
|
|
449
|
+
belongs to a real person rather than to nobody.
|
|
450
|
+
|
|
451
|
+
**Input**
|
|
452
|
+
|
|
453
|
+
| Field | Type | Required | Description |
|
|
454
|
+
|---|---|---|---|
|
|
455
|
+
| `body` | `AgentWorkItemCreateRequest` | yes | Request body; fields below. |
|
|
456
|
+
|
|
457
|
+
Body fields (`AgentWorkItemCreateRequest`):
|
|
458
|
+
|
|
459
|
+
| Field | Type | Required | Description |
|
|
460
|
+
|---|---|---|---|
|
|
461
|
+
| `body.agent_id` | `string` | yes | Which agent owns it. A known id the planner has a template for - `onboarding`, `dialer_setup`, `sequencer_setup`, `campaign_run`, `voice_setup`, `marketplace`, `dev_setup` - or a free-form value, for which the planner falls back to its `full` template. Left as an open string for that reason: an enum here would reject the ad-hoc case the planner explicitly supports. |
|
|
462
|
+
| `body.goal` | `string` | yes | What the agent should achieve. min length 1 |
|
|
463
|
+
| `body.title` | `string` | yes | min length 1, max length 500 |
|
|
464
|
+
| `body.entry_point` | `string \| null` | no | Per-session override. Unset, the planner reads the org's own signup entry point as the long-term truth - so omitting this is usually right. |
|
|
465
|
+
| `body.page` | `string \| null` | no | max length 500 |
|
|
466
|
+
| `body.platform` | `"whatsapp" \| "slack" \| "roam" \| "imessage" \| null` | no | |
|
|
467
|
+
| `body.seed_message` | `string \| null` | no | First user message, so the session opens on the real request. |
|
|
468
|
+
| `body.session_title` | `string \| null` | no | Sidebar title. Defaults to `title`. |
|
|
469
|
+
| `body.skill_mode` | `string \| null` | no | `web_search`, `deep_thinking` or `research`. Biases the planner prompt and model tier. Unknown values are IGNORED by the planner rather than rejected, which is why this is not an enum. |
|
|
470
|
+
| `body.source` | `"canvas" \| "bridge" \| null` | no | |
|
|
471
|
+
| `body.subject_account_id` | `string \| null` | no | Bind the session to a company. |
|
|
472
|
+
| `body.subject_campaign_id` | `string \| null` | no | Bind the session to a campaign. |
|
|
473
|
+
| `body.user_email` | `string \| null` | no | Whose work item this is. Defaults to the identity the key was minted under. |
|
|
474
|
+
| `body.visibility` | `"shared" \| "private"` | no | `private` (default) or `shared` org-wide. The default is the safe one: work started through an API key is not visible to the whole org unless asked for. default `"private"` |
|
|
475
|
+
|
|
476
|
+
**Returns** `ApiResponse_AgentWorkItem_`: the envelope `{ data: AgentWorkItem, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
477
|
+
|
|
478
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
479
|
+
|
|
480
|
+
`AgentWorkItem` fields:
|
|
481
|
+
|
|
482
|
+
| Field | Type | Required | Description |
|
|
483
|
+
|---|---|---|---|
|
|
484
|
+
| `agent_id` | `string \| null` | no | |
|
|
485
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
486
|
+
| `goal` | `string \| null` | no | |
|
|
487
|
+
| `id` | `string \| null` | no | |
|
|
488
|
+
| `session_id` | `string \| null` | no | |
|
|
489
|
+
| `status` | `string \| null` | no | |
|
|
490
|
+
| `title` | `string \| null` | no | |
|
|
491
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
492
|
+
| `visibility` | `string \| null` | no | |
|
|
493
|
+
| `work_item_id` | `string \| null` | no | |
|
|
494
|
+
|
|
495
|
+
**Example**
|
|
496
|
+
|
|
497
|
+
```ts
|
|
498
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
499
|
+
const result = await g8.api.agents.createAgentWorkItem({ body: { agent_id: "id", goal: "example", title: "Example" } });
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
<a id="op-decideagentoperatorapproval"></a>
|
|
505
|
+
|
|
506
|
+
### `g8.api.agents.decideAgentOperatorApproval(input)`
|
|
507
|
+
|
|
508
|
+
**Decide Agent Operator Approval**
|
|
509
|
+
|
|
510
|
+
- HTTP: `POST /api/v1/agent/operators/{operator}/approvals/{task_id}/decide`
|
|
511
|
+
- operationId: `decide_agent_operator_approval_agent_operators__operator__approvals__task_id__decide_post` (also callable as `g8.api.call("decide_agent_operator_approval_agent_operators__operator__approvals__task_id__decide_post", input)`)
|
|
512
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
513
|
+
- API-key scope: `workflows:run`
|
|
514
|
+
|
|
515
|
+
Approve or reject a fix this operator proposed.
|
|
516
|
+
|
|
517
|
+
`approved` RUNS THE FIX: the operator executes its proposed remediation
|
|
518
|
+
against your data, then records the result. `rejected` records the
|
|
519
|
+
decision and runs nothing. Needs OPERATOR_MANAGE, the same governance gate
|
|
520
|
+
as the trust dials, because this authorises execution.
|
|
521
|
+
|
|
522
|
+
A task that is not an open approval for this operator is a 404.
|
|
523
|
+
|
|
524
|
+
**Input**
|
|
525
|
+
|
|
526
|
+
| Field | Type | Required | Description |
|
|
527
|
+
|---|---|---|---|
|
|
528
|
+
| `path.operator` | `string` | yes | |
|
|
529
|
+
| `path.task_id` | `string` | yes | The approval task id. |
|
|
530
|
+
| `body` | `OperatorApprovalDecisionRequest` | yes | Request body; fields below. |
|
|
531
|
+
|
|
532
|
+
Body fields (`OperatorApprovalDecisionRequest`):
|
|
533
|
+
|
|
534
|
+
| Field | Type | Required | Description |
|
|
535
|
+
|---|---|---|---|
|
|
536
|
+
| `body.resolution` | `"approved" \| "rejected"` | yes | `approved` EXECUTES the finding's proposed fix against your data; `rejected` records the decision and executes nothing. |
|
|
537
|
+
| `body.params` | `Record<string, string> \| null` | no | Values a fix needs that the operator could not decide for you, e.g. `{"target_user": "<user id>"}`. Omit for a fully-specified fix. A value the fix refuses is a 400 naming the field, and the task stays open. |
|
|
538
|
+
|
|
539
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
540
|
+
|
|
541
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
542
|
+
|
|
543
|
+
**Example**
|
|
544
|
+
|
|
545
|
+
```ts
|
|
546
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
547
|
+
const result = await g8.api.agents.decideAgentOperatorApproval({
|
|
548
|
+
path: { operator: "example", task_id: "id" },
|
|
549
|
+
body: { resolution: "approved" },
|
|
550
|
+
});
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
<a id="op-deleteagentsession"></a>
|
|
556
|
+
|
|
557
|
+
### `g8.api.agents.deleteAgentSession(input)`
|
|
558
|
+
|
|
559
|
+
**Delete Agent Session**
|
|
560
|
+
|
|
561
|
+
- HTTP: `DELETE /api/v1/agent/sessions/{session_id}`
|
|
562
|
+
- operationId: `delete_agent_session_agent_sessions__session_id__delete` (also callable as `g8.api.call("delete_agent_session_agent_sessions__session_id__delete", input)`)
|
|
563
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
564
|
+
- API-key scope: `workflows:delete`
|
|
565
|
+
|
|
566
|
+
Delete a session. Owner only - the internal handler enforces that.
|
|
567
|
+
|
|
568
|
+
**Input**
|
|
569
|
+
|
|
570
|
+
| Field | Type | Required | Description |
|
|
571
|
+
|---|---|---|---|
|
|
572
|
+
| `path.session_id` | `string` | yes | Session id. |
|
|
573
|
+
|
|
574
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
575
|
+
|
|
576
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
577
|
+
|
|
578
|
+
**Example**
|
|
579
|
+
|
|
580
|
+
```ts
|
|
581
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
582
|
+
const result = await g8.api.agents.deleteAgentSession({ path: { session_id: "id" } });
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
---
|
|
586
|
+
|
|
587
|
+
<a id="op-endagentsessionvoice"></a>
|
|
588
|
+
|
|
589
|
+
### `g8.api.agents.endAgentSessionVoice(input)`
|
|
590
|
+
|
|
591
|
+
**End Agent Session Voice**
|
|
592
|
+
|
|
593
|
+
- HTTP: `DELETE /api/v1/agent/sessions/{session_id}/voice/{voice_id}`
|
|
594
|
+
- operationId: `end_agent_session_voice_agent_sessions__session_id__voice__voice_id__delete` (also callable as `g8.api.call("end_agent_session_voice_agent_sessions__session_id__voice__voice_id__delete", input)`)
|
|
595
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
596
|
+
- API-key scope: `workflows:delete`
|
|
597
|
+
|
|
598
|
+
Stop a live voice session, and stop the meter.
|
|
599
|
+
|
|
600
|
+
This is the one that costs money NOT to call. Ending is the only thing that
|
|
601
|
+
stops the charge short of the ceiling, so treat it as part of the start
|
|
602
|
+
call rather than as cleanup.
|
|
603
|
+
|
|
604
|
+
The CONVERSATION survives - this ends the audio session, not the chat. The
|
|
605
|
+
transcript stays readable through `GET /agent/sessions/{session_id}/state`.
|
|
606
|
+
|
|
607
|
+
**Input**
|
|
608
|
+
|
|
609
|
+
| Field | Type | Required | Description |
|
|
610
|
+
|---|---|---|---|
|
|
611
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
612
|
+
| `path.voice_id` | `string` | yes | Voice session id (UUID) from the start call. |
|
|
613
|
+
|
|
614
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
615
|
+
|
|
616
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
617
|
+
|
|
618
|
+
**Example**
|
|
619
|
+
|
|
620
|
+
```ts
|
|
621
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
622
|
+
const result = await g8.api.agents.endAgentSessionVoice({ path: { session_id: "id", voice_id: "id" } });
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
<a id="op-getagentdiscovery"></a>
|
|
628
|
+
|
|
629
|
+
### `g8.api.agents.getAgentDiscovery(input?)`
|
|
630
|
+
|
|
631
|
+
**Get Agent Discovery**
|
|
632
|
+
|
|
633
|
+
- HTTP: `GET /api/v1/agent/onboarding/discovery`
|
|
634
|
+
- operationId: `get_agent_discovery_agent_onboarding_discovery_get` (also callable as `g8.api.call("get_agent_discovery_agent_onboarding_discovery_get", input)`)
|
|
635
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
636
|
+
- API-key scope: `workflows:read`
|
|
637
|
+
|
|
638
|
+
The whole discovery record, plus an honest coverage report.
|
|
639
|
+
|
|
640
|
+
EVERY field comes back, answered or not - an unanswered one carries
|
|
641
|
+
`status: "open"` rather than being absent, so a caller renders a stable
|
|
642
|
+
list instead of one that grows as the interview proceeds.
|
|
643
|
+
|
|
644
|
+
`coverage` is the part worth reading: `open_musts` names what still blocks
|
|
645
|
+
a launch, `amber_fields` names the working assumptions, and `can_launch` is
|
|
646
|
+
the single boolean. It is not a percentage, on purpose - a framework with
|
|
647
|
+
silent gaps is worse than no framework, because the gaps become confident
|
|
648
|
+
copy three weeks later.
|
|
649
|
+
|
|
650
|
+
**Input**: none.
|
|
651
|
+
|
|
652
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
653
|
+
|
|
654
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
655
|
+
|
|
656
|
+
**Example**
|
|
657
|
+
|
|
658
|
+
```ts
|
|
659
|
+
const result = await g8.api.agents.getAgentDiscovery();
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
<a id="op-getagentdiscoverycampaignbrief"></a>
|
|
665
|
+
|
|
666
|
+
### `g8.api.agents.getAgentDiscoveryCampaignBrief(input?)`
|
|
667
|
+
|
|
668
|
+
**Get Agent Discovery Campaign Brief**
|
|
669
|
+
|
|
670
|
+
- HTTP: `GET /api/v1/agent/onboarding/discovery/campaign-brief`
|
|
671
|
+
- operationId: `get_agent_discovery_campaign_brief_agent_onboarding_discovery_campaign_brief_get` (also callable as `g8.api.call("get_agent_discovery_campaign_brief_agent_onboarding_discovery_campaign_brief_get", input)`)
|
|
672
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
673
|
+
- API-key scope: `workflows:read`
|
|
674
|
+
|
|
675
|
+
The campaign brief the record would produce. A PREVIEW - it writes
|
|
676
|
+
nothing.
|
|
677
|
+
|
|
678
|
+
Deterministic and LLM-free: running it again after two more answers gives
|
|
679
|
+
the same document plus two facts, not a differently-worded one. That is
|
|
680
|
+
what makes it safe to poll while the interview is still going.
|
|
681
|
+
|
|
682
|
+
It never fills a gap to look finished. `open_musts` and `assumptions` come
|
|
683
|
+
back alongside the copy, because a brief that reads as complete while four
|
|
684
|
+
must-answer questions are open is how a silent gap becomes a confident
|
|
685
|
+
wrong campaign.
|
|
686
|
+
|
|
687
|
+
**Input**: none.
|
|
688
|
+
|
|
689
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
690
|
+
|
|
691
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
692
|
+
|
|
693
|
+
**Example**
|
|
694
|
+
|
|
695
|
+
```ts
|
|
696
|
+
const result = await g8.api.agents.getAgentDiscoveryCampaignBrief();
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
---
|
|
700
|
+
|
|
701
|
+
<a id="op-getagentdiscoveryreport"></a>
|
|
702
|
+
|
|
703
|
+
### `g8.api.agents.getAgentDiscoveryReport(input?)`
|
|
704
|
+
|
|
705
|
+
**Get Agent Discovery Report**
|
|
706
|
+
|
|
707
|
+
- HTTP: `GET /api/v1/agent/onboarding/discovery/report`
|
|
708
|
+
- operationId: `get_agent_discovery_report_agent_onboarding_discovery_report_get` (also callable as `g8.api.call("get_agent_discovery_report_agent_onboarding_discovery_report_get", input)`)
|
|
709
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
710
|
+
- API-key scope: `workflows:read`
|
|
711
|
+
|
|
712
|
+
The closing report: what is filled, which MUSTs are still open, what was
|
|
713
|
+
inferred rather than answered.
|
|
714
|
+
|
|
715
|
+
Deliberately not a score. The inferred fields are flagged rather than
|
|
716
|
+
counted, because the useful question at the end of an interview is "what
|
|
717
|
+
did we make up", not "how far did we get".
|
|
718
|
+
|
|
719
|
+
**Input**: none.
|
|
720
|
+
|
|
721
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
722
|
+
|
|
723
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
724
|
+
|
|
725
|
+
**Example**
|
|
726
|
+
|
|
727
|
+
```ts
|
|
728
|
+
const result = await g8.api.agents.getAgentDiscoveryReport();
|
|
729
|
+
```
|
|
730
|
+
|
|
731
|
+
---
|
|
732
|
+
|
|
733
|
+
<a id="op-getagentmemory"></a>
|
|
734
|
+
|
|
735
|
+
### `g8.api.agents.getAgentMemory(input?)`
|
|
736
|
+
|
|
737
|
+
**Get Agent Memory**
|
|
738
|
+
|
|
739
|
+
- HTTP: `GET /api/v1/agent/memory`
|
|
740
|
+
- operationId: `get_agent_memory_agent_memory_get` (also callable as `g8.api.call("get_agent_memory_agent_memory_get", input)`)
|
|
741
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
742
|
+
- API-key scope: `workflows:read`
|
|
743
|
+
|
|
744
|
+
What the agent has learned and carries between sessions.
|
|
745
|
+
|
|
746
|
+
Returned open-shaped: memory is planner state that changes as the platform
|
|
747
|
+
does, and on an oversight surface a dropped field reads as an agent knowing
|
|
748
|
+
less than it does.
|
|
749
|
+
|
|
750
|
+
**Input**: none.
|
|
751
|
+
|
|
752
|
+
**Returns** `ApiResponse_AgentPayload_`: the envelope `{ data: AgentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
753
|
+
|
|
754
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
755
|
+
|
|
756
|
+
**Example**
|
|
757
|
+
|
|
758
|
+
```ts
|
|
759
|
+
const result = await g8.api.agents.getAgentMemory();
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
---
|
|
763
|
+
|
|
764
|
+
<a id="op-getagentoperatingmodel"></a>
|
|
765
|
+
|
|
766
|
+
### `g8.api.agents.getAgentOperatingModel(input?)`
|
|
767
|
+
|
|
768
|
+
**Get Agent Operating Model**
|
|
769
|
+
|
|
770
|
+
- HTTP: `GET /api/v1/agent/operators/operating-model`
|
|
771
|
+
- operationId: `get_agent_operating_model_agent_operators_operating_model_get` (also callable as `g8.api.call("get_agent_operating_model_agent_operators_operating_model_get", input)`)
|
|
772
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
773
|
+
- API-key scope: `workflows:read`
|
|
774
|
+
|
|
775
|
+
The organisation's operating model: which motions it runs, so operators
|
|
776
|
+
know what "normal" looks like here.
|
|
777
|
+
|
|
778
|
+
Read this before writing it. The write is a whole-document replace.
|
|
779
|
+
|
|
780
|
+
**Input**: none.
|
|
781
|
+
|
|
782
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
783
|
+
|
|
784
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
785
|
+
|
|
786
|
+
**Example**
|
|
787
|
+
|
|
788
|
+
```ts
|
|
789
|
+
const result = await g8.api.agents.getAgentOperatingModel();
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
---
|
|
793
|
+
|
|
794
|
+
<a id="op-getagentoperatorcatalog"></a>
|
|
795
|
+
|
|
796
|
+
### `g8.api.agents.getAgentOperatorCatalog(input)`
|
|
797
|
+
|
|
798
|
+
**Get Agent Operator Catalog**
|
|
799
|
+
|
|
800
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/catalog`
|
|
801
|
+
- operationId: `get_agent_operator_catalog_agent_operators__operator__catalog_get` (also callable as `g8.api.call("get_agent_operator_catalog_agent_operators__operator__catalog_get", input)`)
|
|
802
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
803
|
+
- API-key scope: `workflows:read`
|
|
804
|
+
|
|
805
|
+
Everything this operator is CAPABLE of, whether or not it is enabled.
|
|
806
|
+
|
|
807
|
+
**Input**
|
|
808
|
+
|
|
809
|
+
| Field | Type | Required | Description |
|
|
810
|
+
|---|---|---|---|
|
|
811
|
+
| `path.operator` | `string` | yes | |
|
|
812
|
+
|
|
813
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
814
|
+
|
|
815
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
816
|
+
|
|
817
|
+
**Example**
|
|
818
|
+
|
|
819
|
+
```ts
|
|
820
|
+
const result = await g8.api.agents.getAgentOperatorCatalog({ path: { operator: "example" } });
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
---
|
|
824
|
+
|
|
825
|
+
<a id="op-getagentoperatorfeedbacksummary"></a>
|
|
826
|
+
|
|
827
|
+
### `g8.api.agents.getAgentOperatorFeedbackSummary(input)`
|
|
828
|
+
|
|
829
|
+
**Get Agent Operator Feedback Summary**
|
|
830
|
+
|
|
831
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/feedback/summary`
|
|
832
|
+
- operationId: `get_agent_operator_feedback_summary_agent_operators__operator__feedback_summary_get` (also callable as `g8.api.call("get_agent_operator_feedback_summary_agent_operators__operator__feedback_summary_get", input)`)
|
|
833
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
834
|
+
- API-key scope: `workflows:read`
|
|
835
|
+
|
|
836
|
+
What people have said about this operator, in aggregate.
|
|
837
|
+
|
|
838
|
+
**Input**
|
|
839
|
+
|
|
840
|
+
| Field | Type | Required | Description |
|
|
841
|
+
|---|---|---|---|
|
|
842
|
+
| `path.operator` | `string` | yes | |
|
|
843
|
+
|
|
844
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
845
|
+
|
|
846
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
847
|
+
|
|
848
|
+
**Example**
|
|
849
|
+
|
|
850
|
+
```ts
|
|
851
|
+
const result = await g8.api.agents.getAgentOperatorFeedbackSummary({ path: { operator: "example" } });
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
---
|
|
855
|
+
|
|
856
|
+
<a id="op-getagentoperatorforapprovaltask"></a>
|
|
857
|
+
|
|
858
|
+
### `g8.api.agents.getAgentOperatorForApprovalTask(input)`
|
|
859
|
+
|
|
860
|
+
**Get Agent Operator For Approval Task**
|
|
861
|
+
|
|
862
|
+
- HTTP: `GET /api/v1/agent/operators/approvals/{task_id}/operator`
|
|
863
|
+
- operationId: `get_agent_operator_for_approval_task_agent_operators_approvals__task_id__operator_get` (also callable as `g8.api.call("get_agent_operator_for_approval_task_agent_operators_approvals__task_id__operator_get", input)`)
|
|
864
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
865
|
+
- API-key scope: `workflows:read`
|
|
866
|
+
|
|
867
|
+
Which operator raised this approval task.
|
|
868
|
+
|
|
869
|
+
The bridge between an approval sitting in someone's queue and the operator
|
|
870
|
+
whose dial produced it - so a caller can look at the right scorecard before
|
|
871
|
+
deciding, and can leave feedback against the right operator afterwards.
|
|
872
|
+
|
|
873
|
+
**Input**
|
|
874
|
+
|
|
875
|
+
| Field | Type | Required | Description |
|
|
876
|
+
|---|---|---|---|
|
|
877
|
+
| `path.task_id` | `string` | yes | Operator approval task id. |
|
|
878
|
+
|
|
879
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
880
|
+
|
|
881
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
882
|
+
|
|
883
|
+
**Example**
|
|
884
|
+
|
|
885
|
+
```ts
|
|
886
|
+
const result = await g8.api.agents.getAgentOperatorForApprovalTask({ path: { task_id: "id" } });
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
---
|
|
890
|
+
|
|
891
|
+
<a id="op-getagentoperatorhealth"></a>
|
|
892
|
+
|
|
893
|
+
### `g8.api.agents.getAgentOperatorHealth(input)`
|
|
894
|
+
|
|
895
|
+
**Get Agent Operator Health**
|
|
896
|
+
|
|
897
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/health`
|
|
898
|
+
- operationId: `get_agent_operator_health_agent_operators__operator__health_get` (also callable as `g8.api.call("get_agent_operator_health_agent_operators__operator__health_get", input)`)
|
|
899
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
900
|
+
- API-key scope: `workflows:read`
|
|
901
|
+
|
|
902
|
+
This operator's snapshot of the organisation it watches.
|
|
903
|
+
|
|
904
|
+
Open-shaped: each operator reports the checks IT runs, and the set grows
|
|
905
|
+
with the product. A pinned mirror would silently drop a check, and on a
|
|
906
|
+
health surface a missing check reads as a passing one.
|
|
907
|
+
|
|
908
|
+
**Input**
|
|
909
|
+
|
|
910
|
+
| Field | Type | Required | Description |
|
|
911
|
+
|---|---|---|---|
|
|
912
|
+
| `path.operator` | `string` | yes | |
|
|
913
|
+
|
|
914
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
915
|
+
|
|
916
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
917
|
+
|
|
918
|
+
**Example**
|
|
919
|
+
|
|
920
|
+
```ts
|
|
921
|
+
const result = await g8.api.agents.getAgentOperatorHealth({ path: { operator: "example" } });
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
---
|
|
925
|
+
|
|
926
|
+
<a id="op-getagentoperatorrecipient"></a>
|
|
927
|
+
|
|
928
|
+
### `g8.api.agents.getAgentOperatorRecipient(input)`
|
|
929
|
+
|
|
930
|
+
**Get Agent Operator Recipient**
|
|
931
|
+
|
|
932
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/recipient`
|
|
933
|
+
- operationId: `get_agent_operator_recipient_agent_operators__operator__recipient_get` (also callable as `g8.api.call("get_agent_operator_recipient_agent_operators__operator__recipient_get", input)`)
|
|
934
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
935
|
+
- API-key scope: `workflows:read`
|
|
936
|
+
|
|
937
|
+
Who currently receives this operator's alerts and owns its approvals.
|
|
938
|
+
|
|
939
|
+
**Input**
|
|
940
|
+
|
|
941
|
+
| Field | Type | Required | Description |
|
|
942
|
+
|---|---|---|---|
|
|
943
|
+
| `path.operator` | `string` | yes | |
|
|
944
|
+
|
|
945
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
946
|
+
|
|
947
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
948
|
+
|
|
949
|
+
**Example**
|
|
950
|
+
|
|
951
|
+
```ts
|
|
952
|
+
const result = await g8.api.agents.getAgentOperatorRecipient({ path: { operator: "example" } });
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
---
|
|
956
|
+
|
|
957
|
+
<a id="op-getagentoperatorscorecard"></a>
|
|
958
|
+
|
|
959
|
+
### `g8.api.agents.getAgentOperatorScorecard(input)`
|
|
960
|
+
|
|
961
|
+
**Get Agent Operator Scorecard**
|
|
962
|
+
|
|
963
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/scorecard`
|
|
964
|
+
- operationId: `get_agent_operator_scorecard_agent_operators__operator__scorecard_get` (also callable as `g8.api.call("get_agent_operator_scorecard_agent_operators__operator__scorecard_get", input)`)
|
|
965
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
966
|
+
- API-key scope: `workflows:read`
|
|
967
|
+
|
|
968
|
+
Has this operator been right, per skill.
|
|
969
|
+
|
|
970
|
+
The number to read before raising a dial. Raising autonomy on a skill with
|
|
971
|
+
a bad scorecard is how unattended work becomes unattended damage.
|
|
972
|
+
|
|
973
|
+
**Input**
|
|
974
|
+
|
|
975
|
+
| Field | Type | Required | Description |
|
|
976
|
+
|---|---|---|---|
|
|
977
|
+
| `path.operator` | `string` | yes | |
|
|
978
|
+
|
|
979
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
980
|
+
|
|
981
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
982
|
+
|
|
983
|
+
**Example**
|
|
984
|
+
|
|
985
|
+
```ts
|
|
986
|
+
const result = await g8.api.agents.getAgentOperatorScorecard({ path: { operator: "example" } });
|
|
987
|
+
```
|
|
988
|
+
|
|
989
|
+
---
|
|
990
|
+
|
|
991
|
+
<a id="op-getagentoperatorstatus"></a>
|
|
992
|
+
|
|
993
|
+
### `g8.api.agents.getAgentOperatorStatus(input)`
|
|
994
|
+
|
|
995
|
+
**Get Agent Operator Status**
|
|
996
|
+
|
|
997
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/status`
|
|
998
|
+
- operationId: `get_agent_operator_status_agent_operators__operator__status_get` (also callable as `g8.api.call("get_agent_operator_status_agent_operators__operator__status_get", input)`)
|
|
999
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1000
|
+
- API-key scope: `workflows:read`
|
|
1001
|
+
|
|
1002
|
+
Is this operator on, and has it ever run.
|
|
1003
|
+
|
|
1004
|
+
**Input**
|
|
1005
|
+
|
|
1006
|
+
| Field | Type | Required | Description |
|
|
1007
|
+
|---|---|---|---|
|
|
1008
|
+
| `path.operator` | `string` | yes | |
|
|
1009
|
+
|
|
1010
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1011
|
+
|
|
1012
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1013
|
+
|
|
1014
|
+
**Example**
|
|
1015
|
+
|
|
1016
|
+
```ts
|
|
1017
|
+
const result = await g8.api.agents.getAgentOperatorStatus({ path: { operator: "example" } });
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
---
|
|
1021
|
+
|
|
1022
|
+
<a id="op-getagentoperatorssummary"></a>
|
|
1023
|
+
|
|
1024
|
+
### `g8.api.agents.getAgentOperatorsSummary(input?)`
|
|
1025
|
+
|
|
1026
|
+
**Get Agent Operators Summary**
|
|
1027
|
+
|
|
1028
|
+
- HTTP: `GET /api/v1/agent/operators/summary`
|
|
1029
|
+
- operationId: `get_agent_operators_summary_agent_operators_summary_get` (also callable as `g8.api.call("get_agent_operators_summary_agent_operators_summary_get", input)`)
|
|
1030
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1031
|
+
- API-key scope: `workflows:read`
|
|
1032
|
+
|
|
1033
|
+
One digest across the whole bench.
|
|
1034
|
+
|
|
1035
|
+
Finding counts here are DISTINCT, not the sum of the per-operator numbers
|
|
1036
|
+
from `GET /agent/operators`. Shared findings legitimately appear in several
|
|
1037
|
+
operators' caches, and adding the cards up counts them more than once - the
|
|
1038
|
+
app's own banner did exactly that before this was split out.
|
|
1039
|
+
|
|
1040
|
+
**Input**: none.
|
|
1041
|
+
|
|
1042
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1043
|
+
|
|
1044
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1045
|
+
|
|
1046
|
+
**Example**
|
|
1047
|
+
|
|
1048
|
+
```ts
|
|
1049
|
+
const result = await g8.api.agents.getAgentOperatorsSummary();
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+
---
|
|
1053
|
+
|
|
1054
|
+
<a id="op-getagentoversight"></a>
|
|
1055
|
+
|
|
1056
|
+
### `g8.api.agents.getAgentOversight(input?)`
|
|
1057
|
+
|
|
1058
|
+
**Get Agent Oversight**
|
|
1059
|
+
|
|
1060
|
+
- HTTP: `GET /api/v1/agent/oversight`
|
|
1061
|
+
- operationId: `get_agent_oversight_agent_oversight_get` (also callable as `g8.api.call("get_agent_oversight_agent_oversight_get", input)`)
|
|
1062
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1063
|
+
- API-key scope: `workflows:read`
|
|
1064
|
+
|
|
1065
|
+
What your agents need from a person, and what they did without asking.
|
|
1066
|
+
|
|
1067
|
+
Three groups in one read: `approvals` (work stopped on a decision - each
|
|
1068
|
+
row carries what `POST /agent/approvals/{approval_id}/decide` needs),
|
|
1069
|
+
`blockers` (work stopped for another reason, with why) and
|
|
1070
|
+
`autonomous_fixes` (changes made on your behalf).
|
|
1071
|
+
|
|
1072
|
+
AN EMPTY GROUP SAYS WHY. Read `states`: `ready` means the read worked and
|
|
1073
|
+
there is nothing, `unavailable` means the read failed, `not_recorded`
|
|
1074
|
+
means nothing is ever recorded there for this org (no skill is dialled to
|
|
1075
|
+
act on its own). Every group is capped at `limit` and says so in `bounds`.
|
|
1076
|
+
|
|
1077
|
+
**Input**
|
|
1078
|
+
|
|
1079
|
+
| Field | Type | Required | Description |
|
|
1080
|
+
|---|---|---|---|
|
|
1081
|
+
| `query.limit` | `integer` | no | Max rows PER GROUP. default `50` |
|
|
1082
|
+
| `query.fix_window_hours` | `integer` | no | How far back autonomous fixes are read. default `24` |
|
|
1083
|
+
|
|
1084
|
+
**Returns** `ApiResponse_AgentConversationPayload_`: the envelope `{ data: AgentConversationPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1085
|
+
|
|
1086
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1087
|
+
|
|
1088
|
+
**Example**
|
|
1089
|
+
|
|
1090
|
+
```ts
|
|
1091
|
+
const result = await g8.api.agents.getAgentOversight();
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
---
|
|
1095
|
+
|
|
1096
|
+
<a id="op-getagentproactiveopener"></a>
|
|
1097
|
+
|
|
1098
|
+
### `g8.api.agents.getAgentProactiveOpener(input?)`
|
|
1099
|
+
|
|
1100
|
+
**Get Agent Proactive Opener**
|
|
1101
|
+
|
|
1102
|
+
- HTTP: `GET /api/v1/agent/proactive-opener`
|
|
1103
|
+
- operationId: `get_agent_proactive_opener_agent_proactive_opener_get` (also callable as `g8.api.call("get_agent_proactive_opener_agent_proactive_opener_get", input)`)
|
|
1104
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1105
|
+
- API-key scope: `workflows:read`
|
|
1106
|
+
|
|
1107
|
+
What the agent would open a conversation with, unprompted.
|
|
1108
|
+
|
|
1109
|
+
A read - it computes a suggestion and starts nothing.
|
|
1110
|
+
|
|
1111
|
+
**Input**: none.
|
|
1112
|
+
|
|
1113
|
+
**Returns** `ApiResponse_AgentPayload_`: the envelope `{ data: AgentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1114
|
+
|
|
1115
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1116
|
+
|
|
1117
|
+
**Example**
|
|
1118
|
+
|
|
1119
|
+
```ts
|
|
1120
|
+
const result = await g8.api.agents.getAgentProactiveOpener();
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
---
|
|
1124
|
+
|
|
1125
|
+
<a id="op-getagentpushbackevidence"></a>
|
|
1126
|
+
|
|
1127
|
+
### `g8.api.agents.getAgentPushbackEvidence(input?)`
|
|
1128
|
+
|
|
1129
|
+
**Get Agent Pushback Evidence**
|
|
1130
|
+
|
|
1131
|
+
- HTTP: `GET /api/v1/agent/evidence/pushback`
|
|
1132
|
+
- operationId: `get_agent_pushback_evidence_agent_evidence_pushback_get` (also callable as `g8.api.call("get_agent_pushback_evidence_agent_evidence_pushback_get", input)`)
|
|
1133
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1134
|
+
- API-key scope: `workflows:read`
|
|
1135
|
+
|
|
1136
|
+
Where the agent was overruled, and on what.
|
|
1137
|
+
|
|
1138
|
+
The oversight signal worth acting on: it shows which of the agent's
|
|
1139
|
+
suggestions humans rejected, which is how a customer tunes it rather than
|
|
1140
|
+
turning it off.
|
|
1141
|
+
|
|
1142
|
+
**Input**
|
|
1143
|
+
|
|
1144
|
+
| Field | Type | Required | Description |
|
|
1145
|
+
|---|---|---|---|
|
|
1146
|
+
| `query.window_days` | `integer` | no | Lookback window in days. default `30` |
|
|
1147
|
+
|
|
1148
|
+
**Returns** `ApiResponse_AgentPayload_`: the envelope `{ data: AgentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1149
|
+
|
|
1150
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1151
|
+
|
|
1152
|
+
**Example**
|
|
1153
|
+
|
|
1154
|
+
```ts
|
|
1155
|
+
const result = await g8.api.agents.getAgentPushbackEvidence();
|
|
1156
|
+
```
|
|
1157
|
+
|
|
1158
|
+
---
|
|
1159
|
+
|
|
1160
|
+
<a id="op-getagentsession"></a>
|
|
1161
|
+
|
|
1162
|
+
### `g8.api.agents.getAgentSession(input)`
|
|
1163
|
+
|
|
1164
|
+
**Get Agent Session**
|
|
1165
|
+
|
|
1166
|
+
- HTTP: `GET /api/v1/agent/sessions/{session_id}`
|
|
1167
|
+
- operationId: `get_agent_session_agent_sessions__session_id__get` (also callable as `g8.api.call("get_agent_session_agent_sessions__session_id__get", input)`)
|
|
1168
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1169
|
+
- API-key scope: `workflows:read`
|
|
1170
|
+
|
|
1171
|
+
Read one session, including its messages.
|
|
1172
|
+
|
|
1173
|
+
**Input**
|
|
1174
|
+
|
|
1175
|
+
| Field | Type | Required | Description |
|
|
1176
|
+
|---|---|---|---|
|
|
1177
|
+
| `path.session_id` | `string` | yes | Session id. |
|
|
1178
|
+
|
|
1179
|
+
**Returns** `ApiResponse_AgentSession_`: the envelope `{ data: AgentSession, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1180
|
+
|
|
1181
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1182
|
+
|
|
1183
|
+
`AgentSession` fields:
|
|
1184
|
+
|
|
1185
|
+
| Field | Type | Required | Description |
|
|
1186
|
+
|---|---|---|---|
|
|
1187
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
1188
|
+
| `id` | `string \| null` | no | |
|
|
1189
|
+
| `is_pinned` | `boolean \| null` | no | |
|
|
1190
|
+
| `mode` | `string \| null` | no | Session mode, e.g. `general`. |
|
|
1191
|
+
| `title` | `string \| null` | no | |
|
|
1192
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
1193
|
+
|
|
1194
|
+
**Example**
|
|
1195
|
+
|
|
1196
|
+
```ts
|
|
1197
|
+
const result = await g8.api.agents.getAgentSession({ path: { session_id: "id" } });
|
|
1198
|
+
```
|
|
1199
|
+
|
|
1200
|
+
---
|
|
1201
|
+
|
|
1202
|
+
<a id="op-getagentsessionstate"></a>
|
|
1203
|
+
|
|
1204
|
+
### `g8.api.agents.getAgentSessionState(input)`
|
|
1205
|
+
|
|
1206
|
+
**Get Agent Session State**
|
|
1207
|
+
|
|
1208
|
+
- HTTP: `GET /api/v1/agent/sessions/{session_id}/state`
|
|
1209
|
+
- operationId: `get_agent_session_state_agent_sessions__session_id__state_get` (also callable as `g8.api.call("get_agent_session_state_agent_sessions__session_id__state_get", input)`)
|
|
1210
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1211
|
+
- API-key scope: `workflows:read`
|
|
1212
|
+
|
|
1213
|
+
Everything needed to render one session from cold.
|
|
1214
|
+
|
|
1215
|
+
THREE sources in one answer, and the difference between them matters:
|
|
1216
|
+
`messages` are the chat bubbles, `steps` are what the agent actually did
|
|
1217
|
+
(tool calls, reasoning summaries) and `work_item_status` is whether it is
|
|
1218
|
+
still going. A session driven by a work item has richer `steps` than
|
|
1219
|
+
`messages`, and a plain chat has only `messages` - so a client that renders
|
|
1220
|
+
only one of them will show an empty conversation for half the sessions.
|
|
1221
|
+
|
|
1222
|
+
404s on a session the caller cannot see, rather than 403 - existence is not
|
|
1223
|
+
leaked by distinguishing the two.
|
|
1224
|
+
|
|
1225
|
+
**Input**
|
|
1226
|
+
|
|
1227
|
+
| Field | Type | Required | Description |
|
|
1228
|
+
|---|---|---|---|
|
|
1229
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
1230
|
+
|
|
1231
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1232
|
+
|
|
1233
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1234
|
+
|
|
1235
|
+
**Example**
|
|
1236
|
+
|
|
1237
|
+
```ts
|
|
1238
|
+
const result = await g8.api.agents.getAgentSessionState({ path: { session_id: "id" } });
|
|
1239
|
+
```
|
|
1240
|
+
|
|
1241
|
+
---
|
|
1242
|
+
|
|
1243
|
+
<a id="op-getagentsessionvoicecapability"></a>
|
|
1244
|
+
|
|
1245
|
+
### `g8.api.agents.getAgentSessionVoiceCapability(input)`
|
|
1246
|
+
|
|
1247
|
+
**Get Agent Session Voice Capability**
|
|
1248
|
+
|
|
1249
|
+
- HTTP: `GET /api/v1/agent/sessions/{session_id}/voice`
|
|
1250
|
+
- operationId: `get_agent_session_voice_capability_agent_sessions__session_id__voice_get` (also callable as `g8.api.call("get_agent_session_voice_capability_agent_sessions__session_id__voice_get", input)`)
|
|
1251
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1252
|
+
- API-key scope: `workflows:read`
|
|
1253
|
+
|
|
1254
|
+
Can voice be used on THIS session.
|
|
1255
|
+
|
|
1256
|
+
Differs from the workspace answer by also checking the caller owns the
|
|
1257
|
+
session, so it is the one to ask before showing a microphone on a specific
|
|
1258
|
+
conversation.
|
|
1259
|
+
|
|
1260
|
+
**Input**
|
|
1261
|
+
|
|
1262
|
+
| Field | Type | Required | Description |
|
|
1263
|
+
|---|---|---|---|
|
|
1264
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
1265
|
+
|
|
1266
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1267
|
+
|
|
1268
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1269
|
+
|
|
1270
|
+
**Example**
|
|
1271
|
+
|
|
1272
|
+
```ts
|
|
1273
|
+
const result = await g8.api.agents.getAgentSessionVoiceCapability({ path: { session_id: "id" } });
|
|
1274
|
+
```
|
|
1275
|
+
|
|
1276
|
+
---
|
|
1277
|
+
|
|
1278
|
+
<a id="op-getagentvoicecapability"></a>
|
|
1279
|
+
|
|
1280
|
+
### `g8.api.agents.getAgentVoiceCapability(input?)`
|
|
1281
|
+
|
|
1282
|
+
**Get Agent Voice Capability**
|
|
1283
|
+
|
|
1284
|
+
- HTTP: `GET /api/v1/agent/sessions/voice/capability`
|
|
1285
|
+
- operationId: `get_agent_voice_capability_agent_sessions_voice_capability_get` (also callable as `g8.api.call("get_agent_voice_capability_agent_sessions_voice_capability_get", input)`)
|
|
1286
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1287
|
+
- API-key scope: `workflows:read`
|
|
1288
|
+
|
|
1289
|
+
Can this workspace use voice at all, and what does it cost.
|
|
1290
|
+
|
|
1291
|
+
The org-wide answer, with indicative pricing - ask this before building a
|
|
1292
|
+
voice affordance into a UI. The per-session twin
|
|
1293
|
+
(`GET /agent/sessions/{session_id}/voice`) answers the same question for one
|
|
1294
|
+
conversation and additionally checks the caller owns it.
|
|
1295
|
+
|
|
1296
|
+
`available: false` comes with a `reason`, so a client can say WHY rather
|
|
1297
|
+
than hiding the control.
|
|
1298
|
+
|
|
1299
|
+
**Input**: none.
|
|
1300
|
+
|
|
1301
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1302
|
+
|
|
1303
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1304
|
+
|
|
1305
|
+
**Example**
|
|
1306
|
+
|
|
1307
|
+
```ts
|
|
1308
|
+
const result = await g8.api.agents.getAgentVoiceCapability();
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
---
|
|
1312
|
+
|
|
1313
|
+
<a id="op-listagentoperatoractions"></a>
|
|
1314
|
+
|
|
1315
|
+
### `g8.api.agents.listAgentOperatorActions(input)`
|
|
1316
|
+
|
|
1317
|
+
**List Agent Operator Actions**
|
|
1318
|
+
|
|
1319
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/actions`
|
|
1320
|
+
- operationId: `list_agent_operator_actions_agent_operators__operator__actions_get` (also callable as `g8.api.call("list_agent_operator_actions_agent_operators__operator__actions_get", input)`)
|
|
1321
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1322
|
+
- API-key scope: `workflows:read`
|
|
1323
|
+
|
|
1324
|
+
The action descriptors behind this operator's skills.
|
|
1325
|
+
|
|
1326
|
+
Static and org-independent - the same answer for every organisation. It is
|
|
1327
|
+
the definition of what each action does and how reversible it is, which is
|
|
1328
|
+
what the trust-dial ceiling is computed from.
|
|
1329
|
+
|
|
1330
|
+
**Input**
|
|
1331
|
+
|
|
1332
|
+
| Field | Type | Required | Description |
|
|
1333
|
+
|---|---|---|---|
|
|
1334
|
+
| `path.operator` | `string` | yes | |
|
|
1335
|
+
|
|
1336
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1337
|
+
|
|
1338
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1339
|
+
|
|
1340
|
+
`OperatorListPayload` fields:
|
|
1341
|
+
|
|
1342
|
+
| Field | Type | Required | Description |
|
|
1343
|
+
|---|---|---|---|
|
|
1344
|
+
| `items` | `Array<unknown>` | no | |
|
|
1345
|
+
|
|
1346
|
+
**Example**
|
|
1347
|
+
|
|
1348
|
+
```ts
|
|
1349
|
+
const result = await g8.api.agents.listAgentOperatorActions({ path: { operator: "example" } });
|
|
1350
|
+
```
|
|
1351
|
+
|
|
1352
|
+
---
|
|
1353
|
+
|
|
1354
|
+
<a id="op-listagentoperatoractivity"></a>
|
|
1355
|
+
|
|
1356
|
+
### `g8.api.agents.listAgentOperatorActivity(input)`
|
|
1357
|
+
|
|
1358
|
+
**List Agent Operator Activity**
|
|
1359
|
+
|
|
1360
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/activity`
|
|
1361
|
+
- operationId: `list_agent_operator_activity_agent_operators__operator__activity_get` (also callable as `g8.api.call("list_agent_operator_activity_agent_operators__operator__activity_get", input)`)
|
|
1362
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1363
|
+
- API-key scope: `workflows:read`
|
|
1364
|
+
|
|
1365
|
+
What this operator actually DID - decided approvals and remediations.
|
|
1366
|
+
|
|
1367
|
+
Findings are what it saw; this is what it changed. The audit trail for
|
|
1368
|
+
unattended work, and the only place that distinguishes the two.
|
|
1369
|
+
|
|
1370
|
+
**Input**
|
|
1371
|
+
|
|
1372
|
+
| Field | Type | Required | Description |
|
|
1373
|
+
|---|---|---|---|
|
|
1374
|
+
| `path.operator` | `string` | yes | |
|
|
1375
|
+
| `query.limit` | `integer` | no | How many history rows to return. The app's own default is 50 and it declares no ceiling; a bound is added here because an unbounded limit on a public contract is a denial-of-service parameter. default `50` |
|
|
1376
|
+
|
|
1377
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1378
|
+
|
|
1379
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1380
|
+
|
|
1381
|
+
`OperatorListPayload` fields:
|
|
1382
|
+
|
|
1383
|
+
| Field | Type | Required | Description |
|
|
1384
|
+
|---|---|---|---|
|
|
1385
|
+
| `items` | `Array<unknown>` | no | |
|
|
1386
|
+
|
|
1387
|
+
**Example**
|
|
1388
|
+
|
|
1389
|
+
```ts
|
|
1390
|
+
const result = await g8.api.agents.listAgentOperatorActivity({ path: { operator: "example" } });
|
|
1391
|
+
```
|
|
1392
|
+
|
|
1393
|
+
---
|
|
1394
|
+
|
|
1395
|
+
<a id="op-listagentoperatoractivityrecords"></a>
|
|
1396
|
+
|
|
1397
|
+
### `g8.api.agents.listAgentOperatorActivityRecords(input)`
|
|
1398
|
+
|
|
1399
|
+
**List Agent Operator Activity Records**
|
|
1400
|
+
|
|
1401
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/activity/{task_id}/records`
|
|
1402
|
+
- operationId: `list_agent_operator_activity_records_agent_operators__operator__activity__task_id__records_get` (also callable as `g8.api.call("list_agent_operator_activity_records_agent_operators__operator__activity__task_id__records_get", input)`)
|
|
1403
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1404
|
+
- API-key scope: `workflows:read`
|
|
1405
|
+
|
|
1406
|
+
Which records one activity entry touched.
|
|
1407
|
+
|
|
1408
|
+
The row-level detail behind a single thing the operator did: what it
|
|
1409
|
+
changed, not just that it changed something.
|
|
1410
|
+
|
|
1411
|
+
**Input**
|
|
1412
|
+
|
|
1413
|
+
| Field | Type | Required | Description |
|
|
1414
|
+
|---|---|---|---|
|
|
1415
|
+
| `path.operator` | `string` | yes | |
|
|
1416
|
+
| `path.task_id` | `string` | yes | Task id from the activity list. |
|
|
1417
|
+
|
|
1418
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1419
|
+
|
|
1420
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1421
|
+
|
|
1422
|
+
`OperatorListPayload` fields:
|
|
1423
|
+
|
|
1424
|
+
| Field | Type | Required | Description |
|
|
1425
|
+
|---|---|---|---|
|
|
1426
|
+
| `items` | `Array<unknown>` | no | |
|
|
1427
|
+
|
|
1428
|
+
**Example**
|
|
1429
|
+
|
|
1430
|
+
```ts
|
|
1431
|
+
const result = await g8.api.agents.listAgentOperatorActivityRecords({ path: { operator: "example", task_id: "id" } });
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
---
|
|
1435
|
+
|
|
1436
|
+
<a id="op-listagentoperatorapprovalsources"></a>
|
|
1437
|
+
|
|
1438
|
+
### `g8.api.agents.listAgentOperatorApprovalSources(input?)`
|
|
1439
|
+
|
|
1440
|
+
**List Agent Operator Approval Sources**
|
|
1441
|
+
|
|
1442
|
+
- HTTP: `GET /api/v1/agent/operators/approvals/sources`
|
|
1443
|
+
- operationId: `list_agent_operator_approval_sources_agent_operators_approvals_sources_get` (also callable as `g8.api.call("list_agent_operator_approval_sources_agent_operators_approvals_sources_get", input)`)
|
|
1444
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1445
|
+
- API-key scope: `workflows:read`
|
|
1446
|
+
|
|
1447
|
+
Where operator approval tasks come from.
|
|
1448
|
+
|
|
1449
|
+
The vocabulary behind `GET /agent/operators/{operator}/findings` - what
|
|
1450
|
+
kinds of thing raise an approval in the first place.
|
|
1451
|
+
|
|
1452
|
+
**Input**: none.
|
|
1453
|
+
|
|
1454
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1455
|
+
|
|
1456
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1457
|
+
|
|
1458
|
+
`OperatorListPayload` fields:
|
|
1459
|
+
|
|
1460
|
+
| Field | Type | Required | Description |
|
|
1461
|
+
|---|---|---|---|
|
|
1462
|
+
| `items` | `Array<unknown>` | no | |
|
|
1463
|
+
|
|
1464
|
+
**Example**
|
|
1465
|
+
|
|
1466
|
+
```ts
|
|
1467
|
+
const result = await g8.api.agents.listAgentOperatorApprovalSources();
|
|
1468
|
+
```
|
|
1469
|
+
|
|
1470
|
+
---
|
|
1471
|
+
|
|
1472
|
+
<a id="op-listagentoperatorcollections"></a>
|
|
1473
|
+
|
|
1474
|
+
### `g8.api.agents.listAgentOperatorCollections(input)`
|
|
1475
|
+
|
|
1476
|
+
**List Agent Operator Collections**
|
|
1477
|
+
|
|
1478
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/collections`
|
|
1479
|
+
- operationId: `list_agent_operator_collections_agent_operators__operator__collections_get` (also callable as `g8.api.call("list_agent_operator_collections_agent_operators__operator__collections_get", input)`)
|
|
1480
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1481
|
+
- API-key scope: `workflows:read`
|
|
1482
|
+
|
|
1483
|
+
The knowledge collections this operator reasons from.
|
|
1484
|
+
|
|
1485
|
+
Slug, name and a one-line summary only. The BODIES are never returned -
|
|
1486
|
+
they are graph8-managed and locked, and the app does not expose them
|
|
1487
|
+
either. This is not a gap in the proxy.
|
|
1488
|
+
|
|
1489
|
+
**Input**
|
|
1490
|
+
|
|
1491
|
+
| Field | Type | Required | Description |
|
|
1492
|
+
|---|---|---|---|
|
|
1493
|
+
| `path.operator` | `string` | yes | |
|
|
1494
|
+
|
|
1495
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1496
|
+
|
|
1497
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1498
|
+
|
|
1499
|
+
`OperatorListPayload` fields:
|
|
1500
|
+
|
|
1501
|
+
| Field | Type | Required | Description |
|
|
1502
|
+
|---|---|---|---|
|
|
1503
|
+
| `items` | `Array<unknown>` | no | |
|
|
1504
|
+
|
|
1505
|
+
**Example**
|
|
1506
|
+
|
|
1507
|
+
```ts
|
|
1508
|
+
const result = await g8.api.agents.listAgentOperatorCollections({ path: { operator: "example" } });
|
|
1509
|
+
```
|
|
1510
|
+
|
|
1511
|
+
---
|
|
1512
|
+
|
|
1513
|
+
<a id="op-listagentoperatorfindings"></a>
|
|
1514
|
+
|
|
1515
|
+
### `g8.api.agents.listAgentOperatorFindings(input)`
|
|
1516
|
+
|
|
1517
|
+
**List Agent Operator Findings**
|
|
1518
|
+
|
|
1519
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/findings`
|
|
1520
|
+
- operationId: `list_agent_operator_findings_agent_operators__operator__findings_get` (also callable as `g8.api.call("list_agent_operator_findings_agent_operators__operator__findings_get", input)`)
|
|
1521
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1522
|
+
- API-key scope: `workflows:read`
|
|
1523
|
+
|
|
1524
|
+
What this operator has found and classified, right now.
|
|
1525
|
+
|
|
1526
|
+
The output of unattended work. Findings are what a `DETECT` dial produces;
|
|
1527
|
+
a `PROPOSE` dial turns some of them into approval tasks a person decides.
|
|
1528
|
+
|
|
1529
|
+
**Input**
|
|
1530
|
+
|
|
1531
|
+
| Field | Type | Required | Description |
|
|
1532
|
+
|---|---|---|---|
|
|
1533
|
+
| `path.operator` | `string` | yes | |
|
|
1534
|
+
|
|
1535
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1536
|
+
|
|
1537
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1538
|
+
|
|
1539
|
+
`OperatorListPayload` fields:
|
|
1540
|
+
|
|
1541
|
+
| Field | Type | Required | Description |
|
|
1542
|
+
|---|---|---|---|
|
|
1543
|
+
| `items` | `Array<unknown>` | no | |
|
|
1544
|
+
|
|
1545
|
+
**Example**
|
|
1546
|
+
|
|
1547
|
+
```ts
|
|
1548
|
+
const result = await g8.api.agents.listAgentOperatorFindings({ path: { operator: "example" } });
|
|
1549
|
+
```
|
|
1550
|
+
|
|
1551
|
+
---
|
|
1552
|
+
|
|
1553
|
+
<a id="op-listagentoperatorskills"></a>
|
|
1554
|
+
|
|
1555
|
+
### `g8.api.agents.listAgentOperatorSkills(input)`
|
|
1556
|
+
|
|
1557
|
+
**List Agent Operator Skills**
|
|
1558
|
+
|
|
1559
|
+
- HTTP: `GET /api/v1/agent/operators/{operator}/skills`
|
|
1560
|
+
- operationId: `list_agent_operator_skills_agent_operators__operator__skills_get` (also callable as `g8.api.call("list_agent_operator_skills_agent_operators__operator__skills_get", input)`)
|
|
1561
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1562
|
+
- API-key scope: `workflows:read`
|
|
1563
|
+
|
|
1564
|
+
Each skill this operator has, and how far it may currently go.
|
|
1565
|
+
|
|
1566
|
+
The source of the `skill_key` values the trust-dial write accepts, and the
|
|
1567
|
+
place to read back what a dial actually RESOLVED to after the risk cap was
|
|
1568
|
+
applied.
|
|
1569
|
+
|
|
1570
|
+
**Input**
|
|
1571
|
+
|
|
1572
|
+
| Field | Type | Required | Description |
|
|
1573
|
+
|---|---|---|---|
|
|
1574
|
+
| `path.operator` | `string` | yes | |
|
|
1575
|
+
|
|
1576
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1577
|
+
|
|
1578
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1579
|
+
|
|
1580
|
+
`OperatorListPayload` fields:
|
|
1581
|
+
|
|
1582
|
+
| Field | Type | Required | Description |
|
|
1583
|
+
|---|---|---|---|
|
|
1584
|
+
| `items` | `Array<unknown>` | no | |
|
|
1585
|
+
|
|
1586
|
+
**Example**
|
|
1587
|
+
|
|
1588
|
+
```ts
|
|
1589
|
+
const result = await g8.api.agents.listAgentOperatorSkills({ path: { operator: "example" } });
|
|
1590
|
+
```
|
|
1591
|
+
|
|
1592
|
+
---
|
|
1593
|
+
|
|
1594
|
+
<a id="op-listagentoperators"></a>
|
|
1595
|
+
|
|
1596
|
+
### `g8.api.agents.listAgentOperators(input?)`
|
|
1597
|
+
|
|
1598
|
+
**List Agent Operators**
|
|
1599
|
+
|
|
1600
|
+
- HTTP: `GET /api/v1/agent/operators`
|
|
1601
|
+
- operationId: `list_agent_operators_agent_operators_get` (also callable as `g8.api.call("list_agent_operators_agent_operators_get", input)`)
|
|
1602
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1603
|
+
- API-key scope: `workflows:read`
|
|
1604
|
+
|
|
1605
|
+
Every operator on the bench, with whether it is switched on for you.
|
|
1606
|
+
|
|
1607
|
+
The starting point for this surface: it carries each operator's catalog
|
|
1608
|
+
metadata and its live status - enabled, whether it has ever run, and how
|
|
1609
|
+
many findings it is holding.
|
|
1610
|
+
|
|
1611
|
+
**Input**: none.
|
|
1612
|
+
|
|
1613
|
+
**Returns** `ApiResponse_OperatorListPayload_`: the envelope `{ data: OperatorListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1614
|
+
|
|
1615
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1616
|
+
|
|
1617
|
+
`OperatorListPayload` fields:
|
|
1618
|
+
|
|
1619
|
+
| Field | Type | Required | Description |
|
|
1620
|
+
|---|---|---|---|
|
|
1621
|
+
| `items` | `Array<unknown>` | no | |
|
|
1622
|
+
|
|
1623
|
+
**Example**
|
|
1624
|
+
|
|
1625
|
+
```ts
|
|
1626
|
+
const result = await g8.api.agents.listAgentOperators();
|
|
1627
|
+
```
|
|
1628
|
+
|
|
1629
|
+
---
|
|
1630
|
+
|
|
1631
|
+
<a id="op-listagentsessions"></a>
|
|
1632
|
+
|
|
1633
|
+
### `g8.api.agents.listAgentSessions(input?)`
|
|
1634
|
+
|
|
1635
|
+
**List Agent Sessions**
|
|
1636
|
+
|
|
1637
|
+
- HTTP: `GET /api/v1/agent/sessions`
|
|
1638
|
+
- operationId: `list_agent_sessions_agent_sessions_get` (also callable as `g8.api.call("list_agent_sessions_agent_sessions_get", input)`)
|
|
1639
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1640
|
+
- API-key scope: `workflows:read`
|
|
1641
|
+
|
|
1642
|
+
Sessions owned by, or shared with, the principal behind this key.
|
|
1643
|
+
|
|
1644
|
+
**Input**
|
|
1645
|
+
|
|
1646
|
+
| Field | Type | Required | Description |
|
|
1647
|
+
|---|---|---|---|
|
|
1648
|
+
| `query.mode` | `string \| null` | no | Filter to one session mode. |
|
|
1649
|
+
| `query.limit` | `integer` | no | Page size (max 200). default `50` |
|
|
1650
|
+
| `query.offset` | `integer` | no | Rows to skip. default `0` |
|
|
1651
|
+
|
|
1652
|
+
**Returns** `ApiResponse_AgentSessionListResponse_`: the envelope `{ data: AgentSessionListResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1653
|
+
|
|
1654
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1655
|
+
|
|
1656
|
+
`AgentSessionListResponse` fields:
|
|
1657
|
+
|
|
1658
|
+
| Field | Type | Required | Description |
|
|
1659
|
+
|---|---|---|---|
|
|
1660
|
+
| `sessions` | `Array<AgentSession>` | no | |
|
|
1661
|
+
| `total` | `integer` | no | default `0` |
|
|
1662
|
+
|
|
1663
|
+
**Example**
|
|
1664
|
+
|
|
1665
|
+
```ts
|
|
1666
|
+
const result = await g8.api.agents.listAgentSessions();
|
|
1667
|
+
```
|
|
1668
|
+
|
|
1669
|
+
---
|
|
1670
|
+
|
|
1671
|
+
<a id="op-listagentspecialists"></a>
|
|
1672
|
+
|
|
1673
|
+
### `g8.api.agents.listAgentSpecialists(input?)`
|
|
1674
|
+
|
|
1675
|
+
**List Agent Specialists**
|
|
1676
|
+
|
|
1677
|
+
- HTTP: `GET /api/v1/agent/specialists`
|
|
1678
|
+
- operationId: `list_agent_specialists_agent_specialists_get` (also callable as `g8.api.call("list_agent_specialists_agent_specialists_get", input)`)
|
|
1679
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1680
|
+
- API-key scope: `workflows:read`
|
|
1681
|
+
|
|
1682
|
+
The sub-agents available to be delegated to.
|
|
1683
|
+
|
|
1684
|
+
The bench: who each specialist is, what it is for, and whether it backs the
|
|
1685
|
+
Chief of Staff. Static and the same for every organisation - it is the
|
|
1686
|
+
catalogue of what the platform can delegate to, not what YOUR org has
|
|
1687
|
+
configured.
|
|
1688
|
+
|
|
1689
|
+
Read it to learn the `agent_id` values `POST /agent/work-items` accepts as
|
|
1690
|
+
its planner template. An unknown id there falls back to the general planner
|
|
1691
|
+
rather than failing, which is why that field is an open string - this is the
|
|
1692
|
+
list that stops a caller relying on that fallback by accident.
|
|
1693
|
+
|
|
1694
|
+
**Input**: none.
|
|
1695
|
+
|
|
1696
|
+
**Returns** `ApiResponse_AgentBenchListPayload_`: the envelope `{ data: AgentBenchListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1697
|
+
|
|
1698
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1699
|
+
|
|
1700
|
+
`AgentBenchListPayload` fields:
|
|
1701
|
+
|
|
1702
|
+
| Field | Type | Required | Description |
|
|
1703
|
+
|---|---|---|---|
|
|
1704
|
+
| `items` | `Array<unknown>` | no | |
|
|
1705
|
+
|
|
1706
|
+
**Example**
|
|
1707
|
+
|
|
1708
|
+
```ts
|
|
1709
|
+
const result = await g8.api.agents.listAgentSpecialists();
|
|
1710
|
+
```
|
|
1711
|
+
|
|
1712
|
+
---
|
|
1713
|
+
|
|
1714
|
+
<a id="op-listagentworkitems"></a>
|
|
1715
|
+
|
|
1716
|
+
### `g8.api.agents.listAgentWorkItems(input?)`
|
|
1717
|
+
|
|
1718
|
+
**List Agent Work Items**
|
|
1719
|
+
|
|
1720
|
+
- HTTP: `GET /api/v1/agent/work-items`
|
|
1721
|
+
- operationId: `list_agent_work_items_agent_work_items_get` (also callable as `g8.api.call("list_agent_work_items_agent_work_items_get", input)`)
|
|
1722
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1723
|
+
- API-key scope: `workflows:read`
|
|
1724
|
+
|
|
1725
|
+
Work items the caller can see.
|
|
1726
|
+
|
|
1727
|
+
**Input**
|
|
1728
|
+
|
|
1729
|
+
| Field | Type | Required | Description |
|
|
1730
|
+
|---|---|---|---|
|
|
1731
|
+
| `query.statuses` | `Array<string> \| null` | no | Status filter, REPEATABLE: `?statuses=running&statuses=queued`. Repeated rather than comma-joined, matching the app - a comma in a status would otherwise split it. |
|
|
1732
|
+
| `query.agent_id` | `string \| null` | no | Filter to one agent. |
|
|
1733
|
+
| `query.include_shared` | `boolean` | no | Include org-wide shared items as well as the caller's own. True by default, matching the app - set false to see only your own. default `true` |
|
|
1734
|
+
| `query.limit` | `integer` | no | default `100` |
|
|
1735
|
+
| `query.offset` | `integer` | no | default `0` |
|
|
1736
|
+
|
|
1737
|
+
**Returns** `ApiResponse_AgentWorkItemList_`: the envelope `{ data: AgentWorkItemList, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1738
|
+
|
|
1739
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1740
|
+
|
|
1741
|
+
`AgentWorkItemList` fields:
|
|
1742
|
+
|
|
1743
|
+
| Field | Type | Required | Description |
|
|
1744
|
+
|---|---|---|---|
|
|
1745
|
+
| `total` | `integer` | no | default `0` |
|
|
1746
|
+
| `work_items` | `Array<AgentWorkItem>` | no | |
|
|
1747
|
+
|
|
1748
|
+
**Example**
|
|
1749
|
+
|
|
1750
|
+
```ts
|
|
1751
|
+
const result = await g8.api.agents.listAgentWorkItems();
|
|
1752
|
+
```
|
|
1753
|
+
|
|
1754
|
+
---
|
|
1755
|
+
|
|
1756
|
+
<a id="op-loadcopilotintentcontext"></a>
|
|
1757
|
+
|
|
1758
|
+
### `g8.api.agents.loadCopilotIntentContext(input)`
|
|
1759
|
+
|
|
1760
|
+
**Load Copilot Intent Context**
|
|
1761
|
+
|
|
1762
|
+
- HTTP: `POST /api/v1/copilot/context/load`
|
|
1763
|
+
- operationId: `load_copilot_intent_context_copilot_context_load_post` (also callable as `g8.api.call("load_copilot_intent_context_copilot_context_load_post", input)`)
|
|
1764
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1765
|
+
- API-key scope: `workflows:write`
|
|
1766
|
+
|
|
1767
|
+
Open a Copilot session already briefed on one buyer-intent keyword.
|
|
1768
|
+
|
|
1769
|
+
Returns `session_id`. The session is seeded with the keyword's detail (and
|
|
1770
|
+
the company or contact, if given), so the first question can be about it
|
|
1771
|
+
without restating it. No model runs here.
|
|
1772
|
+
|
|
1773
|
+
**Input**
|
|
1774
|
+
|
|
1775
|
+
| Field | Type | Required | Description |
|
|
1776
|
+
|---|---|---|---|
|
|
1777
|
+
| `body` | `CopilotContextLoadRequest` | yes | Request body; fields below. |
|
|
1778
|
+
|
|
1779
|
+
Body fields (`CopilotContextLoadRequest`):
|
|
1780
|
+
|
|
1781
|
+
| Field | Type | Required | Description |
|
|
1782
|
+
|---|---|---|---|
|
|
1783
|
+
| `body.keyword_id` | `string (uuid)` | yes | The buyer-intent keyword to open a conversation about. |
|
|
1784
|
+
| `body.company_id` | `integer \| null` | no | Narrow the context to one company. |
|
|
1785
|
+
| `body.contact_id` | `integer \| null` | no | Narrow the context to one contact. |
|
|
1786
|
+
|
|
1787
|
+
**Returns** `ApiResponse_AgentConversationPayload_`: the envelope `{ data: AgentConversationPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1788
|
+
|
|
1789
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1790
|
+
|
|
1791
|
+
**Example**
|
|
1792
|
+
|
|
1793
|
+
```ts
|
|
1794
|
+
const result = await g8.api.agents.loadCopilotIntentContext({ body: { keyword_id: "00000000-0000-0000-0000-000000000000" } });
|
|
1795
|
+
```
|
|
1796
|
+
|
|
1797
|
+
---
|
|
1798
|
+
|
|
1799
|
+
<a id="op-markagentsessionread"></a>
|
|
1800
|
+
|
|
1801
|
+
### `g8.api.agents.markAgentSessionRead(input)`
|
|
1802
|
+
|
|
1803
|
+
**Mark Agent Session Read**
|
|
1804
|
+
|
|
1805
|
+
- HTTP: `PUT /api/v1/agent/sessions/{session_id}/read`
|
|
1806
|
+
- operationId: `mark_agent_session_read_agent_sessions__session_id__read_put` (also callable as `g8.api.call("mark_agent_session_read_agent_sessions__session_id__read_put", input)`)
|
|
1807
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1808
|
+
- API-key scope: `workflows:write`
|
|
1809
|
+
|
|
1810
|
+
Mark messages read up to a COUNT, not a flag.
|
|
1811
|
+
|
|
1812
|
+
A count higher than the session actually holds is refused with 409 rather
|
|
1813
|
+
than accepted. That looks strict until you consider what accepting it does:
|
|
1814
|
+
a stale client claiming to have read eleven messages when there are nine
|
|
1815
|
+
would mark the next two read before anyone saw them, and the customer would
|
|
1816
|
+
never be told the agent had replied.
|
|
1817
|
+
|
|
1818
|
+
The app answers 204 with no body; this returns the usual envelope so a
|
|
1819
|
+
generated SDK has one response shape across the surface.
|
|
1820
|
+
|
|
1821
|
+
**Input**
|
|
1822
|
+
|
|
1823
|
+
| Field | Type | Required | Description |
|
|
1824
|
+
|---|---|---|---|
|
|
1825
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
1826
|
+
| `body` | `SessionReadRequest` | yes | Request body; fields below. |
|
|
1827
|
+
|
|
1828
|
+
Body fields (`SessionReadRequest`):
|
|
1829
|
+
|
|
1830
|
+
| Field | Type | Required | Description |
|
|
1831
|
+
|---|---|---|---|
|
|
1832
|
+
| `body.message_count` | `integer` | yes | How many messages the caller has actually seen. NOT a flag: the server refuses a count higher than the session holds with a 409, because a client claiming to have read messages that do not exist yet is a stale client, and silently accepting it would mark a later real message read before anyone saw it. min 0 |
|
|
1833
|
+
|
|
1834
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1835
|
+
|
|
1836
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1837
|
+
|
|
1838
|
+
**Example**
|
|
1839
|
+
|
|
1840
|
+
```ts
|
|
1841
|
+
const result = await g8.api.agents.markAgentSessionRead({ path: { session_id: "id" }, body: { message_count: 0 } });
|
|
1842
|
+
```
|
|
1843
|
+
|
|
1844
|
+
---
|
|
1845
|
+
|
|
1846
|
+
<a id="op-openagentdiscovery"></a>
|
|
1847
|
+
|
|
1848
|
+
### `g8.api.agents.openAgentDiscovery(input?)`
|
|
1849
|
+
|
|
1850
|
+
**Open Agent Discovery**
|
|
1851
|
+
|
|
1852
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/open`
|
|
1853
|
+
- operationId: `open_agent_discovery_agent_onboarding_discovery_open_post` (also callable as `g8.api.call("open_agent_discovery_agent_onboarding_discovery_open_post", input)`)
|
|
1854
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1855
|
+
- API-key scope: `workflows:write`
|
|
1856
|
+
|
|
1857
|
+
Start the interview: show what the agent already worked out, and ask
|
|
1858
|
+
where it is wrong.
|
|
1859
|
+
|
|
1860
|
+
Takes no body. Degrades gracefully when nothing is readable yet - a
|
|
1861
|
+
brand-new org's site scrape lands minutes after signup, and the app decided
|
|
1862
|
+
a routing question is a better opener than a spinner.
|
|
1863
|
+
|
|
1864
|
+
A VIEW never enrols an org into a kickoff: proposals are only STAGED for an
|
|
1865
|
+
org that already has an onboarding room, which is what stops one visit
|
|
1866
|
+
giving an established org a permanent door onto an empty conversation.
|
|
1867
|
+
|
|
1868
|
+
**Input**: none.
|
|
1869
|
+
|
|
1870
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1871
|
+
|
|
1872
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1873
|
+
|
|
1874
|
+
**Example**
|
|
1875
|
+
|
|
1876
|
+
```ts
|
|
1877
|
+
const result = await g8.api.agents.openAgentDiscovery();
|
|
1878
|
+
```
|
|
1879
|
+
|
|
1880
|
+
---
|
|
1881
|
+
|
|
1882
|
+
<a id="op-pinagentsession"></a>
|
|
1883
|
+
|
|
1884
|
+
### `g8.api.agents.pinAgentSession(input)`
|
|
1885
|
+
|
|
1886
|
+
**Pin Agent Session**
|
|
1887
|
+
|
|
1888
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/pin`
|
|
1889
|
+
- operationId: `pin_agent_session_agent_sessions__session_id__pin_post` (also callable as `g8.api.call("pin_agent_session_agent_sessions__session_id__pin_post", input)`)
|
|
1890
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1891
|
+
- API-key scope: `workflows:write`
|
|
1892
|
+
|
|
1893
|
+
Pin or unpin a session. Owner only.
|
|
1894
|
+
|
|
1895
|
+
**Input**
|
|
1896
|
+
|
|
1897
|
+
| Field | Type | Required | Description |
|
|
1898
|
+
|---|---|---|---|
|
|
1899
|
+
| `path.session_id` | `string` | yes | Session id. |
|
|
1900
|
+
| `body` | `AgentSessionPinRequest` | yes | Request body; fields below. |
|
|
1901
|
+
|
|
1902
|
+
Body fields (`AgentSessionPinRequest`):
|
|
1903
|
+
|
|
1904
|
+
| Field | Type | Required | Description |
|
|
1905
|
+
|---|---|---|---|
|
|
1906
|
+
| `body.is_pinned` | `boolean` | yes | True to pin, false to unpin. |
|
|
1907
|
+
|
|
1908
|
+
**Returns** `ApiResponse_AgentSession_`: the envelope `{ data: AgentSession, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1909
|
+
|
|
1910
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1911
|
+
|
|
1912
|
+
`AgentSession` fields:
|
|
1913
|
+
|
|
1914
|
+
| Field | Type | Required | Description |
|
|
1915
|
+
|---|---|---|---|
|
|
1916
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
1917
|
+
| `id` | `string \| null` | no | |
|
|
1918
|
+
| `is_pinned` | `boolean \| null` | no | |
|
|
1919
|
+
| `mode` | `string \| null` | no | Session mode, e.g. `general`. |
|
|
1920
|
+
| `title` | `string \| null` | no | |
|
|
1921
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
1922
|
+
|
|
1923
|
+
**Example**
|
|
1924
|
+
|
|
1925
|
+
```ts
|
|
1926
|
+
const result = await g8.api.agents.pinAgentSession({ path: { session_id: "id" }, body: { is_pinned: true } });
|
|
1927
|
+
```
|
|
1928
|
+
|
|
1929
|
+
---
|
|
1930
|
+
|
|
1931
|
+
<a id="op-postagentchat"></a>
|
|
1932
|
+
|
|
1933
|
+
### `g8.api.agents.postAgentChat(input)`
|
|
1934
|
+
|
|
1935
|
+
**Post Agent Chat**
|
|
1936
|
+
|
|
1937
|
+
- HTTP: `POST /api/v1/agent/chat`
|
|
1938
|
+
- operationId: `post_agent_chat_agent_chat_post` (also callable as `g8.api.call("post_agent_chat_agent_chat_post", input)`)
|
|
1939
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
1940
|
+
- API-key scope: `workflows:run`
|
|
1941
|
+
|
|
1942
|
+
Say something to the agent and get its answer.
|
|
1943
|
+
|
|
1944
|
+
`kind` in the answer says which way the turn went: `chat` is a reply in
|
|
1945
|
+
`message`; `work_item` means the agent read the message as a job and
|
|
1946
|
+
STARTED it - `work_item_id` is the work item, and whether its workflow
|
|
1947
|
+
actually launched is in `workflow_started`.
|
|
1948
|
+
|
|
1949
|
+
Each turn runs a model and is charged. Omit `session_id` to start a new
|
|
1950
|
+
session.
|
|
1951
|
+
|
|
1952
|
+
**Input**
|
|
1953
|
+
|
|
1954
|
+
| Field | Type | Required | Description |
|
|
1955
|
+
|---|---|---|---|
|
|
1956
|
+
| `body` | `AgentChatRequest` | yes | Request body; fields below. |
|
|
1957
|
+
|
|
1958
|
+
Body fields (`AgentChatRequest`):
|
|
1959
|
+
|
|
1960
|
+
| Field | Type | Required | Description |
|
|
1961
|
+
|---|---|---|---|
|
|
1962
|
+
| `body.attachment_ids` | `Array<string>` | no | Uploaded file ids to attach, each at most once. max items 20 |
|
|
1963
|
+
| `body.client_turn_id` | `string (uuid) \| null` | no | Your own id for this turn, so a retry is recognised as the same turn rather than said twice. Needs an existing `session_id`. |
|
|
1964
|
+
| `body.mentions` | `Array<Record<string, unknown>> \| null` | no | @-mentions from `POST /agent/mention-search`, passed through as returned (`id`, `category`, `display_name`, ...). |
|
|
1965
|
+
| `body.message` | `string` | no | What you say to the agent. Required unless you attach a file. default `""`, max length 10000 |
|
|
1966
|
+
| `body.mode` | `string \| null` | no | Bias the agent: `web_search`, `deep_thinking` or `research`. Left open, as the app leaves it: an unknown mode is ignored rather than refused. |
|
|
1967
|
+
| `body.page` | `string \| null` | no | Where the user is in your product, so 'this' and 'here' resolve. |
|
|
1968
|
+
| `body.session_id` | `string (uuid) \| null` | no | Continue this session. Omit to start a new one; the answer carries its `session_id`. |
|
|
1969
|
+
| `body.subject_account_id` | `string \| null` | no | Bind a NEW session to this account. Ignored for an existing one. |
|
|
1970
|
+
| `body.subject_campaign_id` | `string \| null` | no | Bind a NEW session to this campaign. Ignored for an existing one. |
|
|
1971
|
+
|
|
1972
|
+
**Returns** `ApiResponse_AgentConversationPayload_`: the envelope `{ data: AgentConversationPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1973
|
+
|
|
1974
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1975
|
+
|
|
1976
|
+
**Example**
|
|
1977
|
+
|
|
1978
|
+
```ts
|
|
1979
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
1980
|
+
const result = await g8.api.agents.postAgentChat({ body: {} });
|
|
1981
|
+
```
|
|
1982
|
+
|
|
1983
|
+
---
|
|
1984
|
+
|
|
1985
|
+
<a id="op-postagentonboardingcatchup"></a>
|
|
1986
|
+
|
|
1987
|
+
### `g8.api.agents.postAgentOnboardingCatchup(input)`
|
|
1988
|
+
|
|
1989
|
+
**Post Agent Onboarding Catchup**
|
|
1990
|
+
|
|
1991
|
+
- HTTP: `POST /api/v1/agent/onboarding/catchup`
|
|
1992
|
+
- operationId: `post_agent_onboarding_catchup_agent_onboarding_catchup_post` (also callable as `g8.api.call("post_agent_onboarding_catchup_agent_onboarding_catchup_post", input)`)
|
|
1993
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1994
|
+
- API-key scope: `workflows:write`
|
|
1995
|
+
|
|
1996
|
+
Post ONE batched summary of what finished while the customer was away.
|
|
1997
|
+
|
|
1998
|
+
IDEMPOTENT by watermark: a marker on the previous catch-up message is the
|
|
1999
|
+
high-water mark, so a repeat call posts nothing and comes back
|
|
2000
|
+
`posted: false`. Below the app's minimum card count it is also a no-op - a
|
|
2001
|
+
single completed card does not need a summary.
|
|
2002
|
+
|
|
2003
|
+
**Input**
|
|
2004
|
+
|
|
2005
|
+
| Field | Type | Required | Description |
|
|
2006
|
+
|---|---|---|---|
|
|
2007
|
+
| `body` | `OnboardingCatchupRequest` | yes | Request body; fields below. |
|
|
2008
|
+
|
|
2009
|
+
Body fields (`OnboardingCatchupRequest`):
|
|
2010
|
+
|
|
2011
|
+
| Field | Type | Required | Description |
|
|
2012
|
+
|---|---|---|---|
|
|
2013
|
+
| `body.session_id` | `string` | yes | The proactive-setup canvas session id. |
|
|
2014
|
+
|
|
2015
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2016
|
+
|
|
2017
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2018
|
+
|
|
2019
|
+
**Example**
|
|
2020
|
+
|
|
2021
|
+
```ts
|
|
2022
|
+
const result = await g8.api.agents.postAgentOnboardingCatchup({ body: { session_id: "id" } });
|
|
2023
|
+
```
|
|
2024
|
+
|
|
2025
|
+
---
|
|
2026
|
+
|
|
2027
|
+
<a id="op-postagentsessionmessage"></a>
|
|
2028
|
+
|
|
2029
|
+
### `g8.api.agents.postAgentSessionMessage(input)`
|
|
2030
|
+
|
|
2031
|
+
**Post Agent Session Message**
|
|
2032
|
+
|
|
2033
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/messages`
|
|
2034
|
+
- operationId: `post_agent_session_message_agent_sessions__session_id__messages_post` (also callable as `g8.api.call("post_agent_session_message_agent_sessions__session_id__messages_post", input)`)
|
|
2035
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2036
|
+
- API-key scope: `workflows:write`
|
|
2037
|
+
|
|
2038
|
+
Append a message to an agent session WITHOUT asking for a reply.
|
|
2039
|
+
|
|
2040
|
+
No model runs and nothing is charged: the message is stored in the
|
|
2041
|
+
session's log and shown to anyone watching it. Use `POST /agent/chat` to
|
|
2042
|
+
get an answer. A session you cannot see is a 404.
|
|
2043
|
+
|
|
2044
|
+
**Input**
|
|
2045
|
+
|
|
2046
|
+
| Field | Type | Required | Description |
|
|
2047
|
+
|---|---|---|---|
|
|
2048
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
2049
|
+
| `body` | `AgentSessionMessageRequest` | yes | Request body; fields below. |
|
|
2050
|
+
|
|
2051
|
+
Body fields (`AgentSessionMessageRequest`):
|
|
2052
|
+
|
|
2053
|
+
| Field | Type | Required | Description |
|
|
2054
|
+
|---|---|---|---|
|
|
2055
|
+
| `body.content` | `string` | yes | The message text. min length 1, max length 10000 |
|
|
2056
|
+
|
|
2057
|
+
**Returns** `ApiResponse_AgentConversationPayload_`: the envelope `{ data: AgentConversationPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2058
|
+
|
|
2059
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2060
|
+
|
|
2061
|
+
**Example**
|
|
2062
|
+
|
|
2063
|
+
```ts
|
|
2064
|
+
const result = await g8.api.agents.postAgentSessionMessage({ path: { session_id: "id" }, body: { content: "example" } });
|
|
2065
|
+
```
|
|
2066
|
+
|
|
2067
|
+
---
|
|
2068
|
+
|
|
2069
|
+
<a id="op-projectagentdiscovery"></a>
|
|
2070
|
+
|
|
2071
|
+
### `g8.api.agents.projectAgentDiscovery(input?)`
|
|
2072
|
+
|
|
2073
|
+
**Project Agent Discovery**
|
|
2074
|
+
|
|
2075
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/project`
|
|
2076
|
+
- operationId: `project_agent_discovery_agent_onboarding_discovery_project_post` (also callable as `g8.api.call("project_agent_discovery_agent_onboarding_discovery_project_post", input)`)
|
|
2077
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2078
|
+
- API-key scope: `workflows:write`
|
|
2079
|
+
|
|
2080
|
+
Turn the interview into real objects: an ICP, a persona, AND A CAMPAIGN.
|
|
2081
|
+
|
|
2082
|
+
Takes no body. The campaign is the part that surprises people, so it is
|
|
2083
|
+
said plainly: this CREATES a campaign and provisions its Work channel. It
|
|
2084
|
+
does not SEND anything - the campaign sits there for a human to launch -
|
|
2085
|
+
which is why this is a `write` and not an `external` operation.
|
|
2086
|
+
|
|
2087
|
+
IDEMPOTENT: the projection is idempotent by object name, and the build is
|
|
2088
|
+
claim-fenced, so calling twice updates the same ICP and returns the same
|
|
2089
|
+
campaign rather than minting a second one.
|
|
2090
|
+
|
|
2091
|
+
PARTIAL SUCCESS IS A REAL OUTCOME. A refused build does not fail the
|
|
2092
|
+
projection, because the ICP and persona are committed by the time the build
|
|
2093
|
+
runs and reporting the whole call as failed would send someone to re-run a
|
|
2094
|
+
projection that worked. Read `campaign.ok` in the body; a blocked build
|
|
2095
|
+
names what is still open rather than counting it.
|
|
2096
|
+
|
|
2097
|
+
**Input**: none.
|
|
2098
|
+
|
|
2099
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2100
|
+
|
|
2101
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2102
|
+
|
|
2103
|
+
**Example**
|
|
2104
|
+
|
|
2105
|
+
```ts
|
|
2106
|
+
const result = await g8.api.agents.projectAgentDiscovery();
|
|
2107
|
+
```
|
|
2108
|
+
|
|
2109
|
+
---
|
|
2110
|
+
|
|
2111
|
+
<a id="op-putagentoperatingmodel"></a>
|
|
2112
|
+
|
|
2113
|
+
### `g8.api.agents.putAgentOperatingModel(input)`
|
|
2114
|
+
|
|
2115
|
+
**Put Agent Operating Model**
|
|
2116
|
+
|
|
2117
|
+
- HTTP: `PUT /api/v1/agent/operators/operating-model`
|
|
2118
|
+
- operationId: `put_agent_operating_model_agent_operators_operating_model_put` (also callable as `g8.api.call("put_agent_operating_model_agent_operators_operating_model_put", input)`)
|
|
2119
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2120
|
+
- API-key scope: `workflows:write`
|
|
2121
|
+
|
|
2122
|
+
Replace the organisation's operating-model override. PUT SEMANTICS.
|
|
2123
|
+
|
|
2124
|
+
The whole document is replaced: a key absent from `override` is REMOVED,
|
|
2125
|
+
not left alone, and an empty object resets the org to graph8's defaults.
|
|
2126
|
+
That is the app's behaviour and this does not soften it - a partial-update
|
|
2127
|
+
spelling here would make the same body mean two different things on two
|
|
2128
|
+
surfaces.
|
|
2129
|
+
|
|
2130
|
+
This is a policy document, not a switch, which is why it is tiered `write`
|
|
2131
|
+
while `/enabled` is not: it describes the org, and an operator has to be
|
|
2132
|
+
turned on separately before anything reads it unattended.
|
|
2133
|
+
|
|
2134
|
+
**Input**
|
|
2135
|
+
|
|
2136
|
+
| Field | Type | Required | Description |
|
|
2137
|
+
|---|---|---|---|
|
|
2138
|
+
| `body` | `OperatingModelRequest` | yes | Request body; fields below. |
|
|
2139
|
+
|
|
2140
|
+
Body fields (`OperatingModelRequest`):
|
|
2141
|
+
|
|
2142
|
+
| Field | Type | Required | Description |
|
|
2143
|
+
|---|---|---|---|
|
|
2144
|
+
| `body.override` | `Record<string, unknown>` | yes | The organisation's operating-model override, REPLACED WHOLE. This is a PUT: keys absent from the body are removed, not left alone. Read `GET /agent/operators/operating-model` first and send it back modified. |
|
|
2145
|
+
|
|
2146
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2147
|
+
|
|
2148
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2149
|
+
|
|
2150
|
+
**Example**
|
|
2151
|
+
|
|
2152
|
+
```ts
|
|
2153
|
+
const result = await g8.api.agents.putAgentOperatingModel({ body: { override: {} } });
|
|
2154
|
+
```
|
|
2155
|
+
|
|
2156
|
+
---
|
|
2157
|
+
|
|
2158
|
+
<a id="op-quoteagentsessionvoice"></a>
|
|
2159
|
+
|
|
2160
|
+
### `g8.api.agents.quoteAgentSessionVoice(input)`
|
|
2161
|
+
|
|
2162
|
+
**Quote Agent Session Voice**
|
|
2163
|
+
|
|
2164
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/voice/quote`
|
|
2165
|
+
- operationId: `quote_agent_session_voice_agent_sessions__session_id__voice_quote_post` (also callable as `g8.api.call("quote_agent_session_voice_agent_sessions__session_id__voice_quote_post", input)`)
|
|
2166
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
2167
|
+
- API-key scope: `workflows:read`
|
|
2168
|
+
|
|
2169
|
+
What a voice session WOULD cost. Charges nothing.
|
|
2170
|
+
|
|
2171
|
+
A POST only because the ceilings are a body. It returns a credit figure and
|
|
2172
|
+
a `rate_version`, and that version is the point: hand it straight to
|
|
2173
|
+
`POST /agent/sessions/{session_id}/voice`, which refuses a stale one rather
|
|
2174
|
+
than starting at today's price against yesterday's quote.
|
|
2175
|
+
|
|
2176
|
+
Tiered as a READ for that reason. It is the only way to learn the price
|
|
2177
|
+
before committing to it, so a read-only key must be able to call it.
|
|
2178
|
+
|
|
2179
|
+
**Input**
|
|
2180
|
+
|
|
2181
|
+
| Field | Type | Required | Description |
|
|
2182
|
+
|---|---|---|---|
|
|
2183
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
2184
|
+
| `body` | `VoiceQuoteRequest` | yes | Request body; fields below. |
|
|
2185
|
+
|
|
2186
|
+
Body fields (`VoiceQuoteRequest`):
|
|
2187
|
+
|
|
2188
|
+
| Field | Type | Required | Description |
|
|
2189
|
+
|---|---|---|---|
|
|
2190
|
+
| `body.voice_id` | `string (uuid)` | yes | Which voice to price. |
|
|
2191
|
+
| `body.max_input_seconds` | `integer` | no | Ceiling on spoken input to price for. default `600`, min 1, max 1200 |
|
|
2192
|
+
| `body.max_output_characters` | `integer` | no | Ceiling on synthesised output to price for. default `5000`, min 0, max 60000 |
|
|
2193
|
+
|
|
2194
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2195
|
+
|
|
2196
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2197
|
+
|
|
2198
|
+
**Example**
|
|
2199
|
+
|
|
2200
|
+
```ts
|
|
2201
|
+
const result = await g8.api.agents.quoteAgentSessionVoice({
|
|
2202
|
+
path: { session_id: "id" },
|
|
2203
|
+
body: { voice_id: "00000000-0000-0000-0000-000000000000" },
|
|
2204
|
+
});
|
|
2205
|
+
```
|
|
2206
|
+
|
|
2207
|
+
---
|
|
2208
|
+
|
|
2209
|
+
<a id="op-ratifyagentdiscovery"></a>
|
|
2210
|
+
|
|
2211
|
+
### `g8.api.agents.ratifyAgentDiscovery(input)`
|
|
2212
|
+
|
|
2213
|
+
**Ratify Agent Discovery**
|
|
2214
|
+
|
|
2215
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/ratify`
|
|
2216
|
+
- operationId: `ratify_agent_discovery_agent_onboarding_discovery_ratify_post` (also callable as `g8.api.call("ratify_agent_discovery_agent_onboarding_discovery_ratify_post", input)`)
|
|
2217
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2218
|
+
- API-key scope: `workflows:write`
|
|
2219
|
+
|
|
2220
|
+
Correct what the agent inferred. The customer's word wins over the scrape.
|
|
2221
|
+
|
|
2222
|
+
`edits` overrides a value; `confirmed` accepts one as read. Both default to
|
|
2223
|
+
empty, so ratifying nothing is a legal no-op rather than a 422 - which is
|
|
2224
|
+
what makes the call safe to retry.
|
|
2225
|
+
|
|
2226
|
+
The response echoes PROGRESS, not the field list: `fields` comes back empty
|
|
2227
|
+
by design because the caller already holds it from `GET /discovery`.
|
|
2228
|
+
|
|
2229
|
+
**Input**
|
|
2230
|
+
|
|
2231
|
+
| Field | Type | Required | Description |
|
|
2232
|
+
|---|---|---|---|
|
|
2233
|
+
| `body` | `DiscoveryRatifyRequest` | yes | Request body; fields below. |
|
|
2234
|
+
|
|
2235
|
+
Body fields (`DiscoveryRatifyRequest`):
|
|
2236
|
+
|
|
2237
|
+
| Field | Type | Required | Description |
|
|
2238
|
+
|---|---|---|---|
|
|
2239
|
+
| `body.confirmed` | `Array<string>` | no | Field keys the customer accepts as the agent inferred them. |
|
|
2240
|
+
| `body.edits` | `Record<string, unknown>` | no | Field key -> corrected value, for answers the agent got wrong. |
|
|
2241
|
+
| `body.session_id` | `string \| null` | no | Canvas session to report the ratification into. |
|
|
2242
|
+
|
|
2243
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2244
|
+
|
|
2245
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2246
|
+
|
|
2247
|
+
**Example**
|
|
2248
|
+
|
|
2249
|
+
```ts
|
|
2250
|
+
const result = await g8.api.agents.ratifyAgentDiscovery({ body: {} });
|
|
2251
|
+
```
|
|
2252
|
+
|
|
2253
|
+
---
|
|
2254
|
+
|
|
2255
|
+
<a id="op-renameagentsession"></a>
|
|
2256
|
+
|
|
2257
|
+
### `g8.api.agents.renameAgentSession(input)`
|
|
2258
|
+
|
|
2259
|
+
**Rename Agent Session**
|
|
2260
|
+
|
|
2261
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/rename`
|
|
2262
|
+
- operationId: `rename_agent_session_agent_sessions__session_id__rename_post` (also callable as `g8.api.call("rename_agent_session_agent_sessions__session_id__rename_post", input)`)
|
|
2263
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2264
|
+
- API-key scope: `workflows:write`
|
|
2265
|
+
|
|
2266
|
+
Rename a session. Owner only.
|
|
2267
|
+
|
|
2268
|
+
**Input**
|
|
2269
|
+
|
|
2270
|
+
| Field | Type | Required | Description |
|
|
2271
|
+
|---|---|---|---|
|
|
2272
|
+
| `path.session_id` | `string` | yes | Session id. |
|
|
2273
|
+
| `body` | `AgentSessionRenameRequest` | yes | Request body; fields below. |
|
|
2274
|
+
|
|
2275
|
+
Body fields (`AgentSessionRenameRequest`):
|
|
2276
|
+
|
|
2277
|
+
| Field | Type | Required | Description |
|
|
2278
|
+
|---|---|---|---|
|
|
2279
|
+
| `body.title` | `string` | yes | New title. min length 1 |
|
|
2280
|
+
|
|
2281
|
+
**Returns** `ApiResponse_AgentSession_`: the envelope `{ data: AgentSession, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2282
|
+
|
|
2283
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2284
|
+
|
|
2285
|
+
`AgentSession` fields:
|
|
2286
|
+
|
|
2287
|
+
| Field | Type | Required | Description |
|
|
2288
|
+
|---|---|---|---|
|
|
2289
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
2290
|
+
| `id` | `string \| null` | no | |
|
|
2291
|
+
| `is_pinned` | `boolean \| null` | no | |
|
|
2292
|
+
| `mode` | `string \| null` | no | Session mode, e.g. `general`. |
|
|
2293
|
+
| `title` | `string \| null` | no | |
|
|
2294
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
2295
|
+
|
|
2296
|
+
**Example**
|
|
2297
|
+
|
|
2298
|
+
```ts
|
|
2299
|
+
const result = await g8.api.agents.renameAgentSession({ path: { session_id: "id" }, body: { title: "Example" } });
|
|
2300
|
+
```
|
|
2301
|
+
|
|
2302
|
+
---
|
|
2303
|
+
|
|
2304
|
+
<a id="op-requestagentapprovalchanges"></a>
|
|
2305
|
+
|
|
2306
|
+
### `g8.api.agents.requestAgentApprovalChanges(input)`
|
|
2307
|
+
|
|
2308
|
+
**Request Agent Approval Changes**
|
|
2309
|
+
|
|
2310
|
+
- HTTP: `POST /api/v1/agent/approvals/{approval_id}/request-changes`
|
|
2311
|
+
- operationId: `request_agent_approval_changes_agent_approvals__approval_id__request_changes_post` (also callable as `g8.api.call("request_agent_approval_changes_agent_approvals__approval_id__request_changes_post", input)`)
|
|
2312
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2313
|
+
- API-key scope: `workflows:write`
|
|
2314
|
+
|
|
2315
|
+
Send the agent back to replan, with a reason. THIS REJECTS THE PROPOSAL.
|
|
2316
|
+
|
|
2317
|
+
Not a "hold" and not a comment: the current proposal is rejected
|
|
2318
|
+
ATOMICALLY, and the feedback is stored alongside so the next plan is
|
|
2319
|
+
informed rather than identical. If you want the plan to proceed, use
|
|
2320
|
+
`POST /agent/approvals/{approval_id}/decide`.
|
|
2321
|
+
|
|
2322
|
+
It FAILS CLOSED on both halves. A deployment that does not have this route
|
|
2323
|
+
404s rather than doing something approximate, and a worker that does not
|
|
2324
|
+
understand the stored feedback still reads the row as a rejection. There is
|
|
2325
|
+
no version of "older software saw this as approval".
|
|
2326
|
+
|
|
2327
|
+
Once decided, an approval cannot be decided again - the winner is settled
|
|
2328
|
+
server-side, so a second call gets 409 rather than overwriting.
|
|
2329
|
+
|
|
2330
|
+
**Input**
|
|
2331
|
+
|
|
2332
|
+
| Field | Type | Required | Description |
|
|
2333
|
+
|---|---|---|---|
|
|
2334
|
+
| `path.approval_id` | `string` | yes | Approval id (UUID). |
|
|
2335
|
+
| `body` | `ApprovalChangeRequest` | yes | Request body; fields below. |
|
|
2336
|
+
|
|
2337
|
+
Body fields (`ApprovalChangeRequest`):
|
|
2338
|
+
|
|
2339
|
+
| Field | Type | Required | Description |
|
|
2340
|
+
|---|---|---|---|
|
|
2341
|
+
| `body.feedback` | `string` | yes | Why the proposal is wrong, and what to do instead. REQUIRED and not decoration: it is stored on the rejection and is what the next plan is built from, so an empty-handed rejection produces the same plan again. |
|
|
2342
|
+
|
|
2343
|
+
**Returns** `ApiResponse_AgentBenchPayload_`: the envelope `{ data: AgentBenchPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2344
|
+
|
|
2345
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2346
|
+
|
|
2347
|
+
**Example**
|
|
2348
|
+
|
|
2349
|
+
```ts
|
|
2350
|
+
const result = await g8.api.agents.requestAgentApprovalChanges({ path: { approval_id: "id" }, body: { feedback: "example" } });
|
|
2351
|
+
```
|
|
2352
|
+
|
|
2353
|
+
---
|
|
2354
|
+
|
|
2355
|
+
<a id="op-searchagentmentions"></a>
|
|
2356
|
+
|
|
2357
|
+
### `g8.api.agents.searchAgentMentions(input)`
|
|
2358
|
+
|
|
2359
|
+
**Search Agent Mentions**
|
|
2360
|
+
|
|
2361
|
+
- HTTP: `POST /api/v1/agent/mention-search`
|
|
2362
|
+
- operationId: `search_agent_mentions_agent_mention_search_post` (also callable as `g8.api.call("search_agent_mentions_agent_mention_search_post", input)`)
|
|
2363
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
2364
|
+
- API-key scope: `workflows:read`
|
|
2365
|
+
|
|
2366
|
+
Resolve an @-mention: what can be referred to in a message to the agent.
|
|
2367
|
+
|
|
2368
|
+
Searches people, campaigns, accounts and documents in one call and returns
|
|
2369
|
+
them with a `category`, so a composer can render one picker instead of four.
|
|
2370
|
+
A read - it finds things, it changes nothing, and it starts no agent.
|
|
2371
|
+
|
|
2372
|
+
A POST only because the filter set is a body. `query` defaults to empty,
|
|
2373
|
+
which returns the default suggestions rather than nothing, matching the app.
|
|
2374
|
+
|
|
2375
|
+
The app publishes the SAME search at `/v1/copilot/mention-search` from a
|
|
2376
|
+
second router that lazily imports this one's helpers. One is enough on a
|
|
2377
|
+
versioned contract, and this is the one under `/agent`, beside the sessions
|
|
2378
|
+
the mentions are typed into.
|
|
2379
|
+
|
|
2380
|
+
**Input**
|
|
2381
|
+
|
|
2382
|
+
| Field | Type | Required | Description |
|
|
2383
|
+
|---|---|---|---|
|
|
2384
|
+
| `body` | `MentionSearchRequest` | yes | Request body; fields below. |
|
|
2385
|
+
|
|
2386
|
+
Body fields (`MentionSearchRequest`):
|
|
2387
|
+
|
|
2388
|
+
| Field | Type | Required | Description |
|
|
2389
|
+
|---|---|---|---|
|
|
2390
|
+
| `body.campaign_id` | `string \| null` | no | Bias results toward one campaign's people and documents. |
|
|
2391
|
+
| `body.mode` | `string \| null` | no | Which mention vocabulary to search. Left open rather than closed to a Literal: the app treats an unrecognised mode as 'no filter' instead of an error, so closing it here would turn a working call into a 422. |
|
|
2392
|
+
| `body.query` | `string` | no | Substring to match. Empty - the default - returns the default suggestions rather than nothing, matching the app's own composer. default `""` |
|
|
2393
|
+
|
|
2394
|
+
**Returns** `ApiResponse_AgentBenchListPayload_`: the envelope `{ data: AgentBenchListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2395
|
+
|
|
2396
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2397
|
+
|
|
2398
|
+
`AgentBenchListPayload` fields:
|
|
2399
|
+
|
|
2400
|
+
| Field | Type | Required | Description |
|
|
2401
|
+
|---|---|---|---|
|
|
2402
|
+
| `items` | `Array<unknown>` | no | |
|
|
2403
|
+
|
|
2404
|
+
**Example**
|
|
2405
|
+
|
|
2406
|
+
```ts
|
|
2407
|
+
const result = await g8.api.agents.searchAgentMentions({ body: {} });
|
|
2408
|
+
```
|
|
2409
|
+
|
|
2410
|
+
---
|
|
2411
|
+
|
|
2412
|
+
<a id="op-setagentoperatorenabled"></a>
|
|
2413
|
+
|
|
2414
|
+
### `g8.api.agents.setAgentOperatorEnabled(input)`
|
|
2415
|
+
|
|
2416
|
+
**Set Agent Operator Enabled**
|
|
2417
|
+
|
|
2418
|
+
- HTTP: `PUT /api/v1/agent/operators/{operator}/enabled`
|
|
2419
|
+
- operationId: `set_agent_operator_enabled_agent_operators__operator__enabled_put` (also callable as `g8.api.call("set_agent_operator_enabled_agent_operators__operator__enabled_put", input)`)
|
|
2420
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
2421
|
+
- API-key scope: `workflows:run`
|
|
2422
|
+
|
|
2423
|
+
Switch this operator on or off for the organisation.
|
|
2424
|
+
|
|
2425
|
+
TURNING IT ON STARTS UNATTENDED WORK. The operator's monitors begin running
|
|
2426
|
+
on their own schedule, without anyone asking, and they keep running until
|
|
2427
|
+
this is set back to false. That is why this needs the `run` grant rather
|
|
2428
|
+
than plain write: "let something act in my org when I am not watching" is
|
|
2429
|
+
not the same permission as "edit a record".
|
|
2430
|
+
|
|
2431
|
+
What it is allowed to DO once it is on is a separate control - see
|
|
2432
|
+
`PUT /agent/operators/{operator}/skills/{skill_key}`. Enabling an operator
|
|
2433
|
+
whose skills are all `OFF` starts nothing.
|
|
2434
|
+
|
|
2435
|
+
`enabled` is explicit rather than a toggle, so a retried request is
|
|
2436
|
+
idempotent instead of switching it back off.
|
|
2437
|
+
|
|
2438
|
+
**Input**
|
|
2439
|
+
|
|
2440
|
+
| Field | Type | Required | Description |
|
|
2441
|
+
|---|---|---|---|
|
|
2442
|
+
| `path.operator` | `string` | yes | |
|
|
2443
|
+
| `body` | `OperatorEnabledRequest` | yes | Request body; fields below. |
|
|
2444
|
+
|
|
2445
|
+
Body fields (`OperatorEnabledRequest`):
|
|
2446
|
+
|
|
2447
|
+
| Field | Type | Required | Description |
|
|
2448
|
+
|---|---|---|---|
|
|
2449
|
+
| `body.enabled` | `boolean` | yes | Whether this operator runs for the organisation. TURNING IT ON STARTS UNATTENDED WORK: the operator's monitors run on their own schedule from then on, without a person asking. Explicit rather than a toggle, so a retried request is idempotent instead of flipping the state back. |
|
|
2450
|
+
|
|
2451
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2452
|
+
|
|
2453
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2454
|
+
|
|
2455
|
+
**Example**
|
|
2456
|
+
|
|
2457
|
+
```ts
|
|
2458
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
2459
|
+
const result = await g8.api.agents.setAgentOperatorEnabled({ path: { operator: "example" }, body: { enabled: true } });
|
|
2460
|
+
```
|
|
2461
|
+
|
|
2462
|
+
---
|
|
2463
|
+
|
|
2464
|
+
<a id="op-setagentoperatorrecipient"></a>
|
|
2465
|
+
|
|
2466
|
+
### `g8.api.agents.setAgentOperatorRecipient(input)`
|
|
2467
|
+
|
|
2468
|
+
**Set Agent Operator Recipient**
|
|
2469
|
+
|
|
2470
|
+
- HTTP: `PUT /api/v1/agent/operators/{operator}/recipient`
|
|
2471
|
+
- operationId: `set_agent_operator_recipient_agent_operators__operator__recipient_put` (also callable as `g8.api.call("set_agent_operator_recipient_agent_operators__operator__recipient_put", input)`)
|
|
2472
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2473
|
+
- API-key scope: `workflows:write`
|
|
2474
|
+
|
|
2475
|
+
Name the person who owns this operator's approvals.
|
|
2476
|
+
|
|
2477
|
+
REPLACES the current recipient - there is one per operator, not a list.
|
|
2478
|
+
Worth setting before enabling anything at `PROPOSE`, because an approval
|
|
2479
|
+
task with no owner is an operator that has stopped.
|
|
2480
|
+
|
|
2481
|
+
**Input**
|
|
2482
|
+
|
|
2483
|
+
| Field | Type | Required | Description |
|
|
2484
|
+
|---|---|---|---|
|
|
2485
|
+
| `path.operator` | `string` | yes | |
|
|
2486
|
+
| `body` | `OperatorRecipientRequest` | yes | Request body; fields below. |
|
|
2487
|
+
|
|
2488
|
+
Body fields (`OperatorRecipientRequest`):
|
|
2489
|
+
|
|
2490
|
+
| Field | Type | Required | Description |
|
|
2491
|
+
|---|---|---|---|
|
|
2492
|
+
| `body.user_id` | `string` | yes | The person who receives this operator's alerts and owns its approval tasks. One recipient per operator: setting it REPLACES whoever was there. |
|
|
2493
|
+
|
|
2494
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2495
|
+
|
|
2496
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2497
|
+
|
|
2498
|
+
**Example**
|
|
2499
|
+
|
|
2500
|
+
```ts
|
|
2501
|
+
const result = await g8.api.agents.setAgentOperatorRecipient({ path: { operator: "example" }, body: { user_id: "id" } });
|
|
2502
|
+
```
|
|
2503
|
+
|
|
2504
|
+
---
|
|
2505
|
+
|
|
2506
|
+
<a id="op-setagentoperatortrustdial"></a>
|
|
2507
|
+
|
|
2508
|
+
### `g8.api.agents.setAgentOperatorTrustDial(input)`
|
|
2509
|
+
|
|
2510
|
+
**Set Agent Operator Trust Dial**
|
|
2511
|
+
|
|
2512
|
+
- HTTP: `PUT /api/v1/agent/operators/{operator}/skills/{skill_key}`
|
|
2513
|
+
- operationId: `set_agent_operator_trust_dial_agent_operators__operator__skills__skill_key__put` (also callable as `g8.api.call("set_agent_operator_trust_dial_agent_operators__operator__skills__skill_key__put", input)`)
|
|
2514
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
2515
|
+
- API-key scope: `workflows:run`
|
|
2516
|
+
|
|
2517
|
+
Set how far ONE skill may go on its own. THIS GOVERNS UNATTENDED ACTION.
|
|
2518
|
+
|
|
2519
|
+
The trust dial is the control that decides whether a finding stays a
|
|
2520
|
+
finding, becomes an approval a person decides, or is simply DONE. Raising
|
|
2521
|
+
it is the single most consequential write on this surface, which is why it
|
|
2522
|
+
takes the `run` grant rather than plain write.
|
|
2523
|
+
|
|
2524
|
+
THE DIAL IS A CEILING REQUEST, NOT A SETTING. The effective autonomy is the
|
|
2525
|
+
minimum of this value, the skill's graph8-managed risk cap and the platform
|
|
2526
|
+
ceiling, so a skill capped at `PROPOSE` stays at `PROPOSE` no matter what
|
|
2527
|
+
is sent. Read the response rather than assuming the write took literally.
|
|
2528
|
+
|
|
2529
|
+
Read `GET /agent/operators/{operator}/scorecard` first. A dial raised on a
|
|
2530
|
+
skill that has been wrong is how unattended work becomes unattended damage.
|
|
2531
|
+
|
|
2532
|
+
**Input**
|
|
2533
|
+
|
|
2534
|
+
| Field | Type | Required | Description |
|
|
2535
|
+
|---|---|---|---|
|
|
2536
|
+
| `path.operator` | `string` | yes | |
|
|
2537
|
+
| `path.skill_key` | `string` | yes | Skill key from `GET /agent/operators/{operator}/skills`. |
|
|
2538
|
+
| `body` | `OperatorTrustDialRequest` | yes | Request body; fields below. |
|
|
2539
|
+
|
|
2540
|
+
Body fields (`OperatorTrustDialRequest`):
|
|
2541
|
+
|
|
2542
|
+
| Field | Type | Required | Description |
|
|
2543
|
+
|---|---|---|---|
|
|
2544
|
+
| `body.autonomy` | `"OFF" \| "DETECT" \| "PROPOSE" \| "AUTO"` | yes | How far this skill may go on its own. `OFF` - do not run it. `DETECT` - look, and record what it finds. `PROPOSE` - look, and raise an approval task a person decides. `AUTO` - act and log, with no human in the loop. THIS IS A REQUEST, NOT A GUARANTEE: the effective level is the MINIMUM of this dial, the skill's own graph8-managed risk cap and the platform ceiling, so a skill capped at `PROPOSE` s… |
|
|
2545
|
+
|
|
2546
|
+
**Returns** `ApiResponse_OperatorPayload_`: the envelope `{ data: OperatorPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2547
|
+
|
|
2548
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2549
|
+
|
|
2550
|
+
**Example**
|
|
2551
|
+
|
|
2552
|
+
```ts
|
|
2553
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
2554
|
+
const result = await g8.api.agents.setAgentOperatorTrustDial({
|
|
2555
|
+
path: { operator: "example", skill_key: "example" },
|
|
2556
|
+
body: { autonomy: "OFF" },
|
|
2557
|
+
});
|
|
2558
|
+
```
|
|
2559
|
+
|
|
2560
|
+
---
|
|
2561
|
+
|
|
2562
|
+
<a id="op-setupagentdiscoverysignals"></a>
|
|
2563
|
+
|
|
2564
|
+
### `g8.api.agents.setupAgentDiscoverySignals(input?)`
|
|
2565
|
+
|
|
2566
|
+
**Setup Agent Discovery Signals**
|
|
2567
|
+
|
|
2568
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/signals`
|
|
2569
|
+
- operationId: `setup_agent_discovery_signals_agent_onboarding_discovery_signals_post` (also callable as `g8.api.call("setup_agent_discovery_signals_agent_onboarding_discovery_signals_post", input)`)
|
|
2570
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2571
|
+
- API-key scope: `workflows:write`
|
|
2572
|
+
|
|
2573
|
+
Create the global custom column behind each observable trigger.
|
|
2574
|
+
|
|
2575
|
+
Takes no body. A signal is defined ONCE for the account and every list
|
|
2576
|
+
patches the same column - that is what makes cross-campaign analysis
|
|
2577
|
+
possible at all, and why the column is global rather than list-scoped.
|
|
2578
|
+
|
|
2579
|
+
Triggers nothing can observe come back as `research` rather than being
|
|
2580
|
+
quietly created: they are real and useful, but they belong in the copy
|
|
2581
|
+
rather than in the targeting. Promising to watch something nothing watches
|
|
2582
|
+
is a program that never fires and a failure nobody can see.
|
|
2583
|
+
|
|
2584
|
+
**Input**: none.
|
|
2585
|
+
|
|
2586
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2587
|
+
|
|
2588
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2589
|
+
|
|
2590
|
+
**Example**
|
|
2591
|
+
|
|
2592
|
+
```ts
|
|
2593
|
+
const result = await g8.api.agents.setupAgentDiscoverySignals();
|
|
2594
|
+
```
|
|
2595
|
+
|
|
2596
|
+
---
|
|
2597
|
+
|
|
2598
|
+
<a id="op-startagentsessionvoice"></a>
|
|
2599
|
+
|
|
2600
|
+
### `g8.api.agents.startAgentSessionVoice(input)`
|
|
2601
|
+
|
|
2602
|
+
**Start Agent Session Voice**
|
|
2603
|
+
|
|
2604
|
+
- HTTP: `POST /api/v1/agent/sessions/{session_id}/voice`
|
|
2605
|
+
- operationId: `start_agent_session_voice_agent_sessions__session_id__voice_post` (also callable as `g8.api.call("start_agent_session_voice_agent_sessions__session_id__voice_post", input)`)
|
|
2606
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
2607
|
+
- API-key scope: `workflows:run`
|
|
2608
|
+
|
|
2609
|
+
Start speaking with the agent. THIS SPENDS CREDITS AS IT RUNS.
|
|
2610
|
+
|
|
2611
|
+
A live metered session: it begins charging when it connects and keeps
|
|
2612
|
+
charging until it is ended or hits `max_credits`. Quote it first.
|
|
2613
|
+
|
|
2614
|
+
`max_credits` is a HARD CEILING and is required - there is no default,
|
|
2615
|
+
because choosing one would mean this contract picking a spending limit on
|
|
2616
|
+
the customer's behalf. `rate_version` must be the one the quote returned.
|
|
2617
|
+
|
|
2618
|
+
End it with `DELETE /agent/sessions/{session_id}/voice/{voice_id}`. A
|
|
2619
|
+
session left open keeps costing money.
|
|
2620
|
+
|
|
2621
|
+
**Input**
|
|
2622
|
+
|
|
2623
|
+
| Field | Type | Required | Description |
|
|
2624
|
+
|---|---|---|---|
|
|
2625
|
+
| `path.session_id` | `string` | yes | Session id (UUID). |
|
|
2626
|
+
| `body` | `VoiceSessionRequest` | yes | Request body; fields below. |
|
|
2627
|
+
|
|
2628
|
+
Body fields (`VoiceSessionRequest`):
|
|
2629
|
+
|
|
2630
|
+
| Field | Type | Required | Description |
|
|
2631
|
+
|---|---|---|---|
|
|
2632
|
+
| `body.max_credits` | `integer` | yes | HARD CEILING on what this session may spend. Required, with no default: an uncapped voice session is an open-ended charge, and a contract that defaults it would be choosing a spending limit on the customer's behalf. min 1, max 9223372036854776000 |
|
|
2633
|
+
| `body.rate_version` | `string` | yes | The rate version the quote was issued against, from `POST /agent/sessions/{session_id}/voice/quote`. The server refuses a stale one rather than charging today's price for yesterday's quote. min length 1, max length 128 |
|
|
2634
|
+
| `body.voice_id` | `string (uuid)` | yes | Which voice to speak with. |
|
|
2635
|
+
|
|
2636
|
+
**Returns** `ApiResponse_AgentSessionStatePayload_`: the envelope `{ data: AgentSessionStatePayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2637
|
+
|
|
2638
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2639
|
+
|
|
2640
|
+
**Example**
|
|
2641
|
+
|
|
2642
|
+
```ts
|
|
2643
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
2644
|
+
const result = await g8.api.agents.startAgentSessionVoice({
|
|
2645
|
+
path: { session_id: "id" },
|
|
2646
|
+
body: {
|
|
2647
|
+
max_credits: 1,
|
|
2648
|
+
rate_version: "example",
|
|
2649
|
+
voice_id: "00000000-0000-0000-0000-000000000000",
|
|
2650
|
+
},
|
|
2651
|
+
});
|
|
2652
|
+
```
|
|
2653
|
+
|
|
2654
|
+
---
|
|
2655
|
+
|
|
2656
|
+
<a id="op-steeragentworkitem"></a>
|
|
2657
|
+
|
|
2658
|
+
### `g8.api.agents.steerAgentWorkItem(input)`
|
|
2659
|
+
|
|
2660
|
+
**Steer Agent Work Item**
|
|
2661
|
+
|
|
2662
|
+
- HTTP: `POST /api/v1/agent/work-items/{work_item_id}/steer`
|
|
2663
|
+
- operationId: `steer_agent_work_item_agent_work_items__work_item_id__steer_post` (also callable as `g8.api.call("steer_agent_work_item_agent_work_items__work_item_id__steer_post", input)`)
|
|
2664
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2665
|
+
- API-key scope: `workflows:write`
|
|
2666
|
+
|
|
2667
|
+
Redirect a RUNNING work item at its next safe step boundary.
|
|
2668
|
+
|
|
2669
|
+
Not mid-step - that is what makes steering safe at all. The instruction is
|
|
2670
|
+
picked up when the agent reaches a boundary, so a steer sent during a long
|
|
2671
|
+
tool call lands afterwards rather than corrupting it.
|
|
2672
|
+
|
|
2673
|
+
SAFE TO RETRY: `client_turn_id` is a caller-generated idempotency key, and
|
|
2674
|
+
the same id twice comes back `status: "duplicate"` rather than queueing a
|
|
2675
|
+
second instruction into a running agent. Check that field before assuming
|
|
2676
|
+
a retry did something.
|
|
2677
|
+
|
|
2678
|
+
**Input**
|
|
2679
|
+
|
|
2680
|
+
| Field | Type | Required | Description |
|
|
2681
|
+
|---|---|---|---|
|
|
2682
|
+
| `path.work_item_id` | `string` | yes | Work item id (UUID). |
|
|
2683
|
+
| `body` | `AgentWorkItemSteerRequest` | yes | Request body; fields below. |
|
|
2684
|
+
|
|
2685
|
+
Body fields (`AgentWorkItemSteerRequest`):
|
|
2686
|
+
|
|
2687
|
+
| Field | Type | Required | Description |
|
|
2688
|
+
|---|---|---|---|
|
|
2689
|
+
| `body.client_turn_id` | `string (uuid)` | yes | Caller-generated idempotency key. REQUIRED, and the reason steering is safe to retry: the same id twice comes back `duplicate` rather than queueing a second instruction into a running agent. |
|
|
2690
|
+
| `body.instruction` | `string` | yes | What to do differently. Applied at the next safe step boundary, not mid-step. min length 1, max length 2000 |
|
|
2691
|
+
|
|
2692
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2693
|
+
|
|
2694
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2695
|
+
|
|
2696
|
+
**Example**
|
|
2697
|
+
|
|
2698
|
+
```ts
|
|
2699
|
+
const result = await g8.api.agents.steerAgentWorkItem({
|
|
2700
|
+
path: { work_item_id: "id" },
|
|
2701
|
+
body: {
|
|
2702
|
+
client_turn_id: "00000000-0000-0000-0000-000000000000",
|
|
2703
|
+
instruction: "example",
|
|
2704
|
+
},
|
|
2705
|
+
});
|
|
2706
|
+
```
|
|
2707
|
+
|
|
2708
|
+
---
|
|
2709
|
+
|
|
2710
|
+
<a id="op-submitagentdomainresponse"></a>
|
|
2711
|
+
|
|
2712
|
+
### `g8.api.agents.submitAgentDomainResponse(input)`
|
|
2713
|
+
|
|
2714
|
+
**Submit Agent Domain Response**
|
|
2715
|
+
|
|
2716
|
+
- HTTP: `POST /api/v1/agent/onboarding/domain-response`
|
|
2717
|
+
- operationId: `submit_agent_domain_response_agent_onboarding_domain_response_post` (also callable as `g8.api.call("submit_agent_domain_response_agent_onboarding_domain_response_post", input)`)
|
|
2718
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2719
|
+
- API-key scope: `workflows:write`
|
|
2720
|
+
|
|
2721
|
+
Answer the agent's "is this your company domain?" card.
|
|
2722
|
+
|
|
2723
|
+
`domain` is REQUIRED when `confirmed` is false and ignored when it is true.
|
|
2724
|
+
The app enforces that with a 422 of its own, and this mirrors the model
|
|
2725
|
+
rather than the check, so a missing domain is refused by the handler with
|
|
2726
|
+
its own message rather than by a copy here that could drift.
|
|
2727
|
+
|
|
2728
|
+
A corrected domain is persisted immediately, so a late edit is not orphaned
|
|
2729
|
+
once the polling activity has already exited.
|
|
2730
|
+
|
|
2731
|
+
**Input**
|
|
2732
|
+
|
|
2733
|
+
| Field | Type | Required | Description |
|
|
2734
|
+
|---|---|---|---|
|
|
2735
|
+
| `body` | `DomainConfirmationRequest` | yes | Request body; fields below. |
|
|
2736
|
+
|
|
2737
|
+
Body fields (`DomainConfirmationRequest`):
|
|
2738
|
+
|
|
2739
|
+
| Field | Type | Required | Description |
|
|
2740
|
+
|---|---|---|---|
|
|
2741
|
+
| `body.card_id` | `string` | yes | The `domain_confirmation` card id. |
|
|
2742
|
+
| `body.confirmed` | `boolean` | yes | True = the pre-filled domain is correct as it stands. |
|
|
2743
|
+
| `body.session_id` | `string` | yes | The proactive-setup canvas session id. |
|
|
2744
|
+
| `body.domain` | `string \| null` | no | The corrected company domain. REQUIRED when `confirmed` is false; ignored when it is true. |
|
|
2745
|
+
|
|
2746
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2747
|
+
|
|
2748
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2749
|
+
|
|
2750
|
+
**Example**
|
|
2751
|
+
|
|
2752
|
+
```ts
|
|
2753
|
+
const result = await g8.api.agents.submitAgentDomainResponse({ body: { card_id: "id", confirmed: true, session_id: "id" } });
|
|
2754
|
+
```
|
|
2755
|
+
|
|
2756
|
+
---
|
|
2757
|
+
|
|
2758
|
+
<a id="op-takeagentdiscoveryturn"></a>
|
|
2759
|
+
|
|
2760
|
+
### `g8.api.agents.takeAgentDiscoveryTurn(input)`
|
|
2761
|
+
|
|
2762
|
+
**Take Agent Discovery Turn**
|
|
2763
|
+
|
|
2764
|
+
- HTTP: `POST /api/v1/agent/onboarding/discovery/turn`
|
|
2765
|
+
- operationId: `take_agent_discovery_turn_agent_onboarding_discovery_turn_post` (also callable as `g8.api.call("take_agent_discovery_turn_agent_onboarding_discovery_turn_post", input)`)
|
|
2766
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
2767
|
+
- API-key scope: `workflows:run`
|
|
2768
|
+
|
|
2769
|
+
One conversational turn of the kickoff. THIS ONE COSTS MONEY.
|
|
2770
|
+
|
|
2771
|
+
The only route on this surface that makes an LLM call, which is why it is
|
|
2772
|
+
tiered `billable` and why the app rate-limits it at 20 requests a minute
|
|
2773
|
+
per organisation - far above a human conversation, far below anything that
|
|
2774
|
+
shows up on a bill. Over that, the app answers 429 with `Retry-After`.
|
|
2775
|
+
|
|
2776
|
+
The model replies AND states what it learned in one forced tool call, so a
|
|
2777
|
+
message that answers four questions records four fields. Everything it
|
|
2778
|
+
claims is validated before it is written: a key outside the framework is
|
|
2779
|
+
dropped, and a `green` with no supporting quote is DOWNGRADED to `amber`
|
|
2780
|
+
rather than trusted.
|
|
2781
|
+
|
|
2782
|
+
The turn writes only to the discovery record. It provisions nothing, calls
|
|
2783
|
+
no tools, and sends nothing.
|
|
2784
|
+
|
|
2785
|
+
There is no `history` parameter and that is deliberate - see the module
|
|
2786
|
+
docstring.
|
|
2787
|
+
|
|
2788
|
+
**Input**
|
|
2789
|
+
|
|
2790
|
+
| Field | Type | Required | Description |
|
|
2791
|
+
|---|---|---|---|
|
|
2792
|
+
| `body` | `DiscoveryTurnRequest` | yes | Request body; fields below. |
|
|
2793
|
+
|
|
2794
|
+
Body fields (`DiscoveryTurnRequest`):
|
|
2795
|
+
|
|
2796
|
+
| Field | Type | Required | Description |
|
|
2797
|
+
|---|---|---|---|
|
|
2798
|
+
| `body.message` | `string` | yes | min length 1, max length 8000 |
|
|
2799
|
+
| `body.session_id` | `string \| null` | no | Canvas session to report into. |
|
|
2800
|
+
|
|
2801
|
+
**Returns** `ApiResponse_OnboardingPayload_`: the envelope `{ data: OnboardingPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2802
|
+
|
|
2803
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2804
|
+
|
|
2805
|
+
**Example**
|
|
2806
|
+
|
|
2807
|
+
```ts
|
|
2808
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
2809
|
+
const result = await g8.api.agents.takeAgentDiscoveryTurn({ body: { message: "example" } });
|
|
2810
|
+
```
|
|
2811
|
+
|
|
2812
|
+
---
|
|
2813
|
+
|
|
2814
|
+
<a id="op-updateagentsession"></a>
|
|
2815
|
+
|
|
2816
|
+
### `g8.api.agents.updateAgentSession(input)`
|
|
2817
|
+
|
|
2818
|
+
**Update Agent Session**
|
|
2819
|
+
|
|
2820
|
+
- HTTP: `PATCH /api/v1/agent/sessions/{session_id}`
|
|
2821
|
+
- operationId: `update_agent_session_agent_sessions__session_id__patch` (also callable as `g8.api.call("update_agent_session_agent_sessions__session_id__patch", input)`)
|
|
2822
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
2823
|
+
- API-key scope: `workflows:write`
|
|
2824
|
+
|
|
2825
|
+
Append messages or change the title. Omitted fields are untouched.
|
|
2826
|
+
|
|
2827
|
+
**Input**
|
|
2828
|
+
|
|
2829
|
+
| Field | Type | Required | Description |
|
|
2830
|
+
|---|---|---|---|
|
|
2831
|
+
| `path.session_id` | `string` | yes | Session id. |
|
|
2832
|
+
| `body` | `AgentSessionUpdateRequest` | yes | Request body; fields below. |
|
|
2833
|
+
|
|
2834
|
+
Body fields (`AgentSessionUpdateRequest`):
|
|
2835
|
+
|
|
2836
|
+
| Field | Type | Required | Description |
|
|
2837
|
+
|---|---|---|---|
|
|
2838
|
+
| `body.messages` | `Array<Record<string, unknown>> \| null` | no | |
|
|
2839
|
+
| `body.title` | `string \| null` | no | |
|
|
2840
|
+
|
|
2841
|
+
**Returns** `ApiResponse_AgentSession_`: the envelope `{ data: AgentSession, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2842
|
+
|
|
2843
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2844
|
+
|
|
2845
|
+
`AgentSession` fields:
|
|
2846
|
+
|
|
2847
|
+
| Field | Type | Required | Description |
|
|
2848
|
+
|---|---|---|---|
|
|
2849
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
2850
|
+
| `id` | `string \| null` | no | |
|
|
2851
|
+
| `is_pinned` | `boolean \| null` | no | |
|
|
2852
|
+
| `mode` | `string \| null` | no | Session mode, e.g. `general`. |
|
|
2853
|
+
| `title` | `string \| null` | no | |
|
|
2854
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
2855
|
+
|
|
2856
|
+
**Example**
|
|
2857
|
+
|
|
2858
|
+
```ts
|
|
2859
|
+
const result = await g8.api.agents.updateAgentSession({ path: { session_id: "id" }, body: {} });
|
|
2860
|
+
```
|