@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,230 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.skills` (Skills): 12 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"create_from_node_skills_from_node_post">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: skills.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.skills.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface SkillsMembers {
|
|
16
|
+
createFromNode: "create_from_node_skills_from_node_post";
|
|
17
|
+
createFromTemplate: "create_from_template_skills_from_template_post";
|
|
18
|
+
createSkill: "create_skill_skills_post";
|
|
19
|
+
deleteSkill: "delete_skill_skills__action_id__delete";
|
|
20
|
+
executeSkill: "execute_skill_skills__action_id__execute_post";
|
|
21
|
+
extractVariables: "extract_variables_skills__action_id__variables_get";
|
|
22
|
+
getSkill: "get_skill_skills__action_id__get";
|
|
23
|
+
listModels: "list_models_skills_models_get";
|
|
24
|
+
listSkills: "list_skills_skills_get";
|
|
25
|
+
listTemplates: "list_templates_skills_templates_get";
|
|
26
|
+
updateSkill: "update_skill_skills__action_id__put";
|
|
27
|
+
validateTemplate: "validate_template_skills_validate_post";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Input and output of every `g8.api.skills` operation, keyed by operationId. */
|
|
31
|
+
export interface SkillsOperations {
|
|
32
|
+
/**
|
|
33
|
+
* POST /skills/from-node
|
|
34
|
+
* Lift a workflow action node into a standalone skill
|
|
35
|
+
* tier: write · scope: workflows:write
|
|
36
|
+
*/
|
|
37
|
+
create_from_node_skills_from_node_post: {
|
|
38
|
+
input: {
|
|
39
|
+
headers?: {
|
|
40
|
+
"X-Target-Org-Id"?: string | null;
|
|
41
|
+
};
|
|
42
|
+
body: Record<string, unknown>;
|
|
43
|
+
};
|
|
44
|
+
output: Record<string, unknown>;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* POST /skills/from-template
|
|
48
|
+
* Create a skill from a template
|
|
49
|
+
* tier: write · scope: workflows:write
|
|
50
|
+
*/
|
|
51
|
+
create_from_template_skills_from_template_post: {
|
|
52
|
+
input: {
|
|
53
|
+
headers?: {
|
|
54
|
+
"X-Target-Org-Id"?: string | null;
|
|
55
|
+
};
|
|
56
|
+
body: Record<string, unknown>;
|
|
57
|
+
};
|
|
58
|
+
output: Record<string, unknown>;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* POST /skills
|
|
62
|
+
* Create a skill (LLM or API runtime)
|
|
63
|
+
* tier: write · scope: workflows:write
|
|
64
|
+
*/
|
|
65
|
+
create_skill_skills_post: {
|
|
66
|
+
input: {
|
|
67
|
+
headers?: {
|
|
68
|
+
"X-Target-Org-Id"?: string | null;
|
|
69
|
+
};
|
|
70
|
+
body: Record<string, unknown>;
|
|
71
|
+
};
|
|
72
|
+
output: Record<string, unknown>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* DELETE /skills/{action_id}
|
|
76
|
+
* Delete a skill
|
|
77
|
+
* tier: destructive · scope: workflows:delete
|
|
78
|
+
*/
|
|
79
|
+
delete_skill_skills__action_id__delete: {
|
|
80
|
+
input: {
|
|
81
|
+
path: {
|
|
82
|
+
/** Skill action_id. */
|
|
83
|
+
action_id: string;
|
|
84
|
+
};
|
|
85
|
+
headers?: {
|
|
86
|
+
"X-Target-Org-Id"?: string | null;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
output: Record<string, unknown>;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* POST /skills/{action_id}/execute
|
|
93
|
+
* Execute a skill once
|
|
94
|
+
* tier: external · scope: workflows:run
|
|
95
|
+
*/
|
|
96
|
+
execute_skill_skills__action_id__execute_post: {
|
|
97
|
+
input: {
|
|
98
|
+
path: {
|
|
99
|
+
/** Skill action_id. */
|
|
100
|
+
action_id: string;
|
|
101
|
+
};
|
|
102
|
+
headers?: {
|
|
103
|
+
"X-Target-Org-Id"?: string | null;
|
|
104
|
+
};
|
|
105
|
+
body?: Record<string, unknown>;
|
|
106
|
+
};
|
|
107
|
+
output: Record<string, unknown>;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* GET /skills/{action_id}/variables
|
|
111
|
+
* Extract {variable} placeholders from a skill's templates
|
|
112
|
+
* tier: read · scope: workflows:read
|
|
113
|
+
*/
|
|
114
|
+
extract_variables_skills__action_id__variables_get: {
|
|
115
|
+
input: {
|
|
116
|
+
path: {
|
|
117
|
+
/** Skill action_id. */
|
|
118
|
+
action_id: string;
|
|
119
|
+
};
|
|
120
|
+
headers?: {
|
|
121
|
+
"X-Target-Org-Id"?: string | null;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
output: Record<string, unknown>;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* GET /skills/{action_id}
|
|
128
|
+
* Get a skill's full configuration
|
|
129
|
+
* tier: read · scope: workflows:read
|
|
130
|
+
*/
|
|
131
|
+
get_skill_skills__action_id__get: {
|
|
132
|
+
input: {
|
|
133
|
+
path: {
|
|
134
|
+
/** Skill action_id. */
|
|
135
|
+
action_id: string;
|
|
136
|
+
};
|
|
137
|
+
headers?: {
|
|
138
|
+
"X-Target-Org-Id"?: string | null;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
output: Record<string, unknown>;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* GET /skills/models
|
|
145
|
+
* List supported LLM model identifiers
|
|
146
|
+
* tier: read · scope: workflows:read
|
|
147
|
+
*/
|
|
148
|
+
list_models_skills_models_get: {
|
|
149
|
+
input: {
|
|
150
|
+
headers?: {
|
|
151
|
+
"X-Target-Org-Id"?: string | null;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
output: Record<string, unknown>;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* GET /skills
|
|
158
|
+
* List skills (LLM + API) for the caller's org
|
|
159
|
+
* tier: read · scope: workflows:read
|
|
160
|
+
*/
|
|
161
|
+
list_skills_skills_get: {
|
|
162
|
+
input: {
|
|
163
|
+
query?: {
|
|
164
|
+
/** Filter to a single runtime (llm or api). Omit to see both. */
|
|
165
|
+
runtime_type?: string | null;
|
|
166
|
+
/** Filter by enabled flag. */
|
|
167
|
+
enabled?: boolean | null;
|
|
168
|
+
/** Filter by category. */
|
|
169
|
+
category?: string | null;
|
|
170
|
+
/** Filter by entity type the skill targets. */
|
|
171
|
+
object_type?: string | null;
|
|
172
|
+
/** Include shared system-default skills alongside org-owned ones. */
|
|
173
|
+
include_system?: boolean;
|
|
174
|
+
};
|
|
175
|
+
headers?: {
|
|
176
|
+
"X-Target-Org-Id"?: string | null;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
output: Record<string, unknown>;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* GET /skills/templates
|
|
183
|
+
* List skill templates
|
|
184
|
+
* tier: read · scope: workflows:read
|
|
185
|
+
*/
|
|
186
|
+
list_templates_skills_templates_get: {
|
|
187
|
+
input: {
|
|
188
|
+
query?: {
|
|
189
|
+
/** Filter by category. */
|
|
190
|
+
category?: string | null;
|
|
191
|
+
};
|
|
192
|
+
headers?: {
|
|
193
|
+
"X-Target-Org-Id"?: string | null;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
output: Record<string, unknown>;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* PUT /skills/{action_id}
|
|
200
|
+
* Update a skill
|
|
201
|
+
* tier: write · scope: workflows:write
|
|
202
|
+
*/
|
|
203
|
+
update_skill_skills__action_id__put: {
|
|
204
|
+
input: {
|
|
205
|
+
path: {
|
|
206
|
+
/** Skill action_id. */
|
|
207
|
+
action_id: string;
|
|
208
|
+
};
|
|
209
|
+
headers?: {
|
|
210
|
+
"X-Target-Org-Id"?: string | null;
|
|
211
|
+
};
|
|
212
|
+
body: Record<string, unknown>;
|
|
213
|
+
};
|
|
214
|
+
output: Record<string, unknown>;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* POST /skills/validate
|
|
218
|
+
* Validate a skill template (extract + warn on common mistakes)
|
|
219
|
+
* tier: write · scope: workflows:write
|
|
220
|
+
*/
|
|
221
|
+
validate_template_skills_validate_post: {
|
|
222
|
+
input: {
|
|
223
|
+
headers?: {
|
|
224
|
+
"X-Target-Org-Id"?: string | null;
|
|
225
|
+
};
|
|
226
|
+
body: Record<string, unknown>;
|
|
227
|
+
};
|
|
228
|
+
output: Record<string, unknown>;
|
|
229
|
+
};
|
|
230
|
+
}
|
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.skills`: Skills
|
|
4
|
+
|
|
5
|
+
12 operations (5 read, 5 write, 1 destructive, 1 external).
|
|
6
|
+
|
|
7
|
+
12 of these also have a hand-written method (`g8.skills`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
|
|
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: [skills.d.ts](skills.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`createFromNode`](#op-createfromnode) ★ | `POST /api/v1/skills/from-node` | write | `workflows:write` | Lift a workflow action node into a standalone skill |
|
|
26
|
+
| [`createFromTemplate`](#op-createfromtemplate) ★ | `POST /api/v1/skills/from-template` | write | `workflows:write` | Create a skill from a template |
|
|
27
|
+
| [`createSkill`](#op-createskill) ★ | `POST /api/v1/skills` | write | `workflows:write` | Create a skill (LLM or API runtime) |
|
|
28
|
+
| [`deleteSkill`](#op-deleteskill) ★ | `DELETE /api/v1/skills/{action_id}` | destructive | `workflows:delete` | Delete a skill |
|
|
29
|
+
| [`executeSkill`](#op-executeskill) ★ | `POST /api/v1/skills/{action_id}/execute` | external | `workflows:run` | Execute a skill once |
|
|
30
|
+
| [`extractVariables`](#op-extractvariables) ★ | `GET /api/v1/skills/{action_id}/variables` | read | `workflows:read` | Extract {variable} placeholders from a skill's templates |
|
|
31
|
+
| [`getSkill`](#op-getskill) ★ | `GET /api/v1/skills/{action_id}` | read | `workflows:read` | Get a skill's full configuration |
|
|
32
|
+
| [`listModels`](#op-listmodels) ★ | `GET /api/v1/skills/models` | read | `workflows:read` | List supported LLM model identifiers |
|
|
33
|
+
| [`listSkills`](#op-listskills) ★ | `GET /api/v1/skills` | read | `workflows:read` | List skills (LLM + API) for the caller's org |
|
|
34
|
+
| [`listTemplates`](#op-listtemplates) ★ | `GET /api/v1/skills/templates` | read | `workflows:read` | List skill templates |
|
|
35
|
+
| [`updateSkill`](#op-updateskill) ★ | `PUT /api/v1/skills/{action_id}` | write | `workflows:write` | Update a skill |
|
|
36
|
+
| [`validateTemplate`](#op-validatetemplate) ★ | `POST /api/v1/skills/validate` | write | `workflows:write` | Validate a skill template (extract + warn on common mistakes) |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
<a id="op-createfromnode"></a>
|
|
41
|
+
|
|
42
|
+
### `g8.api.skills.createFromNode(input)`
|
|
43
|
+
|
|
44
|
+
**Lift a workflow action node into a standalone skill**
|
|
45
|
+
|
|
46
|
+
- HTTP: `POST /api/v1/skills/from-node`
|
|
47
|
+
- operationId: `create_from_node_skills_from_node_post` (also callable as `g8.api.call("create_from_node_skills_from_node_post", input)`)
|
|
48
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
49
|
+
- API-key scope: `workflows:write`
|
|
50
|
+
- ★ Hand-written: [`g8.skills.createFromNode()`](../sdk-clients.md#g8-skills-createfromnode)
|
|
51
|
+
|
|
52
|
+
Two-step lift (per PRD lock):
|
|
53
|
+
1) Fetch the workflow + locate the named node.
|
|
54
|
+
2) Resolve the referenced action_id, fetch its full config, then
|
|
55
|
+
POST to the SAME ``/api/v1/actions/create`` endpoint with a
|
|
56
|
+
derived name. The new action_id is returned.
|
|
57
|
+
|
|
58
|
+
This is the route ``g8_skill_create_from_node`` MCP tool calls. It
|
|
59
|
+
guarantees lift skills are byte-identical to authored skills.
|
|
60
|
+
|
|
61
|
+
Does NOT modify the workflow — the lift is a copy, not a move. If
|
|
62
|
+
the caller wants the workflow node to reference the new skill, they
|
|
63
|
+
update the workflow themselves with ``g8_workflow_update_node``.
|
|
64
|
+
|
|
65
|
+
**Input**
|
|
66
|
+
|
|
67
|
+
| Field | Type | Required | Description |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| `body` | `Record<string, unknown>` | yes | Request body; fields below. |
|
|
70
|
+
|
|
71
|
+
**Returns** `Record<string, unknown>`.
|
|
72
|
+
|
|
73
|
+
**Example**
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
const result = await g8.api.skills.createFromNode({ body: {} });
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
<a id="op-createfromtemplate"></a>
|
|
82
|
+
|
|
83
|
+
### `g8.api.skills.createFromTemplate(input)`
|
|
84
|
+
|
|
85
|
+
**Create a skill from a template**
|
|
86
|
+
|
|
87
|
+
- HTTP: `POST /api/v1/skills/from-template`
|
|
88
|
+
- operationId: `create_from_template_skills_from_template_post` (also callable as `g8.api.call("create_from_template_skills_from_template_post", input)`)
|
|
89
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
90
|
+
- API-key scope: `workflows:write`
|
|
91
|
+
- ★ Hand-written: [`g8.skills.createFromTemplate()`](../sdk-clients.md#g8-skills-createfromtemplate)
|
|
92
|
+
|
|
93
|
+
Instantiate a skill from a template. Forwards to voice's
|
|
94
|
+
``POST /from-template/{template_id}`` with the caller's org_id pinned.
|
|
95
|
+
|
|
96
|
+
Post-creation we re-fetch the new action and 404 if the resulting
|
|
97
|
+
runtime_type is not a skill — guards against templates of workflow
|
|
98
|
+
or script runtime sneaking into the skill surface.
|
|
99
|
+
|
|
100
|
+
**Input**
|
|
101
|
+
|
|
102
|
+
| Field | Type | Required | Description |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| `body` | `Record<string, unknown>` | yes | Request body; fields below. |
|
|
105
|
+
|
|
106
|
+
**Returns** `Record<string, unknown>`.
|
|
107
|
+
|
|
108
|
+
**Example**
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
const result = await g8.api.skills.createFromTemplate({ body: {} });
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
<a id="op-createskill"></a>
|
|
117
|
+
|
|
118
|
+
### `g8.api.skills.createSkill(input)`
|
|
119
|
+
|
|
120
|
+
**Create a skill (LLM or API runtime)**
|
|
121
|
+
|
|
122
|
+
- HTTP: `POST /api/v1/skills`
|
|
123
|
+
- operationId: `create_skill_skills_post` (also callable as `g8.api.call("create_skill_skills_post", input)`)
|
|
124
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
125
|
+
- API-key scope: `workflows:write`
|
|
126
|
+
- ★ Hand-written: [`g8.skills.createAPI()`](../sdk-clients.md#g8-skills-createapi), [`g8.skills.createLLM()`](../sdk-clients.md#g8-skills-createllm)
|
|
127
|
+
|
|
128
|
+
Create a new skill. Pins ``org_id`` server-side and rejects any
|
|
129
|
+
runtime_type other than ``llm`` or ``api``.
|
|
130
|
+
|
|
131
|
+
Body must include ``name``, ``runtime_type`` (``llm`` or ``api``),
|
|
132
|
+
and the matching ``llm_config`` or ``api_config`` block.
|
|
133
|
+
|
|
134
|
+
This is the SAME endpoint that ``g8_skill_create_from_node`` (lift)
|
|
135
|
+
routes through, so lifted skills are byte-identical to authored ones.
|
|
136
|
+
|
|
137
|
+
**Input**
|
|
138
|
+
|
|
139
|
+
| Field | Type | Required | Description |
|
|
140
|
+
|---|---|---|---|
|
|
141
|
+
| `body` | `Record<string, unknown>` | yes | Request body; fields below. |
|
|
142
|
+
|
|
143
|
+
**Returns** `Record<string, unknown>`.
|
|
144
|
+
|
|
145
|
+
**Example**
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
const result = await g8.api.skills.createSkill({ body: {} });
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
<a id="op-deleteskill"></a>
|
|
154
|
+
|
|
155
|
+
### `g8.api.skills.deleteSkill(input)`
|
|
156
|
+
|
|
157
|
+
**Delete a skill**
|
|
158
|
+
|
|
159
|
+
- HTTP: `DELETE /api/v1/skills/{action_id}`
|
|
160
|
+
- operationId: `delete_skill_skills__action_id__delete` (also callable as `g8.api.call("delete_skill_skills__action_id__delete", input)`)
|
|
161
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
162
|
+
- API-key scope: `workflows:delete`
|
|
163
|
+
- ★ Hand-written: [`g8.skills.delete()`](../sdk-clients.md#g8-skills-delete)
|
|
164
|
+
|
|
165
|
+
Delete a skill. Pre-flight GET enforces the target is a skill
|
|
166
|
+
before forwarding the DELETE.
|
|
167
|
+
|
|
168
|
+
NOTE: this is a hard delete at the voice layer. Per the PRD lock,
|
|
169
|
+
the skills surface does NOT do MCP-only soft-delete reference checks
|
|
170
|
+
here — that logic lives in the MCP tool layer (where we can read
|
|
171
|
+
workflow node references and refuse the delete).
|
|
172
|
+
|
|
173
|
+
**Input**
|
|
174
|
+
|
|
175
|
+
| Field | Type | Required | Description |
|
|
176
|
+
|---|---|---|---|
|
|
177
|
+
| `path.action_id` | `string` | yes | Skill action_id. |
|
|
178
|
+
|
|
179
|
+
**Returns** `Record<string, unknown>`.
|
|
180
|
+
|
|
181
|
+
**Example**
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
185
|
+
const result = await g8.api.skills.deleteSkill({ path: { action_id: "id" } });
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
<a id="op-executeskill"></a>
|
|
191
|
+
|
|
192
|
+
### `g8.api.skills.executeSkill(input)`
|
|
193
|
+
|
|
194
|
+
**Execute a skill once**
|
|
195
|
+
|
|
196
|
+
- HTTP: `POST /api/v1/skills/{action_id}/execute`
|
|
197
|
+
- operationId: `execute_skill_skills__action_id__execute_post` (also callable as `g8.api.call("execute_skill_skills__action_id__execute_post", input)`)
|
|
198
|
+
- Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
|
|
199
|
+
- API-key scope: `workflows:run`
|
|
200
|
+
- ★ Hand-written: [`g8.skills.execute()`](../sdk-clients.md#g8-skills-execute)
|
|
201
|
+
|
|
202
|
+
Run a skill once and return the execution result.
|
|
203
|
+
|
|
204
|
+
Pre-flight GET enforces the action is a skill (not a workflow) so
|
|
205
|
+
the skill execute surface stays sealed. ``org_id`` is pinned;
|
|
206
|
+
``triggered_by`` defaults to the caller's user id.
|
|
207
|
+
|
|
208
|
+
**Input**
|
|
209
|
+
|
|
210
|
+
| Field | Type | Required | Description |
|
|
211
|
+
|---|---|---|---|
|
|
212
|
+
| `path.action_id` | `string` | yes | Skill action_id. |
|
|
213
|
+
| `body` | `Record<string, unknown>` | no | Request body; fields below. |
|
|
214
|
+
|
|
215
|
+
**Returns** `Record<string, unknown>`.
|
|
216
|
+
|
|
217
|
+
**Example**
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
// external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
|
|
221
|
+
const result = await g8.api.skills.executeSkill({ path: { action_id: "id" } });
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
<a id="op-extractvariables"></a>
|
|
227
|
+
|
|
228
|
+
### `g8.api.skills.extractVariables(input)`
|
|
229
|
+
|
|
230
|
+
**Extract {variable} placeholders from a skill's templates**
|
|
231
|
+
|
|
232
|
+
- HTTP: `GET /api/v1/skills/{action_id}/variables`
|
|
233
|
+
- operationId: `extract_variables_skills__action_id__variables_get` (also callable as `g8.api.call("extract_variables_skills__action_id__variables_get", input)`)
|
|
234
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
235
|
+
- API-key scope: `workflows:read`
|
|
236
|
+
- ★ Hand-written: [`g8.skills.getVariables()`](../sdk-clients.md#g8-skills-getvariables)
|
|
237
|
+
|
|
238
|
+
Return the deduplicated, first-seen-order list of ``{variable}``
|
|
239
|
+
placeholders extracted from the skill's templates.
|
|
240
|
+
|
|
241
|
+
For LLM skills we scan ``llm_config.prompt_template``.
|
|
242
|
+
For API skills we scan ``api_config.endpoint``, ``api_config.body_template``,
|
|
243
|
+
every header value, and every query param value.
|
|
244
|
+
|
|
245
|
+
Single-brace regex only — ``{{double_brace}}`` patterns are ignored
|
|
246
|
+
to avoid pulling Jinja control structures out as variables.
|
|
247
|
+
|
|
248
|
+
**Input**
|
|
249
|
+
|
|
250
|
+
| Field | Type | Required | Description |
|
|
251
|
+
|---|---|---|---|
|
|
252
|
+
| `path.action_id` | `string` | yes | Skill action_id. |
|
|
253
|
+
|
|
254
|
+
**Returns** `Record<string, unknown>`.
|
|
255
|
+
|
|
256
|
+
**Example**
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
const result = await g8.api.skills.extractVariables({ path: { action_id: "id" } });
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
<a id="op-getskill"></a>
|
|
265
|
+
|
|
266
|
+
### `g8.api.skills.getSkill(input)`
|
|
267
|
+
|
|
268
|
+
**Get a skill's full configuration**
|
|
269
|
+
|
|
270
|
+
- HTTP: `GET /api/v1/skills/{action_id}`
|
|
271
|
+
- operationId: `get_skill_skills__action_id__get` (also callable as `g8.api.call("get_skill_skills__action_id__get", input)`)
|
|
272
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
273
|
+
- API-key scope: `workflows:read`
|
|
274
|
+
- ★ Hand-written: [`g8.skills.get()`](../sdk-clients.md#g8-skills-get)
|
|
275
|
+
|
|
276
|
+
Return the full skill record (llm_config / api_config + metadata).
|
|
277
|
+
|
|
278
|
+
Returns 404 for workflow / script rows even if voice has them —
|
|
279
|
+
the skill surface is sealed.
|
|
280
|
+
|
|
281
|
+
**Input**
|
|
282
|
+
|
|
283
|
+
| Field | Type | Required | Description |
|
|
284
|
+
|---|---|---|---|
|
|
285
|
+
| `path.action_id` | `string` | yes | Skill action_id. |
|
|
286
|
+
|
|
287
|
+
**Returns** `Record<string, unknown>`.
|
|
288
|
+
|
|
289
|
+
**Example**
|
|
290
|
+
|
|
291
|
+
```ts
|
|
292
|
+
const result = await g8.api.skills.getSkill({ path: { action_id: "id" } });
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
<a id="op-listmodels"></a>
|
|
298
|
+
|
|
299
|
+
### `g8.api.skills.listModels(input?)`
|
|
300
|
+
|
|
301
|
+
**List supported LLM model identifiers**
|
|
302
|
+
|
|
303
|
+
- HTTP: `GET /api/v1/skills/models`
|
|
304
|
+
- operationId: `list_models_skills_models_get` (also callable as `g8.api.call("list_models_skills_models_get", input)`)
|
|
305
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
306
|
+
- API-key scope: `workflows:read`
|
|
307
|
+
- ★ Hand-written: [`g8.skills.listModels()`](../sdk-clients.md#g8-skills-listmodels)
|
|
308
|
+
|
|
309
|
+
Return the static catalog of LLM model ids the create/update
|
|
310
|
+
endpoints accept. Voice ultimately decides which models route to
|
|
311
|
+
which provider — this catalog is a hint for MCP clients filling in
|
|
312
|
+
the ``model`` field of ``g8_skill_create_llm``.
|
|
313
|
+
|
|
314
|
+
**Input**: none.
|
|
315
|
+
|
|
316
|
+
**Returns** `Record<string, unknown>`.
|
|
317
|
+
|
|
318
|
+
**Example**
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
const result = await g8.api.skills.listModels();
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
<a id="op-listskills"></a>
|
|
327
|
+
|
|
328
|
+
### `g8.api.skills.listSkills(input?)`
|
|
329
|
+
|
|
330
|
+
**List skills (LLM + API) for the caller's org**
|
|
331
|
+
|
|
332
|
+
- HTTP: `GET /api/v1/skills`
|
|
333
|
+
- operationId: `list_skills_skills_get` (also callable as `g8.api.call("list_skills_skills_get", input)`)
|
|
334
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
335
|
+
- API-key scope: `workflows:read`
|
|
336
|
+
- ★ Hand-written: [`g8.skills.list()`](../sdk-clients.md#g8-skills-list)
|
|
337
|
+
|
|
338
|
+
List skills owned by the org. When ``runtime_type`` is omitted we
|
|
339
|
+
make two voice calls (one for llm, one for api) and merge the results,
|
|
340
|
+
so the public surface always returns just the two allowed runtimes
|
|
341
|
+
and never leaks workflows/scripts even if voice's filter logic drifts.
|
|
342
|
+
|
|
343
|
+
**Input**
|
|
344
|
+
|
|
345
|
+
| Field | Type | Required | Description |
|
|
346
|
+
|---|---|---|---|
|
|
347
|
+
| `query.runtime_type` | `string \| null` | no | Filter to a single runtime (llm or api). Omit to see both. |
|
|
348
|
+
| `query.enabled` | `boolean \| null` | no | Filter by enabled flag. |
|
|
349
|
+
| `query.category` | `string \| null` | no | Filter by category. |
|
|
350
|
+
| `query.object_type` | `string \| null` | no | Filter by entity type the skill targets. |
|
|
351
|
+
| `query.include_system` | `boolean` | no | Include shared system-default skills alongside org-owned ones. default `true` |
|
|
352
|
+
|
|
353
|
+
**Returns** `Record<string, unknown>`.
|
|
354
|
+
|
|
355
|
+
**Example**
|
|
356
|
+
|
|
357
|
+
```ts
|
|
358
|
+
const result = await g8.api.skills.listSkills();
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
<a id="op-listtemplates"></a>
|
|
364
|
+
|
|
365
|
+
### `g8.api.skills.listTemplates(input?)`
|
|
366
|
+
|
|
367
|
+
**List skill templates**
|
|
368
|
+
|
|
369
|
+
- HTTP: `GET /api/v1/skills/templates`
|
|
370
|
+
- operationId: `list_templates_skills_templates_get` (also callable as `g8.api.call("list_templates_skills_templates_get", input)`)
|
|
371
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
372
|
+
- API-key scope: `workflows:read`
|
|
373
|
+
- ★ Hand-written: [`g8.skills.listTemplates()`](../sdk-clients.md#g8-skills-listtemplates)
|
|
374
|
+
|
|
375
|
+
List skill templates available in the caller's org plus shared
|
|
376
|
+
system templates. Workflow templates are filtered out client-side.
|
|
377
|
+
|
|
378
|
+
Voice's ``GET /templates/{org_id}/list`` returns all template rows
|
|
379
|
+
(including workflow templates). We filter post-fetch so the public
|
|
380
|
+
surface stays sealed to skills only.
|
|
381
|
+
|
|
382
|
+
**Input**
|
|
383
|
+
|
|
384
|
+
| Field | Type | Required | Description |
|
|
385
|
+
|---|---|---|---|
|
|
386
|
+
| `query.category` | `string \| null` | no | Filter by category. |
|
|
387
|
+
|
|
388
|
+
**Returns** `Record<string, unknown>`.
|
|
389
|
+
|
|
390
|
+
**Example**
|
|
391
|
+
|
|
392
|
+
```ts
|
|
393
|
+
const result = await g8.api.skills.listTemplates();
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
<a id="op-updateskill"></a>
|
|
399
|
+
|
|
400
|
+
### `g8.api.skills.updateSkill(input)`
|
|
401
|
+
|
|
402
|
+
**Update a skill**
|
|
403
|
+
|
|
404
|
+
- HTTP: `PUT /api/v1/skills/{action_id}`
|
|
405
|
+
- operationId: `update_skill_skills__action_id__put` (also callable as `g8.api.call("update_skill_skills__action_id__put", input)`)
|
|
406
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
407
|
+
- API-key scope: `workflows:write`
|
|
408
|
+
- ★ Hand-written: [`g8.skills.updateAPI()`](../sdk-clients.md#g8-skills-updateapi), [`g8.skills.updateLLM()`](../sdk-clients.md#g8-skills-updatellm)
|
|
409
|
+
|
|
410
|
+
Update an existing skill. Pre-flight GET enforces the action is
|
|
411
|
+
actually a skill (not a workflow/script) before forwarding the PUT.
|
|
412
|
+
|
|
413
|
+
**Input**
|
|
414
|
+
|
|
415
|
+
| Field | Type | Required | Description |
|
|
416
|
+
|---|---|---|---|
|
|
417
|
+
| `path.action_id` | `string` | yes | Skill action_id. |
|
|
418
|
+
| `body` | `Record<string, unknown>` | yes | Request body; fields below. |
|
|
419
|
+
|
|
420
|
+
**Returns** `Record<string, unknown>`.
|
|
421
|
+
|
|
422
|
+
**Example**
|
|
423
|
+
|
|
424
|
+
```ts
|
|
425
|
+
const result = await g8.api.skills.updateSkill({ path: { action_id: "id" }, body: {} });
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
<a id="op-validatetemplate"></a>
|
|
431
|
+
|
|
432
|
+
### `g8.api.skills.validateTemplate(input)`
|
|
433
|
+
|
|
434
|
+
**Validate a skill template (extract + warn on common mistakes)**
|
|
435
|
+
|
|
436
|
+
- HTTP: `POST /api/v1/skills/validate`
|
|
437
|
+
- operationId: `validate_template_skills_validate_post` (also callable as `g8.api.call("validate_template_skills_validate_post", input)`)
|
|
438
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
439
|
+
- API-key scope: `workflows:write`
|
|
440
|
+
- ★ Hand-written: [`g8.skills.validate()`](../sdk-clients.md#g8-skills-validate)
|
|
441
|
+
|
|
442
|
+
Dry-run template validator. Returns extracted variables plus
|
|
443
|
+
warnings about common mistakes (double-brace usage, unmatched braces).
|
|
444
|
+
|
|
445
|
+
Per the PRD lock (Q3): warn-only. We never block creation on warnings
|
|
446
|
+
here — the user is the source of truth and a double-brace pattern is
|
|
447
|
+
valid Jinja that voice's runtime may handle differently from skills.
|
|
448
|
+
|
|
449
|
+
Accepts two shapes:
|
|
450
|
+
1) ``{"template": "Hello {name}"}`` — one string in, vars out.
|
|
451
|
+
2) ``{"runtime_type": "llm", "llm_config": {...}}`` — full skill
|
|
452
|
+
shape, scans every template field the matching runtime would use.
|
|
453
|
+
|
|
454
|
+
**Input**
|
|
455
|
+
|
|
456
|
+
| Field | Type | Required | Description |
|
|
457
|
+
|---|---|---|---|
|
|
458
|
+
| `body` | `Record<string, unknown>` | yes | Request body; fields below. |
|
|
459
|
+
|
|
460
|
+
**Returns** `Record<string, unknown>`.
|
|
461
|
+
|
|
462
|
+
**Example**
|
|
463
|
+
|
|
464
|
+
```ts
|
|
465
|
+
const result = await g8.api.skills.validateTemplate({ body: {} });
|
|
466
|
+
```
|