import json
import os
from parable_types_web_api import UpdateAgentSkillInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = UpdateAgentSkillInput.model_validate(
json.loads("{\"displayTitle\":\"example\",\"name\":\"example\",\"icon\":\"example\",\"description\":\"example\",\"content\":\"example\",\"files\":[],\"expectedRevision\":1}"),
)
result = sdk.agent_skills.update_agent_skill('example', input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.UpdateAgentSkillInput
if err := json.Unmarshal([]byte(`{"displayTitle":"example","name":"example","icon":"example","description":"example","content":"example","files":[],"expectedRevision":1}`), &input); err != nil {
return err
}
result, err := sdk.AgentSkillsNamespace.UpdateAgentSkill(ctx, "example", input){
"data": {
"content": "<string>",
"contentDigest": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"displayTitle": "<string>",
"files": [
{
"content": "<string>",
"path": "<string>"
}
],
"icon": "<string>",
"id": "<string>",
"name": "<string>",
"revision": 0,
"updatedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Update a Power
Updates a Power’s details and Markdown instructions. Accepted Ponder Messages and Process Runs retain their captured Power instructions.
import json
import os
from parable_types_web_api import UpdateAgentSkillInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = UpdateAgentSkillInput.model_validate(
json.loads("{\"displayTitle\":\"example\",\"name\":\"example\",\"icon\":\"example\",\"description\":\"example\",\"content\":\"example\",\"files\":[],\"expectedRevision\":1}"),
)
result = sdk.agent_skills.update_agent_skill('example', input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.UpdateAgentSkillInput
if err := json.Unmarshal([]byte(`{"displayTitle":"example","name":"example","icon":"example","description":"example","content":"example","files":[],"expectedRevision":1}`), &input); err != nil {
return err
}
result, err := sdk.AgentSkillsNamespace.UpdateAgentSkill(ctx, "example", input){
"data": {
"content": "<string>",
"contentDigest": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"displayTitle": "<string>",
"files": [
{
"content": "<string>",
"path": "<string>"
}
],
"icon": "<string>",
"id": "<string>",
"name": "<string>",
"revision": 0,
"updatedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
This operation needs a Parable token. An MCP token cannot call it. See Authentication for the kinds of token. Your roles must granttenant.parables.manage.
Errors
HTTP 400: The Agent Skill identifier or update input is invalid. Use a valid identifier and correct the update input.HTTP 401: The request is not authenticated. Sign in and select the Workspace.HTTP 403: You cannot manage Agent Skills in this Workspace. Use a Workspace where you can manage Parables.HTTP 404: The Agent Skill does not exist in this Workspace. Choose an Agent Skill returned by the current Workspace catalog.HTTP 409: The Skill changed after the expected revision or another Skill uses the requested name. Reload the Skill, preserve concurrent changes, and retry with the current revision and an unused name.
Authorizations
A personal access token, which starts with pat_. A Parable token can call each operation that the roles of its owner allow. An MCP token can call only the read operations that are open to agents. A SQL token does not work on this API.
Headers
Workspace slug. Overrides subdomain-based workspace resolution when provided.
"acme"
Optional request correlation ID echoed back in the response.
"550e8400-e29b-41d4-a716-446655440000"
Path Parameters
skillId parameter UUID v4 with automatic base62 encoding for client-facing APIs
Body
Markdown text
1 - 65536^[\s\S]*$1 - 10241 - 80Signed 64-bit integer; range bounded by JavaScript's safe-integer ceiling.
-9007199254740991 <= x <= 9007199254740991400Show child attributes
Show child attributes
Serialized icon spec: a Font Awesome pack/weight/fill/name, an emoji, or an asset URL
1 - 2048^(?:fa:[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9]+-[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9]+(?:-[a-z0-9]+)*(?:@#[0-9a-f]{6})?|emoji:\S+|image:\S+)$Portable Agent Skills directory and frontmatter name
1 - 64^[a-z0-9]+(?:-[a-z0-9]+)*$