agent-relay 3.1.18 → 3.1.20
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 +13 -1
- package/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/index.cjs +446 -192
- package/dist/src/cli/bootstrap.js +0 -15
- package/dist/src/cli/bootstrap.js.map +1 -1
- package/dist/src/cli/commands/agent-management.d.ts +1 -0
- package/dist/src/cli/commands/agent-management.d.ts.map +1 -1
- package/dist/src/cli/commands/agent-management.js +235 -16
- package/dist/src/cli/commands/agent-management.js.map +1 -1
- package/dist/src/cli/commands/core.js +1 -1
- package/dist/src/cli/commands/core.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +13 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -1
- package/dist/src/cli/lib/broker-lifecycle.js +3 -5
- package/dist/src/cli/lib/broker-lifecycle.js.map +1 -1
- package/dist/src/cli/lib/connect-daytona.js +2 -2
- package/dist/src/cli/lib/connect-daytona.js.map +1 -1
- package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -1
- package/dist/src/cli/lib/core-maintenance.js +52 -0
- package/dist/src/cli/lib/core-maintenance.js.map +1 -1
- package/install.sh +32 -0
- package/package.json +13 -13
- package/packages/acp-bridge/package.json +2 -2
- package/packages/config/package.json +1 -1
- package/packages/hooks/package.json +4 -4
- package/packages/memory/package.json +2 -2
- package/packages/openclaw/dist/cli.js +79 -2
- package/packages/openclaw/dist/cli.js.map +1 -1
- package/packages/openclaw/dist/config.d.ts +28 -1
- package/packages/openclaw/dist/config.d.ts.map +1 -1
- package/packages/openclaw/dist/config.js +145 -0
- package/packages/openclaw/dist/config.js.map +1 -1
- package/packages/openclaw/dist/index.d.ts +2 -2
- package/packages/openclaw/dist/index.d.ts.map +1 -1
- package/packages/openclaw/dist/index.js +1 -1
- package/packages/openclaw/dist/index.js.map +1 -1
- package/packages/openclaw/dist/setup.d.ts.map +1 -1
- package/packages/openclaw/dist/setup.js +24 -1
- package/packages/openclaw/dist/setup.js.map +1 -1
- package/packages/openclaw/dist/types.d.ts +23 -0
- package/packages/openclaw/dist/types.d.ts.map +1 -1
- package/packages/openclaw/package.json +2 -2
- package/packages/openclaw/skill/SKILL.md +46 -0
- package/packages/openclaw/src/cli.ts +90 -2
- package/packages/openclaw/src/config.ts +165 -1
- package/packages/openclaw/src/index.ts +7 -1
- package/packages/openclaw/src/setup.ts +26 -1
- package/packages/openclaw/src/types.ts +25 -0
- package/packages/policy/package.json +2 -2
- package/packages/sdk/dist/__tests__/integration.test.js +35 -0
- package/packages/sdk/dist/__tests__/integration.test.js.map +1 -1
- package/packages/sdk/dist/client.d.ts +9 -0
- package/packages/sdk/dist/client.d.ts.map +1 -1
- package/packages/sdk/dist/client.js +48 -25
- package/packages/sdk/dist/client.js.map +1 -1
- package/packages/sdk/dist/protocol.d.ts +1 -0
- package/packages/sdk/dist/protocol.d.ts.map +1 -1
- package/packages/sdk/dist/relay.d.ts +8 -0
- package/packages/sdk/dist/relay.d.ts.map +1 -1
- package/packages/sdk/dist/relay.js +50 -5
- package/packages/sdk/dist/relay.js.map +1 -1
- package/packages/sdk/dist/workflows/cli.js +2 -0
- package/packages/sdk/dist/workflows/cli.js.map +1 -1
- package/packages/sdk/dist/workflows/runner.d.ts +11 -0
- package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/runner.js +350 -167
- package/packages/sdk/dist/workflows/runner.js.map +1 -1
- package/packages/sdk/dist/workflows/trajectory.d.ts +6 -1
- package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/trajectory.js +16 -2
- package/packages/sdk/dist/workflows/trajectory.js.map +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/sdk/src/__tests__/integration.test.ts +49 -0
- package/packages/sdk/src/__tests__/orchestration-upgrades.test.ts +50 -1
- package/packages/sdk/src/client.ts +57 -24
- package/packages/sdk/src/protocol.ts +1 -1
- package/packages/sdk/src/relay.ts +70 -5
- package/packages/sdk/src/workflows/cli.ts +2 -0
- package/packages/sdk/src/workflows/runner.ts +414 -185
- package/packages/sdk/src/workflows/trajectory.ts +22 -2
- package/packages/sdk-py/pyproject.toml +1 -1
- package/packages/sdk-py/src/agent_relay/client.py +18 -1
- package/packages/sdk-py/src/agent_relay/relay.py +4 -0
- package/packages/sdk-py/src/agent_relay/types.py +4 -0
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,MAAM,WAAW,8BAA8B;IAC7C,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,8BAA8B,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CACzE;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,MAAM,WAAW,8BAA8B;IAC7C,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,8BAA8B,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/openclaw",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.20",
|
|
4
4
|
"description": "Relaycast bridge for OpenClaw — messaging, identity, runtime setup, and local spawning",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"postinstall": "node -e \"try{require('child_process').execSync('ldd --version 2>&1',{stdio:'pipe'})}catch{try{require('child_process').execSync('apk info gcompat 2>/dev/null',{stdio:'pipe'})}catch{console.warn('\\n\\u26a0\\ufe0f @agent-relay/openclaw: Alpine detected without gcompat. Spawning requires glibc.\\n Install with: apk add gcompat libstdc++\\n')}}\""
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@agent-relay/sdk": "3.1.
|
|
32
|
+
"@agent-relay/sdk": "3.1.20",
|
|
33
33
|
"@relaycast/sdk": "^0.4.0",
|
|
34
34
|
"ws": "^8.0.0"
|
|
35
35
|
},
|
|
@@ -97,6 +97,45 @@ Expected signals:
|
|
|
97
97
|
|
|
98
98
|
These signals mean setup completed, but they do **not** prove end-to-end message sending. Treat `mcporter call relaycast.post_message ...` as the real health check.
|
|
99
99
|
|
|
100
|
+
## 2b) Setup (Multi-workspace)
|
|
101
|
+
|
|
102
|
+
OpenClaw now supports multiple Relaycast workspaces in one config.
|
|
103
|
+
|
|
104
|
+
### Configure additional workspace entries
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
relay-openclaw add-workspace rk_live_ABC123 --alias team-a
|
|
108
|
+
relay-openclaw add-workspace rk_live_DEF456 --alias team-b --default
|
|
109
|
+
relay-openclaw list-workspaces
|
|
110
|
+
relay-openclaw switch-workspace team-a
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Notes:
|
|
114
|
+
|
|
115
|
+
- `add-workspace` stores entries in `~/.openclaw/workspace/relaycast/workspaces.json`.
|
|
116
|
+
- Aliases (`--alias`) make switching easier than copying workspace UUIDs.
|
|
117
|
+
- Use `--default` on `add-workspace` to mark that workspace as default, or switch later with `switch-workspace`.
|
|
118
|
+
- `setup` seeds the first workspace from existing `.env` settings so existing users stay compatible.
|
|
119
|
+
|
|
120
|
+
Stored shape (when ≥2 workspaces):
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"memberships": [
|
|
125
|
+
{ "api_key": "rk_live_ABC", "workspace_alias": "team-a" },
|
|
126
|
+
{ "api_key": "rk_live_DEF", "workspace_alias": "team-b", "workspace_id": "ws_..." }
|
|
127
|
+
],
|
|
128
|
+
"default_workspace_id": "team-a"
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
When multi-workspace mode is configured, setup writes these to MCP process env:
|
|
133
|
+
|
|
134
|
+
- `RELAY_WORKSPACES_JSON=<json>` (serialized payload above)
|
|
135
|
+
- `RELAY_DEFAULT_WORKSPACE=<alias-or-id>`
|
|
136
|
+
|
|
137
|
+
You must restart the relay gateway after switching default workspaces for the change to take effect.
|
|
138
|
+
|
|
100
139
|
---
|
|
101
140
|
|
|
102
141
|
## 3) Verify Connectivity
|
|
@@ -183,6 +222,13 @@ There are **two different credentials** in a healthy setup:
|
|
|
183
222
|
- `RELAY_API_KEY` (`rk_live_...`) = workspace-level key used for setup, workspace inspection, and general API reachability
|
|
184
223
|
- `RELAY_AGENT_TOKEN` (`at_live_...`) = per-agent token used by the MCP messaging tools for posting, replying, and DMs
|
|
185
224
|
|
|
225
|
+
In multi-workspace mode, active workspace selection is driven by:
|
|
226
|
+
|
|
227
|
+
- `RELAY_WORKSPACES_JSON` (serialized list of workspace memberships passed to MCP/gateway)
|
|
228
|
+
- `RELAY_DEFAULT_WORKSPACE` (alias or workspace ID of the default workspace)
|
|
229
|
+
|
|
230
|
+
For backward compatibility, single-workspace mode still relies on `RELAY_API_KEY` in `~/.openclaw/workspace/relaycast/.env`.
|
|
231
|
+
|
|
186
232
|
Storage locations:
|
|
187
233
|
|
|
188
234
|
- `workspace/relaycast/.env` holds workspace-level config (`RELAY_API_KEY`, `RELAY_CLAW_NAME`, etc.)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { setup } from './setup.js';
|
|
3
|
-
import { loadGatewayConfig } from './config.js';
|
|
3
|
+
import { loadGatewayConfig, addWorkspace, listWorkspaces, switchWorkspace } from './config.js';
|
|
4
4
|
import { InboundGateway } from './gateway.js';
|
|
5
5
|
import { listOpenClaws, releaseOpenClaw, spawnOpenClaw } from './control.js';
|
|
6
6
|
import { startMcpServer } from './mcp/server.js';
|
|
@@ -27,6 +27,9 @@ Usage:
|
|
|
27
27
|
relay-openclaw list List OpenClaws in a workspace
|
|
28
28
|
relay-openclaw release Release an OpenClaw by agent name
|
|
29
29
|
relay-openclaw mcp-server Start MCP server (spawn/list/release tools)
|
|
30
|
+
relay-openclaw add-workspace Add a workspace to multi-workspace config
|
|
31
|
+
relay-openclaw list-workspaces List all configured workspaces
|
|
32
|
+
relay-openclaw switch-workspace Switch the default/active workspace
|
|
30
33
|
relay-openclaw runtime-setup Run container runtime setup (auth, config, identity, patching)
|
|
31
34
|
relay-openclaw help Show this help
|
|
32
35
|
relay-openclaw --version Show version
|
|
@@ -46,6 +49,11 @@ Control API options:
|
|
|
46
49
|
--system-prompt <txt> Optional system prompt
|
|
47
50
|
--reason <text> Optional release reason
|
|
48
51
|
|
|
52
|
+
Multi-workspace options:
|
|
53
|
+
--alias <name> Human-friendly alias for the workspace
|
|
54
|
+
--workspace-id <id> Workspace UUID
|
|
55
|
+
--default Set as the default workspace
|
|
56
|
+
|
|
49
57
|
Examples:
|
|
50
58
|
relay-openclaw setup rk_live_abc123
|
|
51
59
|
relay-openclaw setup --name my-claw --channels general,alerts
|
|
@@ -53,6 +61,10 @@ Examples:
|
|
|
53
61
|
relay-openclaw spawn --workspace-id ws_uuid --name researcher-1
|
|
54
62
|
relay-openclaw list --workspace-id ws_uuid
|
|
55
63
|
relay-openclaw release --workspace-id ws_uuid --agent claw-ws_uuid-researcher-1
|
|
64
|
+
relay-openclaw add-workspace rk_live_abc123 --alias team-a
|
|
65
|
+
relay-openclaw add-workspace rk_live_def456 --alias team-b --default
|
|
66
|
+
relay-openclaw list-workspaces
|
|
67
|
+
relay-openclaw switch-workspace team-a
|
|
56
68
|
`.trim());
|
|
57
69
|
}
|
|
58
70
|
|
|
@@ -100,7 +112,8 @@ async function runSetup(
|
|
|
100
112
|
|
|
101
113
|
if (result.ok) {
|
|
102
114
|
console.log(result.message);
|
|
103
|
-
|
|
115
|
+
const maskedApiKey = result.apiKey.slice(0, 12) + '...';
|
|
116
|
+
console.log(`\nWorkspace key: ${maskedApiKey}`);
|
|
104
117
|
console.log('Share this key with other claws to join the same workspace.');
|
|
105
118
|
} else {
|
|
106
119
|
console.error(`Setup failed: ${result.message}`);
|
|
@@ -234,6 +247,72 @@ async function runRuntimeSetup(flags: Record<string, string>): Promise<void> {
|
|
|
234
247
|
console.log(` Workspace: ${result.workspaceId}`);
|
|
235
248
|
}
|
|
236
249
|
|
|
250
|
+
async function runAddWorkspace(
|
|
251
|
+
positional: string[],
|
|
252
|
+
flags: Record<string, string>,
|
|
253
|
+
): Promise<void> {
|
|
254
|
+
const apiKey = positional[0];
|
|
255
|
+
if (!apiKey) {
|
|
256
|
+
console.error('add-workspace requires a workspace API key as the first argument.');
|
|
257
|
+
console.error('Usage: relay-openclaw add-workspace <rk_live_...> [--alias <name>] [--workspace-id <id>] [--default]');
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const config = await addWorkspace({
|
|
262
|
+
api_key: apiKey,
|
|
263
|
+
...(flags['alias'] ? { workspace_alias: flags['alias'] } : {}),
|
|
264
|
+
...(flags['workspace-id'] ? { workspace_id: flags['workspace-id'] } : {}),
|
|
265
|
+
...(flags['default'] !== undefined ? { is_default: flags['default'] === 'true' } : {}),
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
const entry = config.workspaces.find((w) => w.api_key === apiKey);
|
|
269
|
+
const label = entry?.workspace_alias
|
|
270
|
+
?? entry?.workspace_id
|
|
271
|
+
?? apiKey.slice(0, 12) + '...';
|
|
272
|
+
console.log(`Workspace "${label}" added.`);
|
|
273
|
+
console.log(`Total workspaces: ${config.workspaces.length}`);
|
|
274
|
+
if (config.default_workspace) {
|
|
275
|
+
console.log(`Default workspace: ${config.default_workspace}`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
async function runListWorkspaces(): Promise<void> {
|
|
280
|
+
const workspaces = await listWorkspaces();
|
|
281
|
+
if (workspaces.length === 0) {
|
|
282
|
+
console.log('No workspaces configured.');
|
|
283
|
+
console.log('Add one with: relay-openclaw add-workspace <rk_live_...> --alias <name>');
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
console.log(`Configured workspaces (${workspaces.length}):\n`);
|
|
288
|
+
for (const w of workspaces) {
|
|
289
|
+
const defaultMarker = w.is_default ? ' (default)' : '';
|
|
290
|
+
const alias = w.workspace_alias ?? '(no alias)';
|
|
291
|
+
const maskedKey = w.api_key.slice(0, 12) + '...';
|
|
292
|
+
const wsId = w.workspace_id ? ` [${w.workspace_id}]` : '';
|
|
293
|
+
console.log(` ${alias}${wsId} — ${maskedKey}${defaultMarker}`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
async function runSwitchWorkspace(positional: string[]): Promise<void> {
|
|
298
|
+
const identifier = positional[0];
|
|
299
|
+
if (!identifier) {
|
|
300
|
+
console.error('switch-workspace requires a workspace alias or ID.');
|
|
301
|
+
console.error('Usage: relay-openclaw switch-workspace <alias-or-id>');
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
const result = await switchWorkspace(identifier);
|
|
306
|
+
if (!result) {
|
|
307
|
+
console.error(`Workspace "${identifier}" not found.`);
|
|
308
|
+
console.error('Run "relay-openclaw list-workspaces" to see available workspaces.');
|
|
309
|
+
process.exit(1);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
console.log(`Switched default workspace to "${identifier}".`);
|
|
313
|
+
console.log('The .env config has been updated. Restart the gateway to apply.');
|
|
314
|
+
}
|
|
315
|
+
|
|
237
316
|
async function main(): Promise<void> {
|
|
238
317
|
const { command, positional, flags } = parseArgs(process.argv);
|
|
239
318
|
|
|
@@ -256,6 +335,15 @@ async function main(): Promise<void> {
|
|
|
256
335
|
case 'release':
|
|
257
336
|
await runRelease(flags);
|
|
258
337
|
break;
|
|
338
|
+
case 'add-workspace':
|
|
339
|
+
await runAddWorkspace(positional, flags);
|
|
340
|
+
break;
|
|
341
|
+
case 'list-workspaces':
|
|
342
|
+
await runListWorkspaces();
|
|
343
|
+
break;
|
|
344
|
+
case 'switch-workspace':
|
|
345
|
+
await runSwitchWorkspace(positional);
|
|
346
|
+
break;
|
|
259
347
|
case 'mcp-server':
|
|
260
348
|
await startMcpServer();
|
|
261
349
|
break;
|
|
@@ -3,7 +3,7 @@ import { join, dirname, basename } from 'node:path';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
5
|
|
|
6
|
-
import type { GatewayConfig } from './types.js';
|
|
6
|
+
import type { GatewayConfig, WorkspaceEntry, WorkspacesConfig } from './types.js';
|
|
7
7
|
|
|
8
8
|
function envValue(vars: Record<string, string>, key: string): string | undefined {
|
|
9
9
|
const processValue = process.env[key]?.trim();
|
|
@@ -330,3 +330,167 @@ export async function saveGatewayConfig(config: GatewayConfig): Promise<void> {
|
|
|
330
330
|
|
|
331
331
|
await writeFile(join(relaycastDir, '.env'), env, 'utf-8');
|
|
332
332
|
}
|
|
333
|
+
|
|
334
|
+
// ---------------------------------------------------------------------------
|
|
335
|
+
// Multi-workspace config: ~/.openclaw/workspace/relaycast/workspaces.json
|
|
336
|
+
// ---------------------------------------------------------------------------
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Path to the workspaces.json file.
|
|
340
|
+
*/
|
|
341
|
+
async function workspacesConfigPath(): Promise<string> {
|
|
342
|
+
const detection = await detectOpenClaw();
|
|
343
|
+
return join(detection.workspaceDir, 'relaycast', 'workspaces.json');
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Load multi-workspace config. Returns null if the file doesn't exist.
|
|
348
|
+
*/
|
|
349
|
+
export async function loadWorkspacesConfig(): Promise<WorkspacesConfig | null> {
|
|
350
|
+
const configPath = await workspacesConfigPath();
|
|
351
|
+
if (!existsSync(configPath)) return null;
|
|
352
|
+
|
|
353
|
+
try {
|
|
354
|
+
const raw = await readFile(configPath, 'utf-8');
|
|
355
|
+
return JSON.parse(raw) as WorkspacesConfig;
|
|
356
|
+
} catch (err) {
|
|
357
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
358
|
+
console.warn(`Warning: failed to parse ${configPath}: ${message}`);
|
|
359
|
+
console.warn('The file may be corrupted. Existing workspace config will not be modified.');
|
|
360
|
+
return { workspaces: [], default_workspace: undefined };
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Save multi-workspace config to disk.
|
|
366
|
+
*/
|
|
367
|
+
export async function saveWorkspacesConfig(config: WorkspacesConfig): Promise<void> {
|
|
368
|
+
const configPath = await workspacesConfigPath();
|
|
369
|
+
await mkdir(dirname(configPath), { recursive: true });
|
|
370
|
+
await writeFile(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Add a workspace entry. If an entry with the same api_key already exists,
|
|
375
|
+
* it is updated in place. The first workspace added becomes the default.
|
|
376
|
+
*/
|
|
377
|
+
export async function addWorkspace(entry: WorkspaceEntry): Promise<WorkspacesConfig> {
|
|
378
|
+
let config = await loadWorkspacesConfig();
|
|
379
|
+
|
|
380
|
+
if (!config) {
|
|
381
|
+
// Bootstrap from existing single-workspace .env if available
|
|
382
|
+
const gateway = await loadGatewayConfig();
|
|
383
|
+
if (gateway) {
|
|
384
|
+
config = {
|
|
385
|
+
workspaces: [{
|
|
386
|
+
api_key: gateway.apiKey,
|
|
387
|
+
workspace_alias: gateway.clawName,
|
|
388
|
+
is_default: true,
|
|
389
|
+
}],
|
|
390
|
+
default_workspace: gateway.clawName,
|
|
391
|
+
};
|
|
392
|
+
} else {
|
|
393
|
+
config = { workspaces: [], default_workspace: undefined };
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
const normalizeWorkspaceLabel = (workspace: WorkspaceEntry): string => {
|
|
398
|
+
return workspace.workspace_alias ?? workspace.workspace_id ?? workspace.api_key;
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
// Check for existing entry with same api_key
|
|
402
|
+
const hasExplicitDefault = entry.is_default !== undefined;
|
|
403
|
+
const existingIdx = config.workspaces.findIndex((w) => w.api_key === entry.api_key);
|
|
404
|
+
if (existingIdx >= 0) {
|
|
405
|
+
const existingEntry = config.workspaces[existingIdx];
|
|
406
|
+
config.workspaces[existingIdx] = { ...existingEntry, ...entry };
|
|
407
|
+
if (!hasExplicitDefault) {
|
|
408
|
+
config.workspaces[existingIdx].is_default = existingEntry.is_default;
|
|
409
|
+
}
|
|
410
|
+
const updatedEntry = config.workspaces[existingIdx];
|
|
411
|
+
if (updatedEntry.is_default) {
|
|
412
|
+
config.default_workspace = normalizeWorkspaceLabel(updatedEntry);
|
|
413
|
+
}
|
|
414
|
+
} else {
|
|
415
|
+
config.workspaces.push(entry);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
const targetWorkspace = config.workspaces.find((w) => w.api_key === entry.api_key);
|
|
419
|
+
if (!targetWorkspace) {
|
|
420
|
+
throw new Error(`Failed to locate workspace entry for ${entry.api_key}`);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// If this is explicitly default, or this is the first workspace without an existing default,
|
|
424
|
+
// set it as default.
|
|
425
|
+
if (
|
|
426
|
+
entry.is_default === true ||
|
|
427
|
+
(config.default_workspace === undefined && config.workspaces.length === 1)
|
|
428
|
+
) {
|
|
429
|
+
config.default_workspace = normalizeWorkspaceLabel(targetWorkspace);
|
|
430
|
+
for (const w of config.workspaces) {
|
|
431
|
+
w.is_default = w.api_key === targetWorkspace.api_key;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
await saveWorkspacesConfig(config);
|
|
436
|
+
return config;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* List all configured workspaces.
|
|
441
|
+
*/
|
|
442
|
+
export async function listWorkspaces(): Promise<WorkspaceEntry[]> {
|
|
443
|
+
const config = await loadWorkspacesConfig();
|
|
444
|
+
return config?.workspaces ?? [];
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Switch the default workspace by alias or workspace_id.
|
|
449
|
+
* Returns the updated config, or null if the identifier was not found.
|
|
450
|
+
*/
|
|
451
|
+
export async function switchWorkspace(identifier: string): Promise<WorkspacesConfig | null> {
|
|
452
|
+
const config = await loadWorkspacesConfig();
|
|
453
|
+
if (!config) return null;
|
|
454
|
+
|
|
455
|
+
const target = config.workspaces.find(
|
|
456
|
+
(w) => w.workspace_alias === identifier || w.workspace_id === identifier
|
|
457
|
+
);
|
|
458
|
+
if (!target) return null;
|
|
459
|
+
|
|
460
|
+
config.default_workspace = target.workspace_alias ?? target.workspace_id ?? target.api_key;
|
|
461
|
+
for (const w of config.workspaces) {
|
|
462
|
+
w.is_default = w.api_key === target.api_key;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// Also update the single-workspace .env to match the new default
|
|
466
|
+
const gateway = await loadGatewayConfig();
|
|
467
|
+
if (gateway) {
|
|
468
|
+
gateway.apiKey = target.api_key;
|
|
469
|
+
gateway.clawName = target.workspace_alias ?? target.workspace_id ?? target.api_key;
|
|
470
|
+
await saveGatewayConfig(gateway);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
await saveWorkspacesConfig(config);
|
|
474
|
+
return config;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Build RELAY_WORKSPACES_JSON value for the broker from stored workspaces.
|
|
479
|
+
* Returns null if there are fewer than 2 workspaces (single-workspace mode).
|
|
480
|
+
*/
|
|
481
|
+
export function buildWorkspacesJson(config: WorkspacesConfig): string | null {
|
|
482
|
+
if (config.workspaces.length < 2) return null;
|
|
483
|
+
|
|
484
|
+
const memberships = config.workspaces.map((w) => ({
|
|
485
|
+
api_key: w.api_key,
|
|
486
|
+
...(w.workspace_id ? { workspace_id: w.workspace_id } : {}),
|
|
487
|
+
...(w.workspace_alias ? { workspace_alias: w.workspace_alias } : {}),
|
|
488
|
+
}));
|
|
489
|
+
|
|
490
|
+
const payload: Record<string, unknown> = { memberships };
|
|
491
|
+
if (config.default_workspace) {
|
|
492
|
+
payload.default_workspace_id = config.default_workspace;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
return JSON.stringify(payload);
|
|
496
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// ── Types ──────────────────────────────────────────────────────────────
|
|
2
|
-
export type { GatewayConfig, InboundMessage, DeliveryResult } from './types.js';
|
|
2
|
+
export type { GatewayConfig, InboundMessage, DeliveryResult, WorkspaceEntry, WorkspacesConfig } from './types.js';
|
|
3
3
|
|
|
4
4
|
// ── Gateway ────────────────────────────────────────────────────────────
|
|
5
5
|
export { InboundGateway, type GatewayOptions, type RelaySender } from './gateway.js';
|
|
@@ -9,6 +9,12 @@ export {
|
|
|
9
9
|
detectOpenClaw,
|
|
10
10
|
loadGatewayConfig,
|
|
11
11
|
saveGatewayConfig,
|
|
12
|
+
loadWorkspacesConfig,
|
|
13
|
+
saveWorkspacesConfig,
|
|
14
|
+
addWorkspace,
|
|
15
|
+
listWorkspaces,
|
|
16
|
+
switchWorkspace,
|
|
17
|
+
buildWorkspacesJson,
|
|
12
18
|
type OpenClawDetection,
|
|
13
19
|
} from './config.js';
|
|
14
20
|
|
|
@@ -9,7 +9,7 @@ import { randomBytes } from 'node:crypto';
|
|
|
9
9
|
|
|
10
10
|
import { RelayCast } from '@relaycast/sdk';
|
|
11
11
|
|
|
12
|
-
import { detectOpenClaw, saveGatewayConfig } from './config.js';
|
|
12
|
+
import { detectOpenClaw, saveGatewayConfig, addWorkspace, loadWorkspacesConfig, buildWorkspacesJson } from './config.js';
|
|
13
13
|
import { InboundGateway } from './gateway.js';
|
|
14
14
|
import { DEFAULT_OPENCLAW_GATEWAY_PORT, type GatewayConfig } from './types.js';
|
|
15
15
|
|
|
@@ -353,14 +353,31 @@ export async function setup(options: SetupOptions): Promise<SetupResult> {
|
|
|
353
353
|
};
|
|
354
354
|
await saveGatewayConfig(gatewayConfig);
|
|
355
355
|
|
|
356
|
+
// Register this workspace in the multi-workspace config
|
|
357
|
+
await addWorkspace({
|
|
358
|
+
api_key: apiKey,
|
|
359
|
+
workspace_alias: clawName,
|
|
360
|
+
is_default: true,
|
|
361
|
+
});
|
|
362
|
+
|
|
356
363
|
// Register MCP servers via mcporter (global binary or npx fallback)
|
|
357
364
|
let mcpConfigured = false;
|
|
358
365
|
{
|
|
366
|
+
// Build env args for mcporter, including multi-workspace JSON if available
|
|
367
|
+
const wsConfig = await loadWorkspacesConfig();
|
|
368
|
+
const workspacesJson = wsConfig ? buildWorkspacesJson(wsConfig) : null;
|
|
369
|
+
|
|
359
370
|
const envArgs = [
|
|
360
371
|
'--env', `RELAY_API_KEY=${apiKey}`,
|
|
361
372
|
...(baseUrl !== 'https://api.relaycast.dev'
|
|
362
373
|
? ['--env', `RELAY_BASE_URL=${baseUrl}`]
|
|
363
374
|
: []),
|
|
375
|
+
...(workspacesJson
|
|
376
|
+
? ['--env', `RELAY_WORKSPACES_JSON=${workspacesJson}`]
|
|
377
|
+
: []),
|
|
378
|
+
...(wsConfig?.default_workspace
|
|
379
|
+
? ['--env', `RELAY_DEFAULT_WORKSPACE=${wsConfig.default_workspace}`]
|
|
380
|
+
: []),
|
|
364
381
|
];
|
|
365
382
|
|
|
366
383
|
let mcp: { cmd: string; prefix: string[] } | null = null;
|
|
@@ -538,6 +555,14 @@ Once installed, use the Relaycast MCP tools:
|
|
|
538
555
|
- \`reply_to_thread\` — Reply in a thread
|
|
539
556
|
- \`check_inbox\` — See unread messages
|
|
540
557
|
|
|
558
|
+
## Multi-Workspace
|
|
559
|
+
|
|
560
|
+
\`\`\`bash
|
|
561
|
+
relay-openclaw add-workspace <key> --alias <name> # Add a workspace
|
|
562
|
+
relay-openclaw list-workspaces # List all workspaces
|
|
563
|
+
relay-openclaw switch-workspace <alias> # Switch default workspace
|
|
564
|
+
\`\`\`
|
|
565
|
+
|
|
541
566
|
## Commands
|
|
542
567
|
|
|
543
568
|
\`\`\`bash
|
|
@@ -66,6 +66,31 @@ export interface InboundMessage {
|
|
|
66
66
|
kind?: 'channel' | 'thread' | 'dm' | 'groupdm' | 'command' | 'reaction';
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* A stored workspace entry for multi-workspace support.
|
|
71
|
+
* Matches the broker's WorkspaceSource schema in src/auth.rs.
|
|
72
|
+
*/
|
|
73
|
+
export interface WorkspaceEntry {
|
|
74
|
+
/** Workspace API key (rk_live_*). */
|
|
75
|
+
api_key: string;
|
|
76
|
+
/** Optional workspace ID (ws_*). */
|
|
77
|
+
workspace_id?: string;
|
|
78
|
+
/** Human-friendly alias for this workspace. */
|
|
79
|
+
workspace_alias?: string;
|
|
80
|
+
/** Whether this is the default/active workspace. */
|
|
81
|
+
is_default?: boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Multi-workspace config stored at ~/.openclaw/workspace/relaycast/workspaces.json.
|
|
86
|
+
*/
|
|
87
|
+
export interface WorkspacesConfig {
|
|
88
|
+
/** All configured workspace entries. */
|
|
89
|
+
workspaces: WorkspaceEntry[];
|
|
90
|
+
/** Alias or workspace_id of the default workspace. */
|
|
91
|
+
default_workspace?: string;
|
|
92
|
+
}
|
|
93
|
+
|
|
69
94
|
export interface DeliveryResult {
|
|
70
95
|
/** Whether delivery succeeded. */
|
|
71
96
|
ok: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/policy",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.20",
|
|
4
4
|
"description": "Agent policy management with multi-level fallback (repo, local PRPM, cloud workspace)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/config": "3.1.
|
|
25
|
+
"@agent-relay/config": "3.1.20"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -167,4 +167,39 @@ test('sdk includes broker stderr details when startup fails', async (t) => {
|
|
|
167
167
|
fs.rmSync(cwd, { recursive: true, force: true });
|
|
168
168
|
}
|
|
169
169
|
});
|
|
170
|
+
test('sdk writes broker lifecycle logs to stderr so stdout stays machine-readable', async (t) => {
|
|
171
|
+
const binaryPath = resolveBinaryPath();
|
|
172
|
+
if (!fs.existsSync(binaryPath)) {
|
|
173
|
+
t.skip(`agent-relay-broker binary not found at ${binaryPath}`);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const loggedStdout = [];
|
|
177
|
+
const loggedStderr = [];
|
|
178
|
+
const originalLog = console.log;
|
|
179
|
+
const originalError = console.error;
|
|
180
|
+
console.log = (...args) => {
|
|
181
|
+
loggedStdout.push(args.map((arg) => String(arg)).join(' '));
|
|
182
|
+
};
|
|
183
|
+
console.error = (...args) => {
|
|
184
|
+
loggedStderr.push(args.map((arg) => String(arg)).join(' '));
|
|
185
|
+
};
|
|
186
|
+
let client;
|
|
187
|
+
try {
|
|
188
|
+
client = await AgentRelayClient.start({
|
|
189
|
+
binaryPath,
|
|
190
|
+
requestTimeoutMs: 8_000,
|
|
191
|
+
shutdownTimeoutMs: 2_000,
|
|
192
|
+
env: process.env,
|
|
193
|
+
});
|
|
194
|
+
await client.listAgents();
|
|
195
|
+
assert.equal(loggedStdout.some((line) => line.includes('[broker] Starting:') || line.includes('[broker] Broker ready')), false, `broker lifecycle logs should not be written to stdout: ${loggedStdout.join('\n')}`);
|
|
196
|
+
assert.ok(loggedStderr.some((line) => line.includes('[broker] Starting:')), `expected broker start log on stderr, got: ${loggedStderr.join('\n')}`);
|
|
197
|
+
assert.ok(loggedStderr.some((line) => line.includes('[broker] Broker ready')), `expected broker ready log on stderr, got: ${loggedStderr.join('\n')}`);
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
console.log = originalLog;
|
|
201
|
+
console.error = originalError;
|
|
202
|
+
await client?.shutdown();
|
|
203
|
+
}
|
|
204
|
+
});
|
|
170
205
|
//# sourceMappingURL=integration.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ export interface SpawnPtyInput {
|
|
|
28
28
|
restartPolicy?: RestartPolicy;
|
|
29
29
|
/** Name of a previously released agent whose continuity context should be injected. */
|
|
30
30
|
continueFrom?: string;
|
|
31
|
+
/** When true, skip injecting the relay MCP configuration and protocol prompt into the spawned agent.
|
|
32
|
+
* Useful for minor tasks where relay messaging is not needed, saving tokens. */
|
|
33
|
+
skipRelayPrompt?: boolean;
|
|
31
34
|
}
|
|
32
35
|
export interface SpawnHeadlessInput {
|
|
33
36
|
name: string;
|
|
@@ -35,6 +38,9 @@ export interface SpawnHeadlessInput {
|
|
|
35
38
|
args?: string[];
|
|
36
39
|
channels?: string[];
|
|
37
40
|
task?: string;
|
|
41
|
+
/** When true, skip injecting the relay MCP configuration and protocol prompt into the spawned agent.
|
|
42
|
+
* Useful for minor tasks where relay messaging is not needed, saving tokens. */
|
|
43
|
+
skipRelayPrompt?: boolean;
|
|
38
44
|
}
|
|
39
45
|
export type AgentTransport = 'pty' | 'headless';
|
|
40
46
|
export interface SpawnProviderInput {
|
|
@@ -52,6 +58,9 @@ export interface SpawnProviderInput {
|
|
|
52
58
|
idleThresholdSecs?: number;
|
|
53
59
|
restartPolicy?: RestartPolicy;
|
|
54
60
|
continueFrom?: string;
|
|
61
|
+
/** When true, skip injecting the relay MCP configuration and protocol prompt into the spawned agent.
|
|
62
|
+
* Useful for minor tasks where relay messaging is not needed, saving tokens. */
|
|
63
|
+
skipRelayPrompt?: boolean;
|
|
55
64
|
}
|
|
56
65
|
export interface SendMessageInput {
|
|
57
66
|
to: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|