Octri

describe_sdk

Shows your SDK's methods as declarations, for writing a code mode script. In code mode the agent writes a short script against your SDK instead of calling tools one by one. This is how it learns the SDK: typed declarations, with each method's doc comment, method and path.

When it's listed

In code mode: when you've turned code mode on and the tool mode is code. It replaces the operation tools in the list. See search and code mode.

Arguments

languagestringdefault: the first language you offer

Which SDK to show: typescript or python, among the languages you've turned on.

querystring

What the methods do, in a few words. Shows the best matches.

namesarray of strings

Up to 15 call paths under client, such as subscriptions.list. Shows those methods.

groupstring

Only methods in this group. Offered only when the operations fall into two or more groups.

Returns

With no query or names, the SDK's namespaces. Otherwise how many methods match, then a declaration for each, with its arguments and return type.

Hints

The annotations a client reads to decide what may run without asking the user.

HintValueWhen true, it means
readOnlyHinttrueIt doesn't change anything
openWorldHintfalseIt reaches outside the server, over the network

Examples

Find methods

Call
{
  "name": "describe_sdk",
  "arguments": {
    "query": "subscriptions"
  }
}
Result
PRACTICE MODE: fake response built from the API's documentation. Nothing was sent to the API.

TypeScript SDK. In run_code, `client` is ready; every method is async: `await client.<path>({ ...args })`.

8 of 8 matching methods, best first.

/** List subscriptions GET /subscriptions */
client.subscriptions.list(args?: { limit?: number; startingAfter?: string; status?: "trialing" | "active" | "past_due" | "cancelled" | "paused" }): Promise<{ object: "list"; has_more: boolean; data: Array<{ id: string; object: "subscription"; customer_id: string; product_id: string; status: "trialing" | "active" | "past_due" | "cancelled" | "paused"; quantity?: number; current_period_end?: string; cancel_at_period_end?: boolean; created_at: string }> }>

/** Start a subscription POST /subscriptions */
client.subscriptions.create(args: { body: { customerId: string; productId: string; quantity?: number; trialDays?: number } }): Promise<{ id: string; object: "subscription"; customer_id: string; product_id: string; status: "trialing" | "active" | "past_due" | "cancelled" | "paused"; quantity?: number; current_period_end?: string; cancel_at_period_end?: boolean; created_at: string }>

/** Change a subscription PATCH /subscriptions/{subscriptionId} */
client.subscriptions.update(args: { subscriptionId: string; body: { productId?: string; quantity?: number; prorate?: boolean } }): Promise<{ id: string; object: "subscription"; customer_id: string; product_id: string; status: "trialing" | "active" | "past_due" | "cancelled" | "paused"; quantity?: number; current_period_end?: string; cancel_at_period_end?: boolean; created_at: string }>
…