@personaai/sdkv0.9.0

rest-tools — @personaai/sdk

Generated field tables for rest-tools — do not edit

Generated from sdk/typescript/dist/typedoc.json — do not edit. Regenerate with node platform/scripts/typedoc-resources.mjs.

rest-tools

Auth: Requires Authorization: Bearer <keyId>.<secret> (server-side). For per-user calls add x-persona-external-user-id. See .

REST tools are code-first tools via defineRestTool (zod) served as GET {mountPath}/rest-tools/manifest and discovered live as a Source.

Example

TypeScript

ts
import { defineRestTool } from '@personaai/sdk/rest-tools'; import { z } from 'zod';const getProfile = defineRestTool({ name: 'Get learner', method: 'GET', args: z.object({ userId: z.string() }), url: t => `https://api.example.com/users/${t.arg('userId')}` });

cURL

bash
curl https://api.persona.hasanraiyan.me/api/v1/developer/rest-tools -H "Authorization: Bearer $PERSONA_CREDENTIAL" | jq .

Response

json
{  "success": true,  "data": { "items": [{ "name": "Get learner" }] }}

RestApiTool

A no-code REST API tool an Agent can call. Goes through toSafeJson() — secretRef's underlying value is never returned, only hasSecret.

Source: types/restTool.ts:39

Interface

FieldTypeDescription
_idstring— _ types/restTool.ts:40_
domainstring— _ types/restTool.ts:41_
ownerType"PersonaUser" | "Project" | "ExternalUser"— _ types/restTool.ts:42_
ownerId?string— _ types/restTool.ts:43_
externalOwnerId?string— _ types/restTool.ts:44_
namestring— _ types/restTool.ts:45_
description?string— _ types/restTool.ts:46_
methodRestToolMethod— _ types/restTool.ts:47_
urlstring— _ types/restTool.ts:48_
queryParamsRestToolParamRow[]— _ types/restTool.ts:49_
headersRestToolParamRow[]— _ types/restTool.ts:50_
bodyModeRestToolBodyMode— _ types/restTool.ts:51_
bodyTemplate?string— _ types/restTool.ts:52_
paramDescriptorsRestToolParamDescriptor[]— _ types/restTool.ts:53_
authTypeRestToolAuthType— _ types/restTool.ts:54_
secretRef?stringPresent only when authType: 'bearerSecret'. — _ types/restTool.ts:56_
hasSecretboolean— _ types/restTool.ts:57_
responseMappingsRestToolResponseMapping[]— _ types/restTool.ts:58_
isEnabledboolean— _ types/restTool.ts:59_
lastTestedAt?string | null— _ types/restTool.ts:60_
lastTestedStatus?number | null— _ types/restTool.ts:61_
createdAtstring— _ types/restTool.ts:62_
updatedAtstring— _ types/restTool.ts:63_

RestToolMethod

Source: types/restTool.ts:1

Kind 2097152

ts
type RestToolMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE"

RestToolAuthType

Source: types/restTool.ts:2

Kind 2097152

ts
type RestToolAuthType = "none" | "bearerSecret"

RestToolBodyMode

Source: types/restTool.ts:3

Kind 2097152

ts
type RestToolBodyMode = "none" | "json"

RestToolParamIn

Source: types/restTool.ts:4

Kind 2097152

ts
type RestToolParamIn = "path" | "query" | "header" | "body"

RestToolParamType

Source: types/restTool.ts:5

Kind 2097152

ts
type RestToolParamType = "string" | "number" | "boolean"

RestToolParamRow

One query-string or header entry. valueTemplate may contain {{token}}.

Source: types/restTool.ts:8

Interface

FieldTypeDescription
keystring— _ types/restTool.ts:9_
valueTemplate?string— _ types/restTool.ts:10_
description?string— _ types/restTool.ts:11_
required?boolean— _ types/restTool.ts:13_

RestToolParamDescriptor

Declares one agent-fillable {{token}} referenced in url/params/headers/body.

Source: types/restTool.ts:17

Interface

FieldTypeDescription
namestring— _ types/restTool.ts:18_
in?RestToolParamIn— _ types/restTool.ts:20_
type?RestToolParamType— _ types/restTool.ts:22_
description?string— _ types/restTool.ts:23_
required?boolean— _ types/restTool.ts:25_

RestToolResponseMapping

Reshapes the raw JSON response before the agent sees it, e.g. `{ field: 'name', path: '@data.user.name' }'.

Source: types/restTool.ts:29

Interface

FieldTypeDescription
fieldstring— _ types/restTool.ts:30_
pathstringMust look like "@data.field.path". — _ types/restTool.ts:32_

CreateRestToolInput

Source: types/restTool.ts:66

Interface

FieldTypeDescription
namestring— _ types/restTool.ts:67_
description?string— _ types/restTool.ts:68_
methodRestToolMethod— _ types/restTool.ts:69_
urlstring— _ types/restTool.ts:70_
queryParams?RestToolParamRow[]— _ types/restTool.ts:71_
headers?RestToolParamRow[]— _ types/restTool.ts:72_
bodyMode?RestToolBodyMode— _ types/restTool.ts:74_
bodyTemplate?string— _ types/restTool.ts:75_
paramDescriptors?RestToolParamDescriptor[]— _ types/restTool.ts:76_
authType?RestToolAuthType— _ types/restTool.ts:78_
secretRef?stringRequired when authType: 'bearerSecret' — a ProjectSecret id. — _ types/restTool.ts:80_
responseMappings?RestToolResponseMapping[]— _ types/restTool.ts:81_
isEnabled?boolean— _ types/restTool.ts:83_

UpdateRestToolInput

All fields optional — only what you pass is changed.

Source: types/restTool.ts:87

Kind 2097152

ts
type UpdateRestToolInput = Partial<CreateRestToolInput> & { secretRef: string | null }

DiscoverRestToolsParams

Source: types/restTool.ts:92

Interface

FieldTypeDescription
page?number— _ types/restTool.ts:94_
limit?number— _ types/restTool.ts:96_
search?stringFree-text match against name/description. — _ types/restTool.ts:98_
scope?"mine"Restricts to the asserted external user's own tools (ProjectRuntimeContext only). — _ types/restTool.ts:100_

RestToolTestResult

Source: types/restTool.ts:103

Interface

FieldTypeDescription
statusnumber— _ types/restTool.ts:104_
okboolean— _ types/restTool.ts:105_
bodyunknownRaw JSON (or text) response body. — _ types/restTool.ts:107_
mappedunknownbody reshaped by responseMappings — identical to what the agent receives. — _ types/restTool.ts:109_

TestRestToolInput

testValues stand in for agent-fillable args (and externalUserId if referenced) — never persisted, never usable by an agent.

Source: types/restTool.ts:113

Interface

FieldTypeDescription
toolId?string— _ types/restTool.ts:114_
draft?Partial<CreateRestToolInput>— _ types/restTool.ts:115_
testValues?Record<string, string>— _ types/restTool.ts:116_
`