@agent-relay/sdk 10.0.0 → 10.1.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.
Binary file
Binary file
Binary file
Binary file
@@ -1,4 +1,5 @@
1
1
  export * from './types.js';
2
2
  export * from './normalize.js';
3
3
  export { RelayPlacementError, RelaycastMessagingClient, type RelaycastMessagingOptions, } from './relaycast.js';
4
+ export * from './thin-client.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './types.js';
2
2
  export * from './normalize.js';
3
3
  export { RelayPlacementError, RelaycastMessagingClient, } from './relaycast.js';
4
+ export * from './thin-client.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Thin Relaycast client factories.
3
+ *
4
+ * These factories give SDK consumers (the CLI MCP server in particular)
5
+ * typed access to the hosted Relaycast engine without importing
6
+ * `@relaycast/sdk` directly. Unlike {@link RelaycastMessagingClient}, the
7
+ * thin clients are raw pass-throughs: requests and responses cross the wire
8
+ * untouched, so payloads serialized back to callers (for example MCP tool
9
+ * results) keep the exact upstream shape, and upstream errors propagate
10
+ * unchanged for detectors like `isInvalidAgentTokenError`.
11
+ *
12
+ * Telemetry context (`originActor`, `agentRelayDistinctId`) is resolved from
13
+ * explicit options first and the standard Agent Relay environment variables
14
+ * second, matching every other Relaycast client built by this package.
15
+ */
16
+ import { type RelaycastTelemetryOptions } from '../relaycast-telemetry.js';
17
+ import type { RelayCreateChannelInput, RelayListAgentsOptions, RelayListChannelsOptions, RelayMessageListOptions, RelayMessageMode, RelayRegisterAgentInput } from './types.js';
18
+ export type { RelaycastTelemetryOptions } from '../relaycast-telemetry.js';
19
+ /** Version of the underlying `@relaycast/sdk` engine client. */
20
+ export declare const RELAYCAST_SDK_VERSION: string;
21
+ /** Raw registration payload returned by `agents.registerOrRotate`. */
22
+ export interface RelayRawAgentRegistration {
23
+ /** Agent token (`at_live_...`) minted or rotated for this identity. */
24
+ token: string;
25
+ /** Canonical agent name the workspace bound the registration to. */
26
+ name?: string;
27
+ [key: string]: unknown;
28
+ }
29
+ /** Input for `agents.spawn` — ask the relay to launch a provider-backed worker. */
30
+ export interface RelaySpawnAgentInput {
31
+ name: string;
32
+ /** AI CLI to launch (for example `claude` or `codex`). */
33
+ cli?: string;
34
+ /** Task instructions handed to the spawned worker. */
35
+ task?: string;
36
+ /** Channel the worker should join. */
37
+ channel?: string;
38
+ persona?: string;
39
+ /**
40
+ * Free-form spawn metadata forwarded to the broker (for example `{ model }`,
41
+ * which the broker extracts to pass `--model` to the launched CLI).
42
+ */
43
+ metadata?: Record<string, unknown>;
44
+ }
45
+ /** Input for `agents.release`. */
46
+ export interface RelayReleaseAgentInput {
47
+ name: string;
48
+ reason?: string;
49
+ /** Permanently delete the agent instead of just releasing it. */
50
+ deleteAgent?: boolean;
51
+ }
52
+ /** Raw payload returned by `agents.release`. */
53
+ export interface RelayRawReleasedAgent {
54
+ name: string;
55
+ released: boolean;
56
+ deleted: boolean;
57
+ reason: string | null;
58
+ [key: string]: unknown;
59
+ }
60
+ /** Raw group DM conversation returned by `dms.createGroup`. */
61
+ export interface RelayRawGroupConversation {
62
+ id: string;
63
+ [key: string]: unknown;
64
+ }
65
+ /**
66
+ * Workspace-key scoped operations: identity registration plus worker
67
+ * lifecycle. Responses are raw upstream payloads.
68
+ */
69
+ export interface RelayWorkspaceThinClient {
70
+ readonly agents: {
71
+ list(options?: RelayListAgentsOptions): Promise<unknown[]>;
72
+ /** Register an agent, rotating its token when the name already exists. */
73
+ registerOrRotate(input: RelayRegisterAgentInput): Promise<RelayRawAgentRegistration>;
74
+ /** Ask the relay to spawn a provider-backed worker. */
75
+ spawn(input: RelaySpawnAgentInput): Promise<Record<string, unknown>>;
76
+ /** Release (or delete) a spawned worker. */
77
+ release(input: RelayReleaseAgentInput): Promise<RelayRawReleasedAgent>;
78
+ };
79
+ }
80
+ /**
81
+ * Agent-token scoped operations: messaging, channels, reactions, inbox, and
82
+ * the relay action surface. Responses are raw upstream payloads.
83
+ */
84
+ export interface RelayAgentThinClient {
85
+ send(channel: string, text: string, options?: {
86
+ attachments?: string[];
87
+ mode?: RelayMessageMode;
88
+ }): Promise<unknown>;
89
+ messages(channel: string, options?: RelayMessageListOptions): Promise<unknown[]>;
90
+ reply(messageId: string, text: string): Promise<unknown>;
91
+ thread(messageId: string, options?: {
92
+ limit?: number;
93
+ }): Promise<unknown>;
94
+ dm(to: string, text: string, options?: {
95
+ mode?: RelayMessageMode;
96
+ attachments?: string[];
97
+ }): Promise<unknown>;
98
+ readonly dms: {
99
+ conversations(): Promise<unknown[]>;
100
+ messages(conversationId: string, options?: RelayMessageListOptions): Promise<unknown[]>;
101
+ createGroup(input: {
102
+ participants: string[];
103
+ name?: string;
104
+ }): Promise<RelayRawGroupConversation>;
105
+ sendMessage(conversationId: string, text: string, options?: {
106
+ attachments?: string[];
107
+ mode?: RelayMessageMode;
108
+ }): Promise<unknown>;
109
+ };
110
+ readonly channels: {
111
+ create(input: RelayCreateChannelInput): Promise<unknown>;
112
+ list(options?: RelayListChannelsOptions): Promise<unknown[]>;
113
+ join(name: string): Promise<unknown>;
114
+ leave(name: string): Promise<unknown>;
115
+ invite(channel: string, agent: string): Promise<unknown>;
116
+ setTopic(name: string, topic: string): Promise<unknown>;
117
+ archive(name: string): Promise<unknown>;
118
+ };
119
+ react(messageId: string, emoji: string): Promise<unknown>;
120
+ unreact(messageId: string, emoji: string): Promise<unknown>;
121
+ search(query: string, options?: {
122
+ channel?: string;
123
+ from?: string;
124
+ limit?: number;
125
+ }): Promise<unknown[]>;
126
+ inbox(options?: {
127
+ limit?: number;
128
+ }): Promise<unknown>;
129
+ markRead(messageId: string): Promise<unknown>;
130
+ readers(messageId: string): Promise<unknown[]>;
131
+ /** Relay action surface; absent on backends without action support. */
132
+ readonly actions?: {
133
+ invoke(name: string, input?: Record<string, unknown>): Promise<unknown>;
134
+ };
135
+ }
136
+ /**
137
+ * Agent-token scoped realtime event stream. Events arrive as raw upstream
138
+ * payloads with dotted `type` fields (for example `message.created`).
139
+ */
140
+ export interface RelayRealtimeThinClient {
141
+ connect(): void;
142
+ disconnect(): void;
143
+ /** Subscribe to an event type (`'*'` for all); returns an unsubscribe function. */
144
+ on(event: string, handler: (event: unknown) => void): () => void;
145
+ }
146
+ export interface RelayWorkspaceClientOptions extends RelaycastTelemetryOptions {
147
+ /** Workspace key (`rk_live_...`). */
148
+ workspaceKey: string;
149
+ baseUrl?: string;
150
+ }
151
+ export interface RelayAgentClientOptions extends RelaycastTelemetryOptions {
152
+ /** Agent token (`at_live_...`). */
153
+ agentToken: string;
154
+ baseUrl?: string;
155
+ /**
156
+ * Presence heartbeat interval forwarded to the underlying client.
157
+ * Disabled by default so request-scoped clients spawn no background timers.
158
+ */
159
+ autoHeartbeatMs?: number | false;
160
+ }
161
+ export interface RelayRealtimeClientOptions extends RelaycastTelemetryOptions {
162
+ /** Agent token (`at_live_...`). */
163
+ agentToken: string;
164
+ baseUrl?: string;
165
+ }
166
+ export interface RelayCreateWorkspaceOptions extends Pick<RelaycastTelemetryOptions, 'agentRelayDistinctId'> {
167
+ baseUrl?: string;
168
+ }
169
+ /**
170
+ * Create a workspace-key scoped thin client.
171
+ * @param options - Workspace key, optional base URL, and telemetry overrides
172
+ * @returns Raw pass-through client for workspace-scoped operations
173
+ */
174
+ export declare function createWorkspaceClient(options: RelayWorkspaceClientOptions): RelayWorkspaceThinClient;
175
+ /**
176
+ * Create an agent-token scoped thin client.
177
+ * @param options - Agent token, optional base URL, heartbeat, and telemetry overrides
178
+ * @returns Raw pass-through client for agent-scoped operations
179
+ */
180
+ export declare function createAgentClient(options: RelayAgentClientOptions): RelayAgentThinClient;
181
+ /**
182
+ * Create an agent-token scoped realtime event client.
183
+ * @param options - Agent token, optional base URL, and telemetry overrides
184
+ * @returns Realtime client streaming raw workspace events
185
+ */
186
+ export declare function createRealtimeClient(options: RelayRealtimeClientOptions): RelayRealtimeThinClient;
187
+ /**
188
+ * Create a new Relaycast workspace.
189
+ * @param name - Human-readable workspace name
190
+ * @param options - Optional base URL and telemetry overrides
191
+ * @returns Raw workspace payload, including the workspace key
192
+ */
193
+ export declare function createWorkspace(name: string, options?: RelayCreateWorkspaceOptions): Promise<Record<string, unknown>>;
194
+ //# sourceMappingURL=thin-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thin-client.d.ts","sourceRoot":"","sources":["../../src/messaging/thin-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Thin Relaycast client factories.
3
+ *
4
+ * These factories give SDK consumers (the CLI MCP server in particular)
5
+ * typed access to the hosted Relaycast engine without importing
6
+ * `@relaycast/sdk` directly. Unlike {@link RelaycastMessagingClient}, the
7
+ * thin clients are raw pass-throughs: requests and responses cross the wire
8
+ * untouched, so payloads serialized back to callers (for example MCP tool
9
+ * results) keep the exact upstream shape, and upstream errors propagate
10
+ * unchanged for detectors like `isInvalidAgentTokenError`.
11
+ *
12
+ * Telemetry context (`originActor`, `agentRelayDistinctId`) is resolved from
13
+ * explicit options first and the standard Agent Relay environment variables
14
+ * second, matching every other Relaycast client built by this package.
15
+ */
16
+ import { RelayCast, SDK_VERSION, WsClient } from '@relaycast/sdk';
17
+ import { relaycastTelemetryOptions, relaycastWorkspaceTelemetryOptions, } from '../relaycast-telemetry.js';
18
+ /** Version of the underlying `@relaycast/sdk` engine client. */
19
+ export const RELAYCAST_SDK_VERSION = SDK_VERSION;
20
+ function clientConfig(apiKey, options) {
21
+ return {
22
+ apiKey,
23
+ ...(options.baseUrl === undefined ? {} : { baseUrl: options.baseUrl }),
24
+ ...relaycastTelemetryOptions({
25
+ originActor: options.originActor,
26
+ agentRelayDistinctId: options.agentRelayDistinctId,
27
+ }),
28
+ };
29
+ }
30
+ /**
31
+ * Create a workspace-key scoped thin client.
32
+ * @param options - Workspace key, optional base URL, and telemetry overrides
33
+ * @returns Raw pass-through client for workspace-scoped operations
34
+ */
35
+ export function createWorkspaceClient(options) {
36
+ // The raw client is returned as-is; the thin interface narrows the surface
37
+ // to the workspace operations this package supports.
38
+ return new RelayCast(clientConfig(options.workspaceKey, options));
39
+ }
40
+ /**
41
+ * Create an agent-token scoped thin client.
42
+ * @param options - Agent token, optional base URL, heartbeat, and telemetry overrides
43
+ * @returns Raw pass-through client for agent-scoped operations
44
+ */
45
+ export function createAgentClient(options) {
46
+ const relay = new RelayCast(clientConfig(options.agentToken, options));
47
+ return relay.as(options.agentToken, {
48
+ autoHeartbeatMs: options.autoHeartbeatMs ?? false,
49
+ });
50
+ }
51
+ /**
52
+ * Create an agent-token scoped realtime event client.
53
+ * @param options - Agent token, optional base URL, and telemetry overrides
54
+ * @returns Realtime client streaming raw workspace events
55
+ */
56
+ export function createRealtimeClient(options) {
57
+ return new WsClient({
58
+ token: options.agentToken,
59
+ ...(options.baseUrl === undefined ? {} : { baseUrl: options.baseUrl }),
60
+ ...relaycastTelemetryOptions({
61
+ originActor: options.originActor,
62
+ agentRelayDistinctId: options.agentRelayDistinctId,
63
+ }),
64
+ });
65
+ }
66
+ /**
67
+ * Create a new Relaycast workspace.
68
+ * @param name - Human-readable workspace name
69
+ * @param options - Optional base URL and telemetry overrides
70
+ * @returns Raw workspace payload, including the workspace key
71
+ */
72
+ export async function createWorkspace(name, options = {}) {
73
+ return (await RelayCast.createWorkspace(name, {
74
+ ...(options.baseUrl === undefined ? {} : { baseUrl: options.baseUrl }),
75
+ ...relaycastWorkspaceTelemetryOptions({ agentRelayDistinctId: options.agentRelayDistinctId }),
76
+ }));
77
+ }
78
+ //# sourceMappingURL=thin-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thin-client.js","sourceRoot":"","sources":["../../src/messaging/thin-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,kCAAkC,GAEnC,MAAM,2BAA2B,CAAC;AAYnC,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAW,WAAW,CAAC;AA0JzD,SAAS,YAAY,CACnB,MAAc,EACd,OAAyD;IAEzD,OAAO;QACL,MAAM;QACN,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,yBAAyB,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAoC;IACxE,2EAA2E;IAC3E,qDAAqD;IACrD,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAwC,CAAC;AAC3G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgC;IAChE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;KAClD,CAAoC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IACtE,OAAO,IAAI,QAAQ,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC,UAAU;QACzB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,yBAAyB,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC;KACH,CAAuC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,UAAuC,EAAE;IAEzC,OAAO,CAAC,MAAM,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE;QAC5C,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,kCAAkC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC;KAC9F,CAAC,CAA4B,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "10.0.0",
3
+ "version": "10.1.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -51,7 +51,7 @@
51
51
  "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && npx tsc -p tsconfig.build.json",
52
52
  "build:full": "npm run build",
53
53
  "check": "tsc -p tsconfig.json --noEmit",
54
- "test": "vitest run src/__tests__/agent-relay.test.ts src/__tests__/facade.test.ts src/__tests__/listeners.test.ts src/__tests__/integrations.test.ts src/__tests__/messaging.test.ts src/__tests__/delivery-actions.test.ts src/__tests__/relaycast-errors.test.ts src/__tests__/register-action-relay.test.ts src/__tests__/typed-action-handle.test.ts src/__tests__/webhooks.test.ts",
54
+ "test": "vitest run src/__tests__/agent-relay.test.ts src/__tests__/facade.test.ts src/__tests__/listeners.test.ts src/__tests__/integrations.test.ts src/__tests__/messaging.test.ts src/__tests__/delivery-actions.test.ts src/__tests__/relaycast-errors.test.ts src/__tests__/register-action-relay.test.ts src/__tests__/thin-client.test.ts src/__tests__/typed-action-handle.test.ts src/__tests__/webhooks.test.ts",
55
55
  "test:types": "vitest run --typecheck.only --typecheck.tsconfig tsconfig.typetest.json",
56
56
  "prepack": "npm run build"
57
57
  },