@agent-relay/mcp 2.1.13 → 2.1.15
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.
- package/README.md +31 -0
- package/dist/bin.js +18 -5
- package/dist/bin.js.map +1 -1
- package/dist/{client.d.ts → client-adapter.d.ts} +22 -36
- package/dist/client-adapter.d.ts.map +1 -0
- package/dist/client-adapter.js +227 -0
- package/dist/client-adapter.js.map +1 -0
- package/dist/hybrid-client.d.ts +1 -31
- package/dist/hybrid-client.d.ts.map +1 -1
- package/dist/hybrid-client.js +3 -153
- package/dist/hybrid-client.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/resources/agents.d.ts +1 -1
- package/dist/resources/agents.d.ts.map +1 -1
- package/dist/resources/inbox.d.ts +1 -1
- package/dist/resources/inbox.d.ts.map +1 -1
- package/dist/resources/project.d.ts +1 -1
- package/dist/resources/project.d.ts.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/simple.d.ts +1 -1
- package/dist/simple.d.ts.map +1 -1
- package/dist/simple.js +1 -1
- package/dist/simple.js.map +1 -1
- package/dist/tools/relay-broadcast.d.ts +1 -1
- package/dist/tools/relay-broadcast.d.ts.map +1 -1
- package/dist/tools/relay-channel.d.ts +1 -1
- package/dist/tools/relay-channel.d.ts.map +1 -1
- package/dist/tools/relay-connected.d.ts +1 -1
- package/dist/tools/relay-connected.d.ts.map +1 -1
- package/dist/tools/relay-consensus.d.ts +7 -7
- package/dist/tools/relay-consensus.d.ts.map +1 -1
- package/dist/tools/relay-continuity.d.ts +1 -1
- package/dist/tools/relay-continuity.d.ts.map +1 -1
- package/dist/tools/relay-health.d.ts +1 -1
- package/dist/tools/relay-health.d.ts.map +1 -1
- package/dist/tools/relay-inbox.d.ts +2 -2
- package/dist/tools/relay-inbox.d.ts.map +1 -1
- package/dist/tools/relay-logs.d.ts +1 -1
- package/dist/tools/relay-logs.d.ts.map +1 -1
- package/dist/tools/relay-messages.d.ts +7 -7
- package/dist/tools/relay-messages.d.ts.map +1 -1
- package/dist/tools/relay-metrics.d.ts +1 -1
- package/dist/tools/relay-metrics.d.ts.map +1 -1
- package/dist/tools/relay-metrics.js +4 -4
- package/dist/tools/relay-metrics.js.map +1 -1
- package/dist/tools/relay-release.d.ts +1 -1
- package/dist/tools/relay-release.d.ts.map +1 -1
- package/dist/tools/relay-remove-agent.d.ts +1 -1
- package/dist/tools/relay-remove-agent.d.ts.map +1 -1
- package/dist/tools/relay-send.d.ts +3 -3
- package/dist/tools/relay-send.d.ts.map +1 -1
- package/dist/tools/relay-shadow.d.ts +1 -1
- package/dist/tools/relay-shadow.d.ts.map +1 -1
- package/dist/tools/relay-spawn.d.ts +3 -3
- package/dist/tools/relay-spawn.d.ts.map +1 -1
- package/dist/tools/relay-status.d.ts +1 -1
- package/dist/tools/relay-status.d.ts.map +1 -1
- package/dist/tools/relay-subscribe.d.ts +1 -1
- package/dist/tools/relay-subscribe.d.ts.map +1 -1
- package/dist/tools/relay-who.d.ts +1 -1
- package/dist/tools/relay-who.d.ts.map +1 -1
- package/package.json +13 -4
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -320
- package/dist/client.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,6 +19,37 @@ The wizard will:
|
|
|
19
19
|
2. Offer to start the daemon
|
|
20
20
|
3. Show you how to use the relay tools
|
|
21
21
|
|
|
22
|
+
## Breaking Changes
|
|
23
|
+
|
|
24
|
+
### v1.x: Client Module Restructure
|
|
25
|
+
|
|
26
|
+
The internal client module has been restructured. **Main package exports are unchanged** - only direct file imports are affected.
|
|
27
|
+
|
|
28
|
+
**If you import from the main package (recommended), no changes needed:**
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
// This still works - no changes required
|
|
32
|
+
import { createRelayClient } from '@agent-relay/mcp';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**If you import directly from source files, update your imports:**
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// OLD (no longer works):
|
|
39
|
+
import { createRelayClient } from '@agent-relay/mcp/src/client.js';
|
|
40
|
+
|
|
41
|
+
// NEW:
|
|
42
|
+
import { createRelayClient } from '@agent-relay/mcp';
|
|
43
|
+
|
|
44
|
+
// Alternative (if you need direct file import):
|
|
45
|
+
import { createRelayClient } from '@agent-relay/mcp/src/client-adapter.js';
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**What changed:**
|
|
49
|
+
- `packages/mcp/src/client.ts` has been deleted
|
|
50
|
+
- Functionality moved to `packages/mcp/src/client-adapter.ts`
|
|
51
|
+
- Main package exports (`@agent-relay/mcp`) continue to work unchanged
|
|
52
|
+
|
|
22
53
|
## Manual Installation
|
|
23
54
|
|
|
24
55
|
### Install MCP for Editors
|
package/dist/bin.js
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { parseArgs } from 'node:util';
|
|
12
12
|
import { runInstall, validateEditor, getValidEditors } from './install-cli.js';
|
|
13
|
+
import { RelayClient } from '@agent-relay/sdk';
|
|
14
|
+
import { createRelayClientAdapter } from './client-adapter.js';
|
|
13
15
|
const { values, positionals } = parseArgs({
|
|
14
16
|
allowPositionals: true,
|
|
15
17
|
options: {
|
|
@@ -104,7 +106,7 @@ switch (command) {
|
|
|
104
106
|
(async () => {
|
|
105
107
|
try {
|
|
106
108
|
const { runMCPServer, discoverSocket, discoverAgentName } = await import('./index.js');
|
|
107
|
-
const {
|
|
109
|
+
const { discoverProjectRoot } = await import('./hybrid-client.js');
|
|
108
110
|
const { join } = await import('node:path');
|
|
109
111
|
const { existsSync } = await import('node:fs');
|
|
110
112
|
// Use explicit project path if provided (for MCP servers invoked from different contexts)
|
|
@@ -123,7 +125,7 @@ switch (command) {
|
|
|
123
125
|
}
|
|
124
126
|
const discovery = discoverSocket();
|
|
125
127
|
const agentName = discoverAgentName(discovery) || `mcp-${process.pid}`;
|
|
126
|
-
// Discover project root
|
|
128
|
+
// Discover project root
|
|
127
129
|
if (!projectRoot) {
|
|
128
130
|
projectRoot = discoverProjectRoot() ?? undefined;
|
|
129
131
|
}
|
|
@@ -139,14 +141,25 @@ switch (command) {
|
|
|
139
141
|
console.error('Run "agent-relay up" in the project to start the daemon first');
|
|
140
142
|
process.exit(1);
|
|
141
143
|
}
|
|
142
|
-
|
|
143
|
-
const client = createHybridClient({
|
|
144
|
+
const client = new RelayClient({
|
|
144
145
|
agentName,
|
|
146
|
+
socketPath: socketPath || discovery?.socketPath,
|
|
147
|
+
quiet: values.quiet,
|
|
148
|
+
reconnect: true,
|
|
149
|
+
});
|
|
150
|
+
await client.connect();
|
|
151
|
+
const mcpClient = createRelayClientAdapter(client, {
|
|
152
|
+
agentName,
|
|
153
|
+
project: discovery?.project,
|
|
145
154
|
projectRoot,
|
|
146
155
|
socketPath: socketPath || discovery?.socketPath,
|
|
156
|
+
});
|
|
157
|
+
await runMCPServer(mcpClient, {
|
|
158
|
+
projectRoot,
|
|
147
159
|
project: discovery?.project,
|
|
160
|
+
socketPath: socketPath || discovery?.socketPath,
|
|
161
|
+
agentName,
|
|
148
162
|
});
|
|
149
|
-
await runMCPServer(client);
|
|
150
163
|
}
|
|
151
164
|
catch (err) {
|
|
152
165
|
const message = err instanceof Error ? err.message : String(err);
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* This module uses @agent-relay/protocol for wire format handling
|
|
5
|
-
* to avoid code duplication with the SDK.
|
|
6
|
-
*/
|
|
7
|
-
import { type AckPayload, type HealthResponsePayload, type MetricsResponsePayload, type MessagesResponsePayload } from '@agent-relay/protocol';
|
|
8
|
-
import { type SpawnResult, type ReleaseResult } from '@agent-relay/utils/client-helpers';
|
|
1
|
+
import { RelayClient as SdkRelayClient, type AckPayload, type AgentInfo, type HealthResponsePayload, type MetricsResponsePayload, type MessagesResponsePayload, type SpawnResult, type ReleaseResultPayload } from '@agent-relay/sdk';
|
|
2
|
+
export type QueryMessage = MessagesResponsePayload['messages'][number];
|
|
9
3
|
export type HealthResponse = HealthResponsePayload;
|
|
10
4
|
export type MetricsResponse = MetricsResponsePayload;
|
|
11
5
|
export type MessagesResponse = MessagesResponsePayload;
|
|
12
|
-
export type QueryMessage = MessagesResponsePayload['messages'][number];
|
|
13
6
|
export interface RelayClient {
|
|
14
7
|
send(to: string, message: string, options?: {
|
|
15
8
|
thread?: string;
|
|
@@ -24,15 +17,16 @@ export interface RelayClient {
|
|
|
24
17
|
}): Promise<AckPayload>;
|
|
25
18
|
broadcast(message: string, options?: {
|
|
26
19
|
kind?: string;
|
|
20
|
+
data?: Record<string, unknown>;
|
|
27
21
|
}): Promise<void>;
|
|
28
22
|
spawn(options: {
|
|
29
23
|
name: string;
|
|
30
24
|
cli: string;
|
|
31
|
-
task
|
|
25
|
+
task?: string;
|
|
32
26
|
model?: string;
|
|
33
27
|
cwd?: string;
|
|
34
28
|
}): Promise<SpawnResult>;
|
|
35
|
-
release(name: string, reason?: string): Promise<
|
|
29
|
+
release(name: string, reason?: string): Promise<ReleaseResultPayload>;
|
|
36
30
|
subscribe(topic: string): Promise<{
|
|
37
31
|
success: boolean;
|
|
38
32
|
error?: string;
|
|
@@ -52,12 +46,10 @@ export interface RelayClient {
|
|
|
52
46
|
sendChannelMessage(channel: string, message: string, options?: {
|
|
53
47
|
thread?: string;
|
|
54
48
|
}): Promise<void>;
|
|
55
|
-
/** Admin join: Add any member to a channel (does not require member to be connected) */
|
|
56
49
|
adminJoinChannel(channel: string, member: string): Promise<{
|
|
57
50
|
success: boolean;
|
|
58
51
|
error?: string;
|
|
59
52
|
}>;
|
|
60
|
-
/** Admin remove: Remove any member from a channel */
|
|
61
53
|
adminRemoveMember(channel: string, member: string): Promise<{
|
|
62
54
|
success: boolean;
|
|
63
55
|
error?: string;
|
|
@@ -113,20 +105,10 @@ export interface RelayClient {
|
|
|
113
105
|
listAgents(options?: {
|
|
114
106
|
include_idle?: boolean;
|
|
115
107
|
project?: string;
|
|
116
|
-
}): Promise<
|
|
117
|
-
name: string;
|
|
118
|
-
cli?: string;
|
|
119
|
-
idle?: boolean;
|
|
120
|
-
parent?: string;
|
|
121
|
-
}>>;
|
|
108
|
+
}): Promise<AgentInfo[]>;
|
|
122
109
|
listConnectedAgents(options?: {
|
|
123
110
|
project?: string;
|
|
124
|
-
}): Promise<
|
|
125
|
-
name: string;
|
|
126
|
-
cli?: string;
|
|
127
|
-
idle?: boolean;
|
|
128
|
-
parent?: string;
|
|
129
|
-
}>>;
|
|
111
|
+
}): Promise<AgentInfo[]>;
|
|
130
112
|
removeAgent(name: string, options?: {
|
|
131
113
|
removeMessages?: boolean;
|
|
132
114
|
}): Promise<{
|
|
@@ -137,33 +119,37 @@ export interface RelayClient {
|
|
|
137
119
|
getHealth(options?: {
|
|
138
120
|
include_crashes?: boolean;
|
|
139
121
|
include_alerts?: boolean;
|
|
140
|
-
}): Promise<
|
|
122
|
+
}): Promise<HealthResponsePayload>;
|
|
141
123
|
getMetrics(options?: {
|
|
142
124
|
agent?: string;
|
|
143
|
-
}): Promise<
|
|
144
|
-
/**
|
|
145
|
-
* Query all messages (not filtered by recipient).
|
|
146
|
-
* Useful for dashboard views and message history.
|
|
147
|
-
*/
|
|
125
|
+
}): Promise<MetricsResponsePayload>;
|
|
148
126
|
queryMessages(options?: {
|
|
149
127
|
limit?: number;
|
|
150
128
|
sinceTs?: number;
|
|
129
|
+
since_ts?: number;
|
|
151
130
|
from?: string;
|
|
152
131
|
to?: string;
|
|
153
132
|
thread?: string;
|
|
154
133
|
order?: 'asc' | 'desc';
|
|
155
134
|
}): Promise<QueryMessage[]>;
|
|
156
|
-
/**
|
|
157
|
-
* Send log output to the daemon for dashboard streaming.
|
|
158
|
-
*/
|
|
159
135
|
sendLog(data: string): Promise<void>;
|
|
160
136
|
}
|
|
137
|
+
export interface RelayClientAdapterOptions {
|
|
138
|
+
agentName: string;
|
|
139
|
+
project?: string;
|
|
140
|
+
projectRoot?: string;
|
|
141
|
+
socketPath?: string;
|
|
142
|
+
}
|
|
143
|
+
export declare function createRelayClientAdapter(client: SdkRelayClient, ctx: RelayClientAdapterOptions): RelayClient;
|
|
161
144
|
export interface RelayClientOptions {
|
|
162
145
|
agentName: string;
|
|
163
146
|
socketPath?: string;
|
|
164
147
|
project?: string;
|
|
148
|
+
quiet?: boolean;
|
|
165
149
|
timeout?: number;
|
|
166
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Factory that creates an SDK RelayClient and wraps it with the MCP adapter.
|
|
153
|
+
*/
|
|
167
154
|
export declare function createRelayClient(options: RelayClientOptions): RelayClient;
|
|
168
|
-
|
|
169
|
-
//# sourceMappingURL=client.d.ts.map
|
|
155
|
+
//# sourceMappingURL=client-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-adapter.d.ts","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { RelayClient as SdkRelayClient } from '@agent-relay/sdk';
|
|
2
|
+
import { PROTOCOL_VERSION } from '@agent-relay/protocol';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
async function ensureReady(client) {
|
|
5
|
+
if (client.state !== 'READY') {
|
|
6
|
+
await client.connect();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function boolResult(ok, action) {
|
|
10
|
+
return ok ? { success: true } : { success: false, error: `Failed to ${action}` };
|
|
11
|
+
}
|
|
12
|
+
export function createRelayClientAdapter(client, ctx) {
|
|
13
|
+
const project = ctx.projectRoot ?? ctx.project ?? 'default';
|
|
14
|
+
const socketPath = ctx.socketPath ?? '';
|
|
15
|
+
return {
|
|
16
|
+
async send(to, message, opts = {}) {
|
|
17
|
+
await ensureReady(client);
|
|
18
|
+
const ok = client.sendMessage(to, message, opts.kind ?? 'message', opts.data, opts.thread);
|
|
19
|
+
if (!ok)
|
|
20
|
+
throw new Error('Failed to send message');
|
|
21
|
+
},
|
|
22
|
+
async sendAndWait(to, message, opts = {}) {
|
|
23
|
+
await ensureReady(client);
|
|
24
|
+
return client.sendAndWait(to, message, {
|
|
25
|
+
thread: opts.thread,
|
|
26
|
+
timeoutMs: opts.timeoutMs,
|
|
27
|
+
kind: opts.kind,
|
|
28
|
+
data: opts.data,
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
async broadcast(message, opts = {}) {
|
|
32
|
+
await ensureReady(client);
|
|
33
|
+
const ok = client.broadcast(message, opts.kind ?? 'message', opts.data);
|
|
34
|
+
if (!ok)
|
|
35
|
+
throw new Error('Failed to broadcast message');
|
|
36
|
+
},
|
|
37
|
+
async subscribe(topic) {
|
|
38
|
+
await ensureReady(client);
|
|
39
|
+
const ok = client.subscribe(topic);
|
|
40
|
+
return boolResult(ok, 'subscribe');
|
|
41
|
+
},
|
|
42
|
+
async unsubscribe(topic) {
|
|
43
|
+
await ensureReady(client);
|
|
44
|
+
const ok = client.unsubscribe(topic);
|
|
45
|
+
return boolResult(ok, 'unsubscribe');
|
|
46
|
+
},
|
|
47
|
+
async joinChannel(channel, displayName) {
|
|
48
|
+
await ensureReady(client);
|
|
49
|
+
const ok = client.joinChannel(channel, displayName);
|
|
50
|
+
return boolResult(ok, 'join channel');
|
|
51
|
+
},
|
|
52
|
+
async leaveChannel(channel, reason) {
|
|
53
|
+
await ensureReady(client);
|
|
54
|
+
const ok = client.leaveChannel(channel, reason);
|
|
55
|
+
return boolResult(ok, 'leave channel');
|
|
56
|
+
},
|
|
57
|
+
async sendChannelMessage(channel, message, options = {}) {
|
|
58
|
+
await ensureReady(client);
|
|
59
|
+
const ok = client.sendChannelMessage(channel, message, { thread: options.thread });
|
|
60
|
+
if (!ok)
|
|
61
|
+
throw new Error('Failed to send channel message');
|
|
62
|
+
},
|
|
63
|
+
async adminJoinChannel(channel, member) {
|
|
64
|
+
await ensureReady(client);
|
|
65
|
+
const ok = client.adminJoinChannel(channel, member);
|
|
66
|
+
return boolResult(ok, 'add member to channel');
|
|
67
|
+
},
|
|
68
|
+
async adminRemoveMember(channel, member) {
|
|
69
|
+
await ensureReady(client);
|
|
70
|
+
const ok = client.adminRemoveMember(channel, member);
|
|
71
|
+
return boolResult(ok, 'remove member from channel');
|
|
72
|
+
},
|
|
73
|
+
async bindAsShadow(primaryAgent, opts = {}) {
|
|
74
|
+
await ensureReady(client);
|
|
75
|
+
const ok = client.bindAsShadow(primaryAgent, { speakOn: opts.speakOn });
|
|
76
|
+
return boolResult(ok, 'bind as shadow');
|
|
77
|
+
},
|
|
78
|
+
async unbindAsShadow(primaryAgent) {
|
|
79
|
+
await ensureReady(client);
|
|
80
|
+
const ok = client.unbindAsShadow(primaryAgent);
|
|
81
|
+
return boolResult(ok, 'unbind shadow');
|
|
82
|
+
},
|
|
83
|
+
async createProposal(opts) {
|
|
84
|
+
await ensureReady(client);
|
|
85
|
+
const envelope = {
|
|
86
|
+
v: PROTOCOL_VERSION,
|
|
87
|
+
type: 'PROPOSAL_CREATE',
|
|
88
|
+
id: randomUUID(),
|
|
89
|
+
ts: Date.now(),
|
|
90
|
+
payload: {
|
|
91
|
+
id: opts.id,
|
|
92
|
+
description: opts.description,
|
|
93
|
+
options: opts.options,
|
|
94
|
+
votingMethod: opts.votingMethod ?? 'majority',
|
|
95
|
+
deadline: opts.deadline,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
const ok = client.send?.(envelope) ?? false;
|
|
99
|
+
return boolResult(ok, 'create proposal');
|
|
100
|
+
},
|
|
101
|
+
async vote(opts) {
|
|
102
|
+
await ensureReady(client);
|
|
103
|
+
const envelope = {
|
|
104
|
+
v: PROTOCOL_VERSION,
|
|
105
|
+
type: 'VOTE',
|
|
106
|
+
id: randomUUID(),
|
|
107
|
+
ts: Date.now(),
|
|
108
|
+
payload: {
|
|
109
|
+
proposalId: opts.proposalId,
|
|
110
|
+
vote: opts.vote,
|
|
111
|
+
reason: opts.reason,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
const ok = client.send?.(envelope) ?? false;
|
|
115
|
+
return boolResult(ok, 'vote');
|
|
116
|
+
},
|
|
117
|
+
async spawn(options) {
|
|
118
|
+
await ensureReady(client);
|
|
119
|
+
return client.spawn(options);
|
|
120
|
+
},
|
|
121
|
+
async release(name, reason) {
|
|
122
|
+
await ensureReady(client);
|
|
123
|
+
return client.release(name, reason);
|
|
124
|
+
},
|
|
125
|
+
async getStatus() {
|
|
126
|
+
try {
|
|
127
|
+
await ensureReady(client);
|
|
128
|
+
const status = await client.getStatus();
|
|
129
|
+
return {
|
|
130
|
+
connected: true,
|
|
131
|
+
agentName: ctx.agentName,
|
|
132
|
+
project,
|
|
133
|
+
socketPath,
|
|
134
|
+
daemonVersion: status.version,
|
|
135
|
+
uptime: status.uptime ? `${Math.floor(status.uptime / 1000)}s` : undefined,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return {
|
|
140
|
+
connected: false,
|
|
141
|
+
agentName: ctx.agentName,
|
|
142
|
+
project,
|
|
143
|
+
socketPath,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
async getInbox(options = {}) {
|
|
148
|
+
await ensureReady(client);
|
|
149
|
+
const messages = await client.getInbox({
|
|
150
|
+
limit: options.limit,
|
|
151
|
+
unreadOnly: options.unread_only,
|
|
152
|
+
from: options.from,
|
|
153
|
+
channel: options.channel,
|
|
154
|
+
});
|
|
155
|
+
return messages.map((m) => ({
|
|
156
|
+
id: m.id,
|
|
157
|
+
from: m.from,
|
|
158
|
+
content: m.body,
|
|
159
|
+
channel: m.channel,
|
|
160
|
+
thread: m.thread,
|
|
161
|
+
}));
|
|
162
|
+
},
|
|
163
|
+
async listAgents(options = {}) {
|
|
164
|
+
await ensureReady(client);
|
|
165
|
+
return client.listAgents({
|
|
166
|
+
includeIdle: options.include_idle,
|
|
167
|
+
project: options.project,
|
|
168
|
+
});
|
|
169
|
+
},
|
|
170
|
+
async listConnectedAgents(options = {}) {
|
|
171
|
+
await ensureReady(client);
|
|
172
|
+
return client.listConnectedAgents({
|
|
173
|
+
project: options.project,
|
|
174
|
+
});
|
|
175
|
+
},
|
|
176
|
+
async removeAgent(name, options = {}) {
|
|
177
|
+
await ensureReady(client);
|
|
178
|
+
return client.removeAgent(name, { removeMessages: options.removeMessages });
|
|
179
|
+
},
|
|
180
|
+
async getHealth(options = {}) {
|
|
181
|
+
await ensureReady(client);
|
|
182
|
+
return client.getHealth({
|
|
183
|
+
includeCrashes: options.include_crashes,
|
|
184
|
+
includeAlerts: options.include_alerts,
|
|
185
|
+
});
|
|
186
|
+
},
|
|
187
|
+
async getMetrics(options = {}) {
|
|
188
|
+
await ensureReady(client);
|
|
189
|
+
return client.getMetrics({ agent: options.agent });
|
|
190
|
+
},
|
|
191
|
+
async queryMessages(options = {}) {
|
|
192
|
+
await ensureReady(client);
|
|
193
|
+
const response = await client.queryMessages({
|
|
194
|
+
limit: options.limit,
|
|
195
|
+
sinceTs: options.sinceTs ?? options.since_ts,
|
|
196
|
+
from: options.from,
|
|
197
|
+
to: options.to,
|
|
198
|
+
thread: options.thread,
|
|
199
|
+
order: options.order,
|
|
200
|
+
});
|
|
201
|
+
return response || [];
|
|
202
|
+
},
|
|
203
|
+
async sendLog(data) {
|
|
204
|
+
await ensureReady(client);
|
|
205
|
+
const ok = client.sendLog(data);
|
|
206
|
+
if (!ok)
|
|
207
|
+
throw new Error('Failed to send log');
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Factory that creates an SDK RelayClient and wraps it with the MCP adapter.
|
|
213
|
+
*/
|
|
214
|
+
export function createRelayClient(options) {
|
|
215
|
+
const sdkClient = new SdkRelayClient({
|
|
216
|
+
agentName: options.agentName,
|
|
217
|
+
socketPath: options.socketPath,
|
|
218
|
+
quiet: options.quiet,
|
|
219
|
+
reconnect: true,
|
|
220
|
+
});
|
|
221
|
+
return createRelayClientAdapter(sdkClient, {
|
|
222
|
+
agentName: options.agentName,
|
|
223
|
+
project: options.project,
|
|
224
|
+
socketPath: options.socketPath,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=client-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-adapter.js","sourceRoot":"","sources":["../src/client-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/hybrid-client.d.ts
CHANGED
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* IMPORTANT: The file-based writes ONLY work when relay-pty is wrapping the agent.
|
|
5
|
-
* relay-pty watches for ->relay-file:* triggers in agent output and processes outbox files.
|
|
6
|
-
* The daemon does NOT watch outbox directories directly.
|
|
7
|
-
*
|
|
8
|
-
* For pure MCP tools (not wrapped by relay-pty), use createRelayClient() instead,
|
|
9
|
-
* which communicates directly with the daemon via socket.
|
|
10
|
-
*
|
|
11
|
-
* This hybrid client is designed for scenarios where:
|
|
12
|
-
* - An agent is wrapped by relay-pty
|
|
13
|
-
* - File-based writes avoid socket connection overhead
|
|
14
|
-
* - Socket is still used for queries (getInbox, listAgents, etc.)
|
|
15
|
-
*/
|
|
16
|
-
import type { RelayClient } from './client.js';
|
|
17
|
-
export interface HybridClientOptions {
|
|
18
|
-
/** Agent name */
|
|
19
|
-
agentName: string;
|
|
20
|
-
/** Project root directory (where .agent-relay lives) */
|
|
21
|
-
projectRoot: string;
|
|
22
|
-
/** Socket path (optional, will discover if not provided) */
|
|
23
|
-
socketPath?: string;
|
|
24
|
-
/** Project ID */
|
|
25
|
-
project?: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Create a hybrid client that uses file-based for writes, socket for queries.
|
|
29
|
-
*/
|
|
30
|
-
export declare function createHybridClient(options: HybridClientOptions): RelayClient;
|
|
31
|
-
/**
|
|
32
|
-
* Discover project root from socket path or environment.
|
|
2
|
+
* Discover project root by locating a .agent-relay directory.
|
|
33
3
|
*/
|
|
34
4
|
export declare function discoverProjectRoot(): string | null;
|
|
35
5
|
//# sourceMappingURL=hybrid-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-client.d.ts","sourceRoot":"","sources":["../src/hybrid-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hybrid-client.d.ts","sourceRoot":"","sources":["../src/hybrid-client.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAkBnD"}
|