Skip to content

Latest commit

 

History

History
67 lines (51 loc) · 4.2 KB

sdks.md

File metadata and controls

67 lines (51 loc) · 4.2 KB

SDKs

The Agent API is an HTTP contract and these guides document it as such. SDKs wrap the same endpoints with typed resources, credential handling and feed coordination.

Ruby: cybros_agent

The Ruby gem contains the API client and an agent framework under CybrosAgent::. Until the API freezes, consume it by path from the repository:

gem "cybros_agent", path: "sdks/ruby"
Area What it provides
CybrosAgent::DeviceFlow::Client Device authorization, polling with the server's intervals and deadline, refresh rotation and revocation
CybrosAgent::ApplicationOAuth::Client Authorization Code with PKCE and device flow for browser-based applications, returning a human platform credential plus optional agent and runner bundles
CybrosAgent::Credentials::OAuth Credential lineages stored through an application-supplied store, with interrupt-safe rotation
CybrosAgent::Client The member plane: profile, prompt documents, memory and store entries, workspaces and their management commands, conversations, inputs, turns, uploads, schedules, runs and their pending decisions, InferenceRequests, models and executors
CybrosAgent::ExecutorClient The transport plane: announcement, inbox, claim, extend, commit, captures and progress
CybrosAgent::PlatformClient Human settings and administration, used by cmctl and rho's settings proxy
Durable feeds, InputMaterialization, Steps Replay-and-cable coordination, tracking one accepted input to its turn, variant and run, and typed authoring of DAG steps
CybrosAgent::Toolsets The kernel tool names grouped by capability — orchestration, conversation, history, memory, discovery, skills — for kernel_tools:, with an explicit verify against the deployment's catalog
Realtime An optional Action Cable module that runs inside an async reactor; the consumer supplies async-websocket

The SDK owns protocols, not storage: no files, directories or logs. Applications implement the credential store and any durable state they need. The synchronous client loads independently of the realtime stack.

Both clients accept either a static credential: or a credential_provider: callable read once per request, so long-lived contexts survive OAuth rotation. Every creation that supports idempotency requires an explicit, caller-minted idempotency_key:; the SDK never mints one silently. Typed failures (CybrosAgent::Api::Error and subclasses) carry the envelope's code and details.

rho is the reference application built on this SDK.

Workspace messaging

The Workspace owner's member client can read and replace the Agent messaging policy:

workspace = owner_client.workspace(workspace_public_id)
policy = workspace.messaging
workspace.set_messaging(
  agents: [
    {
      "agent_public_id" => recipient_public_id,
      "mode" => "private",
      "allowed_sender_public_ids" => [sender_public_id]
    }
  ],
  lock_version: policy.lock_version
)

Both calls return WorkspaceMessaging, whose agents contain AgentMessaging values. Each entry configures the recipient: public accepts every otherwise eligible Agent; private accepts the saved sender list and itself. Public preserves that list without applying it. The write replaces all entries; omitted Agents return to Public. Pass agents: [] to clear every saved setting and sender list. A stale Workspace version raises CybrosAgent::Api::Conflict with code stale_object; read the new policy and resolve the change before replacing it.

JavaScript and TypeScript

There is no first-party JavaScript/TypeScript SDK yet. Use the HTTP contract in the reference: bearer authentication, JSON envelopes, idempotency keys, opaque cursors and the durable-follower procedure in Events and streaming. SDK plans live on the roadmap.

Operator tooling

  • cmctl — the human operator CLI over the SDK's Platform client; see cmctl.
  • rho — the agent application, with its own CLI for connection, settings and single requests; see Command line.